     if !!value
       @set(key,value.id)
 
-    filterIds = @get(key)
+    filterId = @get(key)
 
-    if !!filterIds
+    if !!filterId
       key = @get('filters')[key]
-      filter = @store.find(key,filterIds)
+      @get(key).then (filters) =>
+        filters.findBy('id',filterId)
 
-    filter
+  _allSelected: (filterParam) ->
+    @_allFilters(filterParam).isEvery('isFiltering')
 
-  _selectAll: (filterName, filters) ->
+  _allFilters: (filterName) ->
+    @get(@get('multiFilters')[filterName])
+
+  _selectMultiple: (filterName, filters) ->
+    @_allFilters(filterName).setEach('isFiltering',false)
     filters.setEach('isFiltering',true)
     @set("#{filterName}Selected",filters)
     return

    return

  actions:
    select: (filterName, filters) ->
      if Ember.isArray(filters)
        @_selectAll(filterName, filters)
      else
        @_select(filterName, filters)
)

    filterParam = @get(multiFilter)

    if !!filterParam
      @_allFilters(multiFilter).then((multiFilters) =>
        filterParams = if Ember.isArray(filterParam) then filterParam else filterParam.split(',')
        filterParams.forEach (fp) =>
          multiFilterSelected.pushObject(multiFilters.findBy('id',fp))
      ).finally =>
        @removeObserver(multiFilter)
        @set("all#{filterParam.capitalize()}Selected",@_allSelected(filterParam))
        @set("#{multiFilter}Selected",multiFilterSelected)

  multiFilterSelectedObserver: (sender,key) ->
    filterParam = key.replace('Selected.@each','')
    filterSelected = @get(key.replace('.@each',''))

    @set("all#{filterParam.capitalize()}Selected",@_allSelected(filterParam))

    if !!filterSelected
      filterSelected.setEach('isFiltering',true)
