add another variant and an algorithm comparer