all basic functions minus gcd