now supports better message parsing