code: function ZeroPush(keys){
    if (!keys) return
    this.name = "zeropush"
    this.keys = keys
  
    this.initialize = function() {
      this.client = new zeroPush(this.keys.server_token);
    }
  
    this.send = function(data, callback) {
      var context = this;
      var zeropushStat;
  	var deviceType = getZeroPushDeviceType(data.deviceType);
  	var notification = getNotificationObject(deviceType, data.message);
  
  	context.client.register([data.deviceToken], function(err, response) {
  
  		if (err) {
  			zeropushStat = new ZeroPushErrorStatus(err);
  			debug("-_-_ FAILED with zeropush _-_-");
              debug(zeropushStat);
              return callback(zeropushStat);
  		}
  
  		context.client.notify(deviceType, [data.deviceToken], notification, function (err, result) {
  
  	        if (err) {
  	          zeropushStat = new ZeroPushErrorStatus(err);
  	          debug("-_-_ FAILED with zeropush _-_-");
  	          debug(zeropushStat);
  	          return callback(zeropushStat);
  	        }
  	        else {
  	          zeropushStat = new ZeroPushSuccessStatus(result);
  	          debug("-_-_ sent with zeropush _-_-");
  	          result.service = context;
  	          result.status = zeropushStat;
  	          debug(result);
  	          return callback(null, result);
  	        }
  		});
      });
    }
  
    debug("zeropush initing")
    this.initialize()
  }
docs: /*=============================================================================
  
  Define ZeroPush Service Provider
  
  =============================================================================