 					logger.log url:url, filePath: filePath, "piping into filestream"
 
 				urlStream.pipe(fileStream)
-				urlStream.resume()
+				urlStream.resume() # now we are ready to handle the data
 			else
 				logger.error statusCode: res.statusCode, url:url, filePath: filePath, "unexpected status code downloading url to cache"
 				# https://nodejs.org/api/http.html#http_class_http_clientrequest

			if res.statusCode >= 200 and res.statusCode < 300
				fileStream = fs.createWriteStream(filePath)

				fileStream.on 'error', (error) ->
					logger.error err: error, url:url, filePath: filePath, "error writing file into cache"
					fs.unlink filePath, (err) ->


		logger.log url:url, filePath: filePath, "started downloading url to cache"
		urlStream = request.get({url: url, timeout: oneMinute})
		urlStream.pause() # stop data flowing until we are ready

		# attach handlers before setting up pipes
		urlStream.on "error", (error) ->
			logger.error err: error, url:url, filePath: filePath, "error downloading url"
			callbackOnce(error or new Error("Something went wrong downloading the URL #{url}"))
