       }
     }
     self.titlesForState.append(titleForState)
+  }
+  
+  private func addTitleColorForState(titleColorForState: TitleColorForState) {
+    
+    for (index, titleColorForStateElement) in enumerate(titleColorsForState) {
+      if titleColorForStateElement.state == titleColorForState.state {
+        self.titleColorsForState.removeAtIndex(index)
+      }
+    }
+    self.titleColorsForState.append(titleColorForState)
   }
   
   func addTarget(target: AnyObject?, action: Selector,

      } else {
        self.titleLabel.text = self.titleForState(self.currentState)
      }
    } else {
      self.imageView.image = self.imageForState(self.currentState)
      self.titleLabel.text = self.titleForState(self.currentState)
    }
    
    // Set overlay alpha.

  // Class properties
  private var imagesForState: [ImageForState] = []
  private var titlesForState: [TitleForState] = []
  private var titleColorsForState: [TitleColorForState] = []
  
  private var targets: [Target] = []
  private var currentState = UIControlState.Normal
  
