adding some benchmark and unit tests