Details
I like the way the events are being distributed. But... I don't especially like the hideous constructor but mostly its because it also doesn't make sense for custom event triggering like the example in the tests.
Saying there is some event for String when its just a triggered event really called random which passes no data is a little weird.
Not exactly a priority but more like something to think about.