initial attempt at event handling.

// @sindresorhus @CWSpear 
Yes, I was thinking the same at first... it is indeed the ideal syntax but my only concern is that a callback is so limiting...

Well, just saw that you have committed the changes, good enough :) if in the future we really feel the need for something more powerful than a simple callback we can always revisit this.