public static void Remove(this GameComponentCollection components, object component)
        {
            if (component == null)
            {
                throw new ArgumentNullException("component");
            }

            var item = components.FirstOrDefault(c =>
                                                 (c is GameComponentAdapter) && ((GameComponentAdapter)c).InnerComponent == component);

            if (item != null)
            {
                components.Remove(item);
            }
        }