 
     switch export {
     case .success(let export):
-      curry(show(error:for:)) <^> save(exportAt: export.outputURL).error <*> recorder
+      curry(show(error:for:))
+        <^> save(exportAt: export.outputURL, outputDirectoryURL: recorder.outputDirectoryURL).error
+        <*> recorder
     case .failure(let error):
       show(error: error, for: recorder)
     }

    })
  }

  private func save(exportAt exportURL: URL) -> Result<URL, SaveError> {
    let savePanel = NSSavePanel(
      allowedFileTypes: ["mov"],
      allowsOtherFileTypes: false,


    do {
      let _ = try fileManager.replaceItemAt(saveURL, withItemAt: exportURL)

      try? fileManager.removeItem(at: outputDirectoryURL)

      return .success(exportURL)
    } catch {
      return .failure(.cannotMove(to: saveURL))
