Function which will provide a new cache struct
An cache must be provided a file that it can read/write it's data to
so that the cache is preserved between launches
Method which will load the provided cache data file. Will overwrite the internal
state of the object. Should pretty much only be used when the object is created
but it is left public in case a client needs to load old data or something