forecasts work, lots of refactoring