Documenation and unit testing