Use onchange rather than $watch