add back $scope.$apply()