private void initialize(JFrame startView) {
		this.frame = startView;
		this.photoPanels = new ArrayList<PhotoPanel>();

		this.frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
		this.frame.getContentPane().add(this.bottomPanel, BorderLayout.SOUTH);

		GroupLayout gl_bottomPanel = new GroupLayout(this.bottomPanel);
		gl_bottomPanel.setHorizontalGroup(
				gl_bottomPanel.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_bottomPanel.createSequentialGroup()
						.addGap(300)
						.addComponent(this.btnShowHideTags)
						.addPreferredGap(ComponentPlacement.UNRELATED)
						.addComponent(this.btnShowHideLocation)
						.addPreferredGap(ComponentPlacement.UNRELATED)
						.addComponent(this.btnshowHideComments)
						.addPreferredGap(ComponentPlacement.UNRELATED)
						.addComponent(this.btnShowHideName)
						.addGap(150)
						.addComponent(this.slider, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addContainerGap(59, Short.MAX_VALUE))
				);
		gl_bottomPanel.setVerticalGroup(
				gl_bottomPanel.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_bottomPanel.createSequentialGroup()
						.addGap(5)
						.addGroup(gl_bottomPanel.createParallelGroup(Alignment.LEADING)
								.addComponent(this.slider, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
								.addGroup(gl_bottomPanel.createParallelGroup(Alignment.BASELINE)
										.addComponent(this.btnShowHideLocation)
										.addComponent(this.btnShowHideTags)
										.addComponent(this.btnshowHideComments)
										.addComponent(this.btnShowHideName)))
										.addContainerGap())
				);
		this.bottomPanel.setLayout(gl_bottomPanel);

		this.topPanel.setLayout(new BorderLayout());
		this.frame.getContentPane().add(this.topPanel, BorderLayout.NORTH);
		this.topPanel.add(this.topImportHomeArea, BorderLayout.WEST);
		this.topImportHomeArea.add(this.uploadPictures);
		this.topImportHomeArea.add(this.btnHome);

		Dimension dimension = new Dimension(Constants.PREFERRED_MODULE_WIDTH, Constants.PREFERRED_MODULE_HEIGHT);
		this.leftPanelView.setPreferredSize(dimension);
		this.leftPanelView.setMinimumSize(dimension);
		this.leftPanelView.setSize(dimension);
		this.frame.getContentPane().add(this.leftPanelView, BorderLayout.WEST);
		this.leftPanelView.setLayout(new GridLayout(3, 0, 0, 0));

		//Lays out the placeholder widgets and start the loading animation
		for(int i = 0; i < 3; i++) {
			JPanel panel = new JPanel();
			panel.add(new JLabel("Loading plugin..."));
			this.layers[i] = new LoadingLayer(panel);
			this.leftPanelView.add(this.layers[i].getDecoratedPanel());	
			this.layers[i].start();
		}

		this.frame.getContentPane().add(this.photoView, BorderLayout.CENTER);
		this.photoView.setViewportView(this.cardPanel);
		this.cardPanel.setLayout(new CardLayout());
		this.cardPanel.add(this.photoViewPanel, "All");
		this.cardPanel.add(this.singlePhotoPanel, "One");
		this.photoViewPanel.setLayout(new WrapLayout(FlowLayout.LEFT));
		this.singlePhotoPanel.setLayout(new WrapLayout(FlowLayout.LEFT));
		this.topPanel.add(this.topBtnArea, BorderLayout.CENTER);
		this.topBtnArea.add(this.btnBack);
		this.topBtnArea.add(this.btnPrevPP);
		this.topBtnArea.add(this.btnNextPP);
		this.setTopButtonsVisibility(false);
		this.setOverallBackground(Constants.GUI_BACKGROUND);
	}