       @vimState.syncSelectionsReversedState @getTail()
     else
       @getHead().destroy()
-    @setHead @getHead()
+    @updateProperties {head: @getHead()}
 
 class BlockwiseMoveUp extends BlockwiseMoveDown
   @extend()

  @extend()
  delegateTo: 'DeleteToLastCharacterOfLine'
  execute: ->
    for s in @editor.getSelections()
      start = s.getBufferRange().start
      s.cursor.setBufferPosition(start)
    @vimState.activate('normal')
    @new(@delegateTo).execute()

    if @isReversed() then @getTop() else @getBottom()

  getTail: ->
    _.detect @editor.getSelections(), (s) -> swrap(s).isBlockwiseTail()

  initialize: ->
    # PlantTail
    unless @getTail()?
      @updateProperties {tail: @getTop(), head: @getBottom()}

class BlockwiseOtherEnd extends VisualBlockwise
  @extend()
  execute: ->
    unless @isSingleLine()
      @updateProperties {tail: @getHead(), head: @getTail()}
    @vimState.reverseSelections()

class BlockwiseMoveDown extends VisualBlockwise
