refactor
update benchmarks
update tests
update function signature in benchmarks
clean up, lint