removed sublcass constraints