    (list
     (make-danny--framed-ivy-source :prompt (format "Action on (%s): " (f-filename fpath))
                                    :collection (lambda (str pred v)
-                                                 '("Open"
-                                                   "Move"))
+                                                 (-concat (list "Open"
+                                                                "Move...")
+                                                          (-map
+                                                           (lambda (item)
+                                                             (format "Move to %s" item))
+                                                           (danny--last-destinations))))
                                    :action (lambda (item)
                                              (cond ((equal item "Open")
                                                     (unless (f-exists-p fpath)
                                                       (error "File not found: %s" fpath))
                                                     (find-file fpath))
-                                                   ((equal item "Move")
+                                                   ((equal item "Move...")
                                                     (danny--handle-file-created fpath))))
                                    :unwind (lambda ()
                                              (delete-frame)

                                                                                              (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))))))


                                                                                         (1- index))
                                                                                :initial-input ivy-text))))
    (with-current-buffer (get-buffer-create "*danny*")
      (let* ((collection (funcall (danny--framed-ivy-source-collection source)
                                              nil nil nil))
             (lines-count (+ (length (s-split "\n" (danny--framed-ivy-source-prompt source)))
                             (length collection)))
             (frame (make-frame
                     (-concat danny--base-frame-params
                              (list (cons 'height (min (+ 2 lines-count)
                                                       25))
                                    ;; Calculate a sensible width, based on longest path or prompt.
                                    (cons 'width (max (+ 10 (length (danny--framed-ivy-source-prompt source)))
                                                      (+ 10 (danny--longest-line-length collection)))))))))
        (x-focus-frame frame)
        (ivy-read (danny--framed-ivy-source-prompt source)
                  collection
                  :require-match t
                  :update-fn (lambda ()
                               ;; Forcing redisplay works around "Open" source not shown
