in this function, yes, but we were hoping to not have to spread around the "figure out what events to emit" logic in all of these functions