code: function Parse(keys){
    if (!keys) return
    this.name = "parse"
    this.keys = keys
  
    this.initialize = function() {
      Parse = require('node-parse-api').Parse;
      var options = {
          app_id: this.keys.app_id,
          api_key: this.keys.api_key
      }
      debug("initing parse client", options)
      this.client = new Parse(options);
    }
  
    this.send = function(data, callback) {
      var context = this;
      var parseStat;
  
      // TODO: should query to make sure installation hasn't been created yet
      context.client.insertInstallationData(data.deviceType, data.deviceToken, function(err, result){
  
        if (err) {
          parseStat = new ParseErrorStatus(err);
          debug("-_-_ FAILED with parse _-_-");
          debug("insertInstallationData err", err);
          debug(parseStat);
          return callback(parseStat);
  
        } else { debug("insertInstallationData result", result); }
  
        var notification = {
          where : {
             "deviceToken": { 
                "$in": [ data.deviceToken ] 
              }
          },
          data: {
            alert: data.message
          }
        };
  
        context.client.sendPush(notification, function(err, result){
          
          if (err) {
            parseStat = new ParseErrorStatus(err);
            debug("-_-_ FAILED with parse _-_-");
            debug(err);
            debug(parseStat);
            return callback(parseStat);
  
          } else {
            parseStat = new ParseSuccessStatus(result);
            debug("-_-_ sent with parse _-_-");
            result.service = context;
            result.status = parseStat;
            debug(result);
            return callback(null, result);
          }
        });
      });
    }
  
    this.initialize()
  }
docs: /*=============================================================================
  
  Define Parse Service Provider
  
  =============================================================================