Better way to return events to consumers