Agreed. This is something I've thought about for a while. I changed the constructor order of some of these core classes for `1.1.0` via https://github.com/doctrine/mongodb/commit/39a2b7c7567b4609a58f3ea3f408d872fdbb7440, so perhaps we can consider this for `1.2.0`? Otherwise, it'd be something for `2.0` if we acknowledge it's a BC break. I didn't before, as I assumed most users access these classes through the Connection, so that was the public API to preserve. Thoughts, @jwage?