added vector gcd