telescoping constructor vs fluent builder pattern