Add IPersistence abstraction