weather finished
Final changes with some refactoring and all tests are passing