Wip incorporating events with waits.