void CreateViewModel(
			FakePackageManagementSolution solution, 
			IThreadSafePackageManagementEvents packageManagementEvents)
		{
			fakeTaskFactory = new FakeTaskFactory();
			fakeLicenseAcceptanceService = new FakeLicenseAcceptanceService();
			fakeSelectProjectsService = new FakeSelectProjectsService();
			userPrompts = new ManagePackagesUserPrompts(
				packageManagementEvents,
				fakeLicenseAcceptanceService,
				fakeSelectProjectsService);
			fakeActionRunner = new FakePackageActionRunner();
			
			packagesViewModels = new PackagesViewModels(
				solution,
				fakeRegisteredPackageRepositories,
				packageManagementEvents,
				fakeActionRunner,
				fakeTaskFactory);
			
			viewTitle = new ManagePackagesViewTitle(solution);
			
			viewModel = new ManagePackagesViewModel(
				packagesViewModels,
				viewTitle,
				packageManagementEvents,
				userPrompts);
			fakeTaskFactory.ExecuteAllFakeTasks();
		}
        public ManagePackagesViewModel(
            PackagesViewModels packagesViewModels,
            ManagePackagesViewTitle viewTitle,
            IThreadSafePackageManagementEvents packageManagementEvents)
        {
            this.packagesViewModels      = packagesViewModels;
            this.viewTitle               = viewTitle;
            this.packageManagementEvents = packageManagementEvents;

            packageManagementEvents.PackageOperationError     += PackageOperationError;
            packageManagementEvents.PackageOperationsStarting += PackageOperationsStarting;
        }