public WurmTimer GetTimer(Guid definitionId, Guid timerId)
        {
            var persistentId = timerId;
            var definition   = timerDefinitions.GetById(definitionId);

            object newTimer = persistentObjectResolver.Get(persistentId.ToString(),
                                                           timerTypes.GetTypeForId(definition.RuntimeTypeId));

            var timer = newTimer as CustomTimer;

            if (timer != null)
            {
                timer.ApplyCustomTimerOptions(definition.CustomTimerConfig);
            }
            return((WurmTimer)newTimer);
        }
        private async void PerformAsyncInits()
        {
            try
            {
                await AttemptToEstablishCurrentServer(TimeSpan.FromDays(120));

                if (currentServerOnTheGroup == null)
                {
                    await AttemptToEstablishCurrentServer(TimeSpan.FromDays(365));
                }

                foreach (var activeTimer in activeTimerDefinitions)
                {
                    try
                    {
                        var       definition = timerDefinitions.GetById(activeTimer.DefinitionId);
                        WurmTimer timer      = timerInstances.GetTimer(activeTimer.DefinitionId, activeTimer.TimerId);
                        timer.Initialize(this, CharacterName, definition);
                        layoutControl.RegisterNewTimerDisplay(timer.View);
                        timers.Add(timer);
                        FlagAsChanged();
                    }
                    catch (Exception exception)
                    {
                        logger.Error(exception, "Error at InitTimers for timer " + activeTimer);
                        FlagAsChanged();
                    }
                }

                layoutControl.EnableAddingTimers();
            }
            catch (Exception _e)
            {
                logger.Error(_e, "problem updating current server group");
                if (layoutControl != null)
                {
                    layoutControl.SetInitializationError();
                }
            }
        }