adding fast path version and perf test