/// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initialization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            // You may wonder why this isn't in the constructor.
            // It's because we're dependant on the IServiceProvider which isn't
            // created until the package is loaded within the VS environment so
            // that's why this initialization is done here
            var dependencyContainer = Bootstrapper.Initialize(this);

            InitializeListeners.FromAssembly(dependencyContainer, typeof(EventQueue).Assembly);
            InitializeListeners.FromAssembly(dependencyContainer, this.GetType().Assembly);

            ProcessingQueueCommand.Initialize(this);
            TestsCommand.Initialize(this);
            base.Initialize();

            // Subscribe to solution loaded/unloaded events
            var solution = GetService(typeof(SVsSolution)) as IVsSolution;

            var eventHandler = dependencyContainer.Resolve <VisualStudioEventHandler>();

            solution.AdviseSolutionEvents(eventHandler, out solutionEventsCookie);

            var rdt = GetService(typeof(SVsRunningDocumentTable)) as IVsRunningDocumentTable;

            rdt.AdviseRunningDocTableEvents(eventHandler, out rdtEventsCookie);
        }