add PersistService as a cache layer