added a lot of docstrings