/// <summary>
        /// Removes a specific screen from the list. This
        /// method will immediately remove the screen and 
        /// not allow transitions to finish.
        /// </summary>
        /// <param name="screen">The screen to remove</param>
        public void RemoveScreen(BaseScreen screen)
        {
            screen.Unload();

            screens.Remove(screen);
        }
        /// <summary>
        /// Activeates the given screen and adds it to the list.
        /// This new screen will become the active screen.
        /// </summary>
        /// <param name="screen">The screen to be added</param>
        public void AddScreen(BaseScreen screen)
        {
            screen.Manager = this;

            if (isInitialized)
            {
                screen.Activate();
            }

            screens.Add(screen);
        }