Why do we have to retrieve the message class two different ways (messageField.getType() versus getting the builder field by name)?