bestSolutionRecaller.processWorkingSolutionDuringMove(uninitializedVariableCount, score, stepScope);
} else {
InnerScoreDirector scoreDirector = phaseScope.getScoreDirector();
Score optimisticBound = scoreBounder.calculateOptimisticBound(scoreDirector, score);
moveNode.setOptimisticBound(optimisticBound);
if (optimisticBound.compareTo(phaseScope.getBestPessimisticBound()) > 0) {
// It's still worth investigating this node further (no need to prune it)
phaseScope.addExpandableNode(moveNode);
Score pessimisticBound = scoreBounder.calculatePessimisticBound(scoreDirector, score);
phaseScope.registerPessimisticBound(pessimisticBound);
}