now with events
This is one way to avoid callback hell
missing semicolons added, jslint mostly happy
Pro Tip: The semicolon lives under you pinky
when yer fingers are in the home position on
the keyboard. Sorry this isn't Python with its
tasteful and perfect use of whitespace.