public override void Dispose ()
{
if (idle_timeout_id > 0) {
GLib.Source.Remove (idle_timeout_id);
}
Connected = false;
stage.Iteration -= OnStageIteration;
stage = null;
InvalidateCache ();
base.Dispose ();
}