Rework to support services of different shapes.

In particular taking more input than HttpServletRequest