created deep copy of old state in turn()