SingleEvent before & after scopes (with tests)
Refactor factories