Initial implementation of GMU
 * Some tests are failing
 * next commit to rebase is the Switch Protocol