Solving the final bonus challenge, adding weather features and code reorganization