public void chooseSquare(int xPos, int yPos){
        if(state.equals(GameState.PLAYING)){
            if(xPos < 0 || yPos < 0)
                throw new IllegalArgumentException();

            if(!getBoard().isClicked()){
                setGameTimer(new GameTimer());
                getGameTimer().start();

            }
            
            if(!(getBoard().getSquareMarking(xPos, yPos).equals(Square.Marking.FLAG))){
                if(getBoard().chooseSquare(xPos, yPos) == Item.MINE){
                    gameOver(false);
                    pauseGame(true);
                } else if( getBoard().isAllNumberShown() ){
                    gameOver(true);
                    pauseGame(true);
                }
            }

            this.setChanged();
            this.notifyObservers();
        }
    }