code: function Namespace(ns, members) {
  		Namespace.namespaces.push(this);
  		this.$ns = ns;
  		if (members) {
  			Object.keys(members).forEach(function(key) {
  				Object.defineProperty(this, key,
  					Object.getOwnPropertyDescriptor(members, key)
  				);
  			}, this);
  		}
  	}
docs: ad hoc namespace mechanism .................................. 
  When the first namespace `gui` has been instantiated,
  this will become exposed publically as `gui.Namespace`.
  TODO: Let's remember to check for namespace collions!
  @param {string} ns
  @param @optional {object} members