documentation first pass