added gcd module