added the ability to save and load a cache of user data