added John's gcd kernel
won't compile yet