added extensive documentation

In case anyone in Librarians Coding group wants to read through this in
detail to see how it was done.