updated request handler to use a delegate instead of a mixin (easier to test)