docs: function(SuperC, protos, recurring, statics, name) {
  		var C = this._createclass(SuperC, SuperC.prototype, name);
  		gui.Object.extend(C, statics);
  		gui.Object.extend(C.$recurring, recurring);
  		gui.Object.each(C.$recurring, function(key, val) {
  			var desc = Object.getOwnPropertyDescriptor(C, key);
  			if (!desc || desc.writable) {
  				C[key] = val;
  			}
  		});
  		gui.Property.extendall(protos, C.prototype);
  		C = this._classname(C, name);
  		return C;
  	}