msg refactor