todo diff reduction