As commented above, what if this lookup fails? It seems we'll stick a blank entry in the cache and then return it, which doesn't seem ideal.