docs: function Qbus (parent, proto) {
  		var self = this;
  
  		// Optional `new` keyword
  		if (!self) {
  			return new Qbus(parent, proto);
  		}
  
  		// Typechecking
  		if ((parent && !parent.emit) || (proto && typeof proto !== 'object')) {
  			throw new TypeError(
  				'Usage: new Qbus([<`parent` = Object>, <`proto` = Object>])\n'+
  				'Got:   new Qbus(<`' + typeof parent + '` = ' + parent + '>, <`' + typeof proto + '` = ' + proto + '>)'
  			);
  		}
  
  		// Create storage namespace
  		self.qbus = {
  			paths: {},
  			parse: parse,
  			parent: parent || null
  		};
  
  		// Hide it if possible
  		if (Object.defineProperty) {
  			Object.defineProperty(self, 'qbus', {
  				enumerable: false
  			});
  		}
  
  		if (proto) {
  			proto.on = Qbus.prototype.on;
  			proto.once = Qbus.prototype.once;
  			proto.off = Qbus.prototype.off;
  			proto.emit = Qbus.prototype.emit;
  		}
  
  		return self;
  	}