modify the state