http://coding.smashingmagazine.com/2013/11/12/an-introduction-to-dom-events/