}
private int solutionsFound;
private Map<Position,Integer> toPickMap, toFlagMap;
private boolean backtrackSolve(MutableBoard grid) {
BoardInfoHelper helper = new BoardInfoHelper(grid);
for(List<Position> positions : helper.getClosedUnknownBorderCells()) {
probBacktrackValid = false;
toPickMap.clear(); toFlagMap.clear(); solutionsFound = 0;
toPick.clear(); toPick.addAll(positions);
toFlag.clear(); toFlag.addAll(positions);
backtrackSolve(grid, helper, positions, new Node(null,null), new Node(null,null));