Add caching mechanism