better message processing