new constrain framework