removed abstract class, now concrete