Detection uses ! to indicate triggering event (same as in BA)