add caching to function who makes call to external services