static void Main(string[] args)
        {
            IKernel kernel = new StandardKernel();

            // Container Register
            kernel.Bind<ILog>().ToMethod(
                x =>
                    {
                        var scope = x.Request.ParentRequest.Service.FullName;
                        var log = (ILog)LogManager.GetLogger(scope, typeof(Log));
                        return log;
                    });
            kernel.Bind<IParser>().To<FileParser>();
            kernel.Bind<IResourceItemParser<string>>().To<JsonResourceItemParser>();
            kernel.Bind<IVerificationProcessor<string>>().To<VerificationProcessor<string>>()
                .WithConstructorArgument("factory", new StringTypeResourceVerifierFactory());
            kernel.Bind<IVerificationInvoker>().To<CompositeVerifier<string>>();

            // Container Resolve
            IParser fileReader = kernel.Get<IParser>(new ConstructorArgument("filePath", args.First()));
            VerificationResult jsonStringFromFile = fileReader.Parse();
            IResourceItemParser<string> parser = kernel.Get<IResourceItemParser<string>>();
            IVerificationProcessor<string> processor = kernel.Get<IVerificationProcessor<string>>();
            IVerificationInvoker invoker = kernel.Get<IVerificationInvoker>(
                                                new ConstructorArgument("parser", parser),
                                                new ConstructorArgument("processor", processor));

            var result = invoker.VerifyEnvironment(jsonStringFromFile);

            foreach (VerificationResult verificationResult in result)
            {
                Console.ForegroundColor = GetColour(verificationResult.Type);
                Console.WriteLine(string.Format("{0}", verificationResult.Message));
                Console.WriteLine();
                Console.ResetColor();
            }

            Console.WriteLine("Done ...");
            Console.ReadKey();

            // Container Release
            kernel.Release(invoker);
            kernel.Release(processor);
            kernel.Release(parser);
            kernel.Release(fileReader);
        }