code: @Override
  	public Endpoint next(Endpoint[] array) {
  
  		// Minimum values
  		long minResponseTime = Long.MAX_VALUE;
  		Endpoint minEndpoint = null;
  
  		// Processing variables
  		Endpoint endpoint;
  		long responseTime;
  
  		// Find the lower response time
  		for (int i = 0; i < maxTries; i++) {
  
  			// Get random endpoint
  			endpoint = super.next(array);
  
  			// Check response time
  			responseTime = factory.getAverageResponseTime(endpoint.getNodeID());
  			if (minEndpoint == null || responseTime < minResponseTime) {
  				minResponseTime = responseTime;
  				minEndpoint = endpoint;
  			}
  		}
  		return minEndpoint;
  	}
docs: --- GET NEXT ENDPOINT ---