Some changes

Hi!
I made some changes in your code:
- multi-thread downloading
- tests

It works. I tested)
Merge?