refactoring downloader
refactoring downloader