generalize trigger