base class is abstract; todo list