docs: function(message, rootError) {
  
    // If a root error is given try to take over as much information as possible
    if (rootError) {
      Error.call(this, message, rootError.fileName, rootError.lineNumber);
  
      if (rootError instanceof SubstanceError) {
        this.__stack = rootError.__stack;
      } else if (rootError.stack) {
        this.__stack = util.parseStackTrace(rootError);
      } else {
        this.__stack = util.callstack(1);
      }
  
    }
  
    // otherwise create a new stacktrace
    else {
      Error.call(this, message);
      this.__stack = util.callstack(1);
    }
  
    this.message = message;
  }