def METHOD_NAME(cls, values):
    start_time = time.time()
    #Get out all the fields names to make them easier to reference
    method = values['method']
    reference = values['reference']
    timeout_seconds = values['timeout_seconds']
    headers = values['headers']
    allow_redirects = values['allow_redirects']
    verify_ssl = values['verify_ssl']
    allowed_http_codes = values['allowed_http_codes']
    if not (reference.startswith("http://") or reference.startswith("https://")):
        raise(ValueError(f"Reference {reference} does not begin with http(s). Only http(s) references are supported"))
    try:
        get = method(reference, timeout=timeout_seconds, 
                        headers = headers, 
                        allow_redirects=allow_redirects, verify=verify_ssl)
        resolution_time = time.time() - start_time
        values['status_code'] = get.status_code
        values['resolution_time'] = resolution_time
        if reference != get.url:
            values['redirect'] = get.url
        else:
            values['redirect'] = None #None is also already the default
        #Returns the updated values and sets them for the object
        if get.status_code in allowed_http_codes:
            values['valid'] = True
        else:
            #print(f"Unacceptable HTTP Status Code {get.status_code} received for {reference}")
            values['valid'] = False
        return values    
    except Exception as e:
        resolution_time = time.time() - start_time
        #print(f"Reference {reference} was not reachable after {resolution_time:.2f} seconds")
        values['status_code'] = 0
        values['valid'] = False
        values['redirect'] = None
        values['resolution_time'] = resolution_time
        return values