It allows the middlwares to easily keep state in the same way as this `HTTP` class: things like client key to use, etc. all have the same sort of lifecycle as the `HTTP` object they belong to. Also this just made refactoring a lot easier.