Weather refactor to allow secondary sources