update logic
update logic