convert to 2.0 using contraints