add multithread download support