code: function Lob(keys){
    if (!keys) return
    this.name = 'lob'
    this.keys = keys
  
    this.initialize = function() {
      this.client = require('lob')(this.keys.api_key);
    }
  
    // Currently only supporting sending letters
    // See https://lob.com/docs/node#letters_create for details
    this.send = function(data, callback) {
      var context = this;
  
      var sendingData = {
        // Required fields
        to: data.to,
        from: data.from,
        file: data.file,
        color: data.color || false // Default to no color mail
      };
  
      // Optional fields
      if (typeof data.description != 'undefined') sendingData.description = data.description;
      if (typeof data.variables != 'undefined') sendingData.data = data.variables;
      if (typeof data.extra_service != 'undefined') sendingData.extra_service = data.extra_service;
      if (typeof data.double_sided != 'undefined') sendingData.double_sided = data.double_sided;
      if (typeof data.template != 'undefined') sendingData.template = data.template;
      if (typeof data.metadata != 'undefined') sendingData.metadata = data.metadata;
  
      this.client.letters.create(sendingData, function (err, result) {
  
        var lobStat;
        if (err) {
  
          lobStat = new LobErrorStatus(err);
          debug("-_-_ FAILED with lob _-_-");
          debug(lobStat);
          return callback(lobStat);
  
        } else {
  
          lobStat = new LobSuccessStatus(result);
          debug("-_-_ sent with lob _-_-");
          result.service = context;
          result.status = lobStat;
          debug(result);
          return callback(null, result);
        }
      })
    }
  
    this.initialize()
  }
docs: /*=============================================================================
  
  Define Lob Service Provider
  
  =============================================================================