old_contents: import outcome
  import persons
  import places
  
  
  class Person(object):
  
      by_name = dict()
  
      def __init__(self, name, attack, group=False):
          self.name = name
          self.attack = attack
          self.group = group
          self.alive = True
          self.state = {}
          self.attracted = 0
          self.preferred_attack = self.kill
          Person.by_name[name] = self
  
      def kill(self, character, verb="kill"):
          return outcome.Outcome(character,
              self.name[0].upper() + self.name[1:] + " " + verb +
              get_tense(self) + " you.",
              die=True)
  
      def assassinate(self, character):
          return self.kill(character, verb="assassinate")
  
      def arrest(self, character):
          return outcome.Outcome(character,
              self.name[0].upper() + self.name[1:] + " throw" +
              persons.get_tense(self) + " you in prison with the other "
              "lunatics.",
              new_person=persons.other_lunatics,
              move_to=places.prison,
              remove_all_items=True
              )
  
      def __str__(self):
          return self.name
  
  
  def get_tense(person):
      if person.group:
          return ""
      return "s"
  
  assassin = Person("the assassin", 6)
  assassins = Person("the assassins", 6, group=True)
  blind_bartender = Person("the blind bartender", 1)
  fat_lady = Person("the fat lady who feeds you", 4)
  eve = Person("Lord Carlos' daughter", 4)
  guards = Person("the guards", 4, group=True)
  mermaid = Person("the mermaid", 3)
  mob = Person("the angry mob", 9)  # Mob is not a group; grammar hack
  nymph_queen = Person("the nymph queen", 10)
  other_lunatics = Person("the other lunatics", -1, group=True)
  peasant_lass = Person("the peasant lass", 7)
  pirate_wench = Person("the pirate wench", 2)
  pirates = Person("the pirates", 6, group=True)
  pretty_lady = Person("the pretty lady", 1)
  simple_peasant = Person("the simple peasant", -1)
  st_george = Person("St. George", 100)
  wealthy_merchant = Person("the merchant", 7)
  witch = Person("the witch", 7)
  wizard = Person("the wizard", 7)
  lord_arthur = Person("Lord Arthur", 6)
  lord_bartholomew = Person("Lord Bartholomew", 4)
  lord_carlos = Person("Lord Carlos", 5)
  lord_daniel = Person("Lord Daniel", 7)
  
  assassin.preferred_attack = assassin.assassinate
  assassins.preferred_attack = assassins.assassinate
  eve.preferred_attack = eve.assassinate
  lord_carlos.preferred_attack = lord_carlos.assassinate
  guards.preferred_attack = guards.arrest
  
new_contents: import outcome
  import persons
  import places
  
  
  class Person(object):
  
      instances = []
      by_name = dict()
  
      def __init__(self, name, attack, group=False):
          self.name = name
          self.attack = attack
          self.group = group
          self.alive = True
          self.state = {}
          self.attracted = 0
          self.preferred_attack = self.kill
          Person.instances.append(self)
          Person.by_name[name] = self
  
      def kill(self, character, verb="kill"):
          return outcome.Outcome(character,
              self.name[0].upper() + self.name[1:] + " " + verb +
              get_tense(self) + " you.",
              die=True)
  
      def assassinate(self, character):
          return self.kill(character, verb="assassinate")
  
      def arrest(self, character):
          return outcome.Outcome(character,
              self.name[0].upper() + self.name[1:] + " throw" +
              persons.get_tense(self) + " you in prison with the other "
              "lunatics.",
              new_person=persons.other_lunatics,
              move_to=places.prison,
              remove_all_items=True
              )
  
      def __str__(self):
          return self.name
  
  
  def get_tense(person):
      if person.group:
          return ""
      return "s"
  
  assassin = Person("the assassin", 6)
  assassins = Person("the assassins", 6, group=True)
  blind_bartender = Person("the blind bartender", 1)
  fat_lady = Person("the fat lady who feeds you", 4)
  eve = Person("Lord Carlos' daughter", 4)
  guards = Person("the guards", 4, group=True)
  mermaid = Person("the mermaid", 3)
  mob = Person("the angry mob", 9)  # Mob is not a group; grammar hack
  nymph_queen = Person("the nymph queen", 10)
  other_lunatics = Person("the other lunatics", -1, group=True)
  peasant_lass = Person("the peasant lass", 7)
  pirate_wench = Person("the pirate wench", 2)
  pirates = Person("the pirates", 6, group=True)
  pretty_lady = Person("the pretty lady", 1)
  simple_peasant = Person("the simple peasant", -1)
  st_george = Person("St. George", 100)
  wealthy_merchant = Person("the merchant", 7)
  witch = Person("the witch", 7)
  wizard = Person("the wizard", 7)
  lord_arthur = Person("Lord Arthur", 6)
  lord_bartholomew = Person("Lord Bartholomew", 4)
  lord_carlos = Person("Lord Carlos", 5)
  lord_daniel = Person("Lord Daniel", 7)
  
  assassin.preferred_attack = assassin.assassinate
  assassins.preferred_attack = assassins.assassinate
  eve.preferred_attack = eve.assassinate
  lord_carlos.preferred_attack = lord_carlos.assassinate
  guards.preferred_attack = guards.arrest
  
subject: Make the Person class track instances created