Merging all changes back into the main branch

Requesting pull of all new development