Adding in a bunch of documentation and what not