add do concurrent