Model Layer for AngularJS based on $watch pattern