Add docstrings and module description