switched to using scope.$watch instead of event emitting