Extended update function