This will probably need the same treatment as the units. In the near future you can destroy, create, etc machines and we know machines can change. When you hit deploy the id that juju sends back is mapped onto the old object. The name/etc in the machine token need updating. So I'd have a onMachineChanged as well.