   return @getData().options or @presetOptions() or false
 
 # ##### prepareOptions()
-#   Prepares the datatable options object by merging the options passed in with the defaults
-#   If the componet was declared with a collection and a query it is setup as a reactive datatable
-#   `options.sAjaxSource` is currently useless, but is passed into `fnServerData` by datatables
-#   binds the datatables `fnServerData` server callback to this component instance
+# Prepares the datatable options object by merging the options passed in with the defaults.
 Template.dataTable.prepareOptions = ->
   options = @getOptions() or {}
   options.aaData = @getRows() or []
   options.aoColumns = @getColumns() or []
+  # If the componet was declared with a collection and a query it is setup as a reactive datatable.
   if @getCollection() and @getQuery()
     options.bServerSide = true
     options.bProcessing = true
+    # `options.sAjaxSource` is currently useless, but is passed into `fnServerData` by datatables.
     options.sAjaxSource = "useful?"
+    # This binds the datatables `fnServerData` server callback to this component instance.
+    # `_.debounce` is used to prevent unneccesary subcription calls while typing a search
     options.fnServerData = _.debounce( @fnServerData.bind( @ ), 300 )
   @setOptions _.defaults( options, @defaultOptions )
 
 # #### `selector` String ( required )
-#   The table selector for the dataTable instance you are creating.
-#   Needs to be unique in the page scope or you will get datatable mulit-render error
+# The table selector for the dataTable instance you are creating, must be unique in the page scope or you will get
+# datatable mulit-render error.
 Template.dataTable.setSelector = ( selector ) ->
   Match.test selector, String
   @setData 'selector', selector

  instantiatedComponent.initialize()

# ##### destroyed()
#   Currently nothing is done when the component is destroyed
#   This may change
Template.dataTable.destroyed = ->
  @log "destroyed"

# ##### initialize()
#   Set the initial table properties from the component declaration
#   Initialize the jQuery DataTables object
#   Initialize other third parties if they exist ( plugins, select2, etc. )
Template.dataTable.initialize = ->
  @prepareQuery()
  @prepareCollection()

  return index

# #### `columns` Array of Objects ( required )
# The column definitions you are passing to the datatable component. This is where to map object properties to columns
# and their headers. You can also define custom templates for rendering data in cells using the `mData` property.

# ##### setColumns()
Template.dataTable.setColumns = ( columns ) ->
