Extract BaseEntity module and add ComplexType class
Extend and clean up DataProperty docs