Refactored event classes