cleaned up synchronization to avoid operation overlap