A lot of dependency changes/upgrades, style changes and minor tweaks. DIFF THE CHANGES