ConstraintChecker, not yet tested
completed, not tested