refactored mapping of class hierarchies, abstract classes, interfaces