refactor send request