Cache is now templated so it can hold other base types.