Changed the implementation of the event aggregator to be an event dispatcher to ensure that only one type of event message can be sent at a time, allowing for better tracing when errors occur. Wrote tests around the new dispatcher to make sure things were working as desired.