Moved weather to its own package, improved error handling