make caching support optional