Updated tood: revisit spy.watch and x_model APIs