FormationGenerator refactor