allow users to create their own request objects to pass to req()