separate async download execution from actual download