Adding a lot of documentation.