I wasn't particularly thinking about it, but at the time I didn't particularly like passing in `self` to another thing when `self` isn't done being initialized (you'd have to do it in __init__, and there'd be at least one missing or incomplete attribute -- the plugins themselves.) Circular dependencies are a pain.

(Plus it's always uglier to use self.foo.bar rather than self.bar)

I'm not too hung up on it one way or another.