some changes in the benchmark function