     (let* ((unwind (lambda ()
                      (delete-frame)
                      (other-window 1))))
-      (danny--framed-ivy-read (list
-                               (make-danny--framed-ivy-source :prompt (format "Open? (%s) " (f-filename file-path))
-                                                              :action (danny--create-open-action-fun file-path)
-                                                              :collection (lambda (str pred v)
-                                                                            '())
-                                                              :unwind unwind)
-                               (make-danny--framed-ivy-source :prompt (format "Save in Recent (%s): " (f-filename file-path))
-                                                              :action (danny--create-move-action-fun file-path)
-                                                              :collection (lambda (str pred v)
-                                                                            (danny--last-destinations))
-                                                              :unwind unwind)
-                               (make-danny--framed-ivy-source :prompt (format "Save in Downloads (%s): " (f-filename file-path))
-                                                              :action (danny--create-move-action-fun file-path)
-                                                              :collection (lambda (str pred v)
-                                                                            (f-directories danny--destination-root))
-                                                              :unwind unwind))))))
+      (danny--framed-ivy-read (-concat (list
+                                        (make-danny--framed-ivy-source :prompt (format "Open? (%s) " (f-filename file-path))
+                                                                       :action (danny--create-open-action-fun file-path)
+                                                                       :collection (lambda (str pred v)
+                                                                                     '())
+                                                                       :unwind unwind)
+                                        (make-danny--framed-ivy-source :prompt (format "Save in Recent (%s): " (f-filename file-path))
+                                                                       :action (danny--create-move-action-fun file-path)
+                                                                       :collection (lambda (str pred v)
+                                                                                     (danny--last-destinations))
+                                                                       :unwind unwind))
+                                       (-map (lambda (root)
+                                               (make-danny--framed-ivy-source :prompt (format "Save in \"%s\" (%s): "
+                                                                                              (danny-destination-root-name root)
+                                                                                              (f-filename file-path))
+                                                                              :action (danny--create-move-action-fun file-path)
+                                                                              :collection (lambda (str pred v)
+                                                                                            (f-directories (danny-destination-root-dpath root)
+                                                                                                           nil
+                                                                                                           (danny-destination-root-recursive root)))
+                                                                              :unwind unwind))
+                                             danny-destination-roots))))))
 
 (cl-defstruct
     danny--framed-ivy-source

(defun danny--create-move-action-fun (src-fpath)
  (lambda (dst-dpath)
    (let ((dst-fpath (f-join dst-dpath
                            (danny--read-string (format "Save as (%s): " (f-filename src-fpath))
                                                (f-filename src-fpath)
                                                20))))
      (when (equal src-fpath dst-fpath)
        (error "Moving to same location"))
      (if (f-exists-p dst-fpath)

                                                   (danny--longest-line-length (funcall (danny--framed-ivy-source-collection source)
                                                                                        nil nil nil)))
                                              (1+ (length (danny--framed-ivy-source-prompt source)))))))))
        (x-focus-frame frame)
        (ivy-read (danny--framed-ivy-source-prompt source)
                  (danny--framed-ivy-source-collection source)
                  :update-fn (lambda ()
