message: changing to it falling under the townData global variable
diff: -setup.createFaction = function (base) {
  +setup.createFaction = function (town, base) {
  var index = State.variables.factions.size
  var type = ['thieves', 'merchants', 'wizards', 'rangers', 'seers', 'priests', 'monks', 'assassins', 'artisans', 'nobles', 'bards', 'mercenaries', 'bandits', 'craftsmen', 'scholars'].random()
  var isPoliticalPower
  @@ -8,13 +8,13 @@ setup.createFaction = function (base) {
  // Rolls are defined immediately in case they're needed in the subroutines out of order (i.e. it makes no sense to initialise SizeRoll in the size.js function if it's being used in "reputation.js")
  var faction = Object.assign({
  + associatedTown: town,
  isPoliticalPower: isPoliticalPower,
  isThrowaway: isThrowaway,
  type: type,
  factionNoun: setup.factionData.type[type].factionNoun,
  motivation: setup.factionData.type[type].motivation.random(),
  name: setup.nameFaction(type),
  - // name: ['bruce', 'leonard', 'kyle'].random(),
  leadershipType: ['individual', 'individual', 'individual', 'group', 'group'].random(),
  influenceRoll: dice(2, 50).clamp(1, 100),
  reputationRoll: dice(2, 50).clamp(1, 100),
  @@ -24,6 +24,8 @@ setup.createFaction = function (base) {
  resourcesRoll: dice(2, 50).clamp(1, 100)
  }, base)
  +
  +
  setup.ageFaction(faction)
  setup.reputationFaction(faction)
  setup.sizeFaction(faction)
  @@ -31,7 +33,7 @@ setup.createFaction = function (base) {
  setup.resourcesFaction(faction)
  setup.stabilityFaction(faction)
  - setup.leaderFaction(faction)
  + setup.leaderFaction(town, action)
  setup.joinFaction(faction)
  // setup.membersFaction(faction)
  faction.membersTrait = setup.factionData.type[type].membersTrait.random()
  