Cache

Not done. Creating this if anyone wants to review it.