         @opts.filters = @opts.filters.concat filters
       else
         @opts.filters = filters
-        @trigger 'data', @preparedData() 
+        @trigger 'data', @childData() 
     else
       @opts.filters.push filters
     if triggerEvent
       @trigger 'add-filters', filters 
       if not _.isEmpty(@opts.data) and ((not _.isEmpty(filters)) or _.isFunction(filters))
-        @trigger 'data', @preparedData() 
+        @trigger 'data', @childData() 
     @
 
   fields: (fields=[], triggerEvent=true, replace=false) =>

      char.toUpperCase()

  # Private
  @_memoizeHash: -> 
    data = _.take(arguments[0], 50)
    other = arguments[1]
    btoa(JSON.stringify([data, other]))

  @_filter: (data, filters) ->
    data = _.chain(data)
    for filter in filters
      data = data.filter(filter)
    data

  @_addFields: (data, fields) ->
    for field in fields
      data = data.map (i) ->
        i[field.field] = field.func(i); i

    keys.push key for key, value of datum when not(key in @nonDisplayKeys)
    keys

window.Ubret.BaseTool = BaseTool