Improved with docstrings