     if @isBlockElement(element) and not @isBlockElement(element.firstChild)
       attributes = getBlockAttributes(element)
       unless elementContainsNode(@currentBlockElement, element) and arraysAreEqual(attributes, @currentBlock.attributes)
-        @currentBlock = @appendBlockForAttributes(attributes, element)
+        @currentBlock = @appendBlockForAttributesWithElement(attributes, element)
         @currentBlockElement = element
 
     else if @currentBlockElement and not elementContainsNode(@currentBlockElement, element) and not @isBlockElement(element)
-        @currentBlock = @appendBlockForAttributes({})
+        @currentBlock = @appendEmptyBlock()
         @currentBlockElement = null
 
   isExtraBR: (element) ->

          unless element.parentNode.firstChild is element
            @appendStringWithAttributes(" ")

  appendBlockForAttributes: (attributes, element) ->
    @blockElements.push(element)
    block = blockForAttributes(attributes)
    @blocks.push(block)
    block

  appendStringWithAttributes: (string, attributes) ->
    @appendPiece(pieceForString(string, attributes))



  appendPiece: (piece) ->
    if @blocks.length is 0
      @appendEmptyBlock()
    @blocks[@blocks.length - 1].text.push(piece)

  appendStringToTextAtIndex: (string, index) ->
