switching superclasses to Parent to expose less API