add docs and new functions