Make Event generic Event<T>

add generic type for better static type checking during dev.
Merge pull request #10 from 0xor1/master

Master
Merge pull request #11 from 0xor1/dev

master