replace shitty $watch stuff with a nice ng-change