Refactor Merchandising-Component Creation Code

Simplifies class hierarchies and removes some redundant code.
They used to have but I've just taken it out because it wasn't adding anything! 
I'll improve this a bit in the morning before merging.