events return the new state