Testbench added, untested.