refactor requester for reuse