fixed constraint group and recurse when one candidate remains
add constraint group test