add pre_extend