       @getEndSelection()
     else
       @getStartSelection()
+
+  getHeadBufferPosition: ->
+    @getHeadSelection().getHeadBufferPosition()
+
+  getTailBufferPosition: ->
+    @getTailSelection().getTailBufferPosition()
 
   getBufferRowRange: ->
     startRow = @getStartSelection().getBufferRowRange()[0]

      [start, end] = [tail, head]
    end.row += 1 if end.column is 0

    unless (@isSingleLine() or @headReversedStateIsInSync())
      start.column -= 1
      end.column += 1
    {head, tail}

    @reverse() if wasReversed
    @updateGoalColumn()

  isReversed: ->
    @reversed
  reverse: ->
