получишь не тот результат просто из-за сортировки
ну, для этого я и переопределил afterIteration. Возможно, и кривовато, но данных немного…
А в целом я согласен, переделаю. Просто это-первое, что пришло в голову :)