private static IIoCContainer SetupIoC(IReadOnlyList <string> args)
        {
            IIoCContainer container;

            if (args.Count < 2)
            {
                throw new Exception("Invalid arguments");
            }

            if (args[0] == "code")
            {
                if (args.Count != 3)
                {
                    throw new Exception("Invalid arguments");
                }

                container = new IoCContainer();

                if (args[1] == "txt")
                {
                    container.AddTransient <IMovieFinder, MovieFinderTxt>(args[2]);
                }
                else
                {
                    container.AddTransient <IMovieFinder, MovieFinderJson>(args[2]);
                }

                container.AddSingleton <IMovieLister, MovieLister>();
            }
            else if (args[0] == "config")
            {
                var factory = new IoCContainerFactory(args[1]);
                container = factory.CreateContainer();
            }
            else
            {
                throw new Exception("Invalid arguments");
            }

            return(container);
        }