documentation and 2 unit tests