fix class hierarchy, introduced HierarchicalExternal