first implementation of asynchronous synchronization