added abstract methods to traits