code: public Downloader newDownloader(URL source, Path destination, ProgressListener progressListener) {
      return new Downloader(source, destination, userAgentString, progressListener);
    }
docs: Returns a new {@link Downloader} implementation.
  
  @param source URL of file to download (remote)
  @param destination Path on local file system to save the file
  @param progressListener Progress feedback handler
  @return a {@link Downloader} instance