fixed all the bugs, and added forwarding unit