Added weather support, and some modularzation