add framework for the generic eventing utility
clean up channel3 references and add in test stub
fill in the rest of the event logic
starting to work channel back in