request logic