 
   @collection: (ast, model, controller) ->
     collection = get(model, ast.arguments[0])
+    new Dynamic(ast, collection, model, controller)
+
+  @in: (ast, model, controller) ->
+    collection = new Serenade.Collection([])
+    update = ->
+      subModel = get(model, ast.arguments[0])
+      if subModel
+        collection.update([subModel])
+      else
+        collection.update([])
+    update()
+    model.bind? "change:#{ast.arguments[0]}", update
     new Dynamic(ast, collection, model, controller)
 
   constructor: (@ast, @collection, @model, @controller) ->

          when "view" then new Node.view(ast, model, controller)
          when "collection" then new Dynamic.collection(ast, model, controller)
          when "if" then new If(ast, model, controller)
          when "in" then new In(ast, model, controller)
          else new Node.helper(ast, model, controller)
      else throw SyntaxError "unknown type '#{ast.type}'"


    else
      @anchor

Nodes =
  compile: (ast, model, controller) ->
    switch ast.type
