Significant update to include better caching and a forecast api. Not functioning. Committed for safekeeping.