Implemented (most of) Event class