properly emit didUpdate