docs: function(callback, opt_this) {
        var parentStack = [];
        var started = false;
  
        // get the root node and push it to the DFS stack
        var topmostSlice = this.mostTopLevelSlice;
        parentStack.push(topmostSlice);
  
        // Using the stack to perform DFS
        while (parentStack.length !== 0) {
          var curSlice = parentStack.pop();
  
          if (started)
            callback.call(opt_this, curSlice);
          else
            started = (curSlice.guid === this.guid);
  
          for (var i = curSlice.subSlices.length - 1; i >= 0; i--) {
            parentStack.push(curSlice.subSlices[i]);
          }
        }
      }