We should have a consistent interface to the objects we build, we should 'save' objects and the internal details (updating/inserting the database/cache) should be handled by the same method every time.