Splits UpdatePuller into two roles: obligation fulfiller and update puller