generic mapping: added support for class hierarchies, abstract classes,
interfaces