starting imlementation of gcm