abstract class created