     initialize: ->
       super
       @setTrigger()
+      @open = @firstOpen
+      @renderEl = @firstRenderEl
 
     ##
+    # the function to open the dialog.  will be set to either @firstOpen or
+    # @openAgain depending on the state of the view
+    #
     # @api public
-    open: ->
-      @firstOpen()
-      @openAgain()
-      @open = @openAgain
+    open: null
 
     ##
     # @api public
     close: ->
       @dialog.close()
-      @$trigger?.focus()
+      @focusReturnsTo()?.focus()
 
     ##
     # @api public

      @insert()
      @render()
      @setupDialog()

    ##
    # @api private

      @$trigger?.on 'click.dialogFormView', preventDefault(@toggle)

    ##
    # the function to render the element.  it will either be firstRenderEl or
    # renderElAgain depending on the state of the view
    #
    # @api private
    renderEl: null

    firstRenderEl: =>
      @$el.html @wrapperTemplate @toJSON()
      @renderElAgain()
      # reassign: only render the outlout now
      @renderEl = @renderElAgain

    ##
    # @api private
    renderElAgain: =>
      html = @template @toJSON()
      @$el.find('.outlet').html html

