almost done with datapath.v hopefully