simplify events code, better footprint, speedup removal 2x