refactor user-storage to not be a singleton