This is a pattern we'd like to phase out and instead have tasks and extensions (and transforms) use composition instead of inheritance. More details to follow here. This is a requirement for the provider API migration.