document the state transitions