Initial working version with multiple CMs and pretty much everything that was part of the spec for GEC6