why do you need to copy `v1` and `v2`