private void addTransportProcess(IMoleculeBuilder drug, IProcessMapping compoundProcessMapping, CompoundProperties compoundProperties) { var compound = compoundProperties.Compound; var process = compound.ProcessByName(compoundProcessMapping.ProcessName); if (isRenalClearance(compoundProcessMapping)) { var renalPassiveProcess = _processBuilderMapper.PassiveTransportProcessFrom(process, drug.Name, _passiveTransports.FormulaCache); _passiveTransports.Add(renalPassiveProcess); _parameterIdUpdater.UpdateBuildingBlockId(renalPassiveProcess.Parameters, compound); return; } var transporter = _individual.MoleculeByName <IndividualTransporter>(compoundProcessMapping.MoleculeName); var transporterMoleculeContainer = _processBuilderMapper.ActiveTransportFrom(process, transporter, _moleculeBuildingBlock.FormulaCache); _interactionKineticUpdater.UpdateTransport(transporterMoleculeContainer, compoundProcessMapping.MoleculeName, compound.Name, _simulation, _moleculeBuildingBlock.FormulaCache); _parameterIdUpdater.UpdateBuildingBlockId(transporterMoleculeContainer.Parameters, compound); drug.AddTransporterMoleculeContainer(transporterMoleculeContainer); }