add synchronization logic