private void InitObservers() {
			var deletedRows = new ConcurrentObservableCollection<ApplicationViewModel>();
			deletedRows.ToObservableRx<ApplicationViewModel>().ObserveOnDispatcher().Subscribe((appVm) => {
				ApplicationQueue.Remove(appVm);
			});
			_deleteAppObserver = Observer.Create<ApplicationViewModel>((item) => {
				var model = item.GetModel();
				if (item.State != AppState.ToDelete) {
					return;
				}
				item.State = AppState.Deleting;
				try {
					_applicationManager.DeleteApp(model);
					deletedRows.Add(item);
				} catch (Exception ex) {
					item.State = AppState.DeleteError;
					item.ErrorMsg = ex.ToString();
				}
			});
			this.ObserveProperty("SearchText")
				.Throttle(TimeSpan.FromMilliseconds(500))
				.Select(args => SearchText)
				.DistinctUntilChanged()
				.ObserveOnDispatcher()
				.Subscribe(Observer.Create((string text) => UpdateAppList()));
			
		}