made the undo/redo management better organized by using UndoableLightTask which can be direcly inverted (eg Shift) and UndoableHeavyTask which stores the state of the whole model, made some tests, it seems to work