 
   initialize: (range, @editorView) ->
     @editor = @editorView.getEditor()
+    @misspellingValid = true
+
     range = @editor.screenRangeForBufferRange(Range.fromObject(range))
     @startPosition = range.start
     @endPosition = range.end
-    @misspellingValid = true
 
-    @marker = @editor.markScreenRange(range, invalidation: 'inside', replicate: false)
-    @marker.on 'changed', ({newHeadScreenPosition, newTailScreenPosition, isValid}) =>
-      @startPosition = newTailScreenPosition
-      @endPosition = newHeadScreenPosition
-      @updateDisplayPosition = isValid
-      @misspellingValid = isValid
-      @hide() unless isValid
+    @createMarker()
 
     @subscribe @editorView, 'spell-check:display-updated', =>
       @updatePosition() if @updateDisplayPosition


    @updatePosition()

  getScreenRange: ->
    new Range(@startPosition, @endPosition)

  getCorrections: ->
    screenRange = @getScreenRange()
    misspelling = @editor.getTextInRange(@editor.bufferRangeForScreenRange(screenRange))
    {SpellChecker} = require 'spellchecker'
    corrections = SpellChecker.getCorrectionsForMisspelling(misspelling)

  beforeRemove: ->


  destroy: ->
    @misspellingValid = false
    @correctionsView?.remove()
    @remove()
