           @editor.setContents delta
 
         when "selections"
-          selectionStart = @characters.indexOf (event.object.left or event.oldValue.left)
-          selectionEnd = @characters.indexOf (event.object.right or event.oldValue.right)
+          selectionStart = (@get "characters").indexOf (event.object.left or event.oldValue.left)
+          selectionEnd = (@get "characters").indexOf (event.object.right or event.oldValue.right)
           attributes = event.object.attributes
           if event.type == "update" or event.type == "insert"
             delta = {ops: [{retain: selectionStart},

  # @param author [String] the name of the local author
  constructor: (content, editor, author) ->
    # TODO: generate a UID
    @selections = new Selections
    @characters = new Characters content, @selections

    @author = author

    @editor = editor
    # shouldn't go there because of modularity
    @editor.cursors = @editor.getModule("multi-cursor")

  _getModel: (Y, Operation) ->
    if not @_model?
      sels = @selections._getModel(Y, Operation)
      chars = @characters._getModel(Y, Operation)
      cursors = new Operation.ListManager(@).execute()

      @_model = new Operation.MapManager(@).execute()

            ]}
            @editor.setContents delta
          else if event.type == "delete"
            #FIXME: depending on how it is implemented, selections can be overriden by negating
            #their values (set them to null) or the can just be deleted, let's see then…
            console.log "Ohow… what am I supposed to do there?"
