public void notify_started(proxy_transaction pt)
		{
			Gtk.Application.Invoke (pt, new EventArgs(), (obj,e) => {
				proxy_transaction_node ptn = new proxy_transaction_node ((proxy_transaction)obj);
				if(!_capture) {
					lock(_pt_list) {
						if(!_pt_list.ContainsKey(obj))
							_pt_list.Add (obj, ptn);
						nodeview1.NodeStore.AddNode (ptn);
					}
				}
			});
		}
		public void notify_completed(proxy_transaction pt)
		{
			Gtk.Application.Invoke (pt, new EventArgs(), (obj,e) => {
				proxy_transaction_node ptn = null;
				if(!_capture) {
					ptn = (proxy_transaction_node)_pt_list[(proxy_transaction)obj];
					lock(_pt_list) {
						if(ptn != null && _pt_list.ContainsKey(obj))
							_pt_list.Remove (ptn.pt);
						nodeview1.NodeStore.RemoveNode (ptn);
					}
				} else {
					ptn = new proxy_transaction_node((proxy_transaction)obj);
					lock(_pt_list) {
						if(!_pt_list.ContainsKey(obj))
							_pt_list.Add(obj,ptn);
						filter_this(ptn);
					}
				}
			});
		}
		public void set_filter(String filter) {
			_current_filter = filter;
			desc_label.Text = String.Format("Filter set to: {0}",filter);
			proxy_transaction_node[] ptna = new proxy_transaction_node[_pt_list.Values.Count];
			_pt_list.Values.CopyTo(ptna,0);
			nodeview1.NodeStore.Clear();
			filter_this(ptna);
		}