     atom.commands.dispatch(@editorElement, 'vim-mode-plus-ex-mode:open')
 
   initialize: ->
-    @vimState.onDidSelectListConfirm (item) =>
-      @input = item.name
-      @vimState.operationStack.process()
-
     @onDidSetTarget =>
       @focusSelectList(@selectListItems)
 
-  getNewText: (text) ->
-    operationName = @input
-    if operationName
-      operation = @new operationName
-      operation.getNewText(text)
-    else
-      text
+    @vimState.onDidSelectListConfirm (item) =>
+      transformer = item.name
+      if transformer
+        # FIXME cleanup require, implement operationStack::replace()?
+        @vimState.reset()
+        @vimState.operationStack.run(transformer, {target: @target.constructor.name})
+
+  execute: ->
+    # NEVER be executed
 
 class TransformWordBySelectList extends TransformStringBySelectList
   @extend()

    "ToggleCase"
    "EncodeUriComponent"
    "DecodeUriComponent"
  ]

  focusSelectList: (items) ->

  target: "InnerSmartWord"

# -------------------------
class TransformStringBySelectList extends Operator
  @extend()
  requireInput: true
  requireTarget: true
