Refactor Merchandising-Component Creation Code

Simplifies class hierarchies and removes some redundant code.
Yep, much better! No mixing of types... Only if you are happy with making `Html` here though.
A base type would still be handy though!
:+1: