Maybe comment would have been better in a different place. There are multiple areas where you use something like:
```
    var historyMonitor = HistoryMonitor.getInstance();
    historyMonitor.addUndoChange(undoChange);
    historyMonitor.addRedoChange(executeChange);
```

Wouldn't it be easy to make it like:
```
    var historyMonitor = HistoryMonitor.getInstance();
    historyMonitor.addChanges(undoChange, executeChange);
```

Where ```addChanges(a,b)``` would just call ```addUndoChange(a)``` and ```addRedoChange(b)``` for you. Or am I just being dense and missing something?