Split chess engine out into factory modules