doesnt work, but im going to shift gears and think about this problem in terms of composition over inheritance. Ill create an aggregate of classes that compose the final product instead of a ancestral path to create specific objects