rework delegators, better typechecking on initialization, and introduction of Subsetting mixin