tons of documentation, docstrings for all modules