add a bit of abstraction around the Application's usage of Request type to more easily support custom protocols