rewriting downloader, not complete