func_cd improve