 
 let kTransformScaleKey: String = "transform.scale"
 let kPressedDownKey: String = "pressedDown"
+let kReleasedKey: String = "released"
 
 class TappableCircleButton: UIControl {
   override init(frame: CGRect) {

    pressedAnimation.keyTimes = [0.0, 1.0]
    pressedAnimation.values = [1.0, 0.85]
    pressedAnimation.timingFunctions = [CAMediaTimingFunction(name:kCAMediaTimingFunctionEaseOut)]
    pressedAnimation.
    
    UIView .animateWithDuration(0.30, animations: { () -> Void in
      self.layer.addAnimation(pressedAnimation, forKey: kPressedDownKey)
      }) { (complete: Bool?) -> Void in

    }
    
  }
}

  
  override func endTrackingWithTouch(touch: UITouch?, withEvent event: UIEvent?) {
    print("end tracking")
    if let buttonTouch: UITouch = touch {
      if let touchedView: UIView = buttonTouch.view {
        if touchedView == self {
          self.animateForReleaseState()
          
//          UIView.animateWithDuration(0.40, animations: { () -> Void in
//            self.layer.transform = CATransform3DIdentity
//            self.layer.removeAnimationForKey(kPressedDownKey)
//            }, completion: nil)
          
        }
      }
    }
  }
  
  internal func animateForHightlightedState() {
