diff --git a/.codeboarding/Exclusion Flag Utility.md b/.codeboarding/Exclusion Flag Utility.md
new file mode 100644
index 0000000..851e203
--- /dev/null
+++ b/.codeboarding/Exclusion Flag Utility.md
@@ -0,0 +1,111 @@
+```mermaid
+
+graph LR
+
+ ExclusionFlagService["ExclusionFlagService"]
+
+ FragmentParentMolRetrieval["FragmentParentMolRetrieval"]
+
+ MoleculeStandardization["MoleculeStandardization"]
+
+ MolblockStandardization["MolblockStandardization"]
+
+ FragmentParentMolRetrieval -- "calls" --> ExclusionFlagService
+
+ MoleculeStandardization -- "calls" --> ExclusionFlagService
+
+ MolblockStandardization -- "calls" --> ExclusionFlagService
+
+ MolblockStandardization -- "calls" --> MoleculeStandardization
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+This system provides a comprehensive set of utilities for standardizing chemical structures, including functions to exclude undesirable structures based on predefined criteria, retrieve parent molecules from fragments, and standardize molecules from various input formats like molblocks. The core functionality revolves around ensuring chemical structures meet specific quality and format standards for further processing.
+
+
+
+### ExclusionFlagService
+
+Provides a utility function to determine if a chemical structure should be excluded based on predefined criteria, such as the presence of metallic atoms, a high count of boron atoms, or RDKit sanitization failures. It acts as a gatekeeper for molecular processing.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `chembl_structure_pipeline.exclude_flag.exclude_flag` (84:113)
+
+
+
+
+
+### FragmentParentMolRetrieval
+
+Responsible for retrieving the parent molecule from a set of fragments, handling solvent and salt removal, and optionally neutralizing the molecule. It utilizes the ExclusionFlagService to check if the molecule should be excluded from further processing.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `chembl_structure_pipeline.standardizer.get_fragment_parent_mol` (290:427)
+
+
+
+
+
+### MoleculeStandardization
+
+Standardizes a given molecule by applying a series of transformations including updating valences, removing s-groups, kekulizing, removing hydrogens, normalizing, uncharging, flattening tartrates, and cleaning up drawing. It utilizes the ExclusionFlagService for an initial exclusion check.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `chembl_structure_pipeline.standardizer.standardize_mol` (455:472)
+
+
+
+
+
+### MolblockStandardization
+
+Handles the standardization of molecules provided in molblock format. It parses the molblock, utilizes the ExclusionFlagService for an exclusion check, and then uses the MoleculeStandardization component to process the molecule before converting the standardized molecule back into a molblock.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `chembl_structure_pipeline.standardizer.standardize_molblock` (508:513)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/Structure Standardization.md b/.codeboarding/Structure Standardization.md
new file mode 100644
index 0000000..fef4562
--- /dev/null
+++ b/.codeboarding/Structure Standardization.md
@@ -0,0 +1,167 @@
+```mermaid
+
+graph LR
+
+ StandardizationCore["StandardizationCore"]
+
+ ParentMoleculeGenerator["ParentMoleculeGenerator"]
+
+ DrawingCleanup["DrawingCleanup"]
+
+ MolblockProcessor["MolblockProcessor"]
+
+ ExclusionFlag["ExclusionFlag"]
+
+ StandardizationCore -- "invokes cleanup" --> DrawingCleanup
+
+ StandardizationCore -- "applies exclusion check" --> ExclusionFlag
+
+ ParentMoleculeGenerator -- "applies exclusion check" --> ExclusionFlag
+
+ ParentMoleculeGenerator -- "utilizes standardization utilities" --> StandardizationCore
+
+ MolblockProcessor -- "orchestrates standardization" --> StandardizationCore
+
+ MolblockProcessor -- "retrieves parent molecule" --> ParentMoleculeGenerator
+
+ MolblockProcessor -- "applies exclusion check" --> ExclusionFlag
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+The Structure Standardization subsystem is designed to process and normalize chemical structures, ensuring consistent and chemically correct representations. Its main flow involves cleaning drawing artifacts, handling fragments and isotopes, uncharging molecules, and applying general standardization rules to derive a 'parent' molecule from an input. This is achieved through a core standardization component, a parent molecule generator, a drawing cleanup component, and a molblock processor, all of which may interact with an exclusion flag component to filter out unwanted structures.
+
+
+
+### StandardizationCore
+
+This component encapsulates the fundamental chemical structure standardization algorithms, including valence adjustments, s-group removal, kekulization, hydrogen removal, normalization, uncharging, and specific structural flattening, ensuring molecular data consistency.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.standardize_mol` (455:472)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.update_mol_valences` (26:29)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.remove_sgroups_from_mol` (147:150)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.kekulize_mol` (21:23)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.remove_hs_from_mol` (75:144)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.normalize_mol` (62:72)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.uncharge_mol` (153:191)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.flatten_tartrate_mol` (269:282)
+
+
+
+
+
+### ParentMoleculeGenerator
+
+This component is responsible for deriving the parent molecule from a given chemical structure, handling both isotopic and fragmented parent forms. It relies on core standardization utilities and exclusion checks to produce the canonical parent.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_parent_mol` (438:443)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_isotope_parent_mol` (430:435)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_fragment_parent_mol` (290:427)
+
+
+
+
+
+### DrawingCleanup
+
+This component specifically addresses and corrects common drawing artifacts in chemical structures, such as misconfigured triple bonds and allenes, to improve the accuracy of molecular representations.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.cleanup_drawing_mol` (252:266)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer._cleanup_triple_bonds` (223:237)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer._check_and_straighten_at_triple_bond` (213:220)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer._cleanup_allenes` (240:249)
+
+
+
+
+
+### MolblockProcessor
+
+This component manages the input and output of chemical structures in Molblock format, including parsing, reapplication of wedging information, and orchestrating the standardization and parent molecule generation processes for Molblock data.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.parse_molblock` (486:505)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.standardize_molblock` (508:513)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.reapply_molblock_wedging` (475:483)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_parent_molblock` (446:452)
+
+
+
+
+
+### ExclusionFlag
+
+This component provides a mechanism to determine if a chemical structure should be excluded from certain processing steps, based on predefined rules or properties, preventing unwanted or invalid structures from proceeding through the pipeline.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.exclude_flag.exclude_flag` (84:113)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/Structure Validation.md b/.codeboarding/Structure Validation.md
new file mode 100644
index 0000000..41e3c60
--- /dev/null
+++ b/.codeboarding/Structure Validation.md
@@ -0,0 +1,141 @@
+```mermaid
+
+graph LR
+
+ InChI_Generation_Module["InChI Generation Module"]
+
+ InChI_Validation_Module["InChI Validation Module"]
+
+ Stereo_Chemistry_Validation_Module["Stereo Chemistry Validation Module"]
+
+ Molblock_Orchestration_Module["Molblock Orchestration Module"]
+
+ Polymer_Detection_Module["Polymer Detection Module"]
+
+ InChI_Validation_Module -- "uses" --> InChI_Generation_Module
+
+ Stereo_Chemistry_Validation_Module -- "uses" --> InChI_Generation_Module
+
+ Molblock_Orchestration_Module -- "orchestrates" --> InChI_Validation_Module
+
+ Molblock_Orchestration_Module -- "orchestrates" --> Stereo_Chemistry_Validation_Module
+
+ Molblock_Orchestration_Module -- "orchestrates" --> Polymer_Detection_Module
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+The Structure Validation subsystem is responsible for ensuring the integrity and correctness of chemical structures. It orchestrates various specialized modules to perform checks on InChI strings, stereochemistry, and general molblock validity. The main flow involves generating InChI from molblocks, validating the InChI and stereochemical information, detecting polymers, and aggregating all validation results to provide a comprehensive assessment of the chemical structure's quality and identify any inconsistencies.
+
+
+
+### InChI Generation Module
+
+This component is responsible for generating InChI strings and handling associated warnings from molblocks. It serves as a foundational utility for other modules requiring InChI data.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.get_inchi` (41:48)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker._get_molblock_inchi_and_warnings` (20:22)
+
+
+
+
+
+### InChI Validation Module
+
+This component provides functionalities to validate InChI strings and calculate a score based on the warnings generated during InChI creation, indicating the quality or issues with the InChI.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.InchiChecker.check` (65:70)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.InchiChecker.get_inchi_score` (73:117)
+
+
+
+
+
+### Stereo Chemistry Validation Module
+
+This component focuses on analyzing and scoring the stereochemical information present in molblocks by comparing different stereo counts derived from InChI, Mol, and RDKit, identifying potential discrepancies.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.StereoChecker.get_stereo_counts` (127:177)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.StereoChecker.check` (180:186)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.StereoChecker.get_stereo_score` (189:199)
+
+
+
+
+
+### Molblock Orchestration Module
+
+This is the primary entry point for comprehensive molblock validation. It orchestrates various checks from specialized checker modules, including InChI, stereo, and polymer checks, and aggregates their results to provide an overall validation status.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.check_molblock` (486:509)
+
+
+
+
+
+### Polymer Detection Module
+
+This specialized component is responsible for checking the presence of polymer-related patterns within the molblock data, indicating if the structure represents a polymer.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.PolymerFileChecker.check` (452:453)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file
diff --git a/.codeboarding/on_boarding.md b/.codeboarding/on_boarding.md
new file mode 100644
index 0000000..5877c9a
--- /dev/null
+++ b/.codeboarding/on_boarding.md
@@ -0,0 +1,143 @@
+```mermaid
+
+graph LR
+
+ Structure_Validation["Structure Validation"]
+
+ Structure_Standardization["Structure Standardization"]
+
+ Exclusion_Flag_Utility["Exclusion Flag Utility"]
+
+ Structure_Standardization -- "uses" --> Exclusion_Flag_Utility
+
+ click Structure_Validation href "https://github.com/chembl/ChEMBL_Structure_Pipeline/blob/main/.codeboarding//Structure Validation.md" "Details"
+
+ click Structure_Standardization href "https://github.com/chembl/ChEMBL_Structure_Pipeline/blob/main/.codeboarding//Structure Standardization.md" "Details"
+
+ click Exclusion_Flag_Utility href "https://github.com/chembl/ChEMBL_Structure_Pipeline/blob/main/.codeboarding//Exclusion Flag Utility.md" "Details"
+
+```
+
+[](https://github.com/CodeBoarding/GeneratedOnBoardings)[](https://www.codeboarding.org/demo)[](mailto:contact@codeboarding.org)
+
+
+
+## Component Details
+
+
+
+This graph represents the core functionality of the ChEMBL Structure Pipeline, which is designed to process and manage chemical structures. The main flow involves validating incoming chemical structures for integrity and correctness, standardizing them to a consistent and chemically sound representation, and then applying exclusion rules to filter out undesirable structures. This ensures that only high-quality, standardized chemical data is maintained within the system.
+
+
+
+### Structure Validation
+
+This component is responsible for validating chemical structures and their properties. It includes checks for InChI integrity, stereochemistry, and general molblock validity, identifying potential issues or inconsistencies in the structural representation. It also provides scoring based on the severity of identified issues.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.get_inchi` (41:48)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker._get_molblock_inchi_and_warnings` (20:22)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.InchiChecker.check` (65:70)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.InchiChecker.get_inchi_score` (73:117)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.StereoChecker.get_stereo_counts` (127:177)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.StereoChecker.check` (180:186)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.StereoChecker.get_stereo_score` (189:199)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.check_molblock` (486:509)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.checker.PolymerFileChecker.check` (452:453)
+
+
+
+
+
+### Structure Standardization
+
+This component focuses on processing and normalizing chemical structures. It performs various operations such as cleaning up drawing artifacts, handling fragments and isotopes, uncharging molecules, and applying general standardization rules to ensure consistent and chemically correct representations. It aims to derive a 'parent' molecule from a given input.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer._cleanup_triple_bonds` (223:237)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer._check_and_straighten_at_triple_bond` (213:220)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer._cleanup_allenes` (240:249)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.cleanup_drawing_mol` (252:266)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_fragment_parent_mol` (290:427)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.uncharge_mol` (153:191)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_isotope_parent_mol` (430:435)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.remove_hs_from_mol` (75:144)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_parent_mol` (438:443)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.reapply_molblock_wedging` (475:483)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.get_parent_molblock` (446:452)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.standardize_mol` (455:472)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.update_mol_valences` (26:29)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.remove_sgroups_from_mol` (147:150)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.kekulize_mol` (21:23)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.normalize_mol` (62:72)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.flatten_tartrate_mol` (269:282)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.parse_molblock` (486:505)
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.standardizer.standardize_molblock` (508:513)
+
+
+
+
+
+### Exclusion Flag Utility
+
+This utility provides a function to determine if a chemical structure should be excluded based on predefined criteria or flags, often used during the standardization process to filter out undesirable structures.
+
+
+
+
+
+**Related Classes/Methods**:
+
+
+
+- `ChEMBL_Structure_Pipeline.chembl_structure_pipeline.exclude_flag.exclude_flag` (84:113)
+
+
+
+
+
+
+
+
+
+### [FAQ](https://github.com/CodeBoarding/GeneratedOnBoardings/tree/main?tab=readme-ov-file#faq)
\ No newline at end of file