add more contraints