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);
	}