Updated to fire immediately if there are no events to listen for