       withTarget: self,
       selector: #selector(Document.remove(concept:)),
       object: concept)
-    observer?.documentChanged(withElement: concept as Element)
+    observer?.documentChanged(withElement: concept)
   }
   
   func remove(concept: Concept) {

      withTarget: self,
      selector: #selector(Document.remove(link:)),
      object: link)
    observer?.documentChanged(withElement: link as Element)
  }
  
  func remove(link: Link) {

      withTarget: self,
      selector: #selector(Document.save(link:)),
      object: link)
    observer?.documentChanged(withElement: link)
  }

  func move(concept: Concept, toPoint: NSPoint) {
    Swift.print("move concept \(concept) toPoint: \(toPoint)")
    let originalPoint = concept.point
    concept.point = toPoint
    observer?.documentChanged(withElement: concept)
    
    undoManager?.registerUndo(withTarget: self, handler: { (object) in
      object.move(concept: concept, toPoint: originalPoint)
