Classically, GCPN was also applied to molecule generation networks that string atoms together. It acts on a graph G as input with nodes representing the atoms and edges representing the bonds. The edges also explicitly have bond-order information. Starting from an arbitrary partially-formed molecule, it could perform one of two things at each step -add another atom to the molecule at a point where there is a free valency or join two atoms in the existing molecule (achieving cyclization).