docs: def mutate(self, p_mutate):
          """
          Simulate mutation against a probability.
          
          p_mutate:  probability for mutation to occur
          """
          new_dna = []
  
          for bit in self.dna:
              if random.random() < p_mutate:
                  new_bit = bit
  
                  while new_bit == bit:
                      new_bit = random.choice(self.GENETIC_MATERIAL_OPTIONS)
                  bit = new_bit
  
              new_dna.append(bit)
  
          self.dna = ''.join(new_dna)