     @super()
   
   @method 'setList', (newList) ->
+    self = this
     unless newList == @list    
       if @_list
         @_list.unbindAll this
       
       @_list = newList
-      @_ordered = @_list._array.slice(0)
-      for item in @_list._array
-        item._uid ||= ST.Object.UID++
       
       if @_list
+        @_list.each (item) ->
+          item._uid ||= ST.Object.UID++
+          self._ordered.push item
         @_list.bind 'itemAdded', this, 'listItemAdded'
         @_list.bind 'itemChanged', this, 'listItemChanged'
         @_list.bind 'itemRemoved', this, 'listItemRemoved'

    @_tableElement = @helper().tag('table').addClass('tableView')
    @_tableElement.addClass @_tableClass if @_tableClass
    html = []
    @generateHeaderHTML html
    @generateBodyHTML html
    @_tableElement.html html.join('')
    @_tbody = $ 'tbody', @_tableElement
    $('tr', @_tbody).each (index) ->

      html.push '</span>'
    
    html.push '</th>'
  
  @method 'generateBodyInnerHTML', (html, media='screen') ->
    self = this
