Implementing complicated constraints

Original text of this message