Should include all possible constraints