> Also I can’t how to I get rid of texas_cities = [], if benchmark needs that array to pull from.

You get it below, and can use it later:

```ruby
texas_cities = texas.css(" .topic-subcategory-link a").map do |node|
  node.content
end
```

> Also can you explain to me the nil.to_i == 0 thing?

Sure -- checkout http://rubyfiddle.com/riddles/d30ea ... you'll see that nil, when cast to an integer, has the value of 0.  In the sample code, where you check if `conf` if nil, and use 0 if it is nil... You could just use conf instead, like this

```ruby
conf = remaining_points.index(start_point)
if conf.nil?
  route << remaining_points.slice!(conf.to_i)
else
  route << remaining_points.slice!(conf)
end
```

And, since `conf` is an index, it's an integer. So you can reduce to:

```ruby
conf = remaining_points.index(start_point)
if conf.nil?
  route << remaining_points.slice!(conf.to_i)
else
  route << remaining_points.slice!(conf.to_i)
end
```

OK, since the if/else are the same, it's really

```ruby
conf = remaining_points.index(start_point)
route << remaining_points.slice!(conf.to_i)
```

And finally

```ruby
route << remaining_points.slice!(remaining_points.index(start_point))
```

How about that?