different order for events to put output at end