Adds docs and tests