Event refactor

Just a thought...

(note: this depends on #145)
Ah, I see it now, yes. ```Event``` could have ```Base``` as a friend... :wink: 

This is fine, as I said, as long as it works.