Register events via the boot method

This ensures that we only register 3 events per class as opposed to registering an 3 events for every instance of the class.

In the original code registerEvents was called in the constructor and resulted in multiple events being registered and being called during the firing of the event.