         if let selectedAnnotationView = selectedAnnotationView {
             deleteAnnotationView(selectedAnnotationView, animated: true)
         }
+    }
+    
+    private func informDelegateOfChange() {
+        guard let delegate = delegate else { return }
+        guard let image = imageView.image else { assertionFailure(); return }
+        
+        delegate.editorDidMakeChanges(self, to: image)
     }
     
     // MARK: - UIGestureRecognizerDelegate

        let isEditingTextView = currentTextAnnotationView?.textView.isFirstResponder ?? false
        currentAnnotationView = isEditingTextView ? currentAnnotationView : nil
        
        if let delegate = delegate {
            guard let image = imageView.image else { assertionFailure(); return }
            delegate.editorDidMakeChanges(self, to: image)
        }
    }
    
    @objc private func toolChanged(_ segmentedControl: UISegmentedControl) {

        let removeAnnotationView = {
            self.endEditingTextView()
            annotationView.removeFromSuperview()
            
            self.informDelegateOfChange()
        }
        
        if animated {
