Refactoring ObjectCreator, getting rid of switch smell
Refactoring ObjectCreator, reducing enum visibility
Refactoring ObjectCreator, moving private static members to anonym namespace
Refactoring ObjectCreator, replacing switch with std::map
Refactoring ObjectCreator, getting rid of superflous function
Refactoring ObjectCreator, forward declare instead of include
Refactoring ObjectCreator, namespace instead of class
Refactoring ObjectCreator, removing intermediaries
Better (actual) randomizer