Provide a more flexible Event class