implement parallel download