                 complete(error, data)
             })
         }
-        download(s3Bucket: s3Bucket, s3Key: s3Key, completionHandler: completionHandler)
+		self.transfer.downloadData(fromBucket: s3Bucket, key: s3Key, expression: nil, completionHandler: completionHandler)
     } 
     /**
     * Download File.  This works for binary and text files. This method does not use

                complete(error, datastring)
            })
        }
        download(s3Bucket: s3Bucket, s3Key: s3Key, completionHandler: completionHandler)
    }
    /**
    * Download Binary object to Data, receiving code might need to convert it needed form

                        print("SUCCESS in s3.downloadFile \(s3Bucket) \(s3Key)")
                        complete(nil)
                    } catch let cotError {
                        print("Error in s3.downloadFile \(s3Bucket) \(s3Key) \(cotError)")
                        complete(cotError) // pass error here, if I knew how to catch or create one.
                    }
                }
            })
        }
        self.transfer.downloadData(fromBucket: s3Bucket, key: s3Key, expression: nil, completionHandler: completionHandler)
        //.continueWith has been dropped, because it did not report errors
    }   
    /**
    * Download zip file and unzip it.  Like Download File this does not use 
    * TransferUtility.fileDownload because its error reporting is poor.
    */
    func downloadZipFile(s3Bucket: String, s3Key: String, filePath: URL,
                         complete: @escaping (_ error:Error?) -> Void) {                   
        let completionHandler: AWSS3TransferUtilityDownloadCompletionHandlerBlock = {(task, url, data, error) -> Void in
            DispatchQueue.main.async(execute: {
                if let err = error {
