add tests
documentation