add docstrings and use separate description from usage text.