add unit tests
docs