update collect and distribute