Move most functionality to DatabaseObject, which should be able to perform all of the methods on its tables.  Implementations of these methods are now in the subclasses.