add event interface for states.