Rework checkout + update process