tests and more docs