add multithreaded copy