rewrite downloader and parser