protected virtual IEnumerator InitModules()
        {
            if (_modules == null)
            {
                yield break;
            }

            foreach (var module in _modules)
            {
                if (!module)
                {
                    continue;
                }

                if (module is IAsyncAwake)
                {
                    var process = Core.AddAsync(module);

                    while (process.MoveNext())
                    {
                        yield return(null);
                    }
                }
                else
                {
                    Core.Add(module);
                }
            }
        }