add caching for api requests