better message receiving