second draft, includes trigger functions, lifetime, and rule re #4134