It would be worth looking into using an EventEmitter or some sort to bind events using `.on()` and triggered via `emit()` or a similar way of doing so rather than creating a triad method which increases complexity and limits flexibility.