added more docstrings