docs: function extend(obj) {
    Array.prototype.slice.call(arguments, 1).forEach(function(source) {
      if (source) {
        for (var prop in source) {
          if (source[prop].constructor === Object) {
            if (!obj[prop] || obj[prop].constructor === Object) {
              obj[prop] = obj[prop] || {};
              extend(obj[prop], source[prop]);
            } else {
              obj[prop] = source[prop];
            }
          } else {
            obj[prop] = source[prop];
          }
        }
      }
    });
    return obj;
  }