public void open() {
        if (this.state != CellState.CLOSED) return;
        if (hasMine()) {
            explodeMine();
        } else {
            this.state = CellState.OPENED;
            notifyObservers("Opened");
            if (countNeighborsWithMines() == 0) openNeighbors();
        }
    }