diff reduction
regenerate