docs: function() {
              var modules,
                  first = arguments[0],
                  arrayRequest = false;
  
              if(system.isArray(first)){
                  modules = first;
                  arrayRequest = true;
              }else{
                  modules = slice.call(arguments, 0);
              }
  
              return this.defer(function(dfd) {
                  require(modules, function() {
                      var args = arguments;
                      setTimeout(function() {
                          if(args.length > 1 || arrayRequest){
                              dfd.resolve(slice.call(args, 0));
                          }else{
                              dfd.resolve(args[0]);
                          }
                      }, 1);
                  }, function(err){
                      dfd.reject(err);
                  });
              }).promise();
          }