use classdescriptor for composite fields
add newegg product price test; move doc downloading to a helper