code: @Override
  	public Endpoint next(Endpoint[] array) {
  
  		// Minimum values
  		long minCPU = Long.MAX_VALUE;
  		Endpoint minEndpoint = null;
  
  		// Processing variables
  		Endpoint endpoint;
  		int cpu;
  
  		// Find the lower CPU usage in sample
  		for (int i = 0; i < maxTries; i++) {
  
  			// Get random endpoint
  			endpoint = super.next(array);
  
  			// Check CPU usage
  			cpu = transporter.getCpuUsage(endpoint.getNodeID());
  			if (cpu <= lowCpuUsage) {
  				return endpoint;
  			}
  			if (minEndpoint == null || cpu < minCPU) {
  				minCPU = cpu;
  				minEndpoint = endpoint;
  			}
  		}
  		return minEndpoint;
  	}
docs: --- GET NEXT ENDPOINT ---