I think this cache key code is also in Document. Why have it in two places?