added Event interface