benchmark output can be suppressed with NO_BENCHMARK
added new functions to lib_func