split events and methods out