code: function Deferred () {
  	var self      = this;
  
  	this.promise  = promise.factory();
  	this.onDone   = [];
  	this.onAlways = [];
  	this.onFail   = [];
  
  	// Setting handlers to execute Arrays of Functions
  	this.promise.then( function ( arg ) {
  		promise.delay( function () {
  			array.each( self.onDone, function ( i ) {
  				i( arg );
  			});
  
  			array.each( self.onAlways, function ( i ) {
  				i( arg );
  			});
  
  			self.onAlways = [];
  			self.onDone   = [];
  			self.onFail   = [];
  		});
  	}, function ( arg ) {
  		promise.delay( function () {
  			array.each( self.onFail, function ( i ) {
  				i( arg );
  			});
  
  			array.each( self.onAlways, function ( i ) {
  				i( arg );
  			});
  
  			self.onAlways = [];
  			self.onDone   = [];
  			self.onFail   = [];
  		});
  	});
  }
docs: Deferred
  
  @constructor