Revert "decouple instances from subtypes"

This reverts commit f2a7f8ac51db66b1ee7b5ebd862c0dde1aa7cab9.
Revert "decouple instances from subtypes"

This reverts commit e85668b329cf2f6f72034b6061d015ddf10ef07c.