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

            if(!getBoard().isClicked()){
                getGameTimer().start();
            }

            if(getBoard().getSquareMarking(xPos, yPos) != Square.Marking.FLAG){
                getBoard().chooseSquare(xPos, yPos);
                if(isMine(xPos,yPos)){
                    removeLife();
                }
                if(isLvlComplete()){
                    finishLevel();
                }
            }

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