- all sub-functions are put into respective position.
- rename testbench to test. - add benchmark for future development.