Yeah, I mean, I like that `with_self` itself is pretty easy to understand by looking at it... but I can see why the `@decorator` is confusing; I'll refactor `decorators.py` to make it easier to understand. I'ma respectfully disagree with the organization of files; I don't consider decorators so special that all decorators across the whole codebase go in a single file. And yeah, I'll add a docstring to `with_self`.