Version2 working

Sorry, GitHub suggested that this was part of the class being constructed, not the Builder. That said, is not quite so awkward, but still seems a little bit. I can't off hand think of a different way which would preserve the validation step at the time that `build()` is called. Alternatively, you could not perform validate in the builder and instead post construction. That might be cleaner from a couple perspective, but it is kind of nice to know that your object is valid after you call `build()`. Maybe someone else has another idea?