Rather than a constructor, I think there should be a public abstract getter called `delegate`. This way the delegating classes can be used as mixins.