@Override
	public void update(Observable o, Object arg) {
		System.out.println(boardToString());
		
		if (boardModel.getGameWon() || boardModel.getGameLost()) { //check win and loss conditions

			//set up a window with message for each possible game outcome
			if (boardModel.getGameLost()) {
				System.out.println("You Lose :/ \ntry again?\n(y,n)");
			}
			else if (boardModel.getGameWon() && boardModel.checkHighScorePosition() > -1) {
				
				System.out.println("High Score! Please enter your name:"); //for capturing the name of the player, for high score screen
				String inputString = menuView.getInput().next().trim().toLowerCase();
				boardModel.setName(inputString);
				boardModel.setHighScore();				
				System.out.println("Congratulations! You Win!\nYou got a high score!\nPlay again?\n(y,n)");
			}
			else if (boardModel.getGameWon()) {
				System.out.println("Congratulations! You Win!\nYou didn't get a high score :(\ntry again?\n(y,n)");
			}
			String inputString = menuView.getInput().next().trim().toLowerCase();

			boardModel.generateNewBoard(); //here rather than later so that it resets the game won/lost conditions before anything relying on them is run
			
			if (inputString.equals("y")) {
				menuView.drawGameBoard(); //new board using the current settings
			}
			else if (inputString.equals("n")) {
				menuView.drawMainMenu(); //return to main menu
			}
			boardModel.generateNewBoard(); //here rather than later so that it resets the game won/lost conditions before anything relying on them is run
		}
	}