preparing interfaces for GCM and the server