instead of removing callback method, we should return disposal function on register method, like what $scope.$watch of angular returns.