added new mux, and zero extend