icon update and better use of sync return value