added update() to reduction interface