//these methods is kind of common for chaining wrapper
function add(object) {
  var args = Array.prototype.slice.call(arguments, 1);
  //loop through all over the arguments
  forEach(args, function(value, i) {
    switch(typeof object) {
      case 'object':
        isArray(object)
          ? object.push(value)
          : extend(object, isObject(value) ? value : creObject(i, value));
        break;
      case 'string':
        object += isString(value) ? value : '';
        break;
      case 'number':
        object += isNumber(value) ? value : 0;
    }
  });
  return object;
}

/**
 * @private
 * @description
 * return an object that index is the key
 * @param i {Index}
 * @param value
 * @returns {Object}
 */
function creObject(i, value) {
  var o = {};
  o[i] = value;
  return o;
}

@@ -27,16 +27,24 @@
  common 
+methods 
 for chai
@@ -55,16 +55,246 @@
  wrapper
+s%0A/**%0A * @description%0A * add methods get an object extend(based on type) and return it.%0A * @param object%0A * @returns %7B*%7D%0A * @example%0A * add(1,2) ==%3E 3%0A * add(%5B%5D,1) ==%3E %5B1%5D  %0A * add('f','g') ==%3E 'fg'%0A * add(%7B%7D, %7Ba:1%7D) ==%3E %7Ba:1%7D%0A */
 %0Afunctio

add docs to add function