The static newInstance(Authentication) provides behavior similar to a copy constructor whereas setter methods are for building up a particular instance. I avoided the "add" language except where adding collection members. The "add" language for singleton fields arguably creates ambiguity since it's unclear whether you're adding an additional value (e.g. date) or overwriting the existing value. I think setX is clearer in that regard for fields that accept one and only one value.