public static ReqAndHierL1 Create(
            System.String l1Field2,
            ImmutableObjectGraph.Optional <System.String> l1Field1 = default(ImmutableObjectGraph.Optional <System.String>))
        {
            var identity = Optional.For(NewIdentity());

            return(DefaultInstance.WithFactory(
                       l1Field1: Optional.For(l1Field1.GetValueOrDefault(DefaultInstance.L1Field1)),
                       l1Field2: Optional.For(l1Field2),
                       identity: Optional.For(identity.GetValueOrDefault(DefaultInstance.Identity))));
        }