Feature/cxx type hierarchy

CXX Type Hierarchy