docs: function timeline(params = {}) {
    let tl = anime(params);
    tl.duration = 0;
    tl.add = function(instanceParams, timelineOffset) {
      const tlIndex = activeInstances.indexOf(tl);
      const children = tl.children;
      if (tlIndex > -1) activeInstances.splice(tlIndex, 1);
      function passThrough(ins) { ins.passThrough = true; };
      for (let i = 0; i < children.length; i++) passThrough(children[i]);
      let insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));
      insParams.targets = insParams.targets || params.targets;
      const tlDuration = tl.duration;
      insParams.autoplay = false;
      insParams.direction = tl.direction;
      insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);
      passThrough(tl);
      tl.seek(insParams.timelineOffset);
      const ins = anime(insParams);
      passThrough(ins);
      const totalDuration = ins.duration + insParams.timelineOffset;
      children.push(ins);
      const timings = getInstanceTimings(children, params);
      tl.delay = timings.delay;
      tl.endDelay = timings.endDelay;
      tl.duration = timings.duration;
      tl.seek(0);
      tl.reset();
      if (tl.autoplay) tl.play();
      return tl;
    }
    return tl;
  }