lots of spaces and docstrings to get a better score in pylint