def METHOD_NAME(assemeblyModelString):
    """This is the main parse function. It passes substrings to the subfunctions and returns back a dictionary of chemical building block units."""
    assemblyModelDict = parseAssemblyModelString(assemeblyModelString)
    unit1 = {"Modularity": None, "UnitNumber" : None, "Planarity": None}
    unit2 = {"Modularity": None, "UnitNumber" : None, "Planarity": None}
    unit3 = {"Modularity": None, "UnitNumber" : None, "Planarity": None}
    if assemblyModelDict['numedges'] is not None:
        unit1 = {"Modularity": assemblyModelDict['modedges'], "UnitNumber": assemblyModelDict['numedges'], "Planarity": assemblyModelDict['planedges']}
        if assemblyModelDict['numfaces'] is not None:
            unit2 = {"Modularity": assemblyModelDict['modfaces'],"UnitNumber": assemblyModelDict['numfaces'], "Planarity": assemblyModelDict['planfaces']}
            nestedAssemblyModelDict = [unit1, unit2]
            if assemblyModelDict['numcorners'] is not None:
                unit3 = {"Modularity": assemblyModelDict['modcorners'], "UnitNumber": assemblyModelDict['numcorners'],"Planarity": assemblyModelDict['plancorners']}
                nestedAssemblyModelDict = [unit1, unit2, unit3]
        elif assemblyModelDict['numcorners'] is not None:
            unit2 = {"Modularity": assemblyModelDict['modcorners'],"UnitNumber": assemblyModelDict['numcorners'], "Planarity": assemblyModelDict['plancorners']}
            nestedAssemblyModelDict = [unit1, unit2]
            if assemblyModelDict['numfaces'] is not None:
                unit3 = {"Modularity": assemblyModelDict['modfaces'], "UnitNumber": assemblyModelDict['numfaces'],"Planarity": assemblyModelDict['planfaces']}
                nestedAssemblyModelDict = [unit1, unit2, unit3]
    if assemblyModelDict['numedges'] is None:
        if assemblyModelDict['numfaces'] is not None:
            unit1 = {"Modularity": assemblyModelDict['modcorners'], "UnitNumber": assemblyModelDict['numcorners'],"Planarity": assemblyModelDict['plancorners']}
            if assemblyModelDict['numcorners'] is not None:
                unit2 = {"Modularity": assemblyModelDict['modfaces'],"UnitNumber": assemblyModelDict['numfaces'], "Planarity": assemblyModelDict['planfaces']}
                nestedAssemblyModelDict = [unit1, unit2]
    #print (nestedAssemblyModelDict)
    return nestedAssemblyModelDic