added in a lot of documentation.