More flexible caching