Class name stores in class itself (uses in toString); a bit DRY code in Namespace#getChild, Namespace#hasChild; if/else => switch/case for readability