gcm lib