refactor and easy to do downloader..