Refactor to avoid modifying event

Based on the arity of a given child function, the child will either
receive the current event, or the previous event *and* the current
event.