added interfaces for events