Event refactor

Just a thought...

(note: this depends on #145)
Could this work without the ".get()" bit? Not a big deal, just curious, it'd be a bit neater...