added private gcd normalize functions