Add a basic cache system