private Double shouldWeBreak(double desiredSpeed, World world) {

    TrackModel track = world.getTrackModel();
    double distance =
        track.getLaneDistanceBetweenPieces(
            track.getCurrent(), track.getNextCurve(), world.getMyLane());
    double inPieceDistance = world.myPhysics.getPreviousPosition().inPieceDistance;
    double distanceToCurve = distance - inPieceDistance;

    double endSpeed;
    double newThrottle = 0;

    endSpeed = world.getMySpeed();

    int ticksTillCurve = ticksToRunDistance(distanceToCurve, world, newThrottle);

    if (ticksTillCurve == -1) return null;

    for (int i = 0; i < ticksTillCurve; i++) {
      endSpeed =
          world.myPhysics.getAccelerationEstimator().getSpeedOnNextTick(endSpeed, newThrottle);
    }

    // Now we have reached the point that
    if (endSpeed > desiredSpeed) {
      return 0d;
    } else {
      return null;
    }
  }