     }
     
     
-    /// Move cursor backward.
-    ///
-    /// - Note: `opt↑` invokes first this method and then `moveToBeginningOfParagraph(_:)`.
-    override func moveBackward(_ sender: Any?) {
-        
-        guard self.hasMultipleInsertions else { return super.moveBackward(sender) }
-        
-        self.moveLeft(sender)
-    }
-    
-    
-    /// Move cursor to the beginning of the logical line.
-    ///
-    /// - Note: `opt↑` invokes first `moveBackward(_:)` and then this method.
-    override func moveToBeginningOfParagraph(_ sender: Any?) {
-        
-        guard self.hasMultipleInsertions else { return super.moveToBeginningOfParagraph(sender) }
-        
-        self.moveCursors(affinity: .downstream) { (self.string as NSString).lineRange(at: $0.lowerBound).lowerBound }
-    }
-    
-    
-    /// move cursor to the beginning of the logical line and modify selection (⇧opt↑).
+    /// move cursor to the beginning of the logical line and modify selection continuasly (⇧opt↑).
     override func moveParagraphBackwardAndModifySelection(_ sender: Any?) {
         
         guard self.hasMultipleInsertions else { return super.moveParagraphBackwardAndModifySelection(sender) }

    }
    
    
    /// move cursor up and modify selection (⇧↑).
    override func moveUpAndModifySelection(_ sender: Any?) {
        
        guard self.hasMultipleInsertions else { return super.moveUpAndModifySelection(sender) }

    }
    
    
    /// move cursor down and modify selection (⇧↓ / ^⇧N).
    override func moveDownAndModifySelection(_ sender: Any?) {
        
        guard self.hasMultipleInsertions else { return super.moveDownAndModifySelection(sender) }
