New DownloadSingle function, with error checking and documentation