Many changes and details before uploading Gcm api to hackage.