private void makeInterface() {
    setSize(800, 600);

    // Configure the content pane
    setBackground(Color.WHITE);
    setLayout(new GridBagLayout());

    GridBagConstraints c = new GridBagConstraints();

    viz = new VizPanel();
    viz.setSize(640, 480);

    JLabel pl;
    JLabel legend[] = new JLabel[players.length];
    viz.addColor(new Color(106, 74, 60)); // neutral color
    for (int i = 0; i < players.length; i++) {
      pl = new JLabel(players[i], new ColorBox(colors[i]), SwingConstants.LEADING);
      legend[i] = pl;
      viz.addColor(colors[i]);
    }

    sep1 = new JSeparator();

    // length TO BE SET
    progress = new JProgressBar();
    progress.setIndeterminate(true);
    progress.setStringPainted(false);

    buttons = new JButton[7];
    String icons[] = {
      "gotoStart", "stepBack", "playBack", "pause", "playForward",
      "stepForward", "gotoEnd"
    };

    JButton btn;
    for (int i = 0; i < icons.length; i++) {
      btn = new JButton(new ImageIcon(getClass().getResource("img/" + icons[i] + ".png")));
      if (icons[i].equals("pause")) {
        pauseButton = btn;
      }
      btn.setName(icons[i]);
      btn.addActionListener(this);
      btn.setActionCommand(icons[i]);
      btn.setEnabled(false); // renable when loaded..
      btn.setFocusPainted(false);
      buttons[i] = btn;
    }

    // LAYOUT TIME GHRHAHGHARHAR
    c.fill = GridBagConstraints.BOTH;
    c.anchor = GridBagConstraints.CENTER;
    c.weightx = 0.0;
    c.weighty = 0.0;
    c.gridx = 0;
    c.gridy = 0;

    JPanel legendPanel = new JPanel();
    legendPanel.setBackground(Color.WHITE);
    legendPanel.setLayout(new FlowLayout());
    for (int i = 0; i < legend.length; i++) {
      legendPanel.add(legend[i]);
    }
    add(legendPanel, c);

    c.weightx = 1.0;
    c.weighty = 1.0;
    c.gridy++;
    add(viz, c);

    c.fill = GridBagConstraints.HORIZONTAL;
    c.weightx = 0.0;
    c.weighty = 0.0;
    c.gridy++;
    add(progress, c);
    c.gridy++;
    add(sep1, c);

    JPanel buttonPanel = new JPanel();
    buttonPanel.setBackground(Color.WHITE);
    buttonPanel.setLayout(new GridBagLayout());
    GridBagConstraints bc = new GridBagConstraints();

    c.fill = GridBagConstraints.NONE;
    c.gridx = 0;
    c.gridy++;

    bc.fill = GridBagConstraints.NONE;
    bc.gridx = 0;
    bc.gridy = 0;
    for (int i = 0; i < buttons.length; i++) {
      buttonPanel.add(buttons[i], bc);
      bc.gridx++;
    }

    add(buttonPanel, c);
  }