     @listenTo @collection, "remove", @removed
 
     @listenTo @, "render:post", @addAll
+
+  setFilter: (filter) ->
+    @filter = filter
+    # TODO: remove models that no longer match
+    # TODO: add models that are now matching
 
   getItemView: (model) ->
     return new @itemViewClass

  emptySelector: ".empty"
  existsSelector: ".exists"
  emptyToggleClass: "hide"

  initialize: (options) ->
    @views = {}

    return @listEl

  added: (model) ->
    if @filterFunc model, @filters
      view = @getItemView model
      @views[model.cid] = view
      @getListElement().append view.render().el
      @showEmpty()

  removed: (model) ->
    view = @views[model.cid]
