I must admit, I don't understand what you're doing exactly either...

How is your code different from:

  def mode2(&blk)
    mode(&blk)
  end

Or for that matter, how is:

  mode2 do
    # stuff
  end

different from:

  mode do
    #stuff
  end

- Dan