refactor send control