Caching: take 2

23 times faster than before!