get lexical, somehow
simplify gcd
implement "lcm"