Centralize update logic