user agent note
main structure of the reader
first pass