more work
more work
more work
some refactoring to replaying events