Added a simple events dispatcher to encourage event programming