All public methods are treated as event subscriptions. I'm using `protected` to distinguish it from methods that should be used as subscribers.