Created abstract superclass