 
 class Hover
   constructor: (@vimState, text='') ->
-    @emitter = new Emitter()
     @view = atom.views.getView(this)
     @set text
 
-  onDidSet: (callback) -> @emitter.on 'did-set', callback
-  onDidAdd: (callback) -> @emitter.on 'did-add', callback
-  onDidReset: (callback) -> @emitter.on 'did-reset', callback
-  onDidDestroy: (callback) -> @emitter.on 'did-destroy', callback
-
-  set: (text) -> @emitter.emit 'did-set', text
-  add: (text) -> @emitter.emit 'did-add', text
-  reset: -> @emitter.emit 'did-reset'
+  set: (text) ->
+    @view.textContent = text
+    @view.show()
+
+  add: (text) ->
+    @view.textContent += text
+    @view.show()
+
+  reset: -> @view.reset()
+
   destroy: ->
     @vimState = null
-    @emitter.emit 'did-destroy'
+    @view.destroy()
 
 class HoverElement extends HTMLElement
   createdCallback: ->

      type: 'overlay'
      item: this

  set: (@textContent) ->
    @show()

  add: (text) ->
    @textContent += text

  reset: ->
    @set ''
    @marker?.destroy()

  destroy: ->

module.exports = {
  ViewModel
  SearchViewModel
  Hover, HoverElement
  VimNormalModeInputElement
}
