 			circle.path = UIBezierPath(ovalInRect: ovalRect).CGPath
 			circle.transform = CATransform3DMakeRotation(CGFloat(212 * M_PI / 180), 0, 0, 1)
 			
-			var origin = CGPointMake(offset.x + radius, offset.y + radius)
+			let origin = CGPointMake(offset.x + radius, offset.y + radius)
 			var checkStartPoint = CGPointZero
 			checkStartPoint.x = origin.x + radius * CGFloat(cos(212 * M_PI / 180))
 			checkStartPoint.y = origin.y + radius * CGFloat(sin(212 * M_PI / 180))
 			
-			var checkmarkPath = UIBezierPath()
+			let checkmarkPath = UIBezierPath()
 			checkmarkPath.moveToPoint(checkStartPoint)
 			
 			self.checkmarkMidPoint = CGPointMake(offset.x + radius * 0.9, offset.y + radius * 1.4)

		checkmarkAnimationGroup.animations = [checkmarkStrokeEnd, checkmarkStrokeStart]
		checkmark.addAnimation(checkmarkAnimationGroup, forKey: "checkmarkAnimation")
		
		var circleAnimationGroup = CAAnimationGroup()
		circleAnimationGroup.duration = animationDuration
		circleAnimationGroup.removedOnCompletion = false
		circleAnimationGroup.fillMode = kCAFillModeForwards
		circleAnimationGroup.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
		
		var circleStrokeEnd = CABasicAnimation(keyPath: "strokeEnd")
		circleStrokeEnd.duration = circleAnimationDuration
		if selected {
			circleStrokeEnd.beginTime = 0.0

		if layer == self.layer {
			
			var offset: CGPoint = CGPointZero
			let radius = fmin(self.bounds.width, self.bounds.height) / 2
			offset.x = (self.bounds.width - radius * 2) / 2.0
			offset.y = (self.bounds.height - radius * 2) / 2.0
			
			CATransaction.begin()
			CATransaction.setDisableActions(true)
			
			let ovalRect = CGRectMake(offset.x, offset.y, radius * 2, radius * 2)
			
			let circlePath = UIBezierPath(ovalInRect: ovalRect)
			trailCircle.path = circlePath.CGPath
			
			circle.transform = CATransform3DIdentity
