Refactor Merchandising-Component Creation Code

Simplifies class hierarchies and removes some redundant code.
I am going to give you an `Int`... Have fun with your `MatchError`. :speak_no_evil: 
:laughing: