finished implementing WeatherContract and some refactoring