added caching for all data