ensure execution order in events, slightly bulkier structure