     char = @editor.getSelectedText()[0]
     @vimState.hover.set(char, @vimState.getOriginalCursorPosition())
 
-  subscribeForInput: ->
+  initialize: ->
     if @hasTarget()
       @onDidFailSelectTarget(@abort.bind(this))
     else
       @onDidFailSelectTarget(@cancelOperation.bind(this))
       @focusInputForDeleteSurround()
+    super
 
     @onDidSelectTarget =>
       @showDeleteCharOnHover()

  requireTarget: true
  supportEarlySelect: true # Experimental

  initialize: ->
    @subscribeForInput()
    super

  focusInputForSurround: ->
    inputUI = @newInputUI()
    inputUI.onDidConfirm(@onConfirmSurround.bind(this))

  @extend()
  @description: "Surround target by specified character like `(`, `[`, `\"`"

  initialize: ->
    @onDidSelectTarget(@focusInputForSurround.bind(this))
    super

  getNewText: (text) ->
    @surround(text, @input)
