figuring out async request logic