public Vector2D pursuit(Sprite target){
		Vector2D toTarget = target.getPosition().minus(parent.getPosition());
		double relativeHeading = parent.heading.dotProduct(target.heading);
		
		if( (toTarget.dotProduct(parent.heading) > 0) && (relativeHeading < -0.95)	){
			return seek(target.position);
		}else{
			//look ahead time is proportional to the distance from parent to target
			//it's inversly proportional to the sum of the velocities.
			double lookAheadTime = toTarget.length() / (parent.getMaxSpeed() + target.getMaxSpeed());
			
			//seek to the future position
			return seek(target.velocity.scalarMult(lookAheadTime).plus(target.position));
		}
	}