reimplement as subclass of ActionDispatch::Static