public void Execute(IStep containerStep, ITestContext context)
{
var actualObjects = findTheObjects(containerStep, context);
var actualRows = buildActualRows(actualObjects);
var expectedRows = buildExpectedRows(context, containerStep);
var valueMatcher = new RowValueMatcher(context);
_comparer.Columns.Each(x => x.ConfigureMatcher(valueMatcher));
var matcher = new SetRowMatcher(expectedRows, actualRows, valueMatcher);
IList<SetRow> results = Ordered ? matcher.CompareOrdered() : matcher.Compare();
markCounts(context, results);
context.ResultsFor(containerStep).SetResult(results, _leafName);
}