refactor msg