update asynchronous logic