Instead of implementing combination algorithms within
the valuation classes, put them in dedicated classes
and define a mapping: "type1, type2 -> combination
algorithm" somwhere
This allows easy addition of new combination
possibilities.
drawback: loosing encapsulation, solution: keep
valuation members private but make Combination class
a friend of Valuation