   
   direct_message = false
 
-  pos = (x: canvas.width/2, y: canvas.height/2 +
-              collections.length * default_node_radius * 4)
+  pos = nextPos()
 
   if str[0] == ':'
     # making a CodeListCollection for letter->code pairs

collections = []
shapes = ['circle','square','hex']
next_shape = 0

# keyboard input
pendingString = ''

engage = (str) ->

    ctx.fillText(@value, 0, 0)
    ctx.restore()
 
    if @child0?
      @child0.render(ctx)
    if @child1?
      @child1.render(ctx)

  forAll: (fn) ->
    if @child0?
      @child0.forAll(fn)
    if @child1?
      @child1.forAll(fn)
    fn(this)

  tryAll: (fn) ->
    if @child0
      result = @child0.tryAll(fn)
      if result?
        return result

    if @child1
      result = @child1.tryAll(fn)
      if result?
        return result

    fn(this)

