unpack_coro must be public method so it can be called from the coroutine
added example
cleanup when client disconnects