             guard willDeletedString != nil && willDeletedString!.containsString("\n") else { return }
             guard prevCursorY != nil else { return }
             
-            deleteListPrefixWithY(prevCursorY!, cursorPoint: cursorPoint)
+            deleteListPrefixWithY(prevCursorY!, cursorPoint: currentCursorPoint!)
             
             willDeletedString = nil
         }
+        
+        print("textViewDidChange")
     }
     
     public func textViewDidChangeSelection(textView: UITextView) {
         let cursorPoint = CKTextUtil.cursorPointInTextView(textView)
         changeCurrentCursorPointIfNeeded(cursorPoint)
-    }
-    
-    func deleteListPrefixWithY(y: CGFloat, cursorPoint: CGPoint)
-    {
-        if let item = listPrefixContainerMap[y] {
-        
-            item.label.removeFromSuperview()
-            
-            if let index = self.textContainer.exclusionPaths.indexOf(item.bezierPath)
-            {
-                self.textContainer.exclusionPaths.removeAtIndex(index)
-            }
-            
-            for (index, value) in item.keyYSet.enumerate() {
-                listPrefixContainerMap.removeValueForKey(value)
-            }
-            
-            // reload
-            changeCurrentCursorPointIfNeeded(cursorPoint)
-        }
+        
+        print("textViewDidChangeSelection")
     }
     
     // MARK: Copy & Paste

    var willChangeText: Bool = false
    var willDeletedString: String?
    
    var listPrefixContainerMap: Dictionary<CGFloat, NumberedListItem> = [:]

    override init(frame: CGRect, textContainer: NSTextContainer?) {

        
        willChangeText = true
        
        print("shouldChangeTextInRange")
        
        return true
    }

    public func textViewDidChange(textView: UITextView)
    {
        guard currentCursorPoint != nil else { return }
        
        willChangeText = false
        
        let cursorLocation = textView.selectedRange.location
        
//        print("----------- Status Log -----------")
//        print("cursor location: \(cursorLocation)")
