Gcm

merging gcm code