protected override void FindTrips(TripQuery query)
        {
            if (query.Stops == NumberOfStops)
                return;

            var routes = GetRoutesFromStartingTown(query.StartingTown);

            query.Response.NumberOfTrips += GetRoutesThatAreFinished(query.Desination, routes);

            query.Stops++;

            LookAtRoutesThatCouldWork(query.Desination, query.Stops, query.Response, routes);
        }
 protected abstract void FindTrips(TripQuery query);