# abstract class