added behavioral implementation and successful testbench