make callback optional in request-response too