   garbageCollect: ->
     @cleanupDraw()
 
-    for id, el of @newRoots
-      el.update()
-
     for id, el of @flaggedToDelete when id of @map
       @map[id].destroy()
       @destroy id
+
+    for id, el of @newRoots
+      el.update()
+
+    @oldRoots = @newRoots
 
   destroy: (id) ->
     for child in @map[id].children

    @marks = {}

  beginDraw: ->
    @garbageCollect()
    @oldRoots = @newRoots
    @newRoots = {}

  hasViewNodeFor: (model) ->

            return
          else
            children[head.id] = @view.getAuxiliaryNode head

      @children = children

