add docs (incomplete)