refactored update creation to use a builder