code: function Basic(options) {
          if (options == null) {
            options = {};
          }
          this.ERRORS = bind(this.ERRORS, this);
          this._initErrors = bind(this._initErrors, this);
          this._checkLogging = bind(this._checkLogging, this);
          this.debug = bind(this.debug, this);
          this.info = bind(this.info, this);
          this.warning = bind(this.warning, this);
          this.error = bind(this.error, this);
          this.fatal = bind(this.fatal, this);
          this._logname = bind(this._logname, this);
          this._log = bind(this._log, this);
          this.log = bind(this.log, this);
          this._handleError = bind(this._handleError, this);
          this._waitUntil = bind(this._waitUntil, this);
          this.setter = bind(this.setter, this);
          this.getter = bind(this.getter, this);
          this.define = bind(this.define, this);
          this.mixin = bind(this.mixin, this);
          this.defaults = bind(this.defaults, this);
          this.on("_log", this._log);
          this.getter("classname", function() {
            return this.constructor.name.toLowerCase();
          });
          this.config = extend(true, {}, this.defaults(), config.get(this._config_name || this.classname, true), options);
          this._initErrors();
          this.initialize(options);
          this.debug("loaded");
          return;
        }
docs: /*
  ## constructor
  
  `new Baisc( options )`
  
  Basic constructor. Define the configuration by options and defaults, init logging and init the error handler
  
  @param {Object} options Basic config object