add perf, unit tests