 (require 'ivy)
 
 (defvar danny-monitor-dir-path nil "Directory path to monitor.")
+
+(cl-defstruct
+    danny-destination-root
+  name
+  dpath
+  recursive)
 
 (defvar danny-destination-roots
   (list (make-danny-destination-root :name "Documents"

                                                    (danny--handle-file-created fpath))))
                                   :unwind (lambda ()
                                             (delete-frame)
                                             (other-window 1))))))

(defun danny--handle-file-created (file-path)

  (with-current-buffer (get-buffer-create "*danny*")
    (let* ((unwind (lambda ()
                     (delete-frame)
                     (kill-buffer "*danny*")
                     (other-window 1))))
      (danny--framed-ivy-read (-concat (list
                                        (make-danny--framed-ivy-source :prompt (format "Save in Recent (%s): " (f-filename file-path))
