removed abstract class