public void backToMenu() {
		int reply = JOptionPane.showConfirmDialog(null, "Would you like to return to the Main Menu?");
		if(reply == JOptionPane.YES_OPTION) {
			timer.stop();
			reply = JOptionPane.showConfirmDialog(null, "Would you like to save your progress before quiting?");
			if(reply == JOptionPane.YES_OPTION) {
				saveGame();
				JOptionPane.showMessageDialog(null, "Puzzle Saved", "Success", JOptionPane.INFORMATION_MESSAGE);
				MainMenu menu = new MainMenu(1000, 800, user);
				menu.setSize(1000, 800);
				menu.setVisible(true);
				menu.setTitle("CSE360 Sudoku Main Menu");
				dispose();
			} else {
				reply = JOptionPane.showConfirmDialog(null, "Would you like to see the solution?");
				if(reply == JOptionPane.YES_OPTION) {
					MainMenu menu = new MainMenu(1000, 800, user);
					menu.setSize(1000, 800);
					menu.setVisible(true);
					menu.setTitle("CSE360 Sudoku Main Menu");
					ShowSolution solution;
					switch(difficulty) {
					case "Easy":
						solution = new ShowSolution("easy16x16Solution.txt", "16x16");
						solution.setTitle("Easy 16x16 Solution");
						break;
					case "Medium":
						solution = new ShowSolution("medium16x16Solution.txt", "16x16");
						solution.setTitle("Medium 16x16 Solution");
						break;
					case "Hard":
						solution = new ShowSolution("hard16x16Solution.txt", "16x16");
						solution.setTitle("Hard 16x16 Solution");
						break;
					default:
						solution = new ShowSolution("evil16x16Solution.txt", "16x16");
						solution.setTitle("Evil 16x16 Solution");
						break;
					}
					solution.setSize(700, 700);
					solution.setVisible(true);
					solution.setResizable(false);
					dispose();
				} else {
					MainMenu menu = new MainMenu(1000, 800, user);
					menu.setSize(1000, 800);
					menu.setVisible(true);
					menu.setTitle("CSE360 Sudoku Main Menu");
					dispose();
				}
			}
		}
	}