CGMutablePathRef thePath = CGPathCreateMutable();
CGPathMoveToPoint(thePath,NULL,aLayer.position.x, aLayer.position.y - 10);
CGPathAddCurveToPoint(thePath,NULL,
aLayer.position.x, aLayer.position.y - 30,
aLayer.position.x, aLayer.position.y - 50,
aPoint.x, aPoint.y);
CAKeyframeAnimation *theAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
theAnimation.path = thePath;
theAnimation.duration = duration;
CFRelease(thePath);
theAnimation.removedOnCompletion = YES;
[aLayer addAnimation:theAnimation forKey:@"position"];