refactor request-promise