protected virtual ArgumentUri InitialiseArguments(ILinkableComponentVersion1 component1, List<Utilities.Standard1.Argument1> args1)
        {
            if (component1 == null)
            {
                var uri = new Uri(@"http://sourceforge.net/projects/fluidearth/");
                var persistence = new ArgumentUri(GetArgumentIdentity(ArgsV1Wrapper.Persistence), uri);

                // For Uri's have to use a valid Url to initialise, then change to relevant value
                Arguments.Add(persistence);
                Arguments.Add(new ArgumentExternalType(GetArgumentIdentity(ArgsV1Wrapper.EngineExternalType),
                    new ExternalType(DocumentAccessor)));

                if (_includeUpdateTimeInterval)
                    Arguments.Add(new ArgumentTimeInterval(GetArgumentIdentity(ArgsV1Wrapper.UpdateTimeInterval),
                        new TimeInterval()));

                if (args1 != null)
                    foreach (var a1 in args1)
                        Arguments.Add(new ArgumentStandard1(a1));

                return persistence;
            }

            ArgumentTimeHorizon = new Time(
                component1.TimeHorizon.Start.ModifiedJulianDay,
                component1.TimeHorizon.End.ModifiedJulianDay);

            ExternalType component1Type = new ExternalType(DocumentAccessor);
            component1Type.Initialise(component1.GetType());

            var uriP = new Uri(
                DocumentAccessor.Uri
                    .LocalPath
                    .Substring(0, DocumentAccessor.Uri.LocalPath.LastIndexOf('.')) + Caption + "Persist.xml");

            var uriPersistence = new ArgumentUri(GetArgumentIdentity(ArgsV1Wrapper.Persistence), uriP);

            uriPersistence.ValueAsString =
                new Uri(
                    DocumentAccessor.Uri
                        .LocalPath
                        .Substring(0, DocumentAccessor.Uri.LocalPath.LastIndexOf('.')) + Caption + "Persist.xml")
                .AbsoluteUri;

            Arguments.Add(uriPersistence);
            Arguments.Add(new ArgumentExternalType(GetArgumentIdentity(ArgsV1Wrapper.EngineExternalType),
                component1Type));

            if (_includeUpdateTimeInterval)
                Arguments.Add(new ArgumentTimeInterval(GetArgumentIdentity(ArgsV1Wrapper.UpdateTimeInterval),
                    new TimeInterval()));

            foreach (var a1 in args1)
                Arguments.Add(new ArgumentStandard1(a1));

            return uriPersistence;
        }