public Map<String, UUID> call() throws Exception {
    Map<String, UUID> uuidMap = new HashMap<String, UUID>();
    int requests = (int) Math.ceil(names.size() / PROFILES_PER_REQUEST);
    for (int i = 0; i < requests; i++) {
      HttpURLConnection connection = createConnection();
      String
          body =
          JSONArray.toJSONString(names.subList(i * 100, Math.min((i + 1) * 100, names.size())));
      writeBody(connection, body);
      JSONArray
          array =
          (JSONArray) jsonParser.parse(new InputStreamReader(connection.getInputStream()));
      for (Object profile : array) {
        JSONObject jsonProfile = (JSONObject) profile;
        String id = (String) jsonProfile.get("id");
        String name = (String) jsonProfile.get("name");
        UUID uuid = UUIDFetcher.getUUID(id);
        uuidMap.put(name, uuid);
      }
      if (rateLimiting && i != requests - 1) {
        Thread.sleep(100L);
      }
    }
    return uuidMap;
  }