make OperationList Observable to prevent illegal state in undo redo