add docs && tests