I see, so $rootScope.$broadcast and $rootScope.$watch are angular-provided methods, and you're just wrapping those... right? Pretty neat.