         }, completion:nil)
       return
     case .Shake:
-      let animation = CAKeyframeAnimation()
-      animation.keyPath = "position.x"
+      let animation = CAKeyframeAnimation(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)

      layer.addAnimation(morphY, forKey: "morphY")
      return
    case .Squeeze:
      let squeezeX = CAKeyframeAnimation()
      squeezeX.keyPath = "transform.scale.x"
      squeezeX.values = [1, 1.5*force, 0.5, 1.5*force, 1]
      squeezeX.keyTimes = [0, 0.2, 0.4, 0.6, 0.8, 1]
      squeezeX.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)

      layer.addAnimation(animation, forKey: "shake")
      return
    case .Pop:
      let animation = CAKeyframeAnimation(keyPath: "transform.scale")
      animation.values = [0, 0.2*force, -0.2*force, 0.2*force, 0]
      animation.keyTimes = [0, 0.2, 0.4, 0.6, 0.8, 1]
      animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
