added gcm lib