docs: function(proto, recurring, statics) {
  		Array.forEach(arguments, function(mixins, i) {
  			if (mixins) {
  				gui.Object.each(mixins, function(name, value) {
  					if (i === 0) {
  						// TODO: something more elaborate (like defineProperty)
  						this.prototype[name] = value;
  					} else { // TODO: only at index 1 right?
  						gui.Class.descendantsAndSelf(this, function(C) {
  							C.$recurring[name] = value;
  							C[name] = value;
  						});
  					}
  				}, this);
  			}
  		}, this);
  		return this;
  	}