First version supporting properties from multiple subclasses