register datastore change, better caching