handles constraints