factoring out the benchmarking framework