Add more docs and more tests