Updated update function