     this.raw_score = grade["raw_score"]
     this.feedback = grade["feedback"]
 
-    # manage object state
-    this.hasChanges = false
-
-  GradePrototype.prototype = 
-    change: ()->
-      this.hasChanges = true
+  GradePrototype.prototype = {
+    snakes: ()->
+      alert("snakes")
 
     update: ()->
-      if this.hasChanges
-        self = this
-        $http.put("/grades/#{self.id}/async_update", self).success(
-          (data,status)->
-            self.resetChanges()
-        )
-        .error((err)->
-        )
+      self = this
+      $http.put("/grades/#{self.id}/async_update", self).success(
+        (data,status)->
+          self.resetChanges()
+      )
+      .error((err)->
+      )
+
+    addWatchers: ()->
+      $scope.$watch('grade.feedback', (()->
+        $scope.grade.update()
+        ), true)
+
+      $scope.$watch('grade.raw_score', (()->
+        $scope.grade.update()
+        ), true)
 
     debouncedUpdate: ()->
       debounce((->

@gradecraft.controller 'GradeCtrl', ['$rootScope', '$scope', 'GradePrototype', '$window', '$http', 'debounce', ($rootScope, $scope, GradePrototype, $window, $http, debounce) -> 


  $scope.init = (params)->
    $scope.header = "waffles" 
    gradeParams = params["grade"]
    $scope.grade = new GradePrototype(gradeParams)
    gradeId = gradeParams.id

    $scope.froalaOptions = {


    resetChanges: ()->
      this.hasChanges = false
<<<<<<< HEAD
=======
  }

>>>>>>> implement watchers to manage updates in grade edit controller using angular-debounce, working around fcsa-number to override internal blur actions in directive
]
