docs: function Response(json) {
  		// PRIVATE MEMBERS //
  
  		var checkBounds = function (idx) {
  			// Ensures that an index is within the number of candidates
  			if (idx >= json.length || idx < 0) {
  				if (json.length == 0)
  					throw new Error("Candidate index is out of bounds (no candidates returned; requested " + idx + ")");
  				else
  					throw new Error("Candidate index is out of bounds (" + json.length + " candidates; indicies 0 through " +
  						(json.length - 1) + " available; requested " + idx + ")");
  			}
  		};
  
  		var maybeDefault = function (idx) {
  			// Assigns index to 0, the default value, if no value is passed in
  			return typeof idx === "undefined" ? 0 : idx;
  		};
  
  		// PUBLIC-FACING MEMBERS //
  
  		this.raw = json;
  		this.length = json.length;
  
  		this.isValid = function () {
  			return (this.length === 1 &&
  				(this.raw[0].analysis.verification_status === "Verified" ||
  					this.raw[0].analysis.verification_status === "Partial" ||
  					(typeof this.raw[0].analysis.dpv_match_code !== "undefined" && this.raw[0].analysis.dpv_match_code !== "N")));
  		};
  
  		this.isInvalid = function () {
  			return (this.length === 0 ||
  				(this.length === 1 &&
  					(this.raw[0].analysis.verification_status === "None" ||
  						this.raw[0].analysis.address_precision === "None" ||
  						this.raw[0].analysis.address_precision === "AdministrativeArea" ||
  						this.raw[0].analysis.address_precision === "Locality" ||
  						this.raw[0].analysis.address_precision === "Thoroughfare" ||
  						this.raw[0].analysis.dpv_match_code === "N" ||
  						(typeof this.raw[0].analysis.verification_status === "undefined" &&
  							typeof this.raw[0].analysis.dpv_match_code === "undefined"))));
  		};
  
  		this.isAmbiguous = function () {
  			return this.length > 1;
  		};
  
  		this.isMissingSecondary = function (idx) {
  			idx = maybeDefault(idx);
  			checkBounds(idx);
  			return (this.raw[idx].analysis.dpv_footnotes && this.raw[idx].analysis.dpv_footnotes.indexOf("N1") > -1) ||
  				(this.raw[idx].analysis.dpv_footnotes && this.raw[idx].analysis.dpv_footnotes.indexOf("R1") > -1) ||
  				(this.raw[idx].analysis.footnotes && this.raw[idx].analysis.footnotes.indexOf("H#") > -1);
  		};
  	}