Caching Refactor