private void solveSingleThreaded(final long currentState, final BitSet walls) {
   initialMovesEstimate = movesRequired = Node.h(currentState);
   this.workers = new DFSWorker[1];
   final DFSWorker dfsWorker = new DFSWorker(walls);
   // Add to array so GUI can poll it for the stats in real time.
   this.workers[0] = dfsWorker;
   do {
     if (PuzzleConfiguration.isVerbose()) {
       System.out.print("\nSearching paths of depth " + movesRequired + "...");
     }
     dfsWorker.setConfig(currentState, "X", movesRequired, 0);
     dfsWorker.run();
     if (!solved) {
       movesRequired += 2;
     }
   } while (running);
 }