demonstrated the merits of the builder class as a technique to support optional, immutable parameters
added final to the private members - note that the class members are still mutable