Separated iterators to own events Separate pre and post event classes Clarify meaning of result event parameter Fix tests that weren't working, and fixed problems revealed