Separated the event interface and cause class

Two separate files.