improve Event class