Added user-controlled caching