scheme-dependent caching