added a constraint class