Make register a class not enum
Cleanup inheritance tree