added Persistence Support with tests