add the abstract class