class NavigationRouteProcessor implements OffRouteCallback {

  RouteProgress buildNewRouteProgress(MapboxNavigation navigation, Location location) {
    DirectionsRoute directionsRoute = navigation.getRoute();
    MapboxNavigationOptions options = navigation.options();
    double completionOffset = options.maxTurnCompletionOffset();
    double maneuverZoneRadius = options.maneuverZoneRadius();
    checkNewRoute(navigation);
    stepDistanceRemaining = calculateStepDistanceRemaining(location, directionsRoute);
    checkManeuverCompletion(navigation, location, directionsRoute, completionOffset, maneuverZoneRadius);
    return assembleRouteProgress(directionsRoute);
  }

    NavigationRouteProcessor();

}