Refactor Merchandising-Component Creation Code

Simplifies class hierarchies and removes some redundant code.
I can almost forgive the other `AnyRef`, but not this one :smile: 

Do your Ads not have a common base class? (and don't say `AnyRef`)