static WindowManager()
        {
            // initialize window initializer
            initializerBase = new DefaultWindowInitializers();

            // initialize singleton value
            instance = new WindowManager();
        }
        // METHODS
        /// <summary>
        /// Sets window initializer
        /// </summary>
        /// <param name="windowInitializers">
        /// An instance of class that inheir from <see cref="WindowManagerInitializerBase"/>
        /// </param>
        public static void SetInitializer(WindowManagerInitializerBase windowInitializers)
        {
            // checking
            if (windowInitializers == null)
            {
                throw new ArgumentNullException(nameof(windowInitializers));
            }

            // change initializer
            initializerBase = windowInitializers;

            // initialize with new value
            instance.factory.Clear();
            windowInitializers.Initialize(instance);
        }