factor some cstruct tools out
gcm.

because