v1, v2, and index