passes all tests. TODO: don't change configs if Move is vacuous or existing group joins or nonexistent group leaves (important for performance reasons)