docs: function Protos() {
    
    var self = this;
    
    // Initialize `protos` global
    global.protos = this;
  
    // Inherit from constructor (needs deep extend to get inherited methods)
    deepExtend(this, this.constructor);
    
    // Set globals getter (for sandboxed environments)
    this.__defineGetter__('globals', function() {
      return global;
    });
    
    /**
      Cluster configuration
     */
  
    this.clusterConfig = {
      listenPort: null,
      multiProcess: 0,
      singleProcess: 'node',
      masterProcess: 'node [master]',
      workerProcess: 'node [worker]'
    };
  
    /**
      Extends a source object with a target object. (Alias of `underscore::extend`)
      
      @param {object} destination
      @param {object} sources*
     */
      
    this.extend = _.extend;
    
    /**
      Extends a source object with a target object, including prototype methods
      
      @param {object} destination
      @param {object} sources*
     */
    
    this.deepExtend = deepExtend;
  
    // Internals
    
    /**
      Contains the driver constructors
     */
  
    this.drivers = {};
    
    /**
      Contains the engine constructors
     */
  
    this.engines = {};
    
    /**
      Contains the storage constructors
     */
  
    this.storages = {};
    
    /**
      Contains the constructors from lib/
     */
  
    this.lib = {};
  
    /**
      Regular expressions
     */
  
    this.regex = require('./regex');
  
    /**
      Exposes the `Inflection` class instance
     */
  
    this.inflect = inflect;
  
    /**
      Framework`s path. Directory where Protos is installed.
     */
  
    this.path = pathModule.resolve(__dirname, '../');
    
    /**
      Protos className
      
      @type string
     */
  
    this.className = this.constructor.name;
    
    /**
      Environment string
      
      @type string (getter)
     */
  
    Object.defineProperty(this, 'environment', {
      value: this.config.environment,
      writable: false,
      enumerable: true,
      configurable: false
    });
    
    /**
      Server options, provided by environment
      
      @type object
     */
  
    this.serverOptions = null;
  
    // Launch application
    this.launchApplication();
  
    // Only set important properties enumerable
    this.util.onlySetEnumerable(this, [
      'version', 
      'className', 
      'environment', 
      'path', 
      'config', 
      'apps', 
      'drivers', 
      'engines', 
      'storages'
    ]);
  
    // console.exit(this);
  
  }