add some multitreading