fix redefine bugs