introduced a new abstract base class for DAOs, interface, etc