     case .FadeOut:
       willDisappear = true
     case .FadeOutIn:
-      let animation = CABasicAnimation()
-      animation.keyPath = "opacity"
+      let animation = CABasicAnimation(keyPath: "opacity")
       animation.fromValue = 1
       animation.toValue = 0
       animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)

        }, completion:nil)
      return
    case .Shake:
      let animation = CAKeyframeAnimation()
      animation.keyPath = "position.x"
      animation.values = [0, 30*force, -30*force, 30*force, 0]
      animation.keyTimes = [0, 0.2, 0.4, 0.6, 0.8, 1]
      animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)

      rotation.beginTime = CACurrentMediaTime() + CFTimeInterval(delay)
      layer.addAnimation(rotation, forKey: "rotation")
      
      let positionX = CAKeyframeAnimation(keyPath: "position.x")
      positionX.values = [0, 30*force, -30*force, 30*force, 0]
      positionX.keyTimes = [0, 0.2, 0.4, 0.6, 0.8, 1]
      positionX.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
