support for deriving properties and interfaces in types