Refactor downloader and use metadata peer exchange.