       outSelRight = selection.clone()
 
       # console.log "~~~~~~~~~~~~~~",outSelRight,"~~~~~~~~~~~~~~",
-      #   "~~~~~~~~~~~~~~", @richText._richText.selections
+      #   "~~~~~~~~~~~~~~", @rte._rte.selections
 
       # joke here, because Insel means island in German
       inSel = @
 
       # order is important because outSelLeft == selection
       # outSelRight has to be updated first
-      outSelRight.leftPos = inSel.rightPos
-      outSelRight.rightPos = selection.rightPos
-      outSelRight.bind inSel.right, selection.right
-
-      outSelLeft.leftPos = selection.leftPos
-      outSelLeft.rightPos = inSel.leftPos
-      outSelLeft.bind selection.left, inSel.left
+      outSelRight._set("leftPos",  inSel._get("rightPos"))
+      outSelRight.rightPos = selection._get("rightPos")
+      outSelRight.bind inSel.right, selection._get("right")
+
+      outSelLeft._set("leftPos",  selection._get("leftPos"))
+      outSelLeft._set("rightPos", inSel._get("leftPos"))
+      outSelLeft.bind selection._get("left"), inSel._get("left")
 
       # Remove empty selections
       [outSelRight, inSel, outSelLeft].forEach (sel) ->

    left = @left
    right = @right

    @left = null
    @right = null

    [left, right]


# to it
#
class Word
  _get: (prop) ->
    if @hasOwnProperty(prop)
      @[prop]
    else
      @_model.val(prop)
  _set: (prop, val) ->
    if @hasOwnProperty(prop)
      @[prop] = val
    else
      @_model.val(prop, val)

  # Attribute containing the string
  @word = ''
  # Selections that have this word as left bound
