restructure events