refactor private message