support multiprocessing
update the code