weather framework refactor

more refactoring