Modifications to the cache mechanism.

Read the docs and so I'm doing it the way the docs want it to be done.
This is supposedly the right way to get and update the cache.

Now we'll need performance tests to make sure that it's not going to ask
multiple times for the data in the cache...