Changed to use an EventEmitter instead.

This ends up being much cleaner and simpler. This ended up needed version 2 since it works completely differently but I think this is the right way to go.
Instead, add the code into each test.  It really makes it easier to refactor later and delete tests.