documentation
more tests