       isSelected: node$ no
 
     apply$ _isLive, self.isSelected, (isLive, isSelected) ->
-      _.modelSelectionChanged isSelected, _predicate, model if isLive
+      _.modelSelectionChanged isSelected, _predicate(), model if isLive
     self
 
   displayModels = (models) ->
     _items items = map models, createItem
-    activateItem head items unless isEmpty items
+    if isEmpty items
+      _.displayEmpty()
+    else
+      activateItem head items
 
-  _predicate = null
-  loadModels = (predicate) ->
+  apply$ _predicate, (predicate) ->
     console.assert isDefined predicate
-    _predicate = predicate
     switch predicate.type
       when 'all'
         _.requestModels (error, data) ->

    _isLive yes

  items: _items
  template: 'model-list-view'


            displayModels (head data.frames).compatible_models
    return

  clearPredicate = -> _predicate type: 'all'

  link$ _.loadModels, _predicate
  link$ _.deselectAllModels, ->
    #TODO ugly
    _isLive no
