refactor weatherinfo, add forecastInfo class