refactors message methods