I did think of that. There is actually quite a bit of code duplication apart from this in the revent and threaded downloader, especially in the area of requests utilities and they can all be moved to a common util.py. I think it's better to bite that bullet separately. Don't want to make too many changes in the version going in the jinxed 2.2 build :).