updated ALU with mux