update recalculate