Refactored hierarchy so that Classes actually hold onto a reference of their superclass and superclasses contain a list of their subclasses.