add constrain checker