handling messages from GCM