pass back request object instead of response, allow to specify custom process function