solution - asynchronous offer