label redo, needs contraints