added request/response subfunctions