def _init_model array
      # clear the column data -- this line should be called otherwise previous tables stuff will remain.
      @chash.clear
      array.each_with_index { |e,i|
        # if columns added later we could be overwriting the width
        c = get_column(i)
        c.width ||= 10
      }
      # maintains index in current pointer and gives next or prev
      @column_pointer = Circular.new array.size()-1
    end
def _init_model array
      # clear the column data -- this line should be called otherwise previous tables stuff will remain.
      @chash.clear
      array.each_with_index { |e,i|
        # if columns added later we could be overwriting the width
        c = get_column(i)
        c.width ||= 10
      }
      # maintains index in current pointer and gives next or prev
      @column_pointer = Circular.new array.size()-1
    end
size each column based on widths of this row of data.
 Only changed width if no width for that column