 (defun snails-update-callback (backend-name input-ticker candidates)
   (when (and (equal input-ticker snails-input-ticker)
              candidates)
-    (let* ((backend-names (mapcar (lambda (b) (eval (cdr (assoc "name" (eval b))))) snails-backends))
+    (let* ((backend-names (snails-get-backend-names))
            (backend-index (cl-position backend-name backend-names)))
       (when backend-index
         (setq snails-candiate-list (snails-update-list-by-index snails-candiate-list backend-index candidates))

        (setq snails-candiate-list-update-p t)
        ))))

(defun snails-render-bufer ()
  (with-current-buffer snails-content-buffer
    (erase-buffer)

    (let ((candiate-index 0)
          (backend-names (mapcar (lambda (b) (eval (cdr (assoc "name" (eval b))))) snails-backends)))
      (dolist (candiate-list snails-candiate-list)
        (when candiate-list
          (insert (propertize
                   (format "%s\n" (nth candiate-index backend-names))
                   'face 'snails-face-backend-name))
          (dolist (candiate candiate-list)
            (insert (format " %s\n" (string-trim-left (car candiate)))))
          (insert "\n"))
        (setq candiate-index (+ candiate-index 1)))


(defcustom snails-mode-hook '()
  "snails mode hook."
  :type 'hook
  :group 'snails)

(defvar snails-mode-map
