added better docstrings