add struct GCD