moved somethings around. added error handling to HttpDownloadClient