void draw() {
    if (record) {
      // Note that #### will be replaced with the frame number. Fancy!
      parent.beginRecord(PConstants.PDF, "frame-####.pdf");
      parent.textMode(PConstants.SHAPE);
      parent.font = parent.createFont("Verdana", 18); // recreate as a
      // shape
      parent.textFont(parent.font);
    }
    parent.background(130, 130, 130);

    if (currentLarge == null) {
      // draw the actual timeline
      for (TwitterFilteringComponent a : timePoints) {
        a.draw();
        drawLinksTo(a);
        // moveToPosition(a);
      }

      drawTimeLine();
      fixOverlaps();
      // draw visualisations!
    } else {
      currentLarge.draw();
    }
    if (record) {
      parent.endRecord();
      parent.textMode(PConstants.MODEL);
      record = false;
    }
    // drawFrameRate(0,25);
    // controlP5.draw();
  }