Code cleanup
This pull request starts the process of standardization and cleanup towards a more lint-able and pep8 compliant code.
I want to first to focus only on the obvious and the one git hates the most, spacing and lines, and the missing @staticmethod annotations, but this is not purely for aesthetics, I really want to clean the house up of all the silly defaults we have laying around so we can add more rigid linting to our CI process.
But I also want to keep the PR's focused in order for more focused discussion and consensus for each part.
Pretty sure that won't work, because we're calling __str__ as if it was a static method. Maybe we should add a new method to the interface (something like def name() -> str) instead
This could use a rebase 😅
Lots of conflicts.