       handle_any_object
     ]
 
-    output = ($target) ->
-      (output) ->
-        $target.removeClass 'clean'
-        $item = $ '<div class="item"/>'
-        if output?
-          $item.append output
-        $target.append $item
-        $item
 
     run_context = _.extend {}, extra_contexts...,
+      $el: $el
       current_options: {}
-      output: output $el
+      renderables: []
       active_context: ->
         console.warn 'no active running context. did you call an async function without keeping the context?' unless running_context_binding?
         run_context.current_context

        @nested_item $item, fn, args...

      nested_item: ($item, fn, args...) ->
        @output $item

        nested_context = _.extend {}, run_context,
          output: output $item
        run_context.in_context nested_context, fn, args

      handle_exception: (e, compiled) ->

        ->
          restoring_context fn, arguments

      add_renderable: (renderable) ->
        run_context.current_context.renderables.push renderable

      output: (output) ->
        $item = $ '<div class="item"/>'
        if output?
          $item.append output
        run_context.add_renderable _lead_render: -> $item
        $item

      render: (o) ->
        @nested 'renderable', handle_renderable, o
        # TODO warn if not renderable
