documentation updates

a bunch of documentation updates and a set of tests I had lying around in one of my local branches