In the fourth example, shown in Fig. , a copolymer is represented with polyurethane precursors. In this case, the algorithm identifies the relevant functional groups of each monomer, i.e. the isocyanate groups and hydroxyl groups, and groups them together for assigning the polymer class. The algorithm can now identify that those monomers belong to the polyurethane class and polymerize through polycondensation. The heads and tails are then assigned to each monomer as two separate entities.