get rid of internal enum in favor of proper delegates
event can be translated to a list of events