encode response data inside datum, will facilitate further middleware work
rename app to stack for consistency in middlewares
skip request on datum.has_key?(:response), move mock to middleware