add structure for catching events