private async void AssignRouteToResponder(ResponderModel responder, RouteModel defaultRoute)
        {
            if (defaultRoute.RoutePoints.Any())
            {
                var routeInstance = new Route <ResponderModel>(defaultRoute.RoutePoints.ToArray());
                routeInstance.Element = responder;

                // calculate route from the actual point to the route start point
                Geoposition responderPosition = PushpinManager.GetResponderPosition(responder);
                IEnumerable <Geoposition> routeToStartPosition = await RouteManager.CalculateRoute(responderPosition, routeInstance.RoutePositions.First());

                if (!routeToStartPosition.Any())
                {
                    // if routes api dont return any points, route directly to the position.
                    routeToStartPosition = new [] { responderPosition, routeInstance.RoutePositions.First() };
                }
                routeInstance.AddRouteToStartPoint(routeToStartPosition);
                _routeUpdater.AddRoute(routeInstance);

                var routeIndex = _predefinedRoutes.IndexOf(defaultRoute);
                _responderRoutes[responder.Id] = routeIndex;
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("FullRoute has zero elements, route could not be started");
            }
        }