added caching and token auth