Yes I agree with your point, but on the other hand, both classes are different in their behaviour, the first one Options is as "model" class or a POJO to pass information. The second one OptionsBuilder, it is a builder, which returns an Options instance, it acts much more like a helper class to build Options, you can instantiate Options alone or using Builder to make your code look much readable. You can see an example in [Factories, Builders and FI](http://architects.dzone.com/news/factories-builders-and-fluent-)