Added forecast method

This commit adds the forecast method. I did some refactor to avoid code duplication, but that's it.