@dmyung does this function work? Looks like (1) it doesn't cache on a miss, and (2) it doesn't return a value unless there's a hit. I assume that's intentional.