add abstract class