Refractored contribution update