refactoring the event chan out for simplicity