minor naming clarification in DeferredResponder
request method mangling should be case insensitive
templates: extract repeating HTML into a widget lib template