Add test thread, fix downloading concurrency bug, refactor
Update using download task per file, refactor
Fix factory creating