iterative reduce update