         cellViewEnter.call(this, datum, index, isHead)
       .update (datum, node, index) ->
         index = data.indexOf(datum)
-        cellIsHead = isHead or (leftShifted and index is 0)
         cellViewUpdate(datum, node, index, isHead)
     # create the view once on enter and re-use it in the update
     hx.component.register(rowNode, { view: rowView })

    cell.node()

  cellViewUpdate = (data, node, index, isHead) ->
    isFirstColum = leftShifted and index is 0
    cellIsHead = isHead or isFirstColum
    selection = hx.select(node)
    if hx.isFunction(data) # Top left cell
      data(node)
    else if not data? # Top left cell when no renderer provided
      selection.text('')
    else cellRender(data, node, cellIsHead, index) # Head / Body cells

  rowViewEnter = (data, isHead) ->
    rowNode = @append('tr').node()

createTableView = (table, head, body) ->
  cellViewEnter = (data, index, isHead) ->
    isFirstColum = table._.leftShifted and index is 0
    cellIsHead = isHead or isFirstColum
    cellIsTopLeft = isHead and isFirstColum
    type = if cellIsHead or hx.isFunction(data) then 'th' else 'td'
