internal synchronization