public override void Shutdown()
        {
            if (timeout_owner)
            {
                NoteOfTheDay.CleanupOld(manager);
                timeout.Timeout -= CheckNewDay;
                timeout.Cancel();
                timeout = null;
            }

            initialized = false;
        }
        // Called only by instance with timeout_owner set.
        void CheckNewDay(object sender, EventArgs args)
        {
            Note notd = NoteOfTheDay.GetNoteByDate(manager, DateTime.Today);

            if (notd == null && !manager.ReadOnly)
            {
                NoteOfTheDay.CleanupOld(manager);

                // Create a new NotD if the day has changed
                NoteOfTheDay.Create(manager, DateTime.Now);
            }

            // Re-run every minute
            timeout.Reset(1000 * 60);
        }