* optimize deepExtend func