       n.render(ctx)
       ctx.restore()
 
-      # TODO: render collection handle
+    ctx.save()
+    ctx.translate(default_node_radius*2, default_node_radius*(2 + 3 * idx))
+    setStyle(ctx, node_style)
+    ctx.beginPath()
+    renderShape(ctx, @shape, default_node_radius)
+    ctx.stroke()
+    ctx.restore()
 
   mousedown: (pos) ->
     for n in @nodes

    ctx.restore()

class Inner extends Node
  constructor: (@value, @child0, @child1) ->

  render: (ctx) ->
    ctx.save()

  mergeNodes: (node0, node1) ->
    # filter both out of the list
    @nodes = ( n for n in @nodes when n isnt node0 and n isnt node1 )
    newnode = new Inner(node0.value + node1.value, node0, node1, @shape)
    newnode.x = (node0.x + node1.x) / 2
    newnode.y = Math.min(node0.y, node1.y) - Math.abs(node0.x - node1.x)
    @nodes.push(newnode)
