refactoring, testbench.