public GUI(RecommendationControl recomControl) {

		this.recomControl = recomControl;
		attractionName = new String("attractionName");
		ready = false;

		// Initial
		setTitle("TRAVELABULOUS - Destination Guru");
		setSize(562,700);

		titlePanel = new TitlePanel();
		titlePanel.setPreferredSize(new Dimension(563, 175));

		DestinationGuruPanel dgPanel = new DestinationGuruPanel();
		dgPanel.setPreferredSize(new Dimension(563, 150));

		JPanel mainPanel = new JPanel();
		JButton continueButton = new JButton("Get Recommendations!");
		continueButton.addActionListener(this);
		mainPanel.add(continueButton);

		this.getContentPane().add(dgPanel, BorderLayout.NORTH);
		this.getContentPane().add(titlePanel, BorderLayout.SOUTH);
		this.getContentPane().add(mainPanel, BorderLayout.CENTER);

		setLocationRelativeTo(null);

		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setResizable(false);
		this.setVisible(true);

		while(!ready){ // wait for button click
			repaint();
		} 

		this.getContentPane().remove(mainPanel);
		this.getContentPane().remove(titlePanel);

		// Hot or Not
		setTitle("TRAVELABULOUS Hot-Or-Not");
		HotOrNotPanel hotOrNotPanel = new HotOrNotPanel(recomControl, attractionName);
		//this.getContentPane().add(titlePanel, BorderLayout.NORTH);
		this.getContentPane().add(dgPanel, BorderLayout.NORTH);
		this.getContentPane().add(hotOrNotPanel, BorderLayout.CENTER);
		revalidate();

		while(!hotOrNotPanel.getAttractionName().equals("DONE")){ 
			repaint();
		}

		this.getContentPane().remove(hotOrNotPanel);

		// Head to Head
		setTitle("TRAVELABULOUS Head-To-Head");

		HeadToHeadPanel headToHeadPanel = new HeadToHeadPanel(recomControl);
		//this.getContentPane().add(titlePanel, BorderLayout.NORTH);
		this.getContentPane().add(dgPanel, BorderLayout.NORTH);
		this.getContentPane().add(headToHeadPanel, BorderLayout.CENTER);	
		revalidate();

		while(headToHeadPanel.getAttraction()[0] != (null)){ 
			repaint();
		}

		this.getContentPane().remove(headToHeadPanel);

		// Head to Head
		setTitle("TRAVELABULOUS Recommendations");

		JPanel recommendationsPanel = new JPanel();
		JLabel recommendationsLabel = new JLabel("Recommendations:");
		recommendationsPanel.add(recommendationsLabel);

		HashSet<Attraction> finalRecoms = recomControl.updateRecomEntity();
		double avLat, avLong;
		avLat = 0;
		avLong = 0;
		for (Attraction att: finalRecoms){
			recommendationsPanel.add(new JLabel("<html><br>--" + att.getName() + "</html>"));
			avLat += att.getLocation().getLatitude();
			avLong += att.getLocation().getLongitude();
		}
		
		avLat /= finalRecoms.size();
		avLong /= finalRecoms.size();
		
		recommendationsPanel.add(new JLabel("<html><br> --> Average latitude: " + String.valueOf(avLat) + "</html>"));
		recommendationsPanel.add(new JLabel("<html><br> --> Average longitude: " + String.valueOf(avLong) + "</html>"));

		this.getContentPane().add(dgPanel, BorderLayout.NORTH);
		this.getContentPane().add(recommendationsPanel, BorderLayout.CENTER);

		revalidate();
	}