promoted cancelEdit to the parent controller as well as some optimalizations