request method mangling should be case insensitive
templates: extract repeating HTML into a widget lib template