Forcast

Updated after Hound errors in last pull request.
Resulted in some refactoring and changing design slightly.
There still might be some hound errors from test suite and files that were auto generated.
Put one space between the method name and the first argument.