contraints done manually