impl request / response logic