try to add multithreading