       #   )
 
     addTiers: (tiers)->
-      self = this
-      angular.forEach(tiers, (tier,index)->
-        self.addTier(tier)
+      angular.forEach(tiers, (tier,index)=>
+        @addTier(tier)
       )
     resourceUrl: ()->
       "/metrics/#{self.id}"
     order: ()->
-      self = this
-      jQuery.inArray(this, self.$scope.metrics)
+      jQuery.inArray(this, @$scope.metrics)
 
     loadMetricBadge: (metricBadge)->
-      self = this
-      courseBadge = self.availableBadges[metricBadge.badge_id]
-      loadedBadge = new MetricBadgePrototype(self, angular.copy(courseBadge))
-      self.badges[courseBadge.id] = loadedBadge # add metric badge to metric
-      delete self.availableBadges[courseBadge.id] # remove badge from available badges on metric
+      courseBadge = @availableBadges[metricBadge.badge_id]
+      loadedBadge = new MetricBadgePrototype(@, angular.copy(courseBadge))
+      @badges[courseBadge.id] = loadedBadge # add metric badge to metric
+      delete @availableBadges[courseBadge.id] # remove badge from available badges on metric
 
     # Badges
     loadMetricBadges: (metricBadges)->
-      self = this
-      angular.forEach(metricBadges, (metricBadge, index)->
-        if (self.availableBadges[metricBadge.badge_id])
-          self.loadMetricBadge(metricBadge)
+      angular.forEach(metricBadges, (metricBadge, index)=>
+        if (@availableBadges[metricBadge.badge_id])
+          @loadMetricBadge(metricBadge)
       )
 
     index: ()->
       @order()
     createRubricGrade: ()->
-      self = this
-      $http.post("/rubric_grades.json", self.rubricGradeParams()).success(
-      )
-      .error(
-      )
+      $http.post("/rubric_grades.json", @rubricGradeParams()).success().error()
     gradeWithTier: (tier)->
       if @isUsingTier(tier)
         @selectedTier = null

          @update()

    update: ()->
      self = this
      if @hasChanges
        Restangular.one('metrics', self.id).customPUT(self.params())
          .then(
            ()-> , #success
            ()-> # failure
          )
          self.resetChanges()

    delete: (index)->
      self = this
      if @isSaved()
        if confirm("Are you sure you want to delete this metric? Deleting this metric will delete its tiers as well.")
          $http.delete("/metrics/#{self.id}").success(
            (data,status)->
              self.remove(index)
          )
          .error((err)->
            alert("delete failed!")
          )
      else
        self.remove(index)            
]  
    alert: ()->
      alert("snakes!")    
    addTier: (attrs={})->
      newTier = new TierPrototype(@, attrs, @$scope)
      @tiers.push newTier
      if @rubricGradeTierId and @rubricGradeTierId == newTier.id
        # alert(self.rubricGradeTierId)
        # alert(newTier.id)
        @selectedTier = newTier
    #what is different here? // from GradeRubric
      # addTier: (attrs={})->
      #   self = this
