extract more message logic into methods