Forecast controller

Closes #46