Add caching to client