chat is now asynchronous