add weather settings and refactoring