refactored download data task