diff --git a/a8.c b/a8.c
index c0ad6d231bfad870ac315ecf03ca67d09556e939..40755845e3ae85c1c8535c80655724a5738d2670 100644
--- a/a8.c
+++ b/a8.c
@@ -11,6 +11,7 @@ int main(void)
     P1DIR = BIT6;                           // Set P2.6 for output.
     P1SEL = BIT6|BIT4;                      // BIT4 analog input (channel 4)
     P2DIR = BIT1|BIT5;                      // Set P2.1 and 2.2 for output.
+    P2SEL = BIT1|BIT5;
 
     // Set interupts.
     P1REN = BIT3;                           // Sets pullup state. Helps make button pushing be more consistent.
@@ -29,6 +30,9 @@ int main(void)
     TA1CCR1  = 0;                           // start off
     TA1CCTL1 = OUTMOD_7;                    // reset/set output mode
 
+    TA1CCR2  = 0;
+    TA1CCTL2 = OUTMOD_7;
+
     ADC10CTL1 = INCH_4 | ADC10DIV_3;        // ??ADC10 channel 4, clock divider 3
     ADC10CTL0 = SREF_0 | ADC10SHT_3 |       // ??VCC/VSS ref, 64 x ADC10CLKs
                ADC10ON | ADC10IE;           // ??ADC10 enable, ADC10 interrupt enable
@@ -45,27 +49,34 @@ int main(void)
 
 
         // ADC10MEM is a 10 bit number. &-ing with 0x3F8 somehow just throws away the bottom 3 bits?
-        if (colorChange = 'r') {
+        if (colorChange == 'r') {
             TA0CCR1 = ADC10MEM & 0x3F8;     // ADC10MEM is probably a value set from sampling, a few lines above?
-                                            // This will assign that value to the TA0CCR1 register, which corresponds to red?
+                                            // This will assign that value to the TA0CCR1 register, which corresponds to P1.6 aka red.
         } else if (colorChange == 'g') {
-            TA1CCR1 = ADC10MEM & 0x3F8;     // assigns the value held in ADC10MEM to the TA0CCR1 register
+            TA1CCR2 = ADC10MEM & 0x3F8;     // assigns the value held in ADC10MEM to the TA0CCR1 register
+                                            // This will assign that value to the TA0CCR?? register, which corresponds to P2.5 aka green.
         } else {
-            //TA0CCR1 = ADC10MEM & 0x3F8;     // assigns the value held in ADC10MEM to the TA0CCR1 register
+            TA1CCR1 = ADC10MEM & 0x3F8;     // assigns the value held in ADC10MEM to the TA0CCR2 register
+                                            // This will assign that value to the TA0CCR1 register, which corresponds to P2.1 aka blue.
         }
     }
 
     return 0;
 }
  
-// ADC10 interrupt service routine
+// ADC10 interrupt service routine. Aka reads current resistor value.
 #pragma vector=ADC10_VECTOR
 __interrupt void ADC10_ISR (void)
 {
-
     // Turns cpu register back on.
     __bic_SR_register_on_exit(CPUOFF);      // wake up
+}
 
+
+// Actual button interrupt.
+#pragma vector=PORT1_VECTOR
+__interrupt void button (void)
+{
     // If red, change to green. If green, change to blue. If blue, change to red.
     if (colorChange == 'r') {
         colorChange = 'g';
@@ -75,6 +86,5 @@ __interrupt void ADC10_ISR (void)
         colorChange = 'r';
     }
     P1IFG &= ~BIT3;                         // Enable interupts on 1.3
-
 }