Added abstract superclass