change WeatherInfo's setter to protected