Finalised base refactoring of PersistentObject, tested and worked; except that I must implement the modification framework.
Still need to test delete and modify.