       lastIndex = clickedTokenIndex unless additive
 
     # remove clicked chunk and hovered chunk
-    this.removeChunkWithIndex(this.selectedTokenIndex)
+    this.removeChunkWithIndex(this.selectedTokenIndex, false)
     unless this.tokensBelongToSameChunk(firstIndex, lastIndex)
-      this.removeChunkWithIndex(firstIndex) if clickedTokenIndex < hoveredTokenIndex
-      this.removeChunkWithIndex(lastIndex) if clickedTokenIndex > hoveredTokenIndex
+      this.removeChunkWithIndex(firstIndex, false) if clickedTokenIndex < hoveredTokenIndex
+      this.removeChunkWithIndex(lastIndex, false) if clickedTokenIndex > hoveredTokenIndex
 
     # build chunk from start to end
     this.addNewToken(this.tokens[firstIndex].$token, firstIndex)


    this.selectedTokenIndex = siblingIndex if this.selectedTokenIndex == indexToRemove

  removeChunkWithIndex: (tokenIndex) ->
    mostOuterTokenIndex = this.getMostOuterTokenIndexFromChunk(tokenIndex, 'left')
    this.removeChunkWithStartIndex(mostOuterTokenIndex)

  removeChunkWithStartIndex: (mostLeftOuterTokenIndex) ->
    modifier = (token, selected) ->
      token.$token.removeClass('PER COM left-end right-end selected')
      token.$token.data('token-id', -1)

    this.tokenIterator(tokenIndex, modifier, selected)

  changeTokenKind: (kind) ->
    this.lastUsedLabel = kind
    return if this.selectedTokenIndex < 0

    modifier = (token, kind) ->
