"Caching" this seems to add complexity for little reason? I can't see that the tests would break if it didn't, am I missing something?