#30: Factory system review, by using directly the class reference to
instanciate the object. This allows a safe cast by using generics. Enum
system review but facultative (recommended for save & load and also
multiplayer, by using enum ordinal to serialize data using an efficient
way).