Won't `NewState` be unsafe here? It looks wrong to return this here, since there are paths which won't set `NewState` at all and then there is no concept of a `NewState`.