code: function Inspection(schema, custom) {
  		var _stack = ['@'];
  
  		this._schema = schema;
  		this._custom = {};
  		if (custom != null) {
  			for (var key in custom) {
  				if (custom.hasOwnProperty(key)){
  					this._custom['$' + key] = custom[key];
  				}
  			}
  		}
  
  		this._getDepth = function () {
  			return _stack.length;
  		};
  
  		this._dumpStack = function () {
  			return _stack.map(function (i) {return i.replace(/^\[/g, '\u001b\u001c\u001d\u001e');})
  			.join('.').replace(/\.\u001b\u001c\u001d\u001e/g, '[');
  		};
  
  		this._deeperObject = function (name) {
  			_stack.push((/^[a-z$_][a-z0-9$_]*$/i).test(name) ? name : '["' + name + '"]');
  			return this;
  		};
  
  		this._deeperArray = function (i) {
  			_stack.push('[' + i + ']');
  			return this;
  		};
  
  		this._back = function () {
  			_stack.pop();
  			return this;
  		};
  	}
docs: Inspection class (Base class) --------------------------------------------- Use to extend Validation and Sanitization prototypes. Inspection constructor shall be called in derived class constructor.