Builder pattern typesafe improvement