Created generic simple event class

TODO:
Check for null for all smart ptr parameters passed in
clean up connection event callback business