adding more unit tests and comparison benchmarking