Does this work? It looks like this relies on the array of servers persisting between calls to checkServers. If it works, I guess that's ok, but it should probably be document to prevent mysterious failures in the future.