public void fillSuggestions() {
        history.add(Change.marker());
        for (Cell cell : all()) {
            for (int n = 1; n <= size*size; n++) {
                if (!cell.poss().contains(n)) {
                    history.add(new Change(cell.row, cell.column, n,
                            Change.POSS_REM, false));
                    //TODO opt: it may add something that will be removed later
                    cell.poss().add(n);
                }
            }
        }
        for (Cell cell : all()) {
            for (int n : cell.poss()) {
                if (!isAllowed(cell, n) || cell.value() != 0) {
                    history.add(new Change(cell.row, cell.column, n,
                            Change.POSS_ADD, false));
                    cell.poss().remove(n);
                }
            }
        }
    }