MessageBuilder needn't be public