if all returned runs are out of tolerance then return run with min error
reduce number of route requests
keep track of leg order
deleted unnecessary method
refactered countExcludingNullValues
created distanceTolerance constant