public override void Execute(ConsoleApplicationBase consoleApplication, IList<ArgumentInfo> args)
        {
            var options = from arg in args
                        where arg.Type == ArgumentType.Option
                        select arg;

            if(options.Count() < 1 || string.IsNullOrEmpty(ProjectName))
            {
                consoleApplication.PrintHelpMessage();
                return;
            }

            if(!NoLogo)
            {
                consoleApplication.PrintLogo();
            }

            Console.WriteLine("Starting Tree Generation{0}", Environment.NewLine);
            
            Console.WriteLine("       Project Name: \"{0}\"", ProjectName);
            Console.WriteLine("            Version: \"{0}\"", Version);
            Console.WriteLine("Unit Test Framework: \"{0}\"", UnitTestFramework);
            
            Console.WriteLine();

            var frontEnd = new TreeSurgeonFrontEnd(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), Version);

            if(Overwrite)
            {
                Directory.Delete(frontEnd.GetOutputPath(ProjectName), true);
            }

            var outputDirectory = frontEnd.GenerateDevelopmentTree(ProjectName, UnitTestFramework);
            Console.WriteLine("Tree Generation complete.{0}{0}Files can be found at:{0}\"{1}\"", Environment.NewLine, outputDirectory);
        }