Merge Dev

A lot of work has been done. Merging Dev to Master.