added the concept of constraints on candidates