Complete class hierarchy, non-functional