more benchmarks and some refactor
added benchmarking code