first of all i have to sorry about my poor english
i got a similar problem like Christopher , i have one class called GameObject which contain a List<GameComponent> which this list will contain variety of classes that derive from GameComponent class , eg. DrawAnimateSprite component , Physic component , Collisble component and ...