tidy up of code to decouple, and added tests to ensure integration of Event Subscribers