First PR to get rid of this Async thing I don't like.
An attempt at making this use the EventEmitter pattern.
Nicen event names
Merge pull request #2 from ryanpeterson/event_emitter

Event emitter