Branch Merge and Fixes

Bringing together everyone's work with several fixes and improvements.