Add basic multi-group support
Merge branch 'multi-group'