added some docstrings