implement all gcm parameters