@Override
  public ITestResult processAndWaitForValue(IIdRequest request)
      throws IllegalAccessException, TimeoutException, ErrorResultReceivedException {

    final String idRequest = request.getId();
    if (idRequest == null) {
      throw new IllegalAccessException("Request requires an Id to wait for a value.");
    }
    init();
    valueResponseMap.put(idRequest, VOID_RESULT);
    client.sendRequest(request);
    ValueResponse valueResponse = waitForValue(request);
    ITestResult res = new SuccessResult(valueResponse.value);
    res.setScreenShot(valueResponse.getBase64ScreenShot());
    return res;
  }
 private void handleValueResponse(Object object) {
   ValueResponse response = (ValueResponse) object;
   valueResponseMap.put(response.getId(), response);
 }