docstrings
Super refactor, merging everything for 3.2