       print(testDescription)
     }
   case .run:
-    runBenchmarks(config)
+    SampleRunner(config).runBenchmarks()
     if let x = config.afterRunSleep {
       sleep(x)
     }

    if (spent + nextSampleEstimate < schedulerQuantum) {
        start = timer.getTime()
    } else {
        if c.verbose {
          print("    Yielding again after estimated \(spent/1000) us")
        }
        let now = yield()
        (start, lastYield) = (now, now)
    }

  }

  for (index, test) in c.tests {
    report(index, test, results:run(test))
  }

  print("\nTotal performance tests executed: \(testCount)")
}
// FIXME: indentation
}

public func main() {
