initial attempt at event handling.

// @sindresorhus @CWSpear 
I have an idea in mind for an implementation that won't require any breaking changes. I will share more Monday!