OperationObserver moved from the ViewModel to the Model