                              res
                            (concat (number-to-string cnt) res)))))))
 
-(defun emc-find-region (pos)
-  "Find the region that ends or starts with POS according to its direction."
-  (catch 'emc-region-found
-    (dolist (region emc-region-list)
-      (let ((mark (emc-get-region-mark region))
-            (point (emc-get-region-point region))
-            (dir (emc-get-region-direction region))
-            (start (overlay-start region))
-            (end (overlay-end region)))
-        (when (or (and (eq dir 1) (eq end (1+ pos)))   ;; TODO abstract out the 1+ for the region end
-                  (and (eq dir -1) (eq start pos)))
-          (throw 'emc-region-found region))))))
+;; (defun emc-find-region (pos)
+;;   "Find the region that ends or starts with POS according to its direction."
+;;   (catch 'emc-region-found
+;;     (dolist (region emc-region-list)
+;;       (let ((mark (emc-get-region-mark region))
+;;             (point (emc-get-region-point region))
+;;             (dir (emc-get-region-direction region))
+;;             (start (overlay-start region))
+;;             (end (overlay-end region)))
+;;         (when (or (and (eq dir 1) (eq end (1+ pos)))   ;; TODO abstract out the 1+ for the region end
+;;                   (and (eq dir -1) (eq start pos)))
+;;           (throw 'emc-region-found region))))))
 
 ;; (defun emc-refresh-region (region orig)
 ;;   "Refresh the visual REGION when point moved from ORIG to current location."

  "Remove all overlays."
  (interactive)
  (remove-overlays)
  (setq emc-cursor-list nil)
  (setq emc-region-list nil))

(defun emc-get-region-mark (region)
  "Return the REGION's mark."

  "Creates cursors for all matches of PATTERN."
  (let ((orig (point)))
    (while (emc-goto-next-match pattern 'forward)
      (emc-draw-cursor-at-point))
    (goto-char orig)))

(defun emc-remove-cursors (pattern)
