Abstract the update process