Repository: spectreconsole/spectre.console

Issue:
Built-in parameter `--version` conflicts with existing one
**Information**
 - OS: `Windows`
 - Version: `Spectre.Console.Cli` v0.49.0
 - Terminal: `Windows Terminal / Oh My Posh` 

**Describe the bug**
Recent `Spectre.Console.Cli` versions fixed the issue with the new built-in `--version` parameter when _running_ the application, but we can still spot this one when using `--help`. My application is using `--version|-v` for a dedicated usage for years, so I don't want to see nor use the new `Prints version information` in the help menu. Is there a way to remove this ? Thanks ! 

**To Reproduce**
You can use:
https://github.com/sailro/DependencyPath
https://www.nuget.org/packages/DependencyPath#readme-body-tab
with the following command `dependency-path --help`

**Expected behavior**
I don't want to see a conflicting `--version` parameter with my own.

**Screenshots**
![image](https://github.com/spectreconsole/spectre.console/assets/638167/f01602c9-a482-47f3-8a04-0393c677950d)

**Additional context**
cc @FrankRay78 unfortunately, this simple little feature seems to be causing so many problems since its introduction.

Thanks !

---
Please upvote :+1: this issue if you are interested in it.


Hints:
That’s unfortunate. We should make the ʼ-—versionʼ option completely opt-in and ensure it’s easy to override the behaviour if wanted.

I’m not super familiar with the changes that went into this specific addition, but I will take a look tonight and see if we can’t push a 0.49.1 version out that fixes this.
Thank you @patriksvensson , yes I fully agree. Making this `opt-in` would be great. No risk to break existing applications.

Patch:
diff --git a/dotnet-tools.json b/dotnet-tools.json
index b0036d859..a7f9d036b 100644
--- a/dotnet-tools.json
+++ b/dotnet-tools.json
@@ -13,6 +13,12 @@
       "commands": [
         "dotnet-example"
       ]
+    },
+    "verify.tool": {
+      "version": "0.6.0",
+      "commands": [
+        "dotnet-verify"
+      ]
     }
   }
 }
\ No newline at end of file
diff --git a/src/Spectre.Console.Cli/ConfiguratorExtensions.cs b/src/Spectre.Console.Cli/ConfiguratorExtensions.cs
index eb3f1be19..80895e302 100644
--- a/src/Spectre.Console.Cli/ConfiguratorExtensions.cs
+++ b/src/Spectre.Console.Cli/ConfiguratorExtensions.cs
@@ -82,7 +82,7 @@ public static IConfigurator SetApplicationName(this IConfigurator configurator,
     }
 
     /// <summary>
-    /// Overrides the auto-detected version of the application.
+    /// Sets the version of the application.
     /// </summary>
     /// <param name="configurator">The configurator.</param>
     /// <param name="version">The version of application.</param>
@@ -98,6 +98,25 @@ public static IConfigurator SetApplicationVersion(this IConfigurator configurato
         return configurator;
     }
 
+    /// <summary>
+    /// Uses the version retrieved from the <see cref="AssemblyInformationalVersionAttribute"/>
+    /// as the application's version.
+    /// </summary>
+    /// <param name="configurator">The configurator.</param>
+    /// <returns>A configurator that can be used to configure the application further.</returns>
+    public static IConfigurator UseAssemblyInformationalVersion(this IConfigurator configurator)
+    {
+        if (configurator == null)
+        {
+            throw new ArgumentNullException(nameof(configurator));
+        }
+
+        configurator.Settings.ApplicationVersion =
+            VersionHelper.GetVersion(Assembly.GetEntryAssembly());
+
+        return configurator;
+    }
+
     /// <summary>
     /// Hides the <c>DEFAULT</c> column that lists default values coming from the
     /// <see cref="DefaultValueAttribute"/> in the options help text.
diff --git a/src/Spectre.Console.Cli/Help/HelpProvider.cs b/src/Spectre.Console.Cli/Help/HelpProvider.cs
index 222b3d4ad..ca18f0fbb 100644
--- a/src/Spectre.Console.Cli/Help/HelpProvider.cs
+++ b/src/Spectre.Console.Cli/Help/HelpProvider.cs
@@ -41,7 +41,7 @@ private sealed class HelpArgument
         public bool Required { get; }
         public string? Description { get; }
 
-        public HelpArgument(string name, int position, bool required, string? description)
+        private HelpArgument(string name, int position, bool required, string? description)
         {
             Name = name;
             Position = position;
@@ -68,7 +68,7 @@ private sealed class HelpOption
         public string? Description { get; }
         public object? DefaultValue { get; }
 
-        public HelpOption(string? @short, string? @long, string? @value, bool? valueIsOptional, string? description, object? defaultValue)
+        private HelpOption(string? @short, string? @long, string? @value, bool? valueIsOptional, string? description, object? defaultValue)
         {
             Short = @short;
             Long = @long;
@@ -78,17 +78,27 @@ public HelpOption(string? @short, string? @long, string? @value, bool? valueIsOp
             DefaultValue = defaultValue;
         }
 
-        public static IReadOnlyList<HelpOption> Get(ICommandInfo? command, HelpProviderResources resources)
+        public static IReadOnlyList<HelpOption> Get(
+            ICommandModel model,
+            ICommandInfo? command,
+            HelpProviderResources resources)
         {
-            var parameters = new List<HelpOption>();
-            parameters.Add(new HelpOption("h", "help", null, null, resources.PrintHelpDescription, null));
+            var parameters = new List<HelpOption>
+            {
+                new HelpOption("h", "help", null, null, resources.PrintHelpDescription, null),
+            };
 
             // Version information applies to the entire application
             // Include the "-v" option in the help when at the root of the command line application
             // Don't allow the "-v" option if users have specified one or more sub-commands
-            if ((command == null || command?.Parent == null) && !(command?.IsBranch ?? false))
+            if ((command?.Parent == null) && !(command?.IsBranch ?? false))
             {
-                parameters.Add(new HelpOption("v", "version", null, null, resources.PrintVersionDescription, null));
+                // Only show the version command if there is an
+                // application version set.
+                if (model.ApplicationVersion != null)
+                {
+                    parameters.Add(new HelpOption("v", "version", null, null, resources.PrintVersionDescription, null));
+                }
             }
 
             parameters.AddRange(command?.Parameters.OfType<ICommandOption>().Where(o => !o.IsHidden).Select(o =>
@@ -101,11 +111,6 @@ public static IReadOnlyList<HelpOption> Get(ICommandInfo? command, HelpProviderR
         }
     }
 
-    internal Composer NewComposer()
-    {
-        return new Composer(RenderMarkupInline);
-    }
-
     /// <summary>
     /// Initializes a new instance of the <see cref="HelpProvider"/> class.
     /// </summary>
@@ -383,7 +388,7 @@ public virtual IEnumerable<IRenderable> GetArguments(ICommandModel model, IComma
     public virtual IEnumerable<IRenderable> GetOptions(ICommandModel model, ICommandInfo? command)
     {
         // Collect all options into a single structure.
-        var parameters = HelpOption.Get(command, resources);
+        var parameters = HelpOption.Get(model, command, resources);
         if (parameters.Count == 0)
         {
             return Array.Empty<IRenderable>();
@@ -420,7 +425,7 @@ public virtual IEnumerable<IRenderable> GetOptions(ICommandModel model, ICommand
 
             if (defaultValueColumn)
             {
-                columns.Add(GetOptionDefaultValue(option.DefaultValue));
+                columns.Add(GetDefaultValueForOption(option.DefaultValue));
             }
 
             columns.Add(NewComposer().Text(option.Description?.TrimEnd('.') ?? " "));
@@ -433,60 +438,6 @@ public virtual IEnumerable<IRenderable> GetOptions(ICommandModel model, ICommand
         return result;
     }
 
-    private IRenderable GetOptionParts(HelpOption option)
-    {
-        var composer = NewComposer();
-
-        if (option.Short != null)
-        {
-            composer.Text("-").Text(option.Short);
-            if (option.Long != null)
-            {
-                composer.Text(", ");
-            }
-        }
-        else
-        {
-            composer.Text("  ");
-            if (option.Long != null)
-            {
-                composer.Text("  ");
-            }
-        }
-
-        if (option.Long != null)
-        {
-            composer.Text("--").Text(option.Long);
-        }
-
-        if (option.Value != null)
-        {
-            composer.Text(" ");
-            if (option.ValueIsOptional ?? false)
-            {
-                composer.Style(helpStyles?.Options?.OptionalOption ?? Style.Plain, $"[{option.Value}]");
-            }
-            else
-            {
-                composer.Style(helpStyles?.Options?.RequiredOption ?? Style.Plain, $"<{option.Value}>");
-            }
-        }
-
-        return composer;
-    }
-
-    private IRenderable GetOptionDefaultValue(object? defaultValue)
-    {
-        return defaultValue switch
-        {
-            null => NewComposer().Text(" "),
-            "" => NewComposer().Text(" "),
-            Array { Length: 0 } => NewComposer().Text(" "),
-            Array array => NewComposer().Join(", ", array.Cast<object>().Select(o => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, o.ToString() ?? string.Empty))),
-            _ => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, defaultValue?.ToString() ?? string.Empty),
-        };
-    }
-
     /// <summary>
     /// Gets the commands section of the help information.
     /// </summary>
@@ -556,4 +507,63 @@ public virtual IEnumerable<IRenderable> GetFooter(ICommandModel model, ICommandI
     {
         yield break;
     }
+
+    private Composer NewComposer()
+    {
+        return new Composer(RenderMarkupInline);
+    }
+
+    private IRenderable GetOptionParts(HelpOption option)
+    {
+        var composer = NewComposer();
+
+        if (option.Short != null)
+        {
+            composer.Text("-").Text(option.Short);
+            if (option.Long != null)
+            {
+                composer.Text(", ");
+            }
+        }
+        else
+        {
+            composer.Text("  ");
+            if (option.Long != null)
+            {
+                composer.Text("  ");
+            }
+        }
+
+        if (option.Long != null)
+        {
+            composer.Text("--").Text(option.Long);
+        }
+
+        if (option.Value != null)
+        {
+            composer.Text(" ");
+            if (option.ValueIsOptional ?? false)
+            {
+                composer.Style(helpStyles?.Options?.OptionalOption ?? Style.Plain, $"[{option.Value}]");
+            }
+            else
+            {
+                composer.Style(helpStyles?.Options?.RequiredOption ?? Style.Plain, $"<{option.Value}>");
+            }
+        }
+
+        return composer;
+    }
+
+    private Composer GetDefaultValueForOption(object? defaultValue)
+    {
+        return defaultValue switch
+        {
+            null => NewComposer().Text(" "),
+            "" => NewComposer().Text(" "),
+            Array { Length: 0 } => NewComposer().Text(" "),
+            Array array => NewComposer().Join(", ", array.Cast<object>().Select(o => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, o.ToString() ?? string.Empty))),
+            _ => NewComposer().Style(helpStyles?.Options?.DefaultValue ?? Style.Plain, defaultValue?.ToString() ?? string.Empty),
+        };
+    }
 }
\ No newline at end of file
diff --git a/src/Spectre.Console.Cli/Help/ICommandModel.cs b/src/Spectre.Console.Cli/Help/ICommandModel.cs
index e7fe5f728..2872bf889 100644
--- a/src/Spectre.Console.Cli/Help/ICommandModel.cs
+++ b/src/Spectre.Console.Cli/Help/ICommandModel.cs
@@ -9,4 +9,9 @@ public interface ICommandModel : ICommandContainer
     /// Gets the name of the application.
     /// </summary>
     string ApplicationName { get; }
+
+    /// <summary>
+    /// Gets the version of the application.
+    /// </summary>
+    string? ApplicationVersion { get; }
 }
diff --git a/src/Spectre.Console.Cli/Internal/CommandExecutor.cs b/src/Spectre.Console.Cli/Internal/CommandExecutor.cs
index 2c2b1594f..22eeb2084 100644
--- a/src/Spectre.Console.Cli/Internal/CommandExecutor.cs
+++ b/src/Spectre.Console.Cli/Internal/CommandExecutor.cs
@@ -39,9 +39,12 @@ public async Task<int> Execute(IConfiguration configuration, IEnumerable<string>
                 if (firstArgument.Equals("--version", StringComparison.OrdinalIgnoreCase) ||
                     firstArgument.Equals("-v", StringComparison.OrdinalIgnoreCase))
                 {
-                    var console = configuration.Settings.Console.GetConsole();
-                    console.WriteLine(ResolveApplicationVersion(configuration));
-                    return 0;
+                    if (configuration.Settings.ApplicationVersion != null)
+                    {
+                        var console = configuration.Settings.Console.GetConsole();
+                        console.MarkupLine(configuration.Settings.ApplicationVersion);
+                        return 0;
+                    }
                 }
             }
         }
@@ -126,13 +129,6 @@ private CommandTreeParserResult ParseCommandLineArguments(CommandModel model, Co
         return parsedResult;
     }
 
-    private static string ResolveApplicationVersion(IConfiguration configuration)
-    {
-        return
-            configuration.Settings.ApplicationVersion ?? // potential override
-            VersionHelper.GetVersion(Assembly.GetEntryAssembly());
-    }
-
     private static async Task<int> Execute(
         CommandTree leaf,
         CommandTree tree,
diff --git a/src/Spectre.Console.Cli/Internal/Modelling/CommandModel.cs b/src/Spectre.Console.Cli/Internal/Modelling/CommandModel.cs
index 3da02da4b..721960bd3 100644
--- a/src/Spectre.Console.Cli/Internal/Modelling/CommandModel.cs
+++ b/src/Spectre.Console.Cli/Internal/Modelling/CommandModel.cs
@@ -3,6 +3,7 @@ namespace Spectre.Console.Cli;
 internal sealed class CommandModel : ICommandContainer, ICommandModel
 {
     public string? ApplicationName { get; }
+    public string? ApplicationVersion { get; }
     public ParsingMode ParsingMode { get; }
     public IList<CommandInfo> Commands { get; }
     public IList<string[]> Examples { get; }
@@ -20,9 +21,10 @@ public CommandModel(
         IEnumerable<string[]> examples)
     {
         ApplicationName = settings.ApplicationName;
+        ApplicationVersion = settings.ApplicationVersion;
         ParsingMode = settings.ParsingMode;
-        Commands = new List<CommandInfo>(commands ?? Array.Empty<CommandInfo>());
-        Examples = new List<string[]>(examples ?? Array.Empty<string[]>());
+        Commands = new List<CommandInfo>(commands);
+        Examples = new List<string[]>(examples);
     }
 
     /// <summary>


Test patch:
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/ArgumentOrder.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/ArgumentOrder.Output.verified.txt
index 6e29ed297..9a82776df 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/ArgumentOrder.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/ArgumentOrder.Output.verified.txt
@@ -1,4 +1,4 @@
-USAGE:
+﻿USAGE:
     myapp <FOO> <BAR> <BAZ> <CORGI> [QUX] [OPTIONS]
 
 ARGUMENTS:
@@ -9,5 +9,4 @@ ARGUMENTS:
     [QUX]
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
\ No newline at end of file
+    -h, --help    Prints help information
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Configured_By_Instance.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Configured_By_Instance.Output.verified.txt
index e4a56cd59..f2bd53972 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Configured_By_Instance.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Configured_By_Instance.Output.verified.txt
@@ -1,15 +1,14 @@
---------------------------------------
----      CUSTOM HELP PROVIDER      ---
---------------------------------------
-
-USAGE:
-    myapp [OPTIONS] <COMMAND>
-
-OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
-
-COMMANDS:
-    dog <AGE>    The dog command
-
+﻿--------------------------------------
+---      CUSTOM HELP PROVIDER      ---
+--------------------------------------
+
+USAGE:
+    myapp [OPTIONS] <COMMAND>
+
+OPTIONS:
+    -h, --help    Prints help information
+
+COMMANDS:
+    dog <AGE>    The dog command
+
 Version 1.0
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Registered_By_Instance.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Registered_By_Instance.Output.verified.txt
index ad99fbb63..f2bd53972 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Registered_By_Instance.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Custom_Help_Registered_By_Instance.Output.verified.txt
@@ -1,4 +1,4 @@
---------------------------------------
+﻿--------------------------------------
 ---      CUSTOM HELP PROVIDER      ---
 --------------------------------------
 
@@ -6,8 +6,7 @@ USAGE:
     myapp [OPTIONS] <COMMAND>
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     dog <AGE>    The dog command
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default.Output.verified.txt
index aa1978d8b..b53a06eb8 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default.Output.verified.txt
@@ -1,4 +1,4 @@
-DESCRIPTION:
+﻿DESCRIPTION:
 The lion command.
 
 USAGE:
@@ -10,8 +10,7 @@ ARGUMENTS:
 
 OPTIONS:
                              DEFAULT
-    -h, --help                                   Prints help information
-    -v, --version                                Prints version information
+    -h, --help                                   Prints help information
     -a, --alive                                  Indicates whether or not the animal is alive
     -n, --name <VALUE>
         --agility <VALUE>    10                  The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Examples.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Examples.Output.verified.txt
index cd5b1e4fe..58c2ec53b 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Examples.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Examples.Output.verified.txt
@@ -1,4 +1,4 @@
-DESCRIPTION:
+﻿DESCRIPTION:
 The dog command.
 
 USAGE:
@@ -18,7 +18,6 @@ ARGUMENTS:
 
 OPTIONS:
     -h, --help            Prints help information
-    -v, --version         Prints version information
     -a, --alive           Indicates whether or not the animal is alive
     -n, --name <VALUE>
     -g, --good-boy
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args.Output.verified.txt
index aa1978d8b..b53a06eb8 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args.Output.verified.txt
@@ -1,4 +1,4 @@
-DESCRIPTION:
+﻿DESCRIPTION:
 The lion command.
 
 USAGE:
@@ -10,8 +10,7 @@ ARGUMENTS:
 
 OPTIONS:
                              DEFAULT
-    -h, --help                                   Prints help information
-    -v, --version                                Prints version information
+    -h, --help                                   Prints help information
     -a, --alive                                  Indicates whether or not the animal is alive
     -n, --name <VALUE>
         --agility <VALUE>    10                  The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_DE.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_DE.verified.txt
index ba0602d87..8f21e0057 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_DE.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_DE.verified.txt
@@ -1,4 +1,4 @@
-BESCHREIBUNG:
+﻿BESCHREIBUNG:
 The lion command.
 
 VERWENDUNG:
@@ -14,7 +14,6 @@ ARGUMENTE:
 OPTIONEN:
                              STANDARDWERT
     -h, --help                                   Zeigt Hilfe an
-    -v, --version                                Zeigt Versionsinformationen an
     -a, --alive                                  Indicates whether or not the animal is alive
     -n, --name <VALUE>
         --agility <VALUE>    10                  The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_EN.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_EN.verified.txt
index d4a593379..905156f8a 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_EN.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_EN.verified.txt
@@ -1,4 +1,4 @@
-DESCRIPTION:
+﻿DESCRIPTION:
 The lion command.
 
 USAGE:
@@ -13,8 +13,7 @@ ARGUMENTS:
 
 OPTIONS:
                              DEFAULT
-    -h, --help                                   Prints help information
-    -v, --version                                Prints version information
+    -h, --help                                   Prints help information
     -a, --alive                                  Indicates whether or not the animal is alive
     -n, --name <VALUE>
         --agility <VALUE>    10                  The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_FR.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_FR.verified.txt
index 126de22d6..a555c1c1c 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_FR.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_FR.verified.txt
@@ -1,4 +1,4 @@
-DESCRIPTION:
+﻿DESCRIPTION:
 The lion command.
 
 UTILISATION:
@@ -13,8 +13,7 @@ ARGUMENTS:
 
 OPTIONS:
                              DÉFAUT
-    -h, --help                                   Affiche l'aide
-    -v, --version                                Affiche la version
+    -h, --help                                   Affiche l'aide
     -a, --alive                                  Indicates whether or not the animal is alive
     -n, --name <VALUE>
         --agility <VALUE>    10                  The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_SV.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_SV.verified.txt
index 2292492b8..45fd6c0c4 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_SV.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional.Output_SV.verified.txt
@@ -1,4 +1,4 @@
-BESKRIVNING:
+﻿BESKRIVNING:
 The lion command.
 
 ANVÄNDING:
@@ -14,7 +14,6 @@ ARGUMENT:
 VAL:
                              STANDARD
     -h, --help                                   Skriver ut hjälpinformation
-    -v, --version                                Skriver ut versionsnummer
     -a, --alive                                  Indicates whether or not the animal is alive
     -n, --name <VALUE>
         --agility <VALUE>    10                  The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_BoldHeadings.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_BoldHeadings.Output.verified.txt
index 4bea738da..5b0f4264a 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_BoldHeadings.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_BoldHeadings.Output.verified.txt
@@ -1,4 +1,4 @@
-[bold]DESCRIPTION:[/]
+﻿[bold]DESCRIPTION:[/]
 The lion command.
 
 [bold]USAGE:[/]
@@ -14,7 +14,6 @@ The lion command.
 []OPTIONS:[/]
                                     []DEFAULT[/]
     -h, --help                                                    Prints help information
-    -v, --version                                                 Prints version information
     -a, --alive                                                   Indicates whether or not the animal is alive
     -n, --name []<VALUE>[/]
         --agility []<VALUE>[/]      []10[/]                       The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_Default.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_Default.Output.verified.txt
index 30421ace0..82570d3aa 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_Default.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_Default.Output.verified.txt
@@ -1,4 +1,4 @@
-[yellow]DESCRIPTION:[/]
+﻿[yellow]DESCRIPTION:[/]
 The lion command.
 
 [yellow]USAGE:[/]
@@ -14,7 +14,6 @@ The lion command.
 [yellow]OPTIONS:[/]
                                         [lime]DEFAULT[/]
     -h, --help                                                                Prints help information
-    -v, --version                                                             Prints version information
     -a, --alive                                                               Indicates whether or not the animal is alive
     -n, --name [silver]<VALUE>[/]
         --agility [silver]<VALUE>[/]    [bold]10[/]                           The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_None.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_None.Output.verified.txt
index a0bb7b25a..2b92a199c 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_None.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Default_Without_Args_Additional_Style_None.Output.verified.txt
@@ -1,4 +1,4 @@
-[]DESCRIPTION:[/]
+﻿[]DESCRIPTION:[/]
 The lion command.
 
 []USAGE:[/]
@@ -14,7 +14,6 @@ The lion command.
 []OPTIONS:[/]
                                     []DEFAULT[/]
     -h, --help                                                    Prints help information
-    -v, --version                                                 Prints version information
     -a, --alive                                                   Indicates whether or not the animal is alive
     -n, --name []<VALUE>[/]
         --agility []<VALUE>[/]      []10[/]                       The agility between 0 and 100
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Description_No_Trailing_Period.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Description_No_Trailing_Period.Output.verified.txt
index b53e7717e..9662e05f6 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Description_No_Trailing_Period.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Description_No_Trailing_Period.Output.verified.txt
@@ -1,9 +1,8 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     dog <AGE>    The dog command.
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Command_Options.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Command_Options.Output.verified.txt
index 7288aefa5..b96464bf4 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Command_Options.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Command_Options.Output.verified.txt
@@ -1,10 +1,9 @@
-USAGE:
+﻿USAGE:
     myapp <FOO> [OPTIONS]
 
 ARGUMENTS:
     <FOO>    Dummy argument FOO
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
-        --baz        Dummy option BAZ
\ No newline at end of file
+    -h, --help    Prints help information
+        --baz     Dummy option BAZ
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Commands.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Commands.Output.verified.txt
index 6a792dad6..212276974 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Commands.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Hidden_Commands.Output.verified.txt
@@ -1,9 +1,8 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     dog <AGE>    The dog command
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/NoDescription.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/NoDescription.Output.verified.txt
index f214d32a4..7e3e079cd 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/NoDescription.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/NoDescription.Output.verified.txt
@@ -1,9 +1,8 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     bar
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/NoVersion.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/NoVersion.Output.verified.txt
new file mode 100644
index 000000000..9a82776df
--- /dev/null
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/NoVersion.Output.verified.txt
@@ -0,0 +1,12 @@
+﻿USAGE:
+    myapp <FOO> <BAR> <BAZ> <CORGI> [QUX] [OPTIONS]
+
+ARGUMENTS:
+    <FOO>
+    <BAR>
+    <BAZ>
+    <CORGI>
+    [QUX]
+
+OPTIONS:
+    -h, --help    Prints help information
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root.Output.verified.txt
index 366b6b38d..aa3dcc3bf 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root.Output.verified.txt
@@ -1,9 +1,8 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     dog <AGE>           The dog command
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Command.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Command.Output.verified.txt
index c660618c1..2c6e498be 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Command.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Command.Output.verified.txt
@@ -1,4 +1,4 @@
-DESCRIPTION:
+﻿DESCRIPTION:
 The horse command.
 
 USAGE:
@@ -10,7 +10,6 @@ ARGUMENTS:
 OPTIONS:
                            DEFAULT
     -h, --help                         Prints help information
-    -v, --version                      Prints version information
     -a, --alive                        Indicates whether or not the animal is alive
     -n, --name <VALUE>
     -d, --day <MON|TUE>
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples.Output.verified.txt
index 3488e38c2..82ba4675d 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples.Output.verified.txt
@@ -1,4 +1,4 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 EXAMPLES:
@@ -16,8 +16,7 @@ EXAMPLES:
     myapp horse --name Spirit
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     dog <AGE>    The dog command
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children.Output.verified.txt
index 47e373aa3..e2b67c8a3 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children.Output.verified.txt
@@ -1,4 +1,4 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 EXAMPLES:
@@ -9,8 +9,7 @@ EXAMPLES:
     myapp dog --name Daisy
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     dog <AGE>    The dog command
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Eight.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Eight.Output.verified.txt
index 3e5a6d939..7b486e1fe 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Eight.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Eight.Output.verified.txt
@@ -1,20 +1,19 @@
-USAGE:
-    myapp [OPTIONS] <COMMAND>
-
-EXAMPLES:
-    myapp dog --name Rufus --age 12 --good-boy
-    myapp dog --name Luna
-    myapp dog --name Charlie
-    myapp dog --name Bella
-    myapp dog --name Daisy
-    myapp dog --name Milo
-    myapp horse --name Brutus
-    myapp horse --name Sugar --IsAlive false
-
-OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
-
-COMMANDS:
-    dog <AGE>    The dog command
+﻿USAGE:
+    myapp [OPTIONS] <COMMAND>
+
+EXAMPLES:
+    myapp dog --name Rufus --age 12 --good-boy
+    myapp dog --name Luna
+    myapp dog --name Charlie
+    myapp dog --name Bella
+    myapp dog --name Daisy
+    myapp dog --name Milo
+    myapp horse --name Brutus
+    myapp horse --name Sugar --IsAlive false
+
+OPTIONS:
+    -h, --help    Prints help information
+
+COMMANDS:
+    dog <AGE>    The dog command
     horse        The horse command
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_None.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_None.Output.verified.txt
index 3377d2a96..212276974 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_None.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_None.Output.verified.txt
@@ -1,10 +1,9 @@
-USAGE:
-    myapp [OPTIONS] <COMMAND>
-
-OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
-
-COMMANDS:
-    dog <AGE>    The dog command
+﻿USAGE:
+    myapp [OPTIONS] <COMMAND>
+
+OPTIONS:
+    -h, --help    Prints help information
+
+COMMANDS:
+    dog <AGE>    The dog command
     horse        The horse command
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Twelve.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Twelve.Output.verified.txt
index 8924b5555..82ba4675d 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Twelve.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Children_Twelve.Output.verified.txt
@@ -1,24 +1,23 @@
-USAGE:
-    myapp [OPTIONS] <COMMAND>
-
-EXAMPLES:
-    myapp dog --name Rufus --age 12 --good-boy
-    myapp dog --name Luna
-    myapp dog --name Charlie
-    myapp dog --name Bella
-    myapp dog --name Daisy
-    myapp dog --name Milo
-    myapp horse --name Brutus
-    myapp horse --name Sugar --IsAlive false
-    myapp horse --name Cash
-    myapp horse --name Dakota
-    myapp horse --name Cisco
-    myapp horse --name Spirit
-
-OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
-
-COMMANDS:
-    dog <AGE>    The dog command
+﻿USAGE:
+    myapp [OPTIONS] <COMMAND>
+
+EXAMPLES:
+    myapp dog --name Rufus --age 12 --good-boy
+    myapp dog --name Luna
+    myapp dog --name Charlie
+    myapp dog --name Bella
+    myapp dog --name Daisy
+    myapp dog --name Milo
+    myapp horse --name Brutus
+    myapp horse --name Sugar --IsAlive false
+    myapp horse --name Cash
+    myapp horse --name Dakota
+    myapp horse --name Cisco
+    myapp horse --name Spirit
+
+OPTIONS:
+    -h, --help    Prints help information
+
+COMMANDS:
+    dog <AGE>    The dog command
     horse        The horse command
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs.Output.verified.txt
index 8b753619b..088dd1b82 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs.Output.verified.txt
@@ -1,4 +1,4 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 EXAMPLES:
@@ -9,8 +9,7 @@ EXAMPLES:
     myapp animal dog --name Daisy
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     animal    The animal command
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Eight.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Eight.Output.verified.txt
index 63bded9a9..e236c9b54 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Eight.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Eight.Output.verified.txt
@@ -12,8 +12,7 @@ EXAMPLES:
     myapp animal horse --name Sugar --IsAlive false
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     animal    The animal command
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_None.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_None.Output.verified.txt
index 53228a04c..75de3a148 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_None.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_None.Output.verified.txt
@@ -1,9 +1,8 @@
-USAGE:
+﻿USAGE:
     myapp [OPTIONS] <COMMAND>
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     animal    The animal command
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Twelve.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Twelve.Output.verified.txt
index 07178cbc7..b6b89b68a 100644
--- a/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Twelve.Output.verified.txt
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Root_Examples_Leafs_Twelve.Output.verified.txt
@@ -16,8 +16,7 @@ EXAMPLES:
     myapp animal horse --name Spirit
 
 OPTIONS:
-    -h, --help       Prints help information
-    -v, --version    Prints version information
+    -h, --help    Prints help information
 
 COMMANDS:
     animal    The animal command
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Expectations/Help/Version.Output.verified.txt b/test/Spectre.Console.Cli.Tests/Expectations/Help/Version.Output.verified.txt
new file mode 100644
index 000000000..a07a26663
--- /dev/null
+++ b/test/Spectre.Console.Cli.Tests/Expectations/Help/Version.Output.verified.txt
@@ -0,0 +1,13 @@
+﻿USAGE:
+    myapp <FOO> <BAR> <BAZ> <CORGI> [QUX] [OPTIONS]
+
+ARGUMENTS:
+    <FOO>
+    <BAR>
+    <BAZ>
+    <CORGI>
+    [QUX]
+
+OPTIONS:
+    -h, --help       Prints help information
+    -v, --version    Prints version information
\ No newline at end of file
diff --git a/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Help.cs b/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Help.cs
index 3c2b8ca8d..9ce30cc24 100644
--- a/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Help.cs
+++ b/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Help.cs
@@ -950,6 +950,45 @@ public Task Should_List_Arguments_In_Correct_Order()
             return Verifier.Verify(result.Output);
         }
 
+        [Fact]
+        [Expectation("NoVersion")]
+        public Task Should_Not_Include_Application_Version_If_Not_Set()
+        {
+            // Given
+            var fixture = new CommandAppTester();
+            fixture.SetDefaultCommand<GenericCommand<ArgumentOrderSettings>>();
+            fixture.Configure(config =>
+            {
+                config.SetApplicationName("myapp");
+            });
+
+            // When
+            var result = fixture.Run("--help");
+
+            // Then
+            return Verifier.Verify(result.Output);
+        }
+
+        [Fact]
+        [Expectation("Version")]
+        public Task Should_Include_Application_Version_If_Set()
+        {
+            // Given
+            var fixture = new CommandAppTester();
+            fixture.SetDefaultCommand<GenericCommand<ArgumentOrderSettings>>();
+            fixture.Configure(config =>
+            {
+                config.SetApplicationName("myapp");
+                config.SetApplicationVersion("0.49.1");
+            });
+
+            // When
+            var result = fixture.Run("--help");
+
+            // Then
+            return Verifier.Verify(result.Output);
+        }
+
         [Fact]
         [Expectation("Hidden_Command_Options")]
         public Task Should_Not_Show_Hidden_Command_Options()
diff --git a/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Version.cs b/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Version.cs
index e9e38dc2f..e0a48ee26 100644
--- a/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Version.cs
+++ b/test/Spectre.Console.Cli.Tests/Unit/CommandAppTests.Version.cs
@@ -34,6 +34,24 @@ public void Should_Output_Application_Version_To_The_Console_With_No_Command()
             result.Output.ShouldBe("1.0");
         }
 
+        [Fact]
+        public void Should_Not_Display_Version_If_Not_Specified()
+        {
+            // Given
+            var fixture = new CommandAppTester();
+            fixture.Configure(configurator =>
+            {
+                configurator.AddCommand<EmptyCommand>("empty");
+            });
+
+            // When
+            var result = fixture.Run("--version");
+
+            // Then
+            result.ExitCode.ShouldNotBe(0);
+            result.Output.ShouldStartWith("Error: Unexpected option 'version'");
+        }
+
         [Fact]
         public void Should_Execute_Command_Not_Output_Application_Version_To_The_Console()
         {
@@ -42,7 +60,6 @@ public void Should_Execute_Command_Not_Output_Application_Version_To_The_Console
             fixture.Configure(configurator =>
             {
                 configurator.SetApplicationVersion("1.0");
-
                 configurator.AddCommand<EmptyCommand>("empty");
             });
 
@@ -81,7 +98,6 @@ public void Should_Output_Application_Version_To_The_Console_With_Branch_Default
             fixture.Configure(configurator =>
             {
                 configurator.SetApplicationVersion("1.0");
-
                 configurator.AddBranch<EmptyCommandSettings>("branch", branch =>
                 {
                     branch.SetDefaultCommand<EmptyCommand>();