More and more and more documentation. Some code changed as a result of writting the docs