 # Set the initial table properties from the component declaration, initialize the jQuery DataTables object, and initialize
 # other third parties if they exist ( plugins, select2, etc. )
 Template.dataTable.initialize = ->
-  @prepareQuery()
-  @prepareCollection()
-  @prepareColumns()
-  @prepareRows()
-  @prepareOptions()
-  @prepareDataTable()
-  @prepareFilters()
-  @preparePagination()
+  @initializeDataTable()
+  @initializeFilters()
+  @initializeDisplayLength()
   @log "initialized", @
 
 # ### Collection Counts

      target = @
      self.getDataTable().fnFilter target.value, $(".#{ self.getSelector() } .dataTables_wrapper tfoot input").index( target )

# ##### preparePagination()
Template.dataTable.preparePagination = ->
  unless $.select2
    $(".#{ @getSelector() } .dataTables_length select").select2 minimumResultsForSearch: "-1"


  @log "dataTable:set", dataTable.fnSettings()

# ##### prepareDataTable()
Template.dataTable.initializeDataTable = ->
  @setDataTable $(".#{ @getSelector() } table").dataTable( @getOptions() )

# ##### initializeFilters()
Template.dataTable.initializeFilters = ->
  @initializeFilterPlaceholder()
  @initializeFooterFilter()

# ##### initializeFilterPlaceholder()
Template.dataTable.initializeFilterPlaceholder = ->
  $(".#{ @getSelector() } .dataTables_filter input[type=text]").attr "placeholder", "Type to filter..."

# ##### prepareFooterFilter()
Template.dataTable.initializeFooterFilter = ->
  selector = @getSelector()
  if selector is 'datatable-add-row' and $.keyup
    self = @
