fragment = lambda do |electrophile, center, center_nbr|
          (nmol, (nele, ncarb, ncarb_nbr)) = self.dup_molecule([electrophile, center, center_nbr])
          nmol.delete_bond(nele, ncarb)
          ncarb_nbr.get_bond(ncarb) + 1
          nmol.split