Refactor design for synchronous and asynchronous request execution