`Builder` class to abstract the generation of constraints and permutations. - Consider how this should look - Check existing interfaces