Added smaller factory interface IResultFactory, and refactored GameEngine, and GameLogic's constructors. Now the GameLogic is strategy, and the GameEngine only requires IFactory to work