/// <summary>
        /// Starting point of the applciation
        /// </summary>
        /// <param name="args">The argsuments</param>
        internal static void Main(string[] args)
        {
            ApplicationController<Options> controller = null;

            try
            {
                controller = new ApplicationController<Options>(args, new Options());

                controller.ParseArguments();
                controller.Execute();

                Environment.Exit(0);
            }
            catch (ParsingArgumentsException)
            {
                Console.Out.WriteLine(controller.GetHelp());
                Environment.Exit(5);
            }
            catch (Exception exc)
            {
                Console.Error.WriteLine("The following error ocurred: " + exc.Message);
                Environment.Exit(9);
            }
        }