Use closure-based caching