     if @options.parentMode
       @options.parentMode.launchSubMode mode, options
     else
-      new mode extend options, initialRangeOnLaunch: @initialRangeOnLaunch
+      new mode options
 
   # Return the character following (to the right of) the focus, and leave the selection unchanged.  Returns
   # undefined if there is no such character.


  exit: (event, target) ->
    super event, target

    unless @options.parentMode
      # When the user exits via Escape, we reinstall the pre-launch selection (or, if there was none, just
      # collapse the selection to the current anchor).
      if @initialRangeOnLaunch? and event?.type == "keydown" and KeyboardUtils.isEscape event
        if @initialRangeOnLaunch == "None"
          @collapseSelectionToAnchor()
        else
          @setSelectionRange @initialRangeOnLaunch unless @initialRangeOnLaunch == "None"

  # Yank the selection; always exits; either deletes the selection or collapses it; set @yankedText and
  # returns it.

      @runMovementKeyChar @options.immediateMovement, @getCountPrefix()
      return

    # This is the main keyboard-event handler for movements and commands.
    @push
      _name: "#{@id}/keypress"
