move requester construction into a factory