Part 3 : Coroutines and Event Dispatching