added private benchmark function