public static void setup() {
		// Construct the setup frame
		final JFrame setup = new JFrame("Welcome!");
		setup.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		JComponent pane = (JComponent)setup.getContentPane();
		pane.setLayout(new BorderLayout());
		pane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
		
		JLabel create = new JLabel ("Create your dilemma", SwingConstants.LEFT);
		create.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
		
		JPanel body = new JPanel();
		body.setLayout(new GridLayout(6, 2));
		
		// Contents of the setup frame
		JLabel[] labelStrat = new JLabel[numStrategies];
		final JTextField[] getStrat = new JTextField[numStrategies];
		String content = "" + startingAgents;
		for(int i = 0; i < numStrategies; i++) {
			labelStrat[i] = new JLabel(strategies[i] + ": ");
			getStrat[i] = new JTextField(content);
			
			// Add all the contents to the frame
			body.add(labelStrat[i]);
			body.add(getStrat[i]);
		}
				
		// The ok button is defined here. It ll extract all the information
		// from the content and it will continue to the simulation
		JButton ok = new JButton("Ok");	
		ok.addActionListener(
			new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					setup.dispose();
					numAgents = 0;
					for(int i = 0; i < numStrategies; i++) {
						agentsStrat[i] = getValue(getStrat[i].getText());
						numAgents += agentsStrat[i];
					}
					startSimulation();
				}
			}
		);
		
		pane.add(create, BorderLayout.NORTH);
		pane.add(body, BorderLayout.CENTER);
		pane.add(ok, BorderLayout.SOUTH);
		
		setup.pack();
		setup.setLocationRelativeTo(null);
		setup.setSize(300, 300);
        setup.setVisible(true);
	}