much easier way to integrate events, I think