No need to pass around cache since it will usually be called once per run
remove ConnectionFailure property
Use report contents to set expiry of forcast data

Also added safe strptime.
Use locator.distances, not distance
Set default region to UK