Reworking update logic