add additional caching extension methods