Lots of work on documentation and some minor checkstyle