Basic update logic