need to add constraint manipulation