refactor request creation