why call the class abstract if it is not an abstract class?