 
 
 
-  outdated: (mutations) =>
+  outdated: (observedMutations) =>
     @observer.hold =>
-      for mutation in mutations
-        @appended(node, mutation.target) for node in mutation.addedNodes
-        @removed(node, mutation.target) for node in mutation.removedNodes
-        if mutation.type == 'characterData'
-          @update mutation.target
+      mutations = new Mutations(observedMutations)
+      switch mutations.status()
+        when 'appended' then @appended(mutations)
+        when 'updated' then @updated(mutations)
+        when 'removed' then @removed(mutations)
 
     event = new CustomEvent('Editor:updated', {bubbles: true})
     @element().dispatchEvent(event)

        offset = 0
      else
        offset = @lineOffset(line, sel.focusNode, sel.focusOffset)
        
      cursor = new Editor.Cursor(offset)

      lines = @parse(@cloneNodesFrom(line))




  updated: (mutations) ->
    node = mutations.target
    while node? && node.parentElement != @element()
      node = node.parentElement

