using synchorinization instead