Refactor to easily allow extending Update.