improve required constraint