refactor benchmark