base controller can now take one instance of a request and response which can be shared across methods