Completely restructure caching