added gcm
refactored gcm
Merge pull request #19 from CalvinFernandez/gcm_retry

Gcm retry