       @oldState = {tiles: {}}
       @oldState.tiles[@id] = { lines: {}}
 
-    if @newState.tiles[@id].display isnt @oldState.tiles[@id]?.display
-      @domNode.style.display = @newState.tiles[@id].display
-      @oldState.tiles[@id]?.display = @newState.tiles[@id].display
-
-    if @newState.tiles[@id].height isnt @oldState.tiles[@id]?.height
-      @domNode.style.height = @newState.tiles[@id].height + 'px'
-      @oldState.tiles[@id]?.height = @newState.tiles[@id].height
-
-    if (@newState.tiles[@id].top isnt @oldState.tiles[@id]?.top) or (@newState.tiles[@id].left isnt @oldState.tiles[@id]?.left)
-      @domNode.style['-webkit-transform'] = "translate3d(#{@newState.tiles[@id].left}px, #{@newState.tiles[@id].top}px, 0px)"
-      @oldState.tiles[@id]?.top = @newState.tiles[@id].top
-      @oldState.tiles[@id]?.left = @newState.tiles[@id].left
-
-    if @newState.tiles[@id].newlyCreated
+    @newTileState = @newState.tiles[@id]
+    @oldTileState = @oldState.tiles[@id]
+
+    if @newTileState.display isnt @oldTileState.display
+      @domNode.style.display = @newTileState.display
+      @oldTileState.display = @newTileState.display
+
+    if @newTileState.height isnt @oldTileState.height
+      @domNode.style.height = @newTileState.height + 'px'
+      @oldTileState.height = @newTileState.height
+
+    if @newTileState.top isnt @oldTileState.top or @newTileState.left isnt @oldTileState.left
+      @domNode.style['-webkit-transform'] = "translate3d(#{@newTileState.left}px, #{@newTileState.top}px, 0px)"
+      @oldTileState.top = @newTileState.top
+      @oldTileState.left = @newTileState.left
+
+    if @newTileState.newlyCreated
       newLineIds = []
       newLinesHTML = ""
 
-      for id, lineState of @newState.tiles[@id].lines
+      for id, lineState of @newTileState.lines
         newLineIds.push(id)
         newLinesHTML += @buildLineHTML(id)
         @screenRowsByLineId[id] = lineState.screenRow
         @lineIdsByScreenRow[lineState.screenRow] = id
-        @oldState.tiles[@id]?.lines[id] = cloneObject(lineState)
+        @oldTileState.lines[id] = cloneObject(lineState)
 
       return if newLineIds.length is 0
 

        newLinesHTML += @buildLineHTML(id)
        @screenRowsByLineId[id] = lineState.screenRow
        @lineIdsByScreenRow[lineState.screenRow] = id
        @oldState.tiles[@id]?.lines[id] = cloneObject(lineState)

    return unless newLineIds?


    "<span class=\"#{scope.replace(/\.+/g, ' ')}\">"

  updateLineNode: (id) ->
    oldLineState = @oldTileState.lines[id]
    newLineState = @newTileState.lines[id]

    lineNode = @lineNodesByLineId[id]

