Added a ton of documentation.