split weather providers into their own types