Add a bunch of documentation.