imrpoved cache so its date-based and can be easily added to with new data from the server