fix using specific function for non-primmitive submessage fields