manage async events synchronously