refactor send msg