adding weather service, refactoring to pass controller around instead of individual services.