Re-implemented the event setup with specific event classes and using the new ListenerCollectionInterface for the ApplicationListener.
Added CodeClimate and test coverage badges (though coverage not yet generated)