   (interactive)
   (danny-stop-monitoring)
   (setq danny--history-hash (danny--read-history-hashtable danny--history-path))
-  (cl-assert danny-monitor-path nil "`danny-monitor-path' must be set")
-  (setq danny--notify-descriptor (file-notify-add-watch danny-monitor-path
+  (cl-assert danny-monitor-dir-path nil "`danny-monitor-dir-path' must be set")
+  (setq danny--notify-descriptor (file-notify-add-watch danny-monitor-dir-path
                                                         '(change attribute-change)
                                                         'danny--notify-callback)))
 

          lines)
    longest))

(defun danny--write-history-hashtable (path hashtable)
  "Write history HASHTABLE in PATH."
  (with-temp-buffer
    (prin1 hashtable (current-buffer))
    (write-file path nil)))

(defun danny--read-history-hashtable (path)
  "Read history hash in PATH."
  (if (not (f-exists? path))
      (ht-create)
    (with-temp-buffer
      (insert-file-contents path)
      (read (current-buffer)))))

(defun danny--last-destinations ()
  "Return a list of recent destinations."
  (ht-get danny--history-hash "last-destinations" '()))

(defun danny--add-destination-dir (dir)
  "Return a recent DIR to history.."
  (ht-set danny--history-hash
          "last-destinations"
          (-distinct (-concat (ht-get danny--history-hash
                                      "last-destinations" '()) (list dir))))
  (danny--write-history-hashtable danny--history-path danny--history-hash)
  danny--history-hash)


(require 'ht)
(require 'ivy)

(defvar danny-monitor-dir-path nil "Directory path to monitor.")

(defvar danny--notify-descriptor nil "File notify descriptor.")

(defvar danny--history-hash (ht) "History hashtable.")

(defvar danny--destination-root "~/Downloads/Targets")

