initial refactoring for benchmarking
initial refactoring for benchmarking
initial refactoring for benchmarking