Move from compiler pass pattern to event dispatcher