Simplified message parsing and type sniffing

and added a new field to the *_Data struct