refactor turn message, make check check async