     keys.push key for key, value of datum when not(key in @nonDisplayKeys)
     keys
 
-  _mFilter: _.memoize @_filter, @_memoizeHash
-  _mAddFields: _.memoize @_addFields, @_memoizeHash
-
 window.Ubret.BaseTool = BaseTool
        @opts.filters = @opts.filters.concat filters
      else
        @opts.filters = filters
        @trigger 'data', @preparedData() 
    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() 
    @

  fields: (fields=[], triggerEvent=true, replace=false) =>

      char.toUpperCase()

  # Private
  _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
