Patch Set 1:

In a later change I add a format() method to these that actually does the "building".  If we simply renamed format() to build() then this perfectly fits the magical Builder pattern that people expect.