step3 finished ! multithreading implemented