 
   outdated: (observedMutations) =>
     @observer.hold =>
-      mutations = new Mutations(observedMutations)
-      switch mutations.status()
-        when 'appended' then @appended(mutations)
-        when 'updated' then @updated(mutations)
-        when 'removed' then @removed(mutations)
+      mutations = new Mutations(observedMutations, @element())
+      @updated(mutations)
 
     event = new CustomEvent('Editor:updated', {bubbles: true})
     @element().dispatchEvent(event)

      else
        @removed.push mutation.target

  setTarget: (target) ->
    return unless target.parentElement?
    if @target? && @target.compareDocumentPosition(target) & Node.DOCUMENT_POSITION_FOLLOWING
      @target = target
    else



class Mutations
  constructor: (mutations, editor) ->
    @removed = []
    @appended = []
    @updated = []

    for mutation in mutations
      @setTarget(mutation.target, editor)
      if mutation.addedNodes.length > 0
        @appended.push mutation.target
      else if mutation.type == 'characterData'
