refactored forecast methods