     keys['tab'] = 'autocomplete-plus:confirm' if completionKey.indexOf('tab') > -1
     keys['enter'] = 'autocomplete-plus:confirm' if completionKey.indexOf('enter') > -1
 
-    @addKeyboardSelectionInteraction()
-
     @keymaps = atom.keymaps.add('atom-text-editor.autocomplete-active', {'atom-text-editor.autocomplete-active': keys})
     @subscriptions.add(@keymaps)
 
   removeKeyboardInteraction: ->
-    @removeKeyboardSelectionInteraction()
     @keymaps?.dispose()
     @keymaps = null
     @subscriptions.remove(@keymaps)
-
-  updateKeyboardSelectionInteraction: ->
-    return unless @items?
-    if @items.length isnt @previousItemsLength
-      @addKeyboardSelectionInteraction()
-
-  addKeyboardSelectionInteraction: ->
-    return unless @items?
-    @removeKeyboardSelectionInteraction()
-    if @items.length > 1
-      commands = {'core:move-down': @selectNext, 'core:move-up': @selectPrevious}
-      @selectionInteractionKeymaps = atom.commands.add('atom-text-editor.autocomplete-active', commands)
-      @subscriptions.add(@selectionInteractionKeymaps)
-    @previousItemsLength = @items.length
-
-  removeKeyboardSelectionInteraction: ->
-    @selectionInteractionKeymaps?.dispose()
-    @selectionInteractionKeymaps = null
-    @subscriptions.remove(@selectionInteractionKeymaps)
 
   confirmSelection: =>
     @emitter.emit('did-confirm-selection')

    @subscriptions.add atom.commands.add 'atom-text-editor.autocomplete-active',
      'autocomplete-plus:confirm': @confirmSelection,
      'autocomplete-plus:cancel': @cancel

  addKeyboardInteraction: ->
    @removeKeyboardInteraction()

  onDidConfirm: (fn) ->
    @emitter.on('did-confirm', fn)

  selectNext: ->
    @emitter.emit('did-select-next')

  onDidSelectNext: (fn) ->
    @emitter.on('did-select-next', fn)

  selectPrevious: ->
    @emitter.emit('did-select-previous')

  onDidSelectPrevious: (fn) ->
    @emitter.on('did-select-previous', fn)
