synchronization logic