controller contraint