more docs and tests