first work on constraints