 
         # Check inputs
         sanitizeInputs()
-        
+
         # Render circle and arcs/text
         drawCircle(innerPercent, circleRadius)
         drawBothArcs()
 
-        # Set handler function for changes to either input
-        scope.$watch("expected", transitionHandler)
-        scope.$watch("actual", transitionHandler)
-
+        # Set callback function for changes to either input
+        scope.$watch("expected", expectedChangeHandler)
+        scope.$watch("actual", actualChangeHandler)
+

        transitionActualArc = ->
            console.log("transitionActualArc")

            sanitizeInputs()
            color = getActualArcColor(attrs.actual, attrs.expected)
            transitionArc(@actualArc, @actualArcValue, attrs.actual, color)


            drawExpectedArc()

        # Handler function for input changes. Adjusts both arcs to new values.
        actualChangeHandler = ->
            console.log("actualChangeHandler")

            sanitizeInputs()
            transitionActualArc()

        expectedChangeHandler = ->
            console.log("expectedChangeHandler")

            sanitizeInputs()
            transitionActualArc()
            transitionExpectedArc()

        # Transition the expected arc position. 
        transitionExpectedArc = ->
            console.log("transitionExpectedArc")

            transitionArc(@expectedArc, @expectedArcValue, attrs.expected, defaultExpectedArcColor)

        # Transition the actual arc position (and possibly color). Also 
