better documentation
better test coverage