implemented ALU and datapath