constraint grouping prototype