private void initComponents(JProgressBar progressBar) {
		Image image = null;
		try {
			image = ImageIO.read(new File("images/Board.jpg"));
		} catch (IOException e) {
			e.printStackTrace();
		}
		BackgroundPanel boardPanel = null;
		/* >>>>>>>>>> UPDATE PROGRESS BAR <<<<<<<<<< */
		progressBar.setValue(progressBar.getValue() + 10);
		
		if(image != null) {
			ViewHelper vh = ViewHelper.getInstance();
			//Create Background
			JPanel gameBoardPanel = vh.createPanel(new GridBagLayout());
			gameBoardPanel.setBackground(Color.WHITE);
			this.getContentPane().add(gameBoardPanel);
			
			GridBagConstraints mainConstraint = new GridBagConstraints();
			boardPanel = new BackgroundPanel(image, BackgroundPanel.ACTUAL, 0.0f, 0.0f);
			boardPanel.setSize(554, 554);
			//backgroundPanel.setPaint(Color.WHITE);
			boardPanel.setLayout(new GridBagLayout());
			
			JPanel controlPanel = vh.createPanel(Color.WHITE, 161, 554);
			controlPanel.setLayout(new GridBagLayout());
			
			mainConstraint.gridx = 0;
			mainConstraint.gridy = 0;
			gameBoardPanel.add(boardPanel, mainConstraint);
			mainConstraint.gridx = 1;
			mainConstraint.gridy = 0;
			gameBoardPanel.add(controlPanel, mainConstraint);
			/* >>>>>>>>>> UPDATE PROGRESS BAR <<<<<<<<<< */
			progressBar.setValue(progressBar.getValue() + 10);
			
			int tWidth = 45, tHeight = 75;
			int gridx = 10, gridy = 10;
			GridBagConstraints gameBoardConstraints = new GridBagConstraints();
			
			for (int i=0; i<this.tilePanels.length; i++) {
				if(i%10!=0) {
					if(i<10 || i<30&&i>20) {
						this.tilePanels[i] = vh.createTilePanel(i, tWidth, tHeight);
					}else if(i<20&&i>10 || i<40&&i>30) {
						this.tilePanels[i] = vh.createTilePanel(i, tHeight, tWidth);
					}
				}else {
					this.tilePanels[i] = vh.createTilePanel(i, tHeight);
				}
				
				this.tilePanels[i].addMouseListener(new MouseAdapter() {
					public void mousePressed(MouseEvent e) {
						//JOptionPane.showMessageDialog(null, "You pressed " + Board.getInstance().getTile(((TilePanel)e.getSource()).getIndex()).getName(), "Location", JOptionPane.PLAIN_MESSAGE);
						int index = ((TilePanel)e.getSource()).getIndex();
						Image image = null;
						try {
							image = ImageIO.read(new File("images/deeds/" + index + ".png"));
						} catch (IOException ioe) {
							image = null;
						}
						
						if(image != null) {
							image = null;
							DeedDialog deedDialog = new DeedDialog(index);
							deedDialog.setVisible(true);
						}
						else {
							JOptionPane.showMessageDialog(null, "Not yet available", "Tile Info", JOptionPane.PLAIN_MESSAGE);
						}
						
					}
					
				});
				
				vh.addComponent(this.tilePanels[i], gridx, gridy, boardPanel, gameBoardConstraints);
				
				if(i<10) {
					gridx--;
				}else if(i<20) {
					gridy--;
				}else if(i<30) {
					gridx++;
				}else if(i<40) {
					gridy++;
				}
			}
			/* >>>>>>>>>> UPDATE PROGRESS BAR <<<<<<<<<< */
			progressBar.setValue(progressBar.getValue() + 10);
			
			gameBoardConstraints.gridheight = 9;
			gameBoardConstraints.gridwidth = 9;
			JPanel mid = vh.createPanel(new GridBagLayout(), Color.BLUE);
			vh.addComponent(mid, 1, 1, boardPanel, gameBoardConstraints);
			
			//Create Menu Panel as container of buttons
			JPanel menuPanel = vh.createPanel(new GridBagLayout());
			menuPanel.setOpaque(false);
			vh.addComponent(menuPanel, 0, 0, new Insets(200, 10, 10, 10), controlPanel, new GridBagConstraints());
			//Create Buttons and add to Menu Panel
			GridBagConstraints gbc2 = new GridBagConstraints();
			gbc2.fill = GridBagConstraints.HORIZONTAL;
			gbc2.insets = new Insets(3, 0, 0, 0);
			vh.addComponent(this.getScreenResolutionButton(), 0, 0, menuPanel, gbc2);
			vh.addComponent(this.getNewGame(), 0, 1, menuPanel, gbc2);
			vh.addComponent(this.getIndex(), 0, 2, menuPanel, gbc2);
			vh.addComponent(this.getExitButton(), 0, 3, menuPanel, gbc2);
			
			/* >>>>>>>>>> UPDATE PROGRESS BAR <<<<<<<<<< */
			progressBar.setValue(progressBar.getValue() + 60);
		}
	}