added top-level documentation
part 3 done, plenty of comments
polished up part 3, more comments
part 4
part5