add constraint methods