implemented event.await()