Moved a bunch of functionality into the base class destroy, save, update