The central tool in ChemPer is the SMIRKSifier which builds on the ClusterGraph to generate a list of SMIRKS patterns based on provided clusters of molecular fragments. We will return to the ethanol/propene example used above, but this time there are six clusters based on the typical bond stretch force field parameters, as illustrated in Figure . The implementation of SMIRKSifier to make these SMIRKS patterns is included below. Like the graph modules described above, SMIRKSifier is initiated with a list of molecules and atoms in each cluster are specified by index. Internally, a ClusterGraph is created for each provided cluster starting with zero layers. Then, we check to see if the SMIRKS patterns maintain the provided clustering using a scoring function based on our previously reported SMIRKY algorithm (Section 3.4.1) . Additional layers are added iteratively until a set of SMIRKS accurately reproduces the provided clustering or reaches a user specified maximum number of layers (default=5). If such SMIRKS cannot be created, for example if chemically identical fragments are placed in separate clusters, an exception is raised. Once a successful list of SMIRKS is created, SMIRKSifier interfaces with the Reducer to remove unnecessary decorators throughout the patterns (Section 3.5). Both SMIRKSifer and Reducer have "verbose" as an optional variable to print out information about the process of SMIRKS creation and reduction.