a bit more conditionality around reading request body