caching is hard.