add concurrent control