[med-svn] [libsbml] 02/14: New upstream version 5.13.0+dfsg

Andreas Tille tille at debian.org
Thu Dec 15 10:49:49 UTC 2016


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository libsbml.

commit e54fc91ab1316b1501ae6f629ab8b50b1c22d052
Author: Andreas Tille <tille at debian.org>
Date:   Wed Dec 14 10:35:44 2016 +0100

    New upstream version 5.13.0+dfsg
---
 CMakeLists.txt                                     |   14 +-
 LICENSE.html                                       |    2 +-
 LICENSE.txt                                        |    2 +-
 Makefile.in                                        |    2 +-
 NEWS.txt                                           |  146 +
 README.txt                                         |    2 +-
 VERSION.txt                                        |    2 +-
 VERSION_PACKAGES.ac                                |   11 +-
 arrays-package.cmake                               |    2 +-
 cmake_uninstall.cmake.in                           |  244 +-
 common.cmake                                       |    2 +-
 comp-package.cmake                                 |    2 +-
 config/bzip2.m4                                    |    2 +-
 config/chk_swig_version.sh.in                      |    2 +-
 config/csharp.m4                                   |    2 +-
 config/doxygen.m4                                  |    2 +-
 config/expat.m4                                    |    2 +-
 config/java.m4                                     |    2 +-
 config/libcheck.m4                                 |    4 +-
 config/machine.m4                                  |    2 +-
 config/makefile-common-actions.mk                  |    2 +-
 config/makefile-common-vars.mk.in                  |    3 +-
 config/matlab.m4                                   |    2 +-
 config/octave.m4                                   |    2 +-
 config/perl.m4                                     |    2 +-
 config/platform.m4                                 |    2 +-
 config/printJavaDataModel.java                     |    2 +-
 config/python.m4                                   |    2 +-
 config/ruby.m4                                     |   20 +-
 config/runldpath.m4                                |    2 +-
 config/swig.m4                                     |    2 +-
 config/xercesc.m4                                  |    2 +-
 config/zlib.m4                                     |    2 +-
 configure                                          |  512 +-
 configure.ac                                       |   31 +-
 distrib-package.cmake                              |    2 +-
 docs/CMakeLists.txt                                |    2 +-
 docs/Makefile.in                                   |    2 +-
 docs/src/Makefile.in                               |   14 +-
 docs/src/common-text/astnode-types.html            |    2 +-
 .../common-text/libsbml-group-groups-intro.html.in |   30 +
 docs/src/common-text/libsbml-installation.html.in  |    8 +
 docs/src/common-text/libsbml-issues.html           |   29 +-
 docs/src/common-text/pkg-marker-groups.html        |    1 +
 docs/src/common-text/pkg-marker-groups.txt         |    1 +
 docs/src/css/libsbml-base-stylesheet.css           |    5 +
 docs/src/css/libsbml-doxygen-stylesheet.css        |    2 +-
 docs/src/css/libsbml-python-stylesheet.css         |   10 +-
 docs/src/doxygen-config-c.txt.cmake                |    4 +
 docs/src/doxygen-config-c.txt.in                   |    4 +
 docs/src/doxygen-config-common.txt                 |    4 +
 docs/src/doxygen-config-common.txt.cmake           |    4 +
 docs/src/doxygen-config-cpp.txt.cmake              |    3 +-
 docs/src/doxygen-config-cpp.txt.in                 |    3 +-
 docs/src/doxygen-config-csharp.txt.cmake           |    8 +-
 docs/src/doxygen-config-csharp.txt.in              |    4 +-
 docs/src/doxygen-config-python.txt.cmake           |    7 +-
 docs/src/doxygen-config-python.txt.in              |    3 +-
 docs/src/doxygen-layout-c.xml                      |    1 +
 docs/src/doxygen-layout-cpp.xml                    |    1 +
 docs/src/doxygen-layout-csharp.xml                 |    1 +
 docs/src/doxygen-layout-python.xml                 |    1 +
 docs/src/filters/doc-filter-c.py                   |    2 +-
 docs/src/filters/doc-filter-csharp.py              |    2 +-
 docs/src/filters/doc-filter-python.py              |    6 +-
 .../java-substitutions/GroupsPkgNamespaces.java    |  106 +
 .../java-substitutions/libsbmlConstants.java.in    |  394 +-
 docs/src/libsbml-coding.txt                        |    7 +-
 docs/src/libsbml-csharp-example-files.txt          |    7 +
 docs/src/libsbml-example-files.txt                 |   19 +
 docs/src/libsbml-groups.txt                        |    6 +
 docs/src/libsbml-installation-guide.txt            |    1 +
 docs/src/libsbml-java-example-files.html           |   18 +
 docs/src/libsbml-python-example-files.txt          |   12 +
 .../python-substitutions/GroupsPkgNamespaces.py    |   72 +
 docs/src/python-substitutions/libsbml.py           |  417 ++
 docs/src/utilities/compare-classes.py              |    2 +-
 docs/src/utilities/compare-constants.py            |    2 +-
 docs/src/utilities/generate-class-name-list.py     |    2 +-
 docs/src/utilities/generate-converters-list.py     |    2 +-
 .../utilities/generate-cplusplus-class-names.py    |    2 +-
 docs/src/utilities/generate-extensions-summary.py  |    4 +-
 docs/src/utilities/generate-pkg-stylesheet.py      |   47 +-
 dyn-package.cmake                                  |    2 +-
 examples/CMakeLists.txt                            |    2 +-
 examples/c++/CMakeLists.txt                        |    2 +-
 examples/c++/Makefile.in                           |    2 +-
 examples/c++/addCVTerms.cpp                        |    2 +-
 examples/c++/addCustomValidator.cpp                |    2 +-
 examples/c++/addModelHistory.cpp                   |    2 +-
 examples/c++/addingEvidenceCodes_1.cpp             |    2 +-
 examples/c++/addingEvidenceCodes_2.cpp             |    2 +-
 examples/c++/appendAnnotation.cpp                  |    2 +-
 examples/c++/arrays/CMakeLists.txt                 |    2 +-
 examples/c++/callExternalValidator.cpp             |    2 +-
 examples/c++/comp/CMakeLists.txt                   |    2 +-
 examples/c++/comp/Makefile.in                      |    2 +-
 examples/c++/comp/SBMLHttpResolverExample.cpp      |    2 +-
 examples/c++/comp/flattenModel.cpp                 |    2 +-
 examples/c++/comp/flattenModelAdvanced.cpp         |    2 +-
 examples/c++/comp/spec_example1.cpp                |    2 +-
 examples/c++/comp/spec_example2.cpp                |    2 +-
 examples/c++/comp/spec_example3.cpp                |    2 +-
 examples/c++/comp/spec_example4.cpp                |    2 +-
 examples/c++/convertReactions.cpp                  |  214 +-
 examples/c++/convertSBML.cpp                       |    2 +-
 examples/c++/convertToL1V1.cpp                     |  244 +-
 examples/c++/createExampleSBML.cpp                 |    2 +-
 examples/c++/dyn/CMakeLists.txt                    |    2 +-
 examples/c++/dyn/dyn_example1.cpp                  |    2 +-
 examples/c++/dyn/dyn_example2.cpp                  |    2 +-
 examples/c++/echoSBML.cpp                          |    2 +-
 examples/c++/fbc/CMakeLists.txt                    |    2 +-
 examples/c++/fbc/Makefile.in                       |    2 +-
 examples/c++/fbc/convertCobraToFbc.cpp             |    2 +-
 examples/c++/fbc/convertFbcToCobra.cpp             |    2 +-
 examples/c++/fbc/convertFbcV1ToV2.cpp              |    2 +-
 examples/c++/fbc/convertFbcV2ToV1.cpp              |    2 +-
 examples/c++/fbc/fbc_example1.cpp                  |    2 +-
 examples/c++/getAllElementsWithNotes.cpp           |    2 +-
 examples/c++/groups/CMakeLists.txt                 |    4 +-
 examples/c++/groups/example1.cpp                   |  121 -
 examples/c++/groups/example2.cpp                   |  321 -
 examples/c++/groups/groups_example1.cpp            |  122 +
 examples/c++/groups/groups_example2.cpp            |  323 +
 examples/c++/inferUnits.cpp                        |    2 +-
 examples/c++/inlineFunctionDefintions.cpp          |    2 +-
 examples/c++/layout/CMakeLists.txt                 |    2 +-
 examples/c++/layout/Makefile.in                    |    2 +-
 examples/c++/layout/addLayout.cpp                  |    2 +-
 examples/c++/layout/convertLayout.cpp              |    2 +-
 examples/c++/multi/multi_example1.cpp              |    4 -
 examples/c++/multi/multi_example3.cpp              |   20 +-
 examples/c++/printAnnotation.cpp                   |    2 +-
 examples/c++/printMath.cpp                         |    2 +-
 examples/c++/printNotes.cpp                        |    2 +-
 examples/c++/printRegisteredPackages.cpp           |    2 +-
 examples/c++/printSBML.cpp                         |    2 +-
 examples/c++/printSupported.cpp                    |    2 +-
 examples/c++/printUnits.cpp                        |    2 +-
 examples/c++/promoteParameters.cpp                 |    2 +-
 examples/c++/qual/CMakeLists.txt                   |    2 +-
 examples/c++/qual/Makefile.in                      |    2 +-
 examples/c++/qual/qual_example1.cpp                |    2 +-
 examples/c++/readSBML.cpp                          |    2 +-
 examples/c++/renameSId.cpp                         |    2 +-
 examples/c++/rngvalidator.cpp                      |    2 +-
 examples/c++/setIdFromNames.cpp                    |    2 +-
 examples/c++/setNamesFromIds.cpp                   |    2 +-
 examples/c++/stripPackage.cpp                      |    2 +-
 examples/c++/translateL3Math.cpp                   |    2 +-
 examples/c++/translateMath.cpp                     |    2 +-
 examples/c++/unsetAnnotation.cpp                   |    2 +-
 examples/c++/unsetNotes.cpp                        |    2 +-
 examples/c++/util.c                                |    2 +-
 examples/c++/util.h                                |    2 +-
 examples/c++/validateSBML.cpp                      |    2 +-
 examples/c/CMakeLists.txt                          |    2 +-
 examples/c/FormulaGraphvizFormatter.h              |    2 +-
 examples/c/Makefile.in                             |    2 +-
 examples/c/addCVTerms.c                            |    2 +-
 examples/c/addModelHistory.c                       |    2 +-
 examples/c/addingEvidenceCodes_1.c                 |    2 +-
 examples/c/addingEvidenceCodes_2.c                 |    2 +-
 examples/c/appendAnnotation.c                      |    2 +-
 examples/c/comp/CMakeLists.txt                     |    2 +-
 examples/c/comp/Makefile.in                        |    2 +-
 examples/c/comp/flattenModel.c                     |    2 +-
 examples/c/comp/spec_example1.c                    |    2 +-
 examples/c/convertSBML.c                           |    2 +-
 examples/c/createExampleSBML.c                     |    2 +-
 examples/c/drawMath.c                              |    2 +-
 examples/c/echoSBML.c                              |    2 +-
 examples/c/printAnnotation.c                       |    2 +-
 examples/c/printMath.c                             |    2 +-
 examples/c/printNotes.c                            |    2 +-
 examples/c/printRegisteredPackages.c               |    2 +-
 examples/c/printSBML.c                             |    2 +-
 examples/c/printSupported.c                        |    2 +-
 examples/c/printUnits.c                            |    2 +-
 examples/c/promoteParameters.c                     |    2 +-
 examples/c/readSBML.c                              |    2 +-
 examples/c/stripPackage.c                          |    2 +-
 examples/c/translateL3Math.c                       |    2 +-
 examples/c/translateMath.c                         |    2 +-
 examples/c/unsetAnnotation.c                       |    2 +-
 examples/c/unsetNotes.c                            |    2 +-
 examples/c/util.c                                  |    2 +-
 examples/c/util.h                                  |    2 +-
 examples/c/validateSBML.c                          |    2 +-
 examples/comp-package.cmake                        |    2 +-
 examples/csharp/CMakeLists.txt                     |    2 +-
 examples/csharp/GetAllElementsWithNotes.cs         |    2 +-
 examples/csharp/Makefile.in                        |    2 +-
 examples/csharp/SetIdFromNames.cs                  |    2 +-
 examples/csharp/addCVTerms.cs                      |    2 +-
 examples/csharp/addCustomValidator.cs              |    2 +-
 examples/csharp/addModelHistory.cs                 |    2 +-
 examples/csharp/addingEvidenceCodes_1.cs           |    2 +-
 examples/csharp/addingEvidenceCodes_2.cs           |    2 +-
 examples/csharp/appendAnnotation.cs                |    2 +-
 examples/csharp/callExternalValidator.cs           |    2 +-
 examples/csharp/comp/CMakeLists.txt                |    2 +-
 examples/csharp/comp/CompExample1.cs               |    2 +-
 examples/csharp/comp/CustomResolver.cs             |  147 +
 examples/csharp/comp/FlattenModel.cs               |    2 +-
 examples/csharp/comp/SpecExample1.cs               |    2 +-
 examples/csharp/comp/SpecExample2.cs               |    2 +-
 examples/csharp/comp/SpecExample3.cs               |    2 +-
 examples/csharp/comp/SpecExample4.cs               |    2 +-
 examples/csharp/convertSBML.cs                     |    2 +-
 examples/csharp/createExampleSBML.cs               |    2 +-
 examples/csharp/echoSBML.cs                        |    2 +-
 examples/csharp/evaluateCustomMath.cs              |  190 +-
 examples/csharp/fbc/CMakeLists.txt                 |    2 +-
 examples/csharp/fbc/convertCobraToFbc.cs           |    2 +-
 examples/csharp/fbc/convertFbcToCobra.cs           |    2 +-
 examples/csharp/fbc/fbc_example1.cs                |    2 +-
 examples/csharp/groups/CMakeLists.txt              |   52 +-
 .../groups/{example1.cs => groups_example1.cs}     |    0
 examples/csharp/inlineInitialAssignments.cs        |  160 +-
 examples/csharp/layout/CMakeLists.txt              |    2 +-
 examples/csharp/printAnnotation.cs                 |    2 +-
 examples/csharp/printMath.cs                       |    2 +-
 examples/csharp/printNotes.cs                      |    2 +-
 examples/csharp/printRegisteredPackages.cs         |    2 +-
 examples/csharp/printSBML.cs                       |    2 +-
 examples/csharp/printUnits.cs                      |    2 +-
 examples/csharp/printsupported.cs                  |    2 +-
 examples/csharp/promoteParameters.cs               |    2 +-
 examples/csharp/qual/CMakeLists.txt                |    2 +-
 examples/csharp/qual/qual_example1.cs              |    2 +-
 examples/csharp/readSBML.cs                        |    2 +-
 examples/csharp/replaceOneFD.cs                    |  226 +-
 examples/csharp/stripPackage.cs                    |    2 +-
 examples/csharp/translateMath.cs                   |    2 +-
 examples/csharp/unsetAnnotation.cs                 |    2 +-
 examples/csharp/unsetNotes.cs                      |    2 +-
 examples/csharp/validateSBML.cs                    |    2 +-
 examples/dyn-package.cmake                         |    2 +-
 examples/fbc-package.cmake                         |    2 +-
 examples/java/CMakeLists.txt                       |    2 +-
 examples/java/Makefile.in                          |    2 +-
 examples/java/addCVTerms.java                      |    2 +-
 examples/java/addCustomValidator.java              |    2 +-
 examples/java/addModelHistory.java                 |    2 +-
 examples/java/addingEvidenceCodes_1.java           |    2 +-
 examples/java/addingEvidenceCodes_2.java           |    2 +-
 examples/java/appendAnnotation.java                |    2 +-
 examples/java/callExternalValidator.java           |    2 +-
 examples/java/comp/CMakeLists.txt                  |    3 +-
 examples/java/comp/customResolver.java             |  220 +
 examples/java/comp/flattenModel.java               |    2 +-
 examples/java/convertSBML.java                     |    2 +-
 examples/java/createExampleSBML.java               |    2 +-
 examples/java/echoSBML.java                        |    2 +-
 examples/java/evaluateCustomMath.java              |  272 +-
 examples/java/evaluateMath.java                    |    2 +-
 examples/java/fbc/CMakeLists.txt                   |    2 +-
 examples/java/fbc/convertCobraToFbc.java           |    2 +-
 examples/java/fbc/convertFbcToCobra.java           |    2 +-
 examples/java/fbc/fbc_example1.java                |    2 +-
 examples/java/getAllElementsWithNotes.java         |    2 +-
 examples/java/groups/CMakeLists.txt                |   80 +-
 examples/java/groups/example1.java                 |  124 -
 examples/java/groups/groups_example1.java          |  124 +
 examples/java/inlineInitialAssignments.java        |  244 +-
 examples/java/layout/CMakeLists.txt                |    2 +-
 examples/java/layout/SimpleLayoutConverter.java    |  354 +-
 examples/java/printAnnotation.java                 |    2 +-
 examples/java/printMath.java                       |    2 +-
 examples/java/printNotes.java                      |    2 +-
 examples/java/printRegisteredPackages.java         |    2 +-
 examples/java/printSBML.java                       |    2 +-
 examples/java/printUnits.java                      |    2 +-
 examples/java/printsupported.java                  |    2 +-
 examples/java/promoteParameters.java               |    2 +-
 examples/java/qual/CMakeLists.txt                  |    2 +-
 examples/java/qual/qual_example1.java              |    2 +-
 examples/java/readSBML.java                        |    2 +-
 examples/java/replaceOneFD.java                    |  306 +-
 examples/java/setIdFromNames.java                  |    2 +-
 examples/java/spatial/CMakeLists.txt               |    2 +-
 examples/java/spatial/spatial_example1.java        |    2 +-
 examples/java/stripPackage.java                    |    2 +-
 examples/java/translateMath.java                   |    2 +-
 examples/java/unsetAnnotation.java                 |    2 +-
 examples/java/unsetNotes.java                      |    2 +-
 examples/java/validateSBML.java                    |    2 +-
 examples/javascript/addCVTerms.js                  |    2 +-
 examples/javascript/addModelHistory.js             |    2 +-
 examples/javascript/addingEvidenceCodes_1.js       |    2 +-
 examples/javascript/addingEvidenceCodes_2.js       |    2 +-
 examples/javascript/appendAnnotation.js            |    2 +-
 examples/javascript/callExternalValidator.js       |    2 +-
 examples/javascript/convertSBML.js                 |    2 +-
 examples/javascript/createExampleSBML.js           |    2 +-
 examples/javascript/echoSBML.js                    |    2 +-
 examples/javascript/printAnnotation.js             |    2 +-
 examples/javascript/printMath.js                   |    2 +-
 examples/javascript/printNotes.js                  |    2 +-
 examples/javascript/printRegisteredPackages.js     |    2 +-
 examples/javascript/printSBML.js                   |    2 +-
 examples/javascript/printUnits.js                  |    2 +-
 examples/javascript/printsupported.js              |    2 +-
 examples/javascript/promoteParameters.js           |    2 +-
 examples/javascript/readSBML.js                    |    2 +-
 examples/javascript/stripPackage.js                |    2 +-
 examples/javascript/translateMath.js               |    2 +-
 examples/javascript/unsetAnnotation.js             |    2 +-
 examples/javascript/unsetNotes.js                  |    2 +-
 examples/javascript/validateSBML.js                |    2 +-
 examples/layout-package.cmake                      |    2 +-
 examples/perl/addCVTerms.pl                        |    2 +-
 examples/perl/addCustomValidator.pl                |    2 +-
 examples/perl/addModelHistory.pl                   |    2 +-
 examples/perl/addingEvidenceCodes_1.pl             |    2 +-
 examples/perl/addingEvidenceCodes_2.pl             |    2 +-
 examples/perl/appendAnnotation.pl                  |    2 +-
 examples/perl/callExternalValidator.pl             |    2 +-
 examples/perl/comp/flattenModel.pl                 |    2 +-
 examples/perl/createExampleSBML.pl                 |    2 +-
 examples/perl/echoSBML.pl                          |    2 +-
 examples/perl/fbc/convertCobraToFbc.pl             |    2 +-
 examples/perl/fbc/convertFbcToCobra.pl             |    2 +-
 examples/perl/fbc/example1.pl                      |    2 +-
 .../groups/{example1.pl => groups_example1.pl}     |    0
 examples/perl/printAnnotation.pl                   |    2 +-
 examples/perl/printNotes.pl                        |    2 +-
 examples/perl/printRegisteredPackages.pl           |    2 +-
 examples/perl/printUnits.pl                        |    2 +-
 examples/perl/printsupported.pl                    |    2 +-
 examples/perl/promoteParameters.pl                 |    2 +-
 examples/perl/stripPackage.pl                      |    2 +-
 examples/perl/unsetAnnotation.pl                   |    2 +-
 examples/perl/unsetNotes.pl                        |    2 +-
 examples/python/addCVTerms.py                      |    2 +-
 examples/python/addCustomValidator.py              |    2 +-
 examples/python/addModelHistory.py                 |    2 +-
 examples/python/addingEvidenceCodes_1.py           |    2 +-
 examples/python/addingEvidenceCodes_2.py           |    2 +-
 examples/python/appendAnnotation.py                |    2 +-
 examples/python/callExternalValidator.py           |    2 +-
 examples/python/comp/flattenModel.py               |    2 +-
 examples/python/convertSBML.py                     |    2 +-
 examples/python/createExampleSBML.py               |    2 +-
 examples/python/createSimpleModel.py               |    2 +-
 examples/python/dyn/dyn_example1.py                |    2 +-
 examples/python/dyn/dyn_example2.py                |    2 +-
 examples/python/echoSBML.py                        |    2 +-
 examples/python/evaluateCustomMath.py              |  162 +-
 examples/python/fbc/convertCobraToFbc.py           |    2 +-
 examples/python/fbc/convertFbcToCobra.py           |    2 +-
 examples/python/fbc/fbc_example1.py                |    2 +-
 examples/python/getAllElementsWithNotes.py         |    2 +-
 examples/python/groups/example1.py                 |  115 -
 examples/python/groups/groups_example1.py          |  115 +
 examples/python/inlineInitialAssignments.py        |  140 +-
 examples/python/layout/convertLayout.py            |    2 +-
 examples/python/printAnnotation.py                 |    2 +-
 examples/python/printMath.py                       |    2 +-
 examples/python/printNotes.py                      |    2 +-
 examples/python/printRegisteredPackages.py         |    2 +-
 examples/python/printSBML.py                       |    2 +-
 examples/python/printUnits.py                      |    2 +-
 examples/python/printsupported.py                  |    2 +-
 examples/python/promoteParameters.py               |    2 +-
 examples/python/qual/qual_example1.py              |    2 +-
 examples/python/readSBML.py                        |    2 +-
 examples/python/replaceOneFD.py                    |  182 +-
 examples/python/setIdFromNames.py                  |    2 +-
 examples/python/stripPackage.py                    |    2 +-
 examples/python/translateMath.py                   |    2 +-
 examples/python/unsetAnnotation.py                 |    2 +-
 examples/python/unsetNotes.py                      |    2 +-
 examples/python/validateSBML.py                    |    2 +-
 examples/qual-package.cmake                        |    2 +-
 examples/r/addCVTerms.R                            |    2 +-
 examples/r/addModelHistory.R                       |    2 +-
 examples/r/addingEvidenceCodes_1.R                 |    2 +-
 examples/r/addingEvidenceCodes_2.R                 |    2 +-
 examples/r/appendAnnotation.R                      |    2 +-
 examples/r/comp/flattenModel.R                     |    2 +-
 examples/r/convertSBML.R                           |    2 +-
 examples/r/createExampleSBML.R                     |    2 +-
 examples/r/echoSBML.R                              |    2 +-
 examples/r/evaluateMath.R                          |    2 +-
 examples/r/fbc/convertCobraToFbc.R                 |    2 +-
 examples/r/fbc/convertFbcToCobra.R                 |    2 +-
 examples/r/printAnnotation.R                       |    2 +-
 examples/r/printMath.R                             |    2 +-
 examples/r/printNotes.R                            |    2 +-
 examples/r/printRegisteredPackages.R               |    2 +-
 examples/r/printSBML.R                             |    2 +-
 examples/r/printSupported.R                        |    2 +-
 examples/r/printUnits.R                            |    2 +-
 examples/r/promoteParameters.R                     |    2 +-
 examples/r/readSBML.R                              |    2 +-
 examples/r/stripPackage.R                          |    2 +-
 examples/r/translateMath.R                         |    2 +-
 examples/r/unsetAnnotation.R                       |    2 +-
 examples/r/unsetNotes.R                            |    2 +-
 examples/r/validateSBML.R                          |    2 +-
 examples/ruby/addCVTerms.rb                        |    2 +-
 examples/ruby/addCustomValidator.rb                |    2 +-
 examples/ruby/addModelHistory.rb                   |    2 +-
 examples/ruby/addingEvidenceCodes_1.rb             |    2 +-
 examples/ruby/addingEvidenceCodes_2.rb             |    2 +-
 examples/ruby/appendAnnotation.rb                  |    2 +-
 examples/ruby/callExternalValidator.rb             |    2 +-
 examples/ruby/comp/flattenModel.rb                 |    2 +-
 examples/ruby/convertSBML.rb                       |    2 +-
 examples/ruby/createExampleSBML.rb                 |    2 +-
 examples/ruby/echoSBML.rb                          |    2 +-
 examples/ruby/fbc/convertCobraToFbc.rb             |    2 +-
 examples/ruby/fbc/convertFbcToCobra.rb             |    2 +-
 examples/ruby/fbc/example1.rb                      |    2 +-
 .../groups/{example1.rb => groups_example1.rb}     |    0
 examples/ruby/printAnnotation.rb                   |    2 +-
 examples/ruby/printMath.rb                         |    2 +-
 examples/ruby/printNotes.rb                        |    2 +-
 examples/ruby/printRegisteredPackages.rb           |    2 +-
 examples/ruby/printSBML.rb                         |    2 +-
 examples/ruby/printUnits.rb                        |    2 +-
 examples/ruby/printsupported.rb                    |    2 +-
 examples/ruby/promoteParameters.rb                 |    2 +-
 examples/ruby/readSBML.rb                          |    2 +-
 examples/ruby/stripPackage.rb                      |    2 +-
 examples/ruby/translateMath.rb                     |    2 +-
 examples/ruby/unsetAnnotation.rb                   |    2 +-
 examples/ruby/unsetNotes.rb                        |    2 +-
 examples/ruby/validateSBML.rb                      |    2 +-
 examples/sample-models/fbc/fbc_example1.xml        |  240 +-
 .../from-spec/level-3/algebraicrules.xml           |  214 +-
 .../from-spec/level-3/assignmentrules.xml          |  204 +-
 .../from-spec/level-3/boundarycondition.xml        |  148 +-
 examples/sample-models/from-spec/level-3/delay.xml |  148 +-
 .../from-spec/level-3/dimerization.xml             |  178 +-
 .../from-spec/level-3/enzymekinetics.xml           |  182 +-
 .../sample-models/from-spec/level-3/events.xml     |  210 +-
 .../from-spec/level-3/fullydeterminedevent.xml     |  162 +-
 .../from-spec/level-3/functiondef.xml              |  142 +-
 .../sample-models/from-spec/level-3/multicomp.xml  |  240 +-
 .../from-spec/level-3/overdetermined.xml           |  106 +-
 .../from-spec/level-3/twodimensional.xml           |  530 +-
 fbc-package.cmake                                  |   12 +-
 groups-package.cmake                               |   90 +-
 layout-package.cmake                               |    2 +-
 libsbml.spec.in                                    |    2 +-
 multi-package.cmake                                |    2 +-
 qual-package.cmake                                 |    2 +-
 render-package.cmake                               |    2 +-
 req-package.cmake                                  |    2 +-
 spatial-package.cmake                              |    2 +-
 src/CMakeLists.txt                                 |    2 +-
 src/Makefile.in                                    |    2 +-
 src/bindings/CMakeLists.txt                        |    2 +-
 src/bindings/Makefile.in                           |    2 +-
 src/bindings/csharp/CMakeLists.txt                 |    2 +-
 src/bindings/csharp/Compiler.cs                    |    2 +-
 src/bindings/csharp/Makefile.in                    |   34 +-
 src/bindings/csharp/TestRW.cs                      |    2 +-
 src/bindings/csharp/TestRunner.cs                  |    2 +-
 src/bindings/csharp/compile-native-files.cmake     |    2 +-
 src/bindings/csharp/csdoc.i                        |  730 +-
 src/bindings/csharp/csharp-files-win/ASTBase.cs    |    2 +-
 .../csharp/csharp-files-win/ASTBasePlugin.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/ASTNode.cs    |    6 +-
 .../csharp/csharp-files-win/ASTNodeList.cs         |    2 +-
 .../csharp/csharp-files-win/AlgebraicRule.cs       |    2 +-
 .../csharp/csharp-files-win/AssignmentRule.cs      |    2 +-
 src/bindings/csharp/csharp-files-win/CVTerm.cs     |   68 +-
 src/bindings/csharp/csharp-files-win/CVTermList.cs |    2 +-
 .../csharp/csharp-files-win/Compartment.cs         |    8 +-
 .../csharp/csharp-files-win/CompartmentType.cs     |    8 +-
 src/bindings/csharp/csharp-files-win/Constraint.cs |    8 +-
 .../csharp/csharp-files-win/ConversionOption.cs    |    2 +-
 .../csharp-files-win/ConversionProperties.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/Date.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/DateList.cs   |    2 +-
 src/bindings/csharp/csharp-files-win/Delay.cs      |    8 +-
 .../csharp/csharp-files-win/ElementFilter.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/Event.cs      |    8 +-
 .../csharp/csharp-files-win/EventAssignment.cs     |    8 +-
 .../csharp/csharp-files-win/FunctionDefinition.cs  |    8 +-
 .../csharp-files-win/ISBMLExtensionNamespaces.cs   |    2 +-
 src/bindings/csharp/csharp-files-win/IdList.cs     |    2 +-
 .../csharp-files-win/IdentifierTransformer.cs      |    2 +-
 .../csharp/csharp-files-win/InitialAssignment.cs   |    8 +-
 src/bindings/csharp/csharp-files-win/KineticLaw.cs |    8 +-
 .../csharp/csharp-files-win/L3ParserSettings.cs    |    4 +-
 src/bindings/csharp/csharp-files-win/ListOf.cs     |   13 +-
 .../csharp-files-win/ListOfCompartmentTypes.cs     |    7 +-
 .../csharp/csharp-files-win/ListOfCompartments.cs  |    7 +-
 .../csharp/csharp-files-win/ListOfConstraints.cs   |    7 +-
 .../csharp-files-win/ListOfEventAssignments.cs     |    7 +-
 .../csharp/csharp-files-win/ListOfEvents.cs        |    7 +-
 .../csharp-files-win/ListOfFunctionDefinitions.cs  |    7 +-
 .../csharp-files-win/ListOfInitialAssignments.cs   |    7 +-
 .../csharp-files-win/ListOfLocalParameters.cs      |    7 +-
 .../csharp/csharp-files-win/ListOfParameters.cs    |    7 +-
 .../csharp/csharp-files-win/ListOfReactions.cs     |   35 +-
 .../csharp/csharp-files-win/ListOfRules.cs         |    7 +-
 .../csharp/csharp-files-win/ListOfSpecies.cs       |    7 +-
 .../csharp-files-win/ListOfSpeciesReferences.cs    |    7 +-
 .../csharp/csharp-files-win/ListOfSpeciesTypes.cs  |    7 +-
 .../csharp-files-win/ListOfUnitDefinitions.cs      |    7 +-
 .../csharp/csharp-files-win/ListOfUnits.cs         |    7 +-
 .../csharp/csharp-files-win/LocalParameter.cs      |    8 +-
 src/bindings/csharp/csharp-files-win/MathML.cs     |    2 +-
 src/bindings/csharp/csharp-files-win/Model.cs      |   43 +-
 .../csharp/csharp-files-win/ModelCreator.cs        |    2 +-
 .../csharp/csharp-files-win/ModelCreatorList.cs    |    2 +-
 .../csharp/csharp-files-win/ModelHistory.cs        |    2 +-
 .../csharp-files-win/ModifierSpeciesReference.cs   |    8 +-
 src/bindings/csharp/csharp-files-win/OFStream.cs   |    2 +-
 src/bindings/csharp/csharp-files-win/OStream.cs    |    2 +-
 .../csharp/csharp-files-win/OStringStream.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/Parameter.cs  |    8 +-
 src/bindings/csharp/csharp-files-win/Priority.cs   |    8 +-
 .../csharp/csharp-files-win/RDFAnnotationParser.cs |    2 +-
 src/bindings/csharp/csharp-files-win/RateRule.cs   |    2 +-
 src/bindings/csharp/csharp-files-win/Reaction.cs   |   15 +-
 src/bindings/csharp/csharp-files-win/Rule.cs       |    8 +-
 .../csharp-files-win/SBMLConstructorException.cs   |    2 +-
 .../csharp/csharp-files-win/SBMLConverter.cs       |    2 +-
 .../csharp-files-win/SBMLConverterRegistry.cs      |    2 +-
 .../csharp/csharp-files-win/SBMLDocument.cs        |   68 +-
 .../csharp/csharp-files-win/SBMLDocumentPlugin.cs  |    2 +-
 src/bindings/csharp/csharp-files-win/SBMLError.cs  |    2 +-
 .../csharp/csharp-files-win/SBMLErrorLog.cs        |    2 +-
 .../csharp/csharp-files-win/SBMLExtension.cs       |    4 +-
 .../csharp-files-win/SBMLExtensionException.cs     |    2 +-
 .../csharp-files-win/SBMLExtensionRegistry.cs      |    2 +-
 .../csharp-files-win/SBMLExternalValidator.cs      |    2 +-
 .../SBMLFunctionDefinitionConverter.cs             |    2 +-
 .../csharp/csharp-files-win/SBMLIdConverter.cs     |    2 +-
 .../csharp-files-win/SBMLInferUnitsConverter.cs    |    2 +-
 .../SBMLInitialAssignmentConverter.cs              |    2 +-
 .../SBMLLevel1Version1Converter.cs                 |    6 +-
 .../csharp-files-win/SBMLLevelVersionConverter.cs  |    2 +-
 .../SBMLLocalParameterConverter.cs                 |    2 +-
 .../csharp/csharp-files-win/SBMLNamespaces.cs      |    2 +-
 .../csharp/csharp-files-win/SBMLNamespacesList.cs  |    2 +-
 .../csharp-files-win/SBMLReactionConverter.cs      |    2 +-
 src/bindings/csharp/csharp-files-win/SBMLReader.cs |    2 +-
 .../csharp/csharp-files-win/SBMLRuleConverter.cs   |    2 +-
 .../csharp-files-win/SBMLStripPackageConverter.cs  |    2 +-
 .../csharp/csharp-files-win/SBMLTransforms.cs      |    2 +-
 .../csharp/csharp-files-win/SBMLUnitsConverter.cs  |    2 +-
 .../csharp/csharp-files-win/SBMLValidator.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/SBMLWriter.cs |    2 +-
 src/bindings/csharp/csharp-files-win/SBO.cs        |    6 +-
 src/bindings/csharp/csharp-files-win/SBase.cs      |   16 +-
 .../csharp/csharp-files-win/SBaseExtensionPoint.cs |    2 +-
 src/bindings/csharp/csharp-files-win/SBaseList.cs  |    2 +-
 .../csharp/csharp-files-win/SBasePlugin.cs         |    3 +-
 .../csharp-files-win/SWIGTYPE_p_ASTFunction.cs     |    2 +-
 .../SWIGTYPE_p_ExpectedAttributes.cs               |    2 +-
 .../SWIGTYPE_p_FormulaUnitsData.cs                 |    2 +-
 .../csharp/csharp-files-win/SWIGTYPE_p_List.cs     |    2 +-
 .../csharp-files-win/SWIGTYPE_p_StringBuffer_t.cs  |    2 +-
 .../csharp-files-win/SWIGTYPE_p_std__ostream.cs    |    2 +-
 .../SWIGTYPE_p_std__vectorT_XMLError_p_t.cs        |    2 +-
 .../SWIGTYPE_p_std__vectorT_std__string_t.cs       |    2 +-
 .../csharp-files-win/SimpleSpeciesReference.cs     |    2 +-
 src/bindings/csharp/csharp-files-win/Species.cs    |    8 +-
 .../csharp/csharp-files-win/SpeciesReference.cs    |    2 +-
 .../csharp/csharp-files-win/SpeciesType.cs         |    8 +-
 .../csharp/csharp-files-win/StoichiometryMath.cs   |    8 +-
 .../csharp/csharp-files-win/SyntaxChecker.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/Trigger.cs    |    8 +-
 src/bindings/csharp/csharp-files-win/Unit.cs       |    8 +-
 .../csharp/csharp-files-win/UnitDefinition.cs      |    8 +-
 .../csharp/csharp-files-win/XMLAttributes.cs       |    2 +-
 .../csharp-files-win/XMLConstructorException.cs    |    2 +-
 src/bindings/csharp/csharp-files-win/XMLError.cs   |    2 +-
 .../csharp/csharp-files-win/XMLErrorLog.cs         |    2 +-
 .../csharp/csharp-files-win/XMLInputStream.cs      |    2 +-
 .../csharp/csharp-files-win/XMLNamespaces.cs       |    2 +-
 src/bindings/csharp/csharp-files-win/XMLNode.cs    |    2 +-
 .../csharp/csharp-files-win/XMLOutputStream.cs     |  114 +-
 .../csharp-files-win/XMLOwningOutputFileStream.cs  |    2 +-
 .../XMLOwningOutputStringStream.cs                 |    2 +-
 src/bindings/csharp/csharp-files-win/XMLToken.cs   |    2 +-
 src/bindings/csharp/csharp-files-win/XMLTriple.cs  |    2 +-
 src/bindings/csharp/csharp-files-win/libsbml.cs    |  123 +-
 .../csharp/csharp-files-win/libsbmlPINVOKE.cs      |   83 +-
 src/bindings/csharp/csharp-files/ASTBase.cs        |    2 +-
 src/bindings/csharp/csharp-files/ASTBasePlugin.cs  |    2 +-
 src/bindings/csharp/csharp-files/ASTNode.cs        |    6 +-
 src/bindings/csharp/csharp-files/ASTNodeList.cs    |    2 +-
 src/bindings/csharp/csharp-files/AlgebraicRule.cs  |    2 +-
 src/bindings/csharp/csharp-files/AssignmentRule.cs |    2 +-
 src/bindings/csharp/csharp-files/CVTerm.cs         |   68 +-
 src/bindings/csharp/csharp-files/CVTermList.cs     |    2 +-
 src/bindings/csharp/csharp-files/Compartment.cs    |    8 +-
 .../csharp/csharp-files/CompartmentType.cs         |    8 +-
 src/bindings/csharp/csharp-files/Constraint.cs     |    8 +-
 .../csharp/csharp-files/ConversionOption.cs        |    2 +-
 .../csharp/csharp-files/ConversionProperties.cs    |    2 +-
 src/bindings/csharp/csharp-files/Date.cs           |    2 +-
 src/bindings/csharp/csharp-files/DateList.cs       |    2 +-
 src/bindings/csharp/csharp-files/Delay.cs          |    8 +-
 src/bindings/csharp/csharp-files/ElementFilter.cs  |    2 +-
 src/bindings/csharp/csharp-files/Event.cs          |    8 +-
 .../csharp/csharp-files/EventAssignment.cs         |    8 +-
 .../csharp/csharp-files/FunctionDefinition.cs      |    8 +-
 .../csharp-files/ISBMLExtensionNamespaces.cs       |    2 +-
 src/bindings/csharp/csharp-files/IdList.cs         |    2 +-
 .../csharp/csharp-files/IdentifierTransformer.cs   |    2 +-
 .../csharp/csharp-files/InitialAssignment.cs       |    8 +-
 src/bindings/csharp/csharp-files/KineticLaw.cs     |    8 +-
 .../csharp/csharp-files/L3ParserSettings.cs        |    4 +-
 src/bindings/csharp/csharp-files/ListOf.cs         |   13 +-
 .../csharp/csharp-files/ListOfCompartmentTypes.cs  |    7 +-
 .../csharp/csharp-files/ListOfCompartments.cs      |    7 +-
 .../csharp/csharp-files/ListOfConstraints.cs       |    7 +-
 .../csharp/csharp-files/ListOfEventAssignments.cs  |    7 +-
 src/bindings/csharp/csharp-files/ListOfEvents.cs   |    7 +-
 .../csharp-files/ListOfFunctionDefinitions.cs      |    7 +-
 .../csharp-files/ListOfInitialAssignments.cs       |    7 +-
 .../csharp/csharp-files/ListOfLocalParameters.cs   |    7 +-
 .../csharp/csharp-files/ListOfParameters.cs        |    7 +-
 .../csharp/csharp-files/ListOfReactions.cs         |   35 +-
 src/bindings/csharp/csharp-files/ListOfRules.cs    |    7 +-
 src/bindings/csharp/csharp-files/ListOfSpecies.cs  |    7 +-
 .../csharp/csharp-files/ListOfSpeciesReferences.cs |    7 +-
 .../csharp/csharp-files/ListOfSpeciesTypes.cs      |    7 +-
 .../csharp/csharp-files/ListOfUnitDefinitions.cs   |    7 +-
 src/bindings/csharp/csharp-files/ListOfUnits.cs    |    7 +-
 src/bindings/csharp/csharp-files/LocalParameter.cs |    8 +-
 src/bindings/csharp/csharp-files/MathML.cs         |    2 +-
 src/bindings/csharp/csharp-files/Model.cs          |   43 +-
 src/bindings/csharp/csharp-files/ModelCreator.cs   |    2 +-
 .../csharp/csharp-files/ModelCreatorList.cs        |    2 +-
 src/bindings/csharp/csharp-files/ModelHistory.cs   |    2 +-
 .../csharp-files/ModifierSpeciesReference.cs       |    8 +-
 src/bindings/csharp/csharp-files/OFStream.cs       |    2 +-
 src/bindings/csharp/csharp-files/OStream.cs        |    2 +-
 src/bindings/csharp/csharp-files/OStringStream.cs  |    2 +-
 src/bindings/csharp/csharp-files/Parameter.cs      |    8 +-
 src/bindings/csharp/csharp-files/Priority.cs       |    8 +-
 .../csharp/csharp-files/RDFAnnotationParser.cs     |    2 +-
 src/bindings/csharp/csharp-files/RateRule.cs       |    2 +-
 src/bindings/csharp/csharp-files/Reaction.cs       |   15 +-
 src/bindings/csharp/csharp-files/Rule.cs           |    8 +-
 .../csharp-files/SBMLConstructorException.cs       |    2 +-
 src/bindings/csharp/csharp-files/SBMLConverter.cs  |    2 +-
 .../csharp/csharp-files/SBMLConverterRegistry.cs   |    2 +-
 src/bindings/csharp/csharp-files/SBMLDocument.cs   |   68 +-
 .../csharp/csharp-files/SBMLDocumentPlugin.cs      |    2 +-
 src/bindings/csharp/csharp-files/SBMLError.cs      |    2 +-
 src/bindings/csharp/csharp-files/SBMLErrorLog.cs   |    2 +-
 src/bindings/csharp/csharp-files/SBMLExtension.cs  |    4 +-
 .../csharp/csharp-files/SBMLExtensionException.cs  |    2 +-
 .../csharp/csharp-files/SBMLExtensionRegistry.cs   |    2 +-
 .../csharp/csharp-files/SBMLExternalValidator.cs   |    2 +-
 .../SBMLFunctionDefinitionConverter.cs             |    2 +-
 .../csharp/csharp-files/SBMLIdConverter.cs         |    2 +-
 .../csharp/csharp-files/SBMLInferUnitsConverter.cs |    2 +-
 .../csharp-files/SBMLInitialAssignmentConverter.cs |    2 +-
 .../csharp-files/SBMLLevel1Version1Converter.cs    |    6 +-
 .../csharp-files/SBMLLevelVersionConverter.cs      |    2 +-
 .../csharp-files/SBMLLocalParameterConverter.cs    |    2 +-
 src/bindings/csharp/csharp-files/SBMLNamespaces.cs |    2 +-
 .../csharp/csharp-files/SBMLNamespacesList.cs      |    2 +-
 .../csharp/csharp-files/SBMLReactionConverter.cs   |    2 +-
 src/bindings/csharp/csharp-files/SBMLReader.cs     |    2 +-
 .../csharp/csharp-files/SBMLRuleConverter.cs       |    2 +-
 .../csharp-files/SBMLStripPackageConverter.cs      |    2 +-
 src/bindings/csharp/csharp-files/SBMLTransforms.cs |    2 +-
 .../csharp/csharp-files/SBMLUnitsConverter.cs      |    2 +-
 src/bindings/csharp/csharp-files/SBMLValidator.cs  |    2 +-
 src/bindings/csharp/csharp-files/SBMLWriter.cs     |    2 +-
 src/bindings/csharp/csharp-files/SBO.cs            |    6 +-
 src/bindings/csharp/csharp-files/SBase.cs          |   16 +-
 .../csharp/csharp-files/SBaseExtensionPoint.cs     |    2 +-
 src/bindings/csharp/csharp-files/SBaseList.cs      |    2 +-
 src/bindings/csharp/csharp-files/SBasePlugin.cs    |    3 +-
 .../csharp/csharp-files/SWIGTYPE_p_ASTFunction.cs  |    2 +-
 .../csharp-files/SWIGTYPE_p_ExpectedAttributes.cs  |    2 +-
 .../csharp-files/SWIGTYPE_p_FormulaUnitsData.cs    |    2 +-
 .../csharp/csharp-files/SWIGTYPE_p_List.cs         |    2 +-
 .../csharp-files/SWIGTYPE_p_StringBuffer_t.cs      |    2 +-
 .../csharp/csharp-files/SWIGTYPE_p_std__ostream.cs |    2 +-
 .../SWIGTYPE_p_std__vectorT_XMLError_p_t.cs        |    2 +-
 .../SWIGTYPE_p_std__vectorT_std__string_t.cs       |    2 +-
 .../csharp/csharp-files/SimpleSpeciesReference.cs  |    2 +-
 src/bindings/csharp/csharp-files/Species.cs        |    8 +-
 .../csharp/csharp-files/SpeciesReference.cs        |    2 +-
 src/bindings/csharp/csharp-files/SpeciesType.cs    |    8 +-
 .../csharp/csharp-files/StoichiometryMath.cs       |    8 +-
 src/bindings/csharp/csharp-files/SyntaxChecker.cs  |    2 +-
 src/bindings/csharp/csharp-files/Trigger.cs        |    8 +-
 src/bindings/csharp/csharp-files/Unit.cs           |    8 +-
 src/bindings/csharp/csharp-files/UnitDefinition.cs |    8 +-
 src/bindings/csharp/csharp-files/XMLAttributes.cs  |    2 +-
 .../csharp/csharp-files/XMLConstructorException.cs |    2 +-
 src/bindings/csharp/csharp-files/XMLError.cs       |    2 +-
 src/bindings/csharp/csharp-files/XMLErrorLog.cs    |    2 +-
 src/bindings/csharp/csharp-files/XMLInputStream.cs |    2 +-
 src/bindings/csharp/csharp-files/XMLNamespaces.cs  |    2 +-
 src/bindings/csharp/csharp-files/XMLNode.cs        |    2 +-
 .../csharp/csharp-files/XMLOutputStream.cs         |  117 +-
 .../csharp-files/XMLOwningOutputFileStream.cs      |    2 +-
 .../csharp-files/XMLOwningOutputStringStream.cs    |    2 +-
 src/bindings/csharp/csharp-files/XMLToken.cs       |    2 +-
 src/bindings/csharp/csharp-files/XMLTriple.cs      |    2 +-
 src/bindings/csharp/csharp-files/libsbml.cs        |  123 +-
 src/bindings/csharp/csharp-files/libsbmlPINVOKE.cs |   79 +-
 src/bindings/csharp/libsbml.i                      |    2 +-
 src/bindings/csharp/libsbml_wrap-win.cpp           |  298 +-
 src/bindings/csharp/libsbml_wrap.cpp               |  248 +-
 src/bindings/csharp/libsbml_wrap.h                 |    2 +-
 .../csharp/local-downcast-converters-comp.i        |   20 +-
 .../csharp/local-downcast-converters-fbc.i         |   26 +-
 .../csharp/local-downcast-converters-layout.i      |   20 +-
 .../csharp/local-downcast-converters-qual.i        |   18 +-
 src/bindings/csharp/local-downcast-converters.i.in |   28 +-
 src/bindings/csharp/local-packages-comp.i          |    2 +-
 src/bindings/csharp/local-packages-dyn.i           |    2 +-
 src/bindings/csharp/local-packages-fbc.i           |    8 +-
 src/bindings/csharp/local-packages-groups.i        |   65 +-
 src/bindings/csharp/local-packages-layout.i        |    2 +-
 src/bindings/csharp/local-packages-multi.i         |   17 +-
 src/bindings/csharp/local-packages-qual.i          |    2 +-
 src/bindings/csharp/local-packages-req.i           |    2 +-
 src/bindings/csharp/local-packages-spatial.i       |    2 +-
 src/bindings/csharp/local-packages.i.in            |    3 +
 src/bindings/csharp/local.cpp                      |    2 +-
 src/bindings/csharp/local.i                        |   21 +-
 src/bindings/csharp/swig-binding.cmake.in          |  182 +-
 src/bindings/java/AutoTestRunner.java              |    2 +-
 src/bindings/java/CMakeLists.txt                   |    2 +-
 src/bindings/java/Makefile.in                      |   33 +-
 src/bindings/java/compile-native-files.cmake       |    2 +-
 .../java/java-files/org/sbml/libsbml/ASTBase.java  |    2 +-
 .../java-files/org/sbml/libsbml/ASTBasePlugin.java |    2 +-
 .../java/java-files/org/sbml/libsbml/ASTNode.java  |   10 +-
 .../java-files/org/sbml/libsbml/ASTNodeList.java   |    6 +-
 .../java-files/org/sbml/libsbml/AlgebraicRule.java |    2 +-
 .../org/sbml/libsbml/AssignmentRule.java           |    2 +-
 .../java/java-files/org/sbml/libsbml/CVTerm.java   |   68 +-
 .../java-files/org/sbml/libsbml/CVTermList.java    |    6 +-
 .../java-files/org/sbml/libsbml/Compartment.java   |    8 +-
 .../org/sbml/libsbml/CompartmentType.java          |    8 +-
 .../java-files/org/sbml/libsbml/Constraint.java    |    8 +-
 .../org/sbml/libsbml/ConversionOption.java         |    2 +-
 .../org/sbml/libsbml/ConversionProperties.java     |   22 +-
 .../java/java-files/org/sbml/libsbml/Date.java     |    2 +-
 .../java/java-files/org/sbml/libsbml/DateList.java |    6 +-
 .../java/java-files/org/sbml/libsbml/Delay.java    |    8 +-
 .../java-files/org/sbml/libsbml/ElementFilter.java |    2 +-
 .../java/java-files/org/sbml/libsbml/Event.java    |    8 +-
 .../org/sbml/libsbml/EventAssignment.java          |    8 +-
 .../org/sbml/libsbml/FunctionDefinition.java       |    8 +-
 .../org/sbml/libsbml/ISBMLExtensionNamespaces.java |    2 +-
 .../java/java-files/org/sbml/libsbml/IdList.java   |    2 +-
 .../org/sbml/libsbml/IdentifierTransformer.java    |    2 +-
 .../org/sbml/libsbml/InitialAssignment.java        |    8 +-
 .../java-files/org/sbml/libsbml/KineticLaw.java    |    8 +-
 .../org/sbml/libsbml/L3ParserSettings.java         |    4 +-
 .../java/java-files/org/sbml/libsbml/ListOf.java   |   16 +-
 .../org/sbml/libsbml/ListOfCompartmentTypes.java   |   10 +-
 .../org/sbml/libsbml/ListOfCompartments.java       |   10 +-
 .../org/sbml/libsbml/ListOfConstraints.java        |   10 +-
 .../org/sbml/libsbml/ListOfEventAssignments.java   |   10 +-
 .../java-files/org/sbml/libsbml/ListOfEvents.java  |   10 +-
 .../sbml/libsbml/ListOfFunctionDefinitions.java    |   10 +-
 .../org/sbml/libsbml/ListOfInitialAssignments.java |   10 +-
 .../org/sbml/libsbml/ListOfLocalParameters.java    |   10 +-
 .../org/sbml/libsbml/ListOfParameters.java         |   10 +-
 .../org/sbml/libsbml/ListOfReactions.java          |   30 +-
 .../java-files/org/sbml/libsbml/ListOfRules.java   |   10 +-
 .../java-files/org/sbml/libsbml/ListOfSpecies.java |   10 +-
 .../org/sbml/libsbml/ListOfSpeciesReferences.java  |   10 +-
 .../org/sbml/libsbml/ListOfSpeciesTypes.java       |   10 +-
 .../org/sbml/libsbml/ListOfUnitDefinitions.java    |   10 +-
 .../java-files/org/sbml/libsbml/ListOfUnits.java   |   10 +-
 .../org/sbml/libsbml/LocalParameter.java           |    8 +-
 .../java/java-files/org/sbml/libsbml/MathML.java   |    2 +-
 .../java/java-files/org/sbml/libsbml/Model.java    |   37 +-
 .../java-files/org/sbml/libsbml/ModelCreator.java  |    2 +-
 .../org/sbml/libsbml/ModelCreatorList.java         |    6 +-
 .../java-files/org/sbml/libsbml/ModelHistory.java  |    2 +-
 .../org/sbml/libsbml/ModifierSpeciesReference.java |    8 +-
 .../java/java-files/org/sbml/libsbml/OFStream.java |    2 +-
 .../java/java-files/org/sbml/libsbml/OStream.java  |    2 +-
 .../java-files/org/sbml/libsbml/OStringStream.java |    2 +-
 .../java-files/org/sbml/libsbml/Parameter.java     |    8 +-
 .../java/java-files/org/sbml/libsbml/Priority.java |    8 +-
 .../org/sbml/libsbml/RDFAnnotationParser.java      |    2 +-
 .../java/java-files/org/sbml/libsbml/RateRule.java |    2 +-
 .../java/java-files/org/sbml/libsbml/Reaction.java |   13 +-
 .../java/java-files/org/sbml/libsbml/Rule.java     |   10 +-
 .../org/sbml/libsbml/SBMLConstructorException.java |    2 +-
 .../java-files/org/sbml/libsbml/SBMLConverter.java |   22 +-
 .../org/sbml/libsbml/SBMLConverterRegistry.java    |    2 +-
 .../java-files/org/sbml/libsbml/SBMLDocument.java  |   80 +-
 .../org/sbml/libsbml/SBMLDocumentPlugin.java       |    2 +-
 .../java-files/org/sbml/libsbml/SBMLError.java     |    4 +-
 .../java-files/org/sbml/libsbml/SBMLErrorLog.java  |    2 +-
 .../java-files/org/sbml/libsbml/SBMLExtension.java |    2 +-
 .../org/sbml/libsbml/SBMLExtensionException.java   |    2 +-
 .../org/sbml/libsbml/SBMLExtensionRegistry.java    |    2 +-
 .../org/sbml/libsbml/SBMLExternalValidator.java    |    2 +-
 .../libsbml/SBMLFunctionDefinitionConverter.java   |   22 +-
 .../org/sbml/libsbml/SBMLIdConverter.java          |   22 +-
 .../org/sbml/libsbml/SBMLInferUnitsConverter.java  |   22 +-
 .../libsbml/SBMLInitialAssignmentConverter.java    |   22 +-
 .../sbml/libsbml/SBMLLevel1Version1Converter.java  |   22 +-
 .../sbml/libsbml/SBMLLevelVersionConverter.java    |   22 +-
 .../sbml/libsbml/SBMLLocalParameterConverter.java  |   22 +-
 .../org/sbml/libsbml/SBMLNamespaces.java           |    2 +-
 .../org/sbml/libsbml/SBMLNamespacesList.java       |    6 +-
 .../org/sbml/libsbml/SBMLReactionConverter.java    |   22 +-
 .../java-files/org/sbml/libsbml/SBMLReader.java    |    2 +-
 .../org/sbml/libsbml/SBMLRuleConverter.java        |   22 +-
 .../sbml/libsbml/SBMLStripPackageConverter.java    |   22 +-
 .../org/sbml/libsbml/SBMLTransforms.java           |    2 +-
 .../org/sbml/libsbml/SBMLUnitsConverter.java       |   22 +-
 .../java-files/org/sbml/libsbml/SBMLValidator.java |    2 +-
 .../java-files/org/sbml/libsbml/SBMLWriter.java    |    2 +-
 .../java/java-files/org/sbml/libsbml/SBO.java      |    8 +-
 .../java/java-files/org/sbml/libsbml/SBase.java    |   16 +-
 .../org/sbml/libsbml/SBaseExtensionPoint.java      |    2 +-
 .../java-files/org/sbml/libsbml/SBaseList.java     |    6 +-
 .../java-files/org/sbml/libsbml/SBasePlugin.java   |    3 +-
 .../org/sbml/libsbml/SWIGTYPE_p_ASTFunction.java   |    2 +-
 .../libsbml/SWIGTYPE_p_ExpectedAttributes.java     |    2 +-
 .../sbml/libsbml/SWIGTYPE_p_FormulaUnitsData.java  |    2 +-
 .../org/sbml/libsbml/SWIGTYPE_p_List.java          |    2 +-
 .../sbml/libsbml/SWIGTYPE_p_StringBuffer_t.java    |    2 +-
 .../org/sbml/libsbml/SWIGTYPE_p_std__ostream.java  |    2 +-
 .../SWIGTYPE_p_std__vectorT_XMLError_p_t.java      |    2 +-
 .../SWIGTYPE_p_std__vectorT_std__string_t.java     |    2 +-
 .../org/sbml/libsbml/SimpleSpeciesReference.java   |    2 +-
 .../java/java-files/org/sbml/libsbml/Species.java  |    8 +-
 .../org/sbml/libsbml/SpeciesReference.java         |    2 +-
 .../java-files/org/sbml/libsbml/SpeciesType.java   |    8 +-
 .../org/sbml/libsbml/StoichiometryMath.java        |    8 +-
 .../java-files/org/sbml/libsbml/SyntaxChecker.java |    2 +-
 .../java/java-files/org/sbml/libsbml/Trigger.java  |    8 +-
 .../java/java-files/org/sbml/libsbml/Unit.java     |    8 +-
 .../org/sbml/libsbml/UnitDefinition.java           |    8 +-
 .../java-files/org/sbml/libsbml/XMLAttributes.java |    2 +-
 .../org/sbml/libsbml/XMLConstructorException.java  |    2 +-
 .../java/java-files/org/sbml/libsbml/XMLError.java |    2 +-
 .../java-files/org/sbml/libsbml/XMLErrorLog.java   |    2 +-
 .../org/sbml/libsbml/XMLInputStream.java           |    2 +-
 .../java-files/org/sbml/libsbml/XMLNamespaces.java |    2 +-
 .../java/java-files/org/sbml/libsbml/XMLNode.java  |    2 +-
 .../org/sbml/libsbml/XMLOutputStream.java          |  110 +-
 .../sbml/libsbml/XMLOwningOutputFileStream.java    |    2 +-
 .../sbml/libsbml/XMLOwningOutputStringStream.java  |    2 +-
 .../java/java-files/org/sbml/libsbml/XMLToken.java |    2 +-
 .../java-files/org/sbml/libsbml/XMLTriple.java     |    2 +-
 .../java/java-files/org/sbml/libsbml/libsbml.java  |   94 +-
 .../org/sbml/libsbml/libsbmlConstants.java         |    9 +-
 .../java-files/org/sbml/libsbml/libsbmlJNI.java    |   31 +-
 src/bindings/java/javadoc.i                        |  999 ++-
 src/bindings/java/libsbml.i                        |    2 +-
 src/bindings/java/libsbml_wrap.cpp                 |  328 +-
 src/bindings/java/libsbml_wrap.h                   |    2 +-
 src/bindings/java/local-downcast-converters-comp.i |   20 +-
 src/bindings/java/local-downcast-converters-fbc.i  |   26 +-
 .../java/local-downcast-converters-layout.i        |   20 +-
 src/bindings/java/local-downcast-converters-qual.i |   18 +-
 src/bindings/java/local-downcast-converters.i.in   |   28 +-
 src/bindings/java/local-packages-dyn.i             |    2 +-
 src/bindings/java/local-packages-fbc.i             |    8 +-
 src/bindings/java/local-packages-groups.i          |   77 +-
 src/bindings/java/local-packages-multi.i           |   41 +-
 src/bindings/java/local-packages-req.i             |    2 +-
 src/bindings/java/local-packages-spatial.i         |    2 +-
 src/bindings/java/local-packages.i.in              |    3 +
 src/bindings/java/local.cpp                        |    2 +-
 src/bindings/java/local.i                          |   10 +-
 src/bindings/java/swig-binding.cmake.in            |  204 +-
 src/bindings/javascript/CMakeLists.txt             |    2 +-
 src/bindings/javascript/compile-native-files.cmake |    2 +-
 src/bindings/javascript/libsbml.i                  |    2 +-
 .../javascript/local-downcast-converters.cpp.in    |   34 +-
 .../javascript/local-downcast-packages-groups.cpp  |   46 +-
 .../javascript/local-downcast-packages-multi.cpp   |    7 -
 .../javascript/local-downcast-plugins-multi.cpp    |    4 +
 src/bindings/javascript/local-fbc.i                |   68 +-
 src/bindings/javascript/local-groups.i             |    9 +-
 src/bindings/javascript/local-multi.i              |    2 -
 src/bindings/javascript/local-packages.i.in        |    3 +
 src/bindings/javascript/local.cpp                  |    2 +-
 src/bindings/javascript/local.i                    |   20 +-
 src/bindings/matlab/CMakeLists.txt                 |    2 +-
 src/bindings/matlab/CheckAndConvert.m              |    2 +-
 src/bindings/matlab/Contents.m                     |    2 +-
 src/bindings/matlab/ConvertFormulaToMathML.m       |    2 +-
 src/bindings/matlab/Makefile.in                    |    2 +-
 src/bindings/matlab/OutputSBML.cpp                 |  385 +-
 src/bindings/matlab/OutputSBML.m                   |    2 +-
 src/bindings/matlab/TranslateSBML.cpp              |  665 +-
 src/bindings/matlab/TranslateSBML.m                |    2 +-
 src/bindings/matlab/buildSBML.m                    |    2 +-
 src/bindings/matlab/installSBML.m                  |    2 +-
 src/bindings/matlab/isFbcEnabled.m                 |    2 +-
 src/bindings/matlab/isSBML_Model.m                 |  369 +-
 src/bindings/matlab/test/Makefile.in               |    2 +-
 src/bindings/matlab/test/compareFiles.m            |    2 +-
 src/bindings/matlab/test/test-data/fbcV2.xml       |  119 +
 src/bindings/matlab/test/test-data/test-greek.xml  |   82 +
 src/bindings/matlab/test/testBinding.m             |    1 +
 src/bindings/matlab/test/testOutput.m              |    6 +-
 src/bindings/matlab/test/testReadFromFile16.m      |    2 +-
 src/bindings/octave/CMakeLists.txt                 |    2 +-
 src/bindings/octave/Makefile.in                    |    2 +-
 src/bindings/octave/buildLibSBMLOctave.m           |    2 +-
 src/bindings/octave/test/Makefile.in               |    2 +-
 src/bindings/perl/CMakeLists.txt                   |    2 +-
 src/bindings/perl/LibSBML.pm                       |  385 +-
 src/bindings/perl/LibSBML.pod                      |  368 +-
 src/bindings/perl/LibSBML_wrap.cxx                 | 4741 ++++++++-----
 src/bindings/perl/Makefile.PL.in                   |    5 +
 src/bindings/perl/local-downcast-converters.cpp.in |   34 +-
 .../perl/local-downcast-packages-groups.cpp        |   46 +-
 .../perl/local-downcast-packages-multi.cpp         |    7 -
 src/bindings/perl/local-downcast-plugins-multi.cpp |    4 +
 src/bindings/perl/local-groups.i                   |   10 +-
 src/bindings/perl/local-multi.i                    |    2 -
 src/bindings/perl/local-packages.i.in              |    3 +
 src/bindings/perl/local.i                          |    2 +-
 src/bindings/php/CMakeLists.txt                    |    2 +-
 src/bindings/php/libsbml.i                         |    2 +-
 src/bindings/php/local-downcast-converters.cpp.in  |   34 +-
 .../php/local-downcast-packages-groups.cpp         |   46 +-
 src/bindings/php/local-downcast-packages-multi.cpp |    7 -
 src/bindings/php/local-downcast-plugins-multi.cpp  |    4 +
 src/bindings/php/local-fbc.i                       |   68 +-
 src/bindings/php/local-groups.i                    |    7 +-
 src/bindings/php/local-multi.i                     |    2 -
 src/bindings/php/local-packages.i.in               |    3 +
 src/bindings/php/local.cpp                         |    2 +-
 src/bindings/php/local.i                           |   21 +-
 src/bindings/python/CMakeLists.txt                 |   53 +-
 src/bindings/python/Makefile.in                    |   34 +-
 src/bindings/python/add_version.cmake              |   43 +
 src/bindings/python/doc-converter/rewrite_pydoc.py |   16 +-
 src/bindings/python/libsbml-doxygen.py             | 6595 ++++++++---------
 src/bindings/python/libsbml.i                      |    2 +-
 src/bindings/python/libsbml.py                     | 7469 +++++++++-----------
 src/bindings/python/libsbml_wrap.cpp               | 2668 +++++--
 src/bindings/python/libsbml_wrap.h                 |   10 +-
 src/bindings/python/local-contrib.i                |    2 +-
 src/bindings/python/local-doc-extras.i             |    2 +-
 .../python/local-downcast-converters.cpp.in        |   34 +-
 .../python/local-downcast-packages-groups.cpp      |   40 +-
 .../python/local-downcast-packages-multi.cpp       |    7 -
 .../python/local-downcast-plugins-multi.cpp        |    4 +
 src/bindings/python/local-groups.i                 |    7 +-
 src/bindings/python/local-multi.i                  |    2 -
 src/bindings/python/local-packages.i.in            |    3 +
 src/bindings/python/local.cpp                      |    2 +-
 src/bindings/python/local.i                        |  102 +-
 src/bindings/python/pydoc-doxygen.i                |  859 +--
 src/bindings/python/pydoc-normal.i                 | 1404 +---
 src/bindings/python/setup.cfg                      |    2 +-
 src/bindings/python/setup.py.in                    |    8 +-
 src/bindings/python/test.py                        |    2 +-
 src/bindings/r/CMakeLists.txt                      |    2 +-
 src/bindings/r/configure                           |    2 +-
 src/bindings/r/configure.in                        |    2 +-
 src/bindings/r/create-r-package.cmake              |    2 +-
 src/bindings/r/create_package.cmake                |    9 +-
 src/bindings/r/libsbml.i                           |    4 +-
 src/bindings/r/local-downcast-converters.cpp.in    |   34 +-
 src/bindings/r/local-downcast-packages-groups.cpp  |   46 +-
 src/bindings/r/local-downcast-packages-multi.cpp   |    7 -
 src/bindings/r/local-downcast-plugins-multi.cpp    |    4 +
 src/bindings/r/local-groups.i                      |    7 +-
 src/bindings/r/local-multi.i                       |    2 -
 src/bindings/r/local-packages.i.in                 |    3 +
 src/bindings/r/local.cpp                           |    2 +-
 src/bindings/r/local.i                             |   30 +-
 src/bindings/r/swig-binding.cmake                  |  146 +-
 src/bindings/ruby/CMakeLists.txt                   |    2 +-
 src/bindings/ruby/Makefile.in                      |   31 +-
 src/bindings/ruby/libsbml.i                        |    2 +-
 src/bindings/ruby/libsbml_wrap.cpp                 | 1122 ++-
 src/bindings/ruby/libsbml_wrap.h                   |    2 +-
 src/bindings/ruby/local-downcast-converters.cpp.in |   34 +-
 .../ruby/local-downcast-packages-groups.cpp        |   47 +-
 .../ruby/local-downcast-packages-multi.cpp         |    7 -
 src/bindings/ruby/local-downcast-plugins-multi.cpp |    4 +
 src/bindings/ruby/local-groups.i                   |    7 +-
 src/bindings/ruby/local-multi.i                    |    2 -
 src/bindings/ruby/local-packages.i.in              |    3 +
 src/bindings/ruby/local.cpp                        |    2 +-
 src/bindings/ruby/local.i                          |   19 +-
 src/bindings/swig/ListWrapper.h                    |    2 +-
 src/bindings/swig/OStream.cpp                      |    2 +-
 src/bindings/swig/OStream.h                        |    2 +-
 src/bindings/swig/arrays-package.h                 |    2 +-
 src/bindings/swig/arrays-package.i                 |    2 +-
 src/bindings/swig/comp-package.h                   |    2 +-
 src/bindings/swig/comp-package.i                   |    3 +-
 src/bindings/swig/fbc-package.h                    |    2 +-
 src/bindings/swig/fbc-package.i                    |    2 +-
 src/bindings/swig/groups-package.h                 |   88 +-
 src/bindings/swig/groups-package.i                 |   11 +-
 src/bindings/swig/libsbml-packages.h.in            |    3 +
 src/bindings/swig/libsbml-packages.i.in            |    3 +
 src/bindings/swig/libsbml.h                        |    2 +-
 src/bindings/swig/libsbml.i                        |    2 +-
 src/bindings/swig/libsbmlutils.py                  |    2 +-
 src/bindings/swig/multi-package.h                  |    2 +-
 src/bindings/swig/multi-package.i                  |    3 +-
 src/bindings/swig/qual-package.h                   |    2 +-
 src/bindings/swig/qual-package.i                   |    2 +-
 src/bindings/swig/render-package.h                 |    2 +-
 src/bindings/swig/render-package.i                 |    2 +-
 src/bindings/swig/swigdoc.py                       |   42 +-
 src/comp-package.cmake                             |    2 +-
 src/dyn-package.cmake                              |    2 +-
 src/fbc-package.cmake                              |    2 +-
 src/groups-package.cmake                           |  179 +-
 src/layout-package.cmake                           |    2 +-
 src/multi-package.cmake                            |    2 +-
 src/qual-package.cmake                             |    2 +-
 src/req-package.cmake                              |    2 +-
 src/sbml/AlgebraicRule.cpp                         |    2 +-
 src/sbml/AlgebraicRule.h                           |    2 +-
 src/sbml/AssignmentRule.cpp                        |    2 +-
 src/sbml/AssignmentRule.h                          |    2 +-
 src/sbml/CMakeLists.txt                            |    2 +-
 src/sbml/Compartment.cpp                           |    2 +-
 src/sbml/Compartment.h                             |    2 +-
 src/sbml/CompartmentType.cpp                       |    2 +-
 src/sbml/CompartmentType.h                         |    2 +-
 src/sbml/Constraint.cpp                            |    2 +-
 src/sbml/Constraint.h                              |    2 +-
 src/sbml/Delay.cpp                                 |    2 +-
 src/sbml/Delay.h                                   |    2 +-
 src/sbml/Event.cpp                                 |    2 +-
 src/sbml/Event.h                                   |    2 +-
 src/sbml/EventAssignment.cpp                       |    2 +-
 src/sbml/EventAssignment.h                         |    2 +-
 src/sbml/ExpectedAttributes.cpp                    |    2 +-
 src/sbml/ExpectedAttributes.h                      |    2 +-
 src/sbml/FunctionDefinition.cpp                    |    2 +-
 src/sbml/FunctionDefinition.h                      |    2 +-
 src/sbml/InitialAssignment.cpp                     |    2 +-
 src/sbml/InitialAssignment.h                       |    2 +-
 src/sbml/KineticLaw.cpp                            |    2 +-
 src/sbml/KineticLaw.h                              |    2 +-
 src/sbml/ListOf.cpp                                |    2 +-
 src/sbml/ListOf.h                                  |    2 +-
 src/sbml/LocalParameter.cpp                        |    2 +-
 src/sbml/LocalParameter.h                          |    2 +-
 src/sbml/Makefile.in                               |    2 +-
 src/sbml/Model.cpp                                 |    2 +-
 src/sbml/Model.h                                   |    2 +-
 src/sbml/ModifierSpeciesReference.cpp              |    2 +-
 src/sbml/ModifierSpeciesReference.h                |    2 +-
 src/sbml/Parameter.cpp                             |    2 +-
 src/sbml/Parameter.h                               |    2 +-
 src/sbml/Priority.cpp                              |    2 +-
 src/sbml/Priority.h                                |    2 +-
 src/sbml/RateRule.cpp                              |    2 +-
 src/sbml/RateRule.h                                |    2 +-
 src/sbml/Reaction.cpp                              |    2 +-
 src/sbml/Reaction.h                                |    2 +-
 src/sbml/Rule.cpp                                  |    7 +-
 src/sbml/Rule.h                                    |    2 +-
 src/sbml/SBMLConstructorException.cpp              |    2 +-
 src/sbml/SBMLConstructorException.h                |    2 +-
 src/sbml/SBMLConvert.cpp                           |    2 +-
 src/sbml/SBMLDocument.cpp                          |  177 +-
 src/sbml/SBMLDocument.h                            |   10 +-
 src/sbml/SBMLError.cpp                             |    2 +-
 src/sbml/SBMLError.h                               |    2 +-
 src/sbml/SBMLErrorLog.cpp                          |    2 +-
 src/sbml/SBMLErrorLog.h                            |    2 +-
 src/sbml/SBMLErrorTable.h                          |   34 +-
 src/sbml/SBMLNamespaces.cpp                        |    2 +-
 src/sbml/SBMLNamespaces.h                          |    2 +-
 src/sbml/SBMLReader.cpp                            |    2 +-
 src/sbml/SBMLReader.h                              |    2 +-
 src/sbml/SBMLTransforms.cpp                        |    2 +-
 src/sbml/SBMLTransforms.h                          |    2 +-
 src/sbml/SBMLTypeCodes.cpp                         |    2 +-
 src/sbml/SBMLTypeCodes.h                           |    2 +-
 src/sbml/SBMLTypes.h                               |    2 +-
 src/sbml/SBMLVisitor.cpp                           |    2 +-
 src/sbml/SBMLVisitor.h                             |    2 +-
 src/sbml/SBMLWriter.cpp                            |    2 +-
 src/sbml/SBMLWriter.h                              |    2 +-
 src/sbml/SBO.cpp                                   |   34 +-
 src/sbml/SBO.h                                     |   10 +-
 src/sbml/SBase.cpp                                 |   18 +-
 src/sbml/SBase.h                                   |    6 +-
 src/sbml/SimpleSpeciesReference.cpp                |    2 +-
 src/sbml/SimpleSpeciesReference.h                  |    2 +-
 src/sbml/Species.cpp                               |    2 +-
 src/sbml/Species.h                                 |    2 +-
 src/sbml/SpeciesReference.cpp                      |    2 +-
 src/sbml/SpeciesReference.h                        |    2 +-
 src/sbml/SpeciesType.cpp                           |    2 +-
 src/sbml/SpeciesType.h                             |    2 +-
 src/sbml/StoichiometryMath.cpp                     |    2 +-
 src/sbml/StoichiometryMath.h                       |    2 +-
 src/sbml/SyntaxChecker.cpp                         |    2 +-
 src/sbml/SyntaxChecker.h                           |    2 +-
 src/sbml/Trigger.cpp                               |    2 +-
 src/sbml/Trigger.h                                 |    2 +-
 src/sbml/Unit.cpp                                  |    4 +-
 src/sbml/Unit.h                                    |    2 +-
 src/sbml/UnitDefinition.cpp                        |    2 +-
 src/sbml/UnitDefinition.h                          |    2 +-
 src/sbml/UnitKind.c                                |    2 +-
 src/sbml/UnitKind.h                                |    2 +-
 src/sbml/annotation/CVTerm.cpp                     |    2 +-
 src/sbml/annotation/CVTerm.h                       |  356 +-
 src/sbml/annotation/Date.cpp                       |    2 +-
 src/sbml/annotation/Date.h                         |    2 +-
 src/sbml/annotation/Makefile.in                    |    2 +-
 src/sbml/annotation/ModelCreator.cpp               |    2 +-
 src/sbml/annotation/ModelCreator.h                 |    2 +-
 src/sbml/annotation/ModelHistory.cpp               |    2 +-
 src/sbml/annotation/ModelHistory.h                 |    2 +-
 src/sbml/annotation/RDFAnnotation.h                |    2 +-
 src/sbml/annotation/RDFAnnotationParser.cpp        |    2 +-
 src/sbml/annotation/RDFAnnotationParser.h          |    2 +-
 src/sbml/annotation/test/CMakeLists.txt            |    2 +-
 src/sbml/annotation/test/Makefile.in               |    2 +-
 src/sbml/annotation/test/TestCVTerms.c             |    2 +-
 src/sbml/annotation/test/TestCVTerms_newSetters.c  |    2 +-
 src/sbml/annotation/test/TestCopyAndClone.cpp      |    2 +-
 src/sbml/annotation/test/TestDate_newSetters.c     |    2 +-
 src/sbml/annotation/test/TestL3ModelHistory.cpp    |    2 +-
 .../annotation/test/TestModelCreator_newSetters.c  |    2 +-
 src/sbml/annotation/test/TestModelHistory.c        |    2 +-
 .../annotation/test/TestModelHistory_newSetters.c  |    2 +-
 src/sbml/annotation/test/TestRDFAnnotation.cpp     |    2 +-
 src/sbml/annotation/test/TestRDFAnnotation2.cpp    |    2 +-
 src/sbml/annotation/test/TestRDFAnnotationC.c      |    2 +-
 .../annotation/test/TestRDFAnnotationMetaid.cpp    |    2 +-
 .../test/TestRDFAnnotationNestedCVTerms.cpp        |    2 +-
 src/sbml/annotation/test/TestRunner.c              |    2 +-
 src/sbml/annotation/test/TestSyncAnnotation.cpp    |    2 +-
 src/sbml/annotation/test/TestValidation.cpp        |    2 +-
 src/sbml/common/Makefile.in                        |    2 +-
 src/sbml/common/common-documentation.h             |  198 +-
 src/sbml/common/common.h                           |    2 +-
 src/sbml/common/extern.h                           |    2 +-
 src/sbml/common/libsbml-config-common.h            |    2 +-
 src/sbml/common/libsbml-config-common.h.cmake      |    2 +-
 src/sbml/common/libsbml-config-common.h.in         |    2 +-
 src/sbml/common/libsbml-config.h                   |    2 +-
 src/sbml/common/libsbml-namespace.h                |    2 +-
 src/sbml/common/libsbml-namespace.h.cmake          |  136 +-
 src/sbml/common/libsbml-namespace.h.in             |    2 +-
 src/sbml/common/libsbml-package.h                  |    6 +-
 src/sbml/common/libsbml-package.h.cmake            |  108 +-
 src/sbml/common/libsbml-package.h.in               |    2 +-
 src/sbml/common/libsbml-version.cpp                |    2 +-
 src/sbml/common/libsbml-version.h                  |    8 +-
 src/sbml/common/libsbml-version.h.cmake            |    2 +-
 src/sbml/common/libsbml-version.h.in               |    2 +-
 src/sbml/common/operationReturnValues.cpp          |    8 +-
 src/sbml/common/operationReturnValues.h            |    7 +-
 src/sbml/common/sbmlfwd.h                          |    2 +-
 src/sbml/compress/CompressCommon.cpp               |    2 +-
 src/sbml/compress/CompressCommon.h                 |    2 +-
 src/sbml/compress/InputDecompressor.cpp            |    2 +-
 src/sbml/compress/InputDecompressor.h              |    2 +-
 src/sbml/compress/Makefile.in                      |    2 +-
 src/sbml/compress/OutputCompressor.cpp             |    2 +-
 src/sbml/compress/OutputCompressor.h               |    2 +-
 src/sbml/compress/bzfstream.cpp                    |    2 +-
 src/sbml/compress/bzfstream.h                      |    2 +-
 src/sbml/compress/zipfstream.cpp                   |    2 +-
 src/sbml/compress/zipfstream.h                     |    2 +-
 src/sbml/conversion/ConversionOption.cpp           |    2 +-
 src/sbml/conversion/ConversionOption.h             |    2 +-
 src/sbml/conversion/ConversionProperties.cpp       |    2 +-
 src/sbml/conversion/ConversionProperties.h         |    2 +-
 src/sbml/conversion/Makefile.in                    |    2 +-
 src/sbml/conversion/RegisterConverters.cpp         |    2 +-
 src/sbml/conversion/SBMLConverter.cpp              |    2 +-
 src/sbml/conversion/SBMLConverter.h                |    2 +-
 src/sbml/conversion/SBMLConverterRegister.h        |    2 +-
 src/sbml/conversion/SBMLConverterRegistry.cpp      |    2 +-
 src/sbml/conversion/SBMLConverterRegistry.h        |    2 +-
 .../conversion/SBMLFunctionDefinitionConverter.cpp |    2 +-
 .../conversion/SBMLFunctionDefinitionConverter.h   |    2 +-
 src/sbml/conversion/SBMLIdConverter.cpp            |    2 +-
 src/sbml/conversion/SBMLIdConverter.h              |    2 +-
 src/sbml/conversion/SBMLInferUnitsConverter.cpp    |    2 +-
 src/sbml/conversion/SBMLInferUnitsConverter.h      |    2 +-
 .../conversion/SBMLInitialAssignmentConverter.cpp  |    2 +-
 .../conversion/SBMLInitialAssignmentConverter.h    |    2 +-
 .../conversion/SBMLLevel1Version1Converter.cpp     |    2 +-
 src/sbml/conversion/SBMLLevel1Version1Converter.h  |  470 +-
 src/sbml/conversion/SBMLLevelVersionConverter.cpp  |   24 +-
 src/sbml/conversion/SBMLLevelVersionConverter.h    |    2 +-
 .../conversion/SBMLLocalParameterConverter.cpp     |    2 +-
 src/sbml/conversion/SBMLLocalParameterConverter.h  |    2 +-
 src/sbml/conversion/SBMLReactionConverter.cpp      |    2 +-
 src/sbml/conversion/SBMLReactionConverter.h        |    2 +-
 src/sbml/conversion/SBMLRuleConverter.cpp          |    2 +-
 src/sbml/conversion/SBMLRuleConverter.h            |    2 +-
 src/sbml/conversion/SBMLStripPackageConverter.cpp  |    2 +-
 src/sbml/conversion/SBMLStripPackageConverter.h    |    2 +-
 src/sbml/conversion/SBMLUnitsConverter.cpp         |    2 +-
 src/sbml/conversion/SBMLUnitsConverter.h           |    2 +-
 src/sbml/conversion/test/CMakeLists.txt            |    2 +-
 src/sbml/conversion/test/TestConversionOption.cpp  |    2 +-
 .../conversion/test/TestConversionProperties.cpp   |    2 +-
 .../conversion/test/TestInferUnitsConverter.cpp    |    2 +-
 .../conversion/test/TestLevelVersionConverter.cpp  |    2 +-
 src/sbml/conversion/test/TestRunner.c              |    2 +-
 .../conversion/test/TestSBMLConverterRegistry.cpp  |    2 +-
 src/sbml/conversion/test/TestSBMLRuleConverter.cpp |    2 +-
 .../conversion/test/TestStripPackageConverter.cpp  |    2 +-
 src/sbml/conversion/test/TestUnitsConverter.cpp    |    2 +-
 src/sbml/conversion/test/TestUnitsConverter2.cpp   |    2 +-
 src/sbml/conversion/test/TestUnitsConverterL2.cpp  |    2 +-
 src/sbml/extension/ASTBasePlugin.cpp               |    2 +-
 src/sbml/extension/ASTBasePlugin.h                 |    2 +-
 src/sbml/extension/ISBMLExtensionNamespaces.cpp    |    2 +-
 src/sbml/extension/ISBMLExtensionNamespaces.h      |    2 +-
 src/sbml/extension/Makefile.in                     |    2 +-
 src/sbml/extension/SBMLDocumentPlugin.cpp          |    2 +-
 src/sbml/extension/SBMLDocumentPlugin.h            |    2 +-
 .../extension/SBMLDocumentPluginNotRequired.cpp    |    2 +-
 src/sbml/extension/SBMLDocumentPluginNotRequired.h |    2 +-
 src/sbml/extension/SBMLExtension.cpp               |    2 +-
 src/sbml/extension/SBMLExtension.h                 |    2 +-
 src/sbml/extension/SBMLExtensionException.cpp      |    2 +-
 src/sbml/extension/SBMLExtensionException.h        |    2 +-
 src/sbml/extension/SBMLExtensionNamespaces.cpp     |    2 +-
 src/sbml/extension/SBMLExtensionNamespaces.h       |    2 +-
 src/sbml/extension/SBMLExtensionRegister.h         |    2 +-
 src/sbml/extension/SBMLExtensionRegistry.cpp       |    2 +-
 src/sbml/extension/SBMLExtensionRegistry.h         |    2 +-
 src/sbml/extension/SBaseExtensionPoint.cpp         |    2 +-
 src/sbml/extension/SBaseExtensionPoint.h           |    2 +-
 src/sbml/extension/SBasePlugin.cpp                 |    2 +-
 src/sbml/extension/SBasePlugin.h                   |    5 +-
 src/sbml/extension/SBasePluginCreator.h            |    2 +-
 src/sbml/extension/SBasePluginCreatorBase.cpp      |    2 +-
 src/sbml/extension/SBasePluginCreatorBase.h        |    2 +-
 src/sbml/extension/test/CMakeLists.txt             |    2 +-
 src/sbml/extension/test/Makefile.in                |    2 +-
 src/sbml/extension/test/TestPackage.cpp            |    2 +-
 src/sbml/extension/test/TestPackage.h              |    2 +-
 src/sbml/extension/test/TestRunner.c               |    2 +-
 src/sbml/extension/test/TestSBMLDocumentPlugin.cpp |    2 +-
 src/sbml/extension/test/TestSBMLExtension.cpp      |    2 +-
 .../extension/test/TestSBMLExtensionNamespaces.cpp |    2 +-
 .../extension/test/TestSBMLExtensionRegistry.cpp   |    2 +-
 .../extension/test/TestSBaseExtensionPoint.cpp     |    2 +-
 src/sbml/extension/test/TestSBasePlugin.cpp        |    2 +-
 src/sbml/extension/test/TestSBasePluginCreator.cpp |    2 +-
 .../extension/test/TestSBasePluginCreatorBase.cpp  |    2 +-
 src/sbml/extension/test/TestUnknownPackage.cpp     |    2 +-
 src/sbml/math-legacy/ASTNode.cpp                   |   18 +-
 src/sbml/math-legacy/ASTNode.h                     |    2 +-
 src/sbml/math-legacy/FormulaFormatter.c            |    2 +-
 src/sbml/math-legacy/FormulaFormatter.h            |    2 +-
 src/sbml/math-legacy/FormulaParser.c               |    2 +-
 src/sbml/math-legacy/FormulaParser.h               |    2 +-
 src/sbml/math-legacy/FormulaTokenizer.c            |   13 +-
 src/sbml/math-legacy/FormulaTokenizer.h            |    2 +-
 src/sbml/math-legacy/L3FormulaFormatter.c          |  133 +-
 src/sbml/math-legacy/L3FormulaFormatter.h          |    2 +-
 src/sbml/math-legacy/L3Parser.cpp                  |  478 +-
 src/sbml/math-legacy/L3Parser.h                    |   12 +-
 src/sbml/math-legacy/L3ParserSettings.cpp          |    2 +-
 src/sbml/math-legacy/L3ParserSettings.h            |    2 +-
 src/sbml/math-legacy/Makefile.in                   |    2 +-
 src/sbml/math-legacy/MathML.cpp                    |   58 +-
 src/sbml/math-legacy/MathML.h                      |    2 +-
 src/sbml/math-legacy/test/CMakeLists.txt           |    2 +-
 src/sbml/math-legacy/test/Makefile.in              |    2 +-
 src/sbml/math-legacy/test/TestASTNode.c            |   33 +-
 src/sbml/math-legacy/test/TestChildFunctions.cpp   |    2 +-
 src/sbml/math-legacy/test/TestFormulaFormatter.c   |    2 +-
 src/sbml/math-legacy/test/TestFormulaParser.c      |    2 +-
 src/sbml/math-legacy/test/TestFormulaTokenizer.c   |    2 +-
 src/sbml/math-legacy/test/TestGetValue.cpp         |    2 +-
 src/sbml/math-legacy/test/TestL3FormulaFormatter.c |   66 +-
 src/sbml/math-legacy/test/TestL3FormulaParser.cpp  |    2 +-
 src/sbml/math-legacy/test/TestL3FormulaParserC.c   |    2 +-
 src/sbml/math-legacy/test/TestReadFromFile1.cpp    |    2 +-
 src/sbml/math-legacy/test/TestReadFromFile2.cpp    |    2 +-
 src/sbml/math-legacy/test/TestReadMathML.cpp       |    2 +-
 src/sbml/math-legacy/test/TestRunner.c             |    2 +-
 src/sbml/math-legacy/test/TestValidASTNode.cpp     |    2 +-
 src/sbml/math-legacy/test/TestWriteMathML.cpp      |    2 +-
 .../math-legacy/test/TestWriteMathMLFromAST.cpp    |    2 +-
 src/sbml/math/ASTBase.cpp                          |    4 +-
 src/sbml/math/ASTBase.h                            |    2 +-
 src/sbml/math/ASTBinaryFunctionNode.cpp            |    2 +-
 src/sbml/math/ASTBinaryFunctionNode.h              |    2 +-
 src/sbml/math/ASTCSymbol.cpp                       |    2 +-
 src/sbml/math/ASTCSymbol.h                         |    2 +-
 src/sbml/math/ASTCSymbolAvogadroNode.cpp           |    2 +-
 src/sbml/math/ASTCSymbolAvogadroNode.h             |    2 +-
 src/sbml/math/ASTCSymbolDelayNode.cpp              |    2 +-
 src/sbml/math/ASTCSymbolDelayNode.h                |    2 +-
 src/sbml/math/ASTCSymbolTimeNode.cpp               |    2 +-
 src/sbml/math/ASTCSymbolTimeNode.h                 |    2 +-
 src/sbml/math/ASTCiFunctionNode.cpp                |    2 +-
 src/sbml/math/ASTCiFunctionNode.h                  |    2 +-
 src/sbml/math/ASTCiNumberNode.cpp                  |    2 +-
 src/sbml/math/ASTCiNumberNode.h                    |    2 +-
 src/sbml/math/ASTCnBase.cpp                        |    2 +-
 src/sbml/math/ASTCnBase.h                          |    2 +-
 src/sbml/math/ASTCnExponentialNode.cpp             |    2 +-
 src/sbml/math/ASTCnExponentialNode.h               |    2 +-
 src/sbml/math/ASTCnIntegerNode.cpp                 |    2 +-
 src/sbml/math/ASTCnIntegerNode.h                   |    2 +-
 src/sbml/math/ASTCnRationalNode.cpp                |    2 +-
 src/sbml/math/ASTCnRationalNode.h                  |    2 +-
 src/sbml/math/ASTCnRealNode.cpp                    |    2 +-
 src/sbml/math/ASTCnRealNode.h                      |    2 +-
 src/sbml/math/ASTConstantNumberNode.cpp            |    2 +-
 src/sbml/math/ASTConstantNumberNode.h              |    2 +-
 src/sbml/math/ASTFunction.cpp                      |   19 +-
 src/sbml/math/ASTFunction.h                        |    2 +-
 src/sbml/math/ASTFunctionBase.cpp                  |    2 +-
 src/sbml/math/ASTFunctionBase.h                    |    2 +-
 src/sbml/math/ASTLambdaFunctionNode.cpp            |    2 +-
 src/sbml/math/ASTLambdaFunctionNode.h              |    2 +-
 src/sbml/math/ASTNaryFunctionNode.cpp              |    2 +-
 src/sbml/math/ASTNaryFunctionNode.h                |    2 +-
 src/sbml/math/ASTNode.cpp                          |   33 +-
 src/sbml/math/ASTNode.h                            |    8 +-
 src/sbml/math/ASTNumber.cpp                        |   12 +-
 src/sbml/math/ASTNumber.h                          |    2 +-
 src/sbml/math/ASTPiecewiseFunctionNode.cpp         |    2 +-
 src/sbml/math/ASTPiecewiseFunctionNode.h           |    2 +-
 src/sbml/math/ASTQualifierNode.cpp                 |    2 +-
 src/sbml/math/ASTQualifierNode.h                   |    2 +-
 src/sbml/math/ASTSemanticsNode.cpp                 |    2 +-
 src/sbml/math/ASTSemanticsNode.h                   |    2 +-
 src/sbml/math/ASTTypes.cpp                         |    2 +-
 src/sbml/math/ASTTypes.h                           |    2 +-
 src/sbml/math/ASTUnaryFunctionNode.cpp             |    2 +-
 src/sbml/math/ASTUnaryFunctionNode.h               |    2 +-
 src/sbml/math/FormulaFormatter.c                   |    2 +-
 src/sbml/math/FormulaFormatter.h                   |    2 +-
 src/sbml/math/FormulaParser.c                      |    2 +-
 src/sbml/math/FormulaParser.h                      |    2 +-
 src/sbml/math/FormulaTokenizer.c                   |   10 +-
 src/sbml/math/FormulaTokenizer.h                   |    2 +-
 src/sbml/math/L3FormulaFormatter.c                 |  158 +-
 src/sbml/math/L3FormulaFormatter.h                 |    2 +-
 src/sbml/math/L3Parser.h                           |    2 +-
 src/sbml/math/L3ParserSettings.cpp                 |    2 +-
 src/sbml/math/L3ParserSettings.h                   |    2 +-
 src/sbml/math/Makefile.in                          |    2 +-
 src/sbml/math/MathML.cpp                           |    2 +-
 src/sbml/math/MathML.h                             |    2 +-
 src/sbml/math/test/CMakeLists.txt                  |    2 +-
 src/sbml/math/test/Makefile.in                     |    2 +-
 src/sbml/math/test/TestASTNode.c                   |   29 +-
 src/sbml/math/test/TestChildFunctions.cpp          |    2 +-
 src/sbml/math/test/TestFormulaFormatter.c          |    2 +-
 src/sbml/math/test/TestFormulaParser.c             |    2 +-
 src/sbml/math/test/TestFormulaTokenizer.c          |    2 +-
 src/sbml/math/test/TestGetValue.cpp                |    2 +-
 src/sbml/math/test/TestL3FormulaFormatter.c        |   52 +-
 src/sbml/math/test/TestL3FormulaParser.cpp         |    2 +-
 src/sbml/math/test/TestL3FormulaParserC.c          |    2 +-
 src/sbml/math/test/TestNewASTNode.cpp              |    2 +-
 src/sbml/math/test/TestNewReadMathML.cpp           |   29 +-
 src/sbml/math/test/TestNewWriteMathMLFromAST.cpp   |    2 +-
 src/sbml/math/test/TestReadFromFile1.cpp           |    2 +-
 src/sbml/math/test/TestReadFromFile2.cpp           |    2 +-
 src/sbml/math/test/TestReadMathML.cpp              |    2 +-
 src/sbml/math/test/TestRunner.c                    |    2 +-
 src/sbml/math/test/TestValidASTNode.cpp            |    2 +-
 src/sbml/math/test/TestWriteMathML.cpp             |    2 +-
 src/sbml/math/test/TestWriteMathMLFromAST.cpp      |    2 +-
 src/sbml/packages/Makefile.in                      |    2 +-
 .../packages/arrays/common/ArraysExtensionTypes.h  |    2 +-
 src/sbml/packages/arrays/common/arraysfwd.h        |    2 +-
 .../packages/arrays/extension/ArraysASTPlugin.cpp  |    2 +-
 .../packages/arrays/extension/ArraysASTPlugin.h    |    2 +-
 .../packages/arrays/extension/ArraysExtension.cpp  |    2 +-
 .../packages/arrays/extension/ArraysExtension.h    |    2 +-
 .../arrays/extension/ArraysSBMLDocumentPlugin.cpp  |    2 +-
 .../arrays/extension/ArraysSBMLDocumentPlugin.h    |    2 +-
 .../arrays/extension/ArraysSBasePlugin.cpp         |    2 +-
 .../packages/arrays/extension/ArraysSBasePlugin.h  |    2 +-
 .../arrays/math/ASTArraysVectorFunctionNode.cpp    |    2 +-
 .../arrays/math/ASTArraysVectorFunctionNode.h      |    2 +-
 src/sbml/packages/arrays/math/test/CMakeLists.txt  |    2 +-
 .../arrays/math/test/TestArrayInfixParsing.cpp     |    2 +-
 .../arrays/math/test/TestArrayInfixWriting.cpp     |    2 +-
 .../packages/arrays/math/test/TestNewASTNode.cpp   |    2 +-
 .../arrays/math/test/TestNewReadMathML.cpp         |    2 +-
 .../arrays/math/test/TestNewWriteMathMLFromAST.cpp |    2 +-
 src/sbml/packages/arrays/math/test/TestRunner.c    |    5 +-
 .../arrays/math/test/TestWriteMathMLFromInfix.cpp  |    2 +-
 src/sbml/packages/arrays/sbml/Dimension.cpp        |    2 +-
 src/sbml/packages/arrays/sbml/Dimension.h          |    2 +-
 src/sbml/packages/arrays/sbml/Index.cpp            |    2 +-
 src/sbml/packages/arrays/sbml/Index.h              |    2 +-
 .../validator/ArraysConsistencyValidator.cpp       |    2 +-
 .../arrays/validator/ArraysConsistencyValidator.h  |    2 +-
 .../ArraysIdentifierConsistencyValidator.cpp       |    2 +-
 .../ArraysIdentifierConsistencyValidator.h         |    2 +-
 .../packages/arrays/validator/ArraysSBMLError.h    |    2 +-
 .../arrays/validator/ArraysSBMLErrorTable.h        |    2 +-
 .../packages/arrays/validator/ArraysValidator.cpp  |    2 +-
 .../packages/arrays/validator/ArraysValidator.h    |    2 +-
 .../constraints/ArraysConsistencyConstraints.cpp   |    2 +-
 .../ArraysIdentifierConsistencyConstraints.cpp     |    2 +-
 src/sbml/packages/comp/Makefile.in                 |    2 +-
 src/sbml/packages/comp/common/CompExtensionTypes.h |    2 +-
 src/sbml/packages/comp/common/Makefile.in          |    2 +-
 src/sbml/packages/comp/common/compfwd.h            |    2 +-
 src/sbml/packages/comp/extension/CompExtension.cpp |    2 +-
 src/sbml/packages/comp/extension/CompExtension.h   |    2 +-
 .../packages/comp/extension/CompModelPlugin.cpp    |    9 +-
 src/sbml/packages/comp/extension/CompModelPlugin.h |   15 +-
 .../comp/extension/CompSBMLDocumentPlugin.cpp      |    2 +-
 .../comp/extension/CompSBMLDocumentPlugin.h        |   19 +-
 .../packages/comp/extension/CompSBasePlugin.cpp    |    2 +-
 src/sbml/packages/comp/extension/CompSBasePlugin.h |    9 +-
 src/sbml/packages/comp/extension/Makefile.in       |    2 +-
 .../packages/comp/extension/test/CMakeLists.txt    |    2 +-
 src/sbml/packages/comp/extension/test/Makefile.in  |    2 +-
 .../comp/extension/test/TestCheckConsistency.cpp   |    2 +-
 .../comp/extension/test/TestExtensionObjects.cpp   |    2 +-
 .../comp/extension/test/TestMultipleNamespaces.cpp |    2 +-
 src/sbml/packages/comp/extension/test/TestRunner.c |    2 +-
 src/sbml/packages/comp/sbml/CompBase.cpp           |    2 +-
 src/sbml/packages/comp/sbml/CompBase.h             |    9 +-
 src/sbml/packages/comp/sbml/Deletion.cpp           |    2 +-
 src/sbml/packages/comp/sbml/Deletion.h             |    7 +-
 .../packages/comp/sbml/ExternalModelDefinition.cpp |    2 +-
 .../packages/comp/sbml/ExternalModelDefinition.h   |    5 +-
 src/sbml/packages/comp/sbml/ListOfDeletions.cpp    |    2 +-
 src/sbml/packages/comp/sbml/ListOfDeletions.h      |    2 +-
 .../comp/sbml/ListOfExternalModelDefinitions.cpp   |    2 +-
 .../comp/sbml/ListOfExternalModelDefinitions.h     |    2 +-
 .../packages/comp/sbml/ListOfModelDefinitions.cpp  |    2 +-
 .../packages/comp/sbml/ListOfModelDefinitions.h    |    2 +-
 src/sbml/packages/comp/sbml/ListOfPorts.cpp        |    2 +-
 src/sbml/packages/comp/sbml/ListOfPorts.h          |    2 +-
 .../packages/comp/sbml/ListOfReplacedElements.cpp  |    2 +-
 .../packages/comp/sbml/ListOfReplacedElements.h    |    2 +-
 src/sbml/packages/comp/sbml/ListOfSubmodels.cpp    |    2 +-
 src/sbml/packages/comp/sbml/ListOfSubmodels.h      |    2 +-
 src/sbml/packages/comp/sbml/Makefile.in            |    2 +-
 src/sbml/packages/comp/sbml/ModelDefinition.cpp    |    2 +-
 src/sbml/packages/comp/sbml/ModelDefinition.h      |    5 +-
 src/sbml/packages/comp/sbml/Port.cpp               |    2 +-
 src/sbml/packages/comp/sbml/Port.h                 |   19 +-
 src/sbml/packages/comp/sbml/ReplacedBy.cpp         |    2 +-
 src/sbml/packages/comp/sbml/ReplacedBy.h           |    5 +-
 src/sbml/packages/comp/sbml/ReplacedElement.cpp    |    2 +-
 src/sbml/packages/comp/sbml/ReplacedElement.h      |   17 +-
 src/sbml/packages/comp/sbml/Replacing.cpp          |    2 +-
 src/sbml/packages/comp/sbml/Replacing.h            |    9 +-
 src/sbml/packages/comp/sbml/SBaseRef.cpp           |    2 +-
 src/sbml/packages/comp/sbml/SBaseRef.h             |   39 +-
 src/sbml/packages/comp/sbml/Submodel.cpp           |    2 +-
 src/sbml/packages/comp/sbml/Submodel.h             |   13 +-
 src/sbml/packages/comp/sbml/test/CMakeLists.txt    |    2 +-
 src/sbml/packages/comp/sbml/test/Makefile.in       |    2 +-
 src/sbml/packages/comp/sbml/test/TestDeletion.c    |    2 +-
 .../comp/sbml/test/TestExternalModelDefinition.c   |    2 +-
 .../packages/comp/sbml/test/TestModelDefinition.c  |    2 +-
 src/sbml/packages/comp/sbml/test/TestPort.c        |    2 +-
 .../packages/comp/sbml/test/TestReadWriteSBase.cpp |    2 +-
 src/sbml/packages/comp/sbml/test/TestReplacedBy.c  |    2 +-
 .../packages/comp/sbml/test/TestReplacedElement.c  |    2 +-
 src/sbml/packages/comp/sbml/test/TestRunner.c      |    2 +-
 .../packages/comp/sbml/test/TestSBaseObjects.cpp   |    2 +-
 src/sbml/packages/comp/sbml/test/TestSBaseRef.c    |    2 +-
 src/sbml/packages/comp/sbml/test/TestSubmodel.c    |    2 +-
 .../packages/comp/util/CompFlatteningConverter.cpp |    2 +-
 .../packages/comp/util/CompFlatteningConverter.h   |    2 +-
 src/sbml/packages/comp/util/SBMLFileResolver.cpp   |    2 +-
 src/sbml/packages/comp/util/SBMLFileResolver.h     |    2 +-
 src/sbml/packages/comp/util/SBMLResolver.cpp       |    2 +-
 src/sbml/packages/comp/util/SBMLResolver.h         |    2 +-
 .../packages/comp/util/SBMLResolverRegistry.cpp    |   22 +-
 src/sbml/packages/comp/util/SBMLResolverRegistry.h |    7 +-
 src/sbml/packages/comp/util/SBMLUri.cpp            |    2 +-
 src/sbml/packages/comp/util/SBMLUri.h              |    2 +-
 src/sbml/packages/comp/util/test/CMakeLists.txt    |    2 +-
 .../comp/util/test/TestCompFlatteningConverter.cpp |    5 +-
 .../TestCompFlatteningConverterStripPackage.cpp    |    2 +-
 .../util/test/TestCompFlatteningErrorMessages.cpp  |   43 +-
 .../comp/util/test/TestCompFlatteningNewFlags.cpp  |    2 +-
 .../test/TestCompFlatteningUnknownPackageRefs.cpp  |    2 +-
 .../comp/util/test/TestExternalModelResolving.cpp  |    2 +-
 src/sbml/packages/comp/util/test/TestRunner.c      |    2 +-
 .../packages/comp/util/test/TestURIResolvers.cpp   |    2 +-
 .../comp/util/test/test-data/pnr_submodel.xml      |   17 +
 .../comp/util/test/test-data/port_and_replace.xml  |   24 +
 .../comp/validator/CompConsistencyValidator.cpp    |    2 +-
 .../comp/validator/CompConsistencyValidator.h      |    2 +-
 .../CompIdentifierConsistencyValidator.cpp         |    2 +-
 .../validator/CompIdentifierConsistencyValidator.h |    2 +-
 src/sbml/packages/comp/validator/CompSBMLError.h   |    2 +-
 .../packages/comp/validator/CompSBMLErrorTable.h   |    2 +-
 .../validator/CompUnitConsistencyValidator.cpp     |    2 +-
 .../comp/validator/CompUnitConsistencyValidator.h  |    2 +-
 src/sbml/packages/comp/validator/CompValidator.cpp |    2 +-
 src/sbml/packages/comp/validator/CompValidator.h   |    2 +-
 src/sbml/packages/comp/validator/Makefile.in       |    2 +-
 .../validator/constraints/ClassReplacements.cpp    |    2 +-
 .../comp/validator/constraints/ClassReplacements.h |    2 +-
 .../constraints/CompConsistencyConstraints.cpp     |    5 +-
 .../CompConsistencyConstraintsDeclared.cxx         |    2 +-
 .../comp/validator/constraints/CompIdBase.cpp      |    2 +-
 .../comp/validator/constraints/CompIdBase.h        |    2 +-
 .../CompIdentifierConsistencyConstraints.cpp       |    2 +-
 ...ompIdentifierConsistencyConstraintsDeclared.cxx |    2 +-
 .../constraints/CompUnitConsistencyConstraints.cpp |    2 +-
 .../CompUnitConsistencyConstraintsDeclared.cxx     |    2 +-
 .../constraints/ExtModelReferenceCycles.cpp        |    2 +-
 .../constraints/ExtModelReferenceCycles.h          |    2 +-
 .../comp/validator/constraints/Makefile.in         |    2 +-
 .../constraints/PackageIdReplacementCheck.cpp      |    2 +-
 .../constraints/PackageIdReplacementCheck.h        |    2 +-
 .../constraints/SubmodelReferenceCycles.cpp        |    2 +-
 .../constraints/SubmodelReferenceCycles.h          |    2 +-
 .../validator/constraints/UniqueCompIdBase.cpp     |    2 +-
 .../comp/validator/constraints/UniqueCompIdBase.h  |    2 +-
 .../validator/constraints/UniqueComponentIds.cpp   |    2 +-
 .../validator/constraints/UniqueComponentIds.h     |    2 +-
 .../comp/validator/constraints/UniqueModelIds.cpp  |    2 +-
 .../comp/validator/constraints/UniqueModelIds.h    |    2 +-
 .../comp/validator/constraints/UniquePortIds.cpp   |    2 +-
 .../comp/validator/constraints/UniquePortIds.h     |    2 +-
 .../validator/constraints/UniquePortReferences.cpp |    2 +-
 .../validator/constraints/UniquePortReferences.h   |    2 +-
 .../constraints/UniqueReplacedReferences.cpp       |    2 +-
 .../constraints/UniqueReplacedReferences.h         |    2 +-
 .../validator/constraints/UnitReplacementCheck.cpp |    2 +-
 .../validator/constraints/UnitReplacementCheck.h   |    2 +-
 .../packages/comp/validator/test/CMakeLists.txt    |    2 +-
 src/sbml/packages/comp/validator/test/Makefile.in  |    2 +-
 .../test/TestCompConsistencyValidator.cpp          |    2 +-
 src/sbml/packages/comp/validator/test/TestFile.cpp |    2 +-
 src/sbml/packages/comp/validator/test/TestFile.h   |    2 +-
 .../packages/comp/validator/test/TestValidator.cpp |    2 +-
 .../packages/comp/validator/test/TestValidator.h   |    2 +-
 .../distrib/common/DistribExtensionTypes.h         |    2 +-
 src/sbml/packages/distrib/common/distribfwd.h      |    2 +-
 .../distrib/extension/DistribExtension.cpp         |    2 +-
 .../packages/distrib/extension/DistribExtension.h  |    2 +-
 .../extension/DistribFunctionDefinitionPlugin.cpp  |    2 +-
 .../extension/DistribFunctionDefinitionPlugin.h    |    2 +-
 .../extension/DistribSBMLDocumentPlugin.cpp        |    2 +-
 .../distrib/extension/DistribSBMLDocumentPlugin.h  |    2 +-
 .../distrib/extension/DistribSBasePlugin.cpp       |    2 +-
 .../distrib/extension/DistribSBasePlugin.h         |    2 +-
 src/sbml/packages/distrib/sbml/DistribInput.cpp    |    2 +-
 src/sbml/packages/distrib/sbml/DistribInput.h      |    2 +-
 .../packages/distrib/sbml/DrawFromDistribution.cpp |    2 +-
 .../packages/distrib/sbml/DrawFromDistribution.h   |    2 +-
 src/sbml/packages/distrib/sbml/Uncertainty.cpp     |    2 +-
 src/sbml/packages/distrib/sbml/Uncertainty.h       |    2 +-
 .../validator/DistribConsistencyValidator.cpp      |    2 +-
 .../validator/DistribConsistencyValidator.h        |    2 +-
 .../DistribIdentifierConsistencyValidator.cpp      |    2 +-
 .../DistribIdentifierConsistencyValidator.h        |    2 +-
 .../packages/distrib/validator/DistribSBMLError.h  |    2 +-
 .../distrib/validator/DistribSBMLErrorTable.h      |    2 +-
 .../distrib/validator/DistribValidator.cpp         |    2 +-
 .../packages/distrib/validator/DistribValidator.h  |    2 +-
 .../constraints/DistribConsistencyConstraints.cpp  |    2 +-
 .../DistribIdentifierConsistencyConstraints.cpp    |    2 +-
 src/sbml/packages/dyn-register.cxx                 |    2 +-
 src/sbml/packages/dyn-register.h                   |    2 +-
 src/sbml/packages/dyn/common/DynExtensionTypes.h   |    2 +-
 src/sbml/packages/dyn/common/dynfwd.h              |    2 +-
 .../dyn/extension/DynCompartmentPlugin.cpp         |    2 +-
 .../packages/dyn/extension/DynCompartmentPlugin.h  |    2 +-
 src/sbml/packages/dyn/extension/DynEventPlugin.cpp |    2 +-
 src/sbml/packages/dyn/extension/DynEventPlugin.h   |    2 +-
 src/sbml/packages/dyn/extension/DynExtension.cpp   |    2 +-
 src/sbml/packages/dyn/extension/DynExtension.h     |    2 +-
 .../dyn/extension/DynSBMLDocumentPlugin.cpp        |    2 +-
 .../packages/dyn/extension/DynSBMLDocumentPlugin.h |    2 +-
 src/sbml/packages/dyn/extension/DynSBasePlugin.cpp |    2 +-
 src/sbml/packages/dyn/extension/DynSBasePlugin.h   |    2 +-
 .../packages/dyn/extension/test/CMakeLists.txt     |    2 +-
 src/sbml/packages/dyn/extension/test/TestRunner.c  |    4 +
 src/sbml/packages/dyn/sbml/DynElement.cpp          |    2 +-
 src/sbml/packages/dyn/sbml/DynElement.h            |    2 +-
 src/sbml/packages/dyn/sbml/SpatialComponent.cpp    |    2 +-
 src/sbml/packages/dyn/sbml/SpatialComponent.h      |    2 +-
 .../dyn/validator/DynConsistencyValidator.cpp      |    2 +-
 .../dyn/validator/DynConsistencyValidator.h        |    2 +-
 .../DynIdentifierConsistencyValidator.cpp          |    2 +-
 .../validator/DynIdentifierConsistencyValidator.h  |    2 +-
 src/sbml/packages/dyn/validator/DynSBMLError.h     |    2 +-
 .../packages/dyn/validator/DynSBMLErrorTable.h     |    2 +-
 src/sbml/packages/dyn/validator/DynValidator.cpp   |    2 +-
 src/sbml/packages/dyn/validator/DynValidator.h     |    2 +-
 .../constraints/DynConsistencyConstraints.cpp      |    2 +-
 .../DynIdentifierConsistencyConstraints.cpp        |    2 +-
 src/sbml/packages/fbc-register.cxx                 |    2 +-
 src/sbml/packages/fbc-register.h                   |    8 +-
 src/sbml/packages/fbc/Makefile.in                  |    2 +-
 src/sbml/packages/fbc/common/FbcExtensionTypes.h   |    2 +-
 src/sbml/packages/fbc/common/fbcfwd.h              |    8 +-
 src/sbml/packages/fbc/extension/FbcExtension.cpp   |    2 +-
 src/sbml/packages/fbc/extension/FbcExtension.h     |    2 +-
 src/sbml/packages/fbc/extension/FbcModelPlugin.cpp |   61 +-
 src/sbml/packages/fbc/extension/FbcModelPlugin.h   |  196 +-
 .../packages/fbc/extension/FbcReactionPlugin.cpp   |  150 +-
 .../packages/fbc/extension/FbcReactionPlugin.h     | 1014 +--
 .../fbc/extension/FbcSBMLDocumentPlugin.cpp        |    8 +-
 .../packages/fbc/extension/FbcSBMLDocumentPlugin.h |   23 +-
 .../packages/fbc/extension/FbcSpeciesPlugin.cpp    |   18 +-
 src/sbml/packages/fbc/extension/FbcSpeciesPlugin.h |   53 +-
 src/sbml/packages/fbc/extension/Makefile.in        |    2 +-
 .../packages/fbc/extension/test/CMakeLists.txt     |    2 +-
 src/sbml/packages/fbc/extension/test/Makefile.in   |   13 +-
 .../fbc/extension/test/TestFbcAssociation.cpp      |  603 ++
 .../fbc/extension/test/TestReadFbcExtension.cpp    |   41 +
 src/sbml/packages/fbc/extension/test/TestRunner.c  |    2 +
 .../fbc/extension/test/test-data/cobra-l2.xml      |   18 +-
 src/sbml/packages/fbc/sbml/Association.cpp         |    2 +-
 src/sbml/packages/fbc/sbml/Association.h           |   22 +-
 src/sbml/packages/fbc/sbml/FbcAnd.cpp              |   12 +-
 src/sbml/packages/fbc/sbml/FbcAnd.h                | 1267 ++--
 src/sbml/packages/fbc/sbml/FbcAssociation.cpp      |   32 +-
 src/sbml/packages/fbc/sbml/FbcAssociation.h        | 1448 ++--
 src/sbml/packages/fbc/sbml/FbcOr.cpp               |   12 +-
 src/sbml/packages/fbc/sbml/FbcOr.h                 | 1259 ++--
 src/sbml/packages/fbc/sbml/FluxBound.cpp           |   15 +-
 src/sbml/packages/fbc/sbml/FluxBound.h             |   73 +-
 src/sbml/packages/fbc/sbml/FluxObjective.cpp       |    8 +-
 src/sbml/packages/fbc/sbml/FluxObjective.h         |   10 +-
 src/sbml/packages/fbc/sbml/GeneAssociation.cpp     |    2 +-
 src/sbml/packages/fbc/sbml/GeneAssociation.h       |   32 +-
 src/sbml/packages/fbc/sbml/GeneProduct.cpp         |    8 +-
 src/sbml/packages/fbc/sbml/GeneProduct.h           | 2224 +++---
 .../packages/fbc/sbml/GeneProductAssociation.cpp   |   12 +-
 .../packages/fbc/sbml/GeneProductAssociation.h     | 1653 ++---
 src/sbml/packages/fbc/sbml/GeneProductRef.cpp      |   23 +-
 src/sbml/packages/fbc/sbml/GeneProductRef.h        | 1520 ++--
 src/sbml/packages/fbc/sbml/Makefile.in             |    2 +-
 src/sbml/packages/fbc/sbml/Objective.cpp           |   12 +-
 src/sbml/packages/fbc/sbml/Objective.h             |   32 +-
 src/sbml/packages/fbc/util/CobraToFbcConverter.cpp |   12 +-
 src/sbml/packages/fbc/util/CobraToFbcConverter.h   |    4 +-
 src/sbml/packages/fbc/util/FbcToCobraConverter.cpp |    2 +-
 src/sbml/packages/fbc/util/FbcToCobraConverter.h   |    4 +-
 src/sbml/packages/fbc/util/FbcV1ToV2Converter.cpp  |    2 +-
 src/sbml/packages/fbc/util/FbcV1ToV2Converter.h    |  360 +-
 src/sbml/packages/fbc/util/FbcV2ToV1Converter.cpp  |    2 +-
 src/sbml/packages/fbc/util/FbcV2ToV1Converter.h    |  340 +-
 .../fbc/validator/FbcConsistencyValidator.cpp      |    2 +-
 .../fbc/validator/FbcConsistencyValidator.h        |    2 +-
 .../FbcIdentifierConsistencyValidator.cpp          |    2 +-
 .../validator/FbcIdentifierConsistencyValidator.h  |    2 +-
 src/sbml/packages/fbc/validator/FbcSBMLError.h     |    2 +-
 .../packages/fbc/validator/FbcSBMLErrorTable.h     |   12 +-
 src/sbml/packages/fbc/validator/FbcValidator.cpp   |    2 +-
 src/sbml/packages/fbc/validator/FbcValidator.h     |    6 +-
 src/sbml/packages/fbc/validator/Makefile.in        |    2 +-
 .../constraints/FbcConsistencyConstraints.cpp      |    2 +-
 .../FbcConsistencyConstraintsDeclared.cxx          |    2 +-
 .../FbcIdentifierConsistencyConstraints.cpp        |    2 +-
 ...FbcIdentifierConsistencyConstraintsDeclared.cxx |    2 +-
 .../validator/constraints/FluxBoundsConsistent.cpp |    2 +-
 .../validator/constraints/FluxBoundsConsistent.h   |    2 +-
 .../packages/fbc/validator/constraints/Makefile.in |    2 +-
 .../constraints/UniqueGeneProductLabels.cpp        |    2 +-
 .../constraints/UniqueGeneProductLabels.h          |  258 +-
 .../validator/constraints/UniqueModelWideIds.cpp   |    2 +-
 .../fbc/validator/constraints/UniqueModelWideIds.h |    2 +-
 .../packages/fbc/validator/test/CMakeLists.txt     |    2 +-
 src/sbml/packages/fbc/validator/test/Makefile.in   |    2 +-
 .../validator/test/TestFbcConsistencyValidator.cpp |    2 +-
 src/sbml/packages/fbc/validator/test/TestFile.cpp  |    2 +-
 src/sbml/packages/fbc/validator/test/TestFile.h    |    2 +-
 .../packages/fbc/validator/test/TestValidator.cpp  |    2 +-
 .../packages/fbc/validator/test/TestValidator.h    |    2 +-
 .../fbc/validator/test/test-data/Makefile.in       |    2 +-
 src/sbml/packages/groups-register.cxx              |   42 +-
 src/sbml/packages/groups-register.h                |   36 +-
 .../packages/groups/common/GroupsExtensionTypes.h  |   60 +-
 src/sbml/packages/groups/common/groupsfwd.h        |   73 +-
 .../packages/groups/extension/GroupsExtension.cpp  |  440 +-
 .../packages/groups/extension/GroupsExtension.h    |  401 +-
 .../groups/extension/GroupsModelPlugin.cpp         |  616 +-
 .../packages/groups/extension/GroupsModelPlugin.h  |  529 +-
 .../groups/extension/GroupsSBMLDocumentPlugin.cpp  |  258 +-
 .../groups/extension/GroupsSBMLDocumentPlugin.h    |  110 +-
 .../groups/extension/test/TestGroupsExtension.cpp  |    4 -
 .../extension/test/TestGroupsModelPlugin.cpp       |  342 +
 .../extension/test/TestReadGroupsExtension.cpp     |   69 -
 .../packages/groups/extension/test/TestRunner.c    |    2 +
 .../extension/test/test-data/groups-nested1.xml    |   31 +
 .../extension/test/test-data/groups-nested2.xml    |   31 +
 .../test/test-data/groups_speciestype_example.xml  |   30 -
 src/sbml/packages/groups/sbml/Group.cpp            | 1301 ++--
 src/sbml/packages/groups/sbml/Group.h              | 1469 ++--
 src/sbml/packages/groups/sbml/ListOfGroups.cpp     |  420 ++
 src/sbml/packages/groups/sbml/ListOfGroups.h       |  494 ++
 src/sbml/packages/groups/sbml/ListOfMembers.cpp    |  808 +++
 src/sbml/packages/groups/sbml/ListOfMembers.h      |  763 ++
 src/sbml/packages/groups/sbml/Member.cpp           |  732 +-
 src/sbml/packages/groups/sbml/Member.h             |  987 +--
 src/sbml/packages/groups/sbml/MemberConstraint.cpp | 1382 ----
 src/sbml/packages/groups/sbml/MemberConstraint.h   |  969 ---
 .../validator/GroupsConsistencyValidator.cpp       |   56 +-
 .../groups/validator/GroupsConsistencyValidator.h  |   75 +-
 .../GroupsIdentifierConsistencyValidator.cpp       |   56 +-
 .../GroupsIdentifierConsistencyValidator.h         |   75 +-
 .../packages/groups/validator/GroupsSBMLError.h    |   88 +-
 .../groups/validator/GroupsSBMLErrorTable.h        |  442 +-
 .../packages/groups/validator/GroupsValidator.cpp  |  311 +-
 .../packages/groups/validator/GroupsValidator.h    |  115 +-
 .../constraints/GroupCircularReferences.cpp        |  455 ++
 .../constraints/GroupCircularReferences.h          |  112 +
 .../constraints/GroupsConsistencyConstraints.cpp   |  144 +-
 .../GroupsConsistencyConstraintsDeclared.cxx       |   45 +
 .../GroupsIdentifierConsistencyConstraints.cpp     |   49 +-
 ...upsIdentifierConsistencyConstraintsDeclared.cxx |   40 +
 .../constraints/GroupsUniqueModelWideIds.cpp       |  274 +
 .../constraints/GroupsUniqueModelWideIds.h         |  186 +
 .../constraints/LOMembersConsistentReferences.cpp  |  221 +
 .../constraints/LOMembersConsistentReferences.h    |   95 +
 .../packages/groups/validator/test/CMakeLists.txt  |   60 +
 .../packages/groups/validator/test/TestFile.cpp    |  199 +
 src/sbml/packages/groups/validator/test/TestFile.h |  113 +
 .../test/TestGroupsConsistencyValidator.cpp        |  164 +
 .../groups/validator/test/TestValidator.cpp        |  229 +
 .../packages/groups/validator/test/TestValidator.h |   81 +
 .../general-constraints/4010101-pass-00-01.xml     |   16 +
 .../general-constraints/4020101-fail-01-01.xml     |   16 +
 .../general-constraints/4020101-pass-00-01.xml     |   16 +
 .../general-constraints/4020102-fail-01-01.xml     |   16 +
 .../general-constraints/4020102-pass-00-01.xml     |   16 +
 .../general-constraints/4020103-fail-01-01.xml     |   16 +
 .../general-constraints/4020103-pass-00-01.xml     |   16 +
 .../general-constraints/4020201-fail-01-01.xml     |   23 +
 .../general-constraints/4020201-pass-00-01.xml     |   16 +
 .../general-constraints/4020202-pass-00-01.xml     |   16 +
 .../general-constraints/4020203-pass-00-01.xml     |   16 +
 .../general-constraints/4020203-pass-00-02.xml     |   17 +
 .../general-constraints/4020203-pass-00-03.xml     |   17 +
 .../general-constraints/4020204-fail-01-01.xml     |   16 +
 .../general-constraints/4020204-pass-00-01.xml     |   16 +
 .../general-constraints/4020204-pass-00-02.xml     |   16 +
 .../general-constraints/4020204-pass-00-03.xml     |   16 +
 .../general-constraints/4020301-fail-01-01.xml     |   16 +
 .../general-constraints/4020301-pass-00-01.xml     |   16 +
 .../general-constraints/4020301-pass-00-02.xml     |   16 +
 .../general-constraints/4020301-pass-00-03.xml     |   16 +
 .../general-constraints/4020302-pass-00-01.xml     |   16 +
 .../general-constraints/4020302-pass-00-02.xml     |   17 +
 .../general-constraints/4020302-pass-00-03.xml     |   17 +
 .../general-constraints/4020303-fail-01-01.xml     |   16 +
 .../general-constraints/4020303-fail-01-02.xml     |   16 +
 .../general-constraints/4020303-pass-00-01.xml     |   16 +
 .../general-constraints/4020303-pass-00-02.xml     |   16 +
 .../general-constraints/4020303-pass-00-03.xml     |   16 +
 .../general-constraints/4020304-fail-01-01.xml     |   19 +
 .../general-constraints/4020304-pass-00-01.xml     |   16 +
 .../general-constraints/4020305-fail-01-01.xml     |   16 +
 .../general-constraints/4020305-pass-00-01.xml     |   16 +
 .../general-constraints/4020306-pass-00-01.xml     |   16 +
 .../general-constraints/4020307-pass-00-01.xml     |   16 +
 .../general-constraints/4020308-pass-00-01.xml     |   16 +
 .../general-constraints/4020308-pass-00-02.xml     |   17 +
 .../general-constraints/4020308-pass-00-03.xml     |   17 +
 .../general-constraints/4020309-fail-01-01.xml     |   16 +
 .../general-constraints/4020309-pass-00-01.xml     |   16 +
 .../general-constraints/4020309-pass-00-02.xml     |   16 +
 .../general-constraints/4020309-pass-00-03.xml     |   16 +
 .../general-constraints/4020310-fail-01-01.xml     |   16 +
 .../general-constraints/4020310-pass-00-01.xml     |   16 +
 .../general-constraints/4020310-pass-00-02.xml     |   16 +
 .../general-constraints/4020310-pass-00-03.xml     |   16 +
 .../general-constraints/4020311-pass-00-01.xml     |   16 +
 .../general-constraints/4020312-fail-01-01.xml     |   20 +
 .../general-constraints/4020312-fail-01-02.xml     |   20 +
 .../general-constraints/4020312-fail-01-03.xml     |   20 +
 .../general-constraints/4020312-fail-01-04.xml     |   20 +
 .../general-constraints/4020312-fail-01-05.xml     |   26 +
 .../general-constraints/4020312-pass-00-01.xml     |   15 +
 .../general-constraints/4020312-pass-00-02.xml     |   20 +
 .../general-constraints/4020312-pass-00-03.xml     |   20 +
 .../general-constraints/4020312-pass-00-04.xml     |   20 +
 .../general-constraints/4020312-pass-00-05.xml     |   20 +
 .../general-constraints/4020312-pass-00-06.xml     |   20 +
 .../general-constraints/4020313-fail-01-01.xml     |   18 +
 .../general-constraints/4020313-fail-01-02.xml     |   18 +
 .../general-constraints/4020313-fail-01-03.xml     |   18 +
 .../general-constraints/4020313-fail-01-04.xml     |   18 +
 .../general-constraints/4020313-fail-01-05.xml     |   18 +
 .../general-constraints/4020313-fail-01-06.xml     |   18 +
 .../general-constraints/4020313-fail-01-07.xml     |   24 +
 .../general-constraints/4020313-fail-01-08.xml     |   24 +
 .../general-constraints/4020313-fail-01-09.xml     |   24 +
 .../general-constraints/4020313-fail-01-10.xml     |   24 +
 .../general-constraints/4020313-fail-01-11.xml     |   24 +
 .../general-constraints/4020401-fail-01-01.xml     |   16 +
 .../general-constraints/4020401-pass-00-01.xml     |   16 +
 .../general-constraints/4020401-pass-00-02.xml     |   16 +
 .../general-constraints/4020401-pass-00-03.xml     |   16 +
 .../general-constraints/4020402-pass-00-01.xml     |   16 +
 .../general-constraints/4020402-pass-00-02.xml     |   18 +
 .../general-constraints/4020402-pass-00-03.xml     |   18 +
 .../general-constraints/4020403-fail-01-01.xml     |   16 +
 .../general-constraints/4020403-fail-01-02.xml     |   16 +
 .../general-constraints/4020403-fail-01-03.xml     |   16 +
 .../general-constraints/4020403-pass-00-01.xml     |   16 +
 .../general-constraints/4020403-pass-00-02.xml     |   16 +
 .../general-constraints/4020403-pass-00-03.xml     |   16 +
 .../general-constraints/4020403-pass-00-04.xml     |   16 +
 .../general-constraints/4020403-pass-00-05.xml     |   16 +
 .../general-constraints/4020404-pass-00-01.xml     |   16 +
 .../general-constraints/4020405-fail-01-01.xml     |   16 +
 .../general-constraints/4020405-pass-00-01.xml     |   16 +
 .../general-constraints/4020405-pass-00-02.xml     |   21 +
 .../general-constraints/4020405-pass-00-03.xml     |   21 +
 .../general-constraints/4020406-fail-01-01.xml     |   16 +
 .../general-constraints/4020406-pass-00-01.xml     |   16 +
 .../general-constraints/4020406-pass-00-02.xml     |   21 +
 .../general-constraints/4020406-pass-00-03.xml     |   21 +
 .../4020407-fail-01-01-4020405.xml                 |   16 +
 .../4020408-fail-01-01-4020406.xml                 |   16 +
 .../identifier-constraints/4010301-fail-01-01.xml  |   16 +
 .../identifier-constraints/4010301-fail-01-02.xml  |   16 +
 .../identifier-constraints/4010301-fail-01-03.xml  |   16 +
 .../identifier-constraints/4010301-fail-01-04.xml  |   16 +
 .../identifier-constraints/4010301-fail-01-05.xml  |   19 +
 .../identifier-constraints/4010301-fail-01-06.xml  |   19 +
 .../identifier-constraints/4010301-fail-02-01.xml  |   19 +
 .../identifier-constraints/4010301-pass-00-01.xml  |   16 +
 .../identifier-constraints/4010302-fail-01-01.xml  |   16 +
 .../identifier-constraints/4010302-fail-01-02.xml  |   16 +
 .../identifier-constraints/4010302-fail-01-03.xml  |   16 +
 src/sbml/packages/layout/Makefile.in               |    2 +-
 .../packages/layout/common/LayoutExtensionTypes.h  |    2 +-
 src/sbml/packages/layout/common/layoutfwd.h        |    2 +-
 .../packages/layout/extension/LayoutExtension.cpp  |    2 +-
 .../packages/layout/extension/LayoutExtension.h    |    2 +-
 .../layout/extension/LayoutModelPlugin.cpp         |    2 +-
 .../packages/layout/extension/LayoutModelPlugin.h  |    2 +-
 .../layout/extension/LayoutSBMLDocumentPlugin.cpp  |    8 +-
 .../layout/extension/LayoutSBMLDocumentPlugin.h    |   12 +-
 .../extension/LayoutSpeciesReferencePlugin.cpp     |    2 +-
 .../extension/LayoutSpeciesReferencePlugin.h       |    2 +-
 src/sbml/packages/layout/extension/Makefile.in     |    2 +-
 src/sbml/packages/layout/sbml/BoundingBox.cpp      |    2 +-
 src/sbml/packages/layout/sbml/BoundingBox.h        |    2 +-
 src/sbml/packages/layout/sbml/CompartmentGlyph.cpp |    2 +-
 src/sbml/packages/layout/sbml/CompartmentGlyph.h   |    2 +-
 src/sbml/packages/layout/sbml/CubicBezier.cpp      |    2 +-
 src/sbml/packages/layout/sbml/CubicBezier.h        |    2 +-
 src/sbml/packages/layout/sbml/Curve.cpp            |    2 +-
 src/sbml/packages/layout/sbml/Curve.h              |    2 +-
 src/sbml/packages/layout/sbml/Dimensions.cpp       |    2 +-
 src/sbml/packages/layout/sbml/Dimensions.h         |    2 +-
 src/sbml/packages/layout/sbml/GeneralGlyph.cpp     |    2 +-
 src/sbml/packages/layout/sbml/GeneralGlyph.h       |    2 +-
 src/sbml/packages/layout/sbml/GraphicalObject.cpp  |    2 +-
 src/sbml/packages/layout/sbml/GraphicalObject.h    |    2 +-
 src/sbml/packages/layout/sbml/Layout.cpp           |    4 +-
 src/sbml/packages/layout/sbml/Layout.h             |    2 +-
 src/sbml/packages/layout/sbml/LineSegment.cpp      |    2 +-
 src/sbml/packages/layout/sbml/LineSegment.h        |    2 +-
 src/sbml/packages/layout/sbml/Makefile.in          |    2 +-
 src/sbml/packages/layout/sbml/Point.cpp            |    2 +-
 src/sbml/packages/layout/sbml/Point.h              |    2 +-
 src/sbml/packages/layout/sbml/ReactionGlyph.cpp    |    2 +-
 src/sbml/packages/layout/sbml/ReactionGlyph.h      |    2 +-
 src/sbml/packages/layout/sbml/ReferenceGlyph.cpp   |    2 +-
 src/sbml/packages/layout/sbml/ReferenceGlyph.h     |    2 +-
 src/sbml/packages/layout/sbml/SpeciesGlyph.cpp     |    2 +-
 src/sbml/packages/layout/sbml/SpeciesGlyph.h       |    2 +-
 .../packages/layout/sbml/SpeciesReferenceGlyph.cpp |    2 +-
 .../packages/layout/sbml/SpeciesReferenceGlyph.h   |    2 +-
 .../packages/layout/sbml/SpeciesReferenceRole.h    |    2 +-
 src/sbml/packages/layout/sbml/TextGlyph.cpp        |    2 +-
 src/sbml/packages/layout/sbml/TextGlyph.h          |    2 +-
 src/sbml/packages/layout/sbml/test/CMakeLists.txt  |    2 +-
 src/sbml/packages/layout/sbml/test/Makefile.in     |    2 +-
 .../packages/layout/sbml/test/TestBoundingBox.cpp  |    2 +-
 .../layout/sbml/test/TestCompartmentGlyph.cpp      |    2 +-
 .../packages/layout/sbml/test/TestCubicBezier.cpp  |    2 +-
 src/sbml/packages/layout/sbml/test/TestCurve.cpp   |    2 +-
 .../packages/layout/sbml/test/TestDimensions.cpp   |    2 +-
 .../packages/layout/sbml/test/TestGeneralGlyph.cpp |    2 +-
 .../layout/sbml/test/TestGraphicalObject.cpp       |    2 +-
 src/sbml/packages/layout/sbml/test/TestLayout.cpp  |    2 +-
 .../layout/sbml/test/TestLayoutCreation.cpp        |    2 +-
 .../layout/sbml/test/TestLayoutFormatter.cpp       |    2 +-
 .../layout/sbml/test/TestLayoutWriting.cpp         |    2 +-
 .../packages/layout/sbml/test/TestLineSegment.cpp  |    2 +-
 src/sbml/packages/layout/sbml/test/TestPoint.cpp   |    2 +-
 .../layout/sbml/test/TestReactionGlyph.cpp         |    2 +-
 .../layout/sbml/test/TestReferenceGlyph.cpp        |    2 +-
 src/sbml/packages/layout/sbml/test/TestRunner.c    |    2 +-
 .../packages/layout/sbml/test/TestSBMLHandler.cpp  |    2 +-
 .../packages/layout/sbml/test/TestSpeciesGlyph.cpp |    2 +-
 .../layout/sbml/test/TestSpeciesReferenceGlyph.cpp |    2 +-
 .../packages/layout/sbml/test/TestTextGlyph.cpp    |    2 +-
 src/sbml/packages/layout/util/LayoutAnnotation.cpp |    2 +-
 src/sbml/packages/layout/util/LayoutAnnotation.h   |    2 +-
 src/sbml/packages/layout/util/LayoutUtilities.cpp  |    2 +-
 src/sbml/packages/layout/util/LayoutUtilities.h    |    2 +-
 src/sbml/packages/layout/util/Makefile.in          |    2 +-
 .../validator/LayoutConsistencyValidator.cpp       |    8 +-
 .../layout/validator/LayoutConsistencyValidator.h  |    8 +-
 .../LayoutIdentifierConsistencyValidator.cpp       |    8 +-
 .../LayoutIdentifierConsistencyValidator.h         |    8 +-
 .../packages/layout/validator/LayoutSBMLError.h    |    8 +-
 .../layout/validator/LayoutSBMLErrorTable.h        |    8 +-
 .../packages/layout/validator/LayoutValidator.cpp  |    8 +-
 .../packages/layout/validator/LayoutValidator.h    |    8 +-
 src/sbml/packages/layout/validator/Makefile.in     |    2 +-
 .../constraints/LayoutConsistencyConstraints.cpp   |    8 +-
 .../LayoutConsistencyConstraintsDeclared.cxx       |    2 +-
 .../LayoutIdentifierConsistencyConstraints.cpp     |    8 +-
 ...outIdentifierConsistencyConstraintsDeclared.cxx |    2 +-
 .../layout/validator/constraints/Makefile.in       |    4 +-
 .../validator/constraints/UniqueIdsLayout.cpp      |    2 +-
 .../layout/validator/constraints/UniqueIdsLayout.h |    2 +-
 .../packages/layout/validator/test/CMakeLists.txt  |    2 +-
 .../packages/layout/validator/test/Makefile.in     |    2 +-
 .../packages/layout/validator/test/TestFile.cpp    |    2 +-
 src/sbml/packages/layout/validator/test/TestFile.h |    2 +-
 .../test/TestLayoutConsistencyValidator.cpp        |    2 +-
 .../layout/validator/test/TestValidator.cpp        |    2 +-
 .../packages/layout/validator/test/TestValidator.h |    2 +-
 .../layout/validator/test/test-data/Makefile.in    |    2 +-
 src/sbml/packages/multi-register.cxx               |    2 +-
 src/sbml/packages/multi-register.h                 |    2 +-
 .../packages/multi/common/MultiExtensionTypes.h    |    5 +-
 src/sbml/packages/multi/common/multifwd.h          |    3 +-
 .../packages/multi/extension/MultiASTPlugin.cpp    |    5 +-
 src/sbml/packages/multi/extension/MultiASTPlugin.h |    3 +-
 src/sbml/packages/multi/extension/MultiExtension.h |    1 -
 .../multi/extension/MultiListOfReactionsPlugin.cpp |   46 +-
 .../multi/extension/MultiListOfReactionsPlugin.h   |    3 +
 .../multi/extension/MultiSpeciesPlugin.cpp         |  116 +-
 .../packages/multi/extension/MultiSpeciesPlugin.h  |   83 +-
 .../packages/multi/extension/test/CMakeLists.txt   |    2 +-
 .../multi/extension/test/TestCheckConsistency.cpp  |    2 +-
 .../packages/multi/extension/test/TestMultiAST.cpp |    1 +
 .../multi/extension/test/TestMultiExtension.cpp    |   54 +-
 .../test/test-data/multi_ci_extension.xml          |   52 +-
 .../extension/test/test-data/simmune_Ecad.xml      |  501 ++
 .../packages/multi/sbml/BindingSiteSpeciesType.cpp |    2 +-
 .../packages/multi/sbml/BindingSiteSpeciesType.h   |    2 +-
 .../sbml/DenotedSpeciesTypeComponentIndex.cpp      |  758 --
 .../multi/sbml/DenotedSpeciesTypeComponentIndex.h  |  616 --
 .../packages/multi/sbml/IntraSpeciesReaction.cpp   |    2 +-
 .../packages/multi/sbml/IntraSpeciesReaction.h     |    2 +-
 src/sbml/packages/multi/sbml/MultiSpeciesType.cpp  |    2 +-
 .../packages/multi/sbml/OutwardBindingSite.cpp     |    2 +-
 .../multi/sbml/PossibleSpeciesFeatureValue.cpp     |    2 +-
 src/sbml/packages/multi/sbml/SpeciesFeature.cpp    |  351 +-
 src/sbml/packages/multi/sbml/SpeciesFeature.h      |  290 +-
 .../packages/multi/sbml/SpeciesFeatureChange.cpp   |    4 +-
 .../packages/multi/sbml/SpeciesFeatureType.cpp     |    4 +-
 .../packages/multi/sbml/SpeciesFeatureValue.cpp    |    2 +-
 .../multi/sbml/SpeciesTypeComponentIndex.cpp       |  386 +-
 .../multi/sbml/SpeciesTypeComponentIndex.h         |  261 -
 .../sbml/SpeciesTypeComponentMapInProduct.cpp      |    6 +-
 .../packages/multi/sbml/SpeciesTypeInstance.cpp    |  144 +-
 src/sbml/packages/multi/sbml/SpeciesTypeInstance.h |   68 -
 .../multi/sbml/SubListOfSpeciesFeatures.cpp        |  681 ++
 .../packages/multi/sbml/SubListOfSpeciesFeatures.h |  492 ++
 src/sbml/packages/multi/sbml/test/CMakeLists.txt   |    2 +-
 src/sbml/packages/multi/sbml/test/Makefile.in      |    2 +-
 src/sbml/packages/multi/sbml/test/TestRunner.c     |    2 +-
 src/sbml/packages/multi/validator/MultiSBMLError.h |   40 +-
 .../packages/multi/validator/MultiSBMLErrorTable.h |  656 +-
 .../packages/multi/validator/MultiValidator.cpp    |  250 +-
 .../constraints/MultiConsistencyConstraints.cpp    |  242 +-
 .../MultiConsistencyConstraintsDeclared.cxx        |   17 +-
 .../multi/validator/constraints/MultiIdBase.cpp    |    8 +-
 .../multi/validator/constraints/MultiIdBase.h      |    3 +-
 .../MultiIdentifierConsistencyConstraints.cpp      |    6 +-
 ...ltiIdentifierConsistencyConstraintsDeclared.cxx |    4 +-
 .../MultiMathCiCheckRepresentationType.cpp         |    4 +-
 .../MultiMathCiCheckRepresentationType.h           |    2 +-
 .../MultiMathCiCheckSpeciesReference.cpp           |    6 +-
 .../constraints/MultiMathCiCheckSpeciesReference.h |    2 +-
 ...queCompartmentReferenceIdsWithinCompartment.cpp |    4 +-
 ...niqueCompartmentReferenceIdsWithinCompartment.h |    2 +-
 ...eInSpeciesTypeBondIdsWithinMultiSpeciesType.cpp |    4 +-
 ...queInSpeciesTypeBondIdsWithinMultiSpeciesType.h |    2 +-
 .../constraints/UniqueMultiComponentIds.cpp        |   22 +-
 .../constraints/UniqueMultiComponentIds.h          |    2 +-
 .../validator/constraints/UniqueMultiIdBase.cpp    |    2 +-
 .../validator/constraints/UniqueMultiIdBase.h      |    2 +-
 ...ciesFeatureValueIdsWithinSpeciesFeatureType.cpp |   98 -
 ...peciesFeatureValueIdsWithinSpeciesFeatureType.h |   68 -
 ...geIdsWithinSpeciesTypeComponentMapInProduct.cpp |    4 +-
 ...angeIdsWithinSpeciesTypeComponentMapInProduct.h |    2 +-
 .../UniqueSpeciesFeatureIdsWithinSpecies.cpp       |    4 +-
 .../UniqueSpeciesFeatureIdsWithinSpecies.h         |    2 +-
 ...SpeciesFeatureTypeIdsWithinMultiSpeciesType.cpp |    4 +-
 ...ueSpeciesFeatureTypeIdsWithinMultiSpeciesType.h |    2 +-
 ...TypeComponentIndexIdsWithinMultiSpeciesType.cpp |    4 +-
 ...esTypeComponentIndexIdsWithinMultiSpeciesType.h |    2 +-
 ...peciesTypeInstanceIdsWithinMultiSpeciesType.cpp |    4 +-
 ...eSpeciesTypeInstanceIdsWithinMultiSpeciesType.h |    2 +-
 ...queSubListOfSpeciesFeaturesIdsWithinSpecies.cpp |   91 +
 ...niqueSubListOfSpeciesFeaturesIdsWithinSpecies.h |   68 +
 .../packages/multi/validator/test/CMakeLists.txt   |    2 +-
 .../packages/multi/validator/test/TestFile.cpp     |    2 +-
 src/sbml/packages/multi/validator/test/TestFile.h  |    2 +-
 .../test/TestMultiConsistencyValidator.cpp         |   17 +-
 .../multi/validator/test/TestValidator.cpp         |    2 +-
 .../packages/multi/validator/test/TestValidator.h  |    2 +-
 .../general-constraints/7020501-fail-01-01.xml     |    2 +-
 .../general-constraints/7020805-fail-01-01.xml     |    2 +-
 .../general-constraints/7020805-pass-00-01.xml     |    2 +-
 .../general-constraints/7020806-fail-01-01.xml     |    2 +-
 .../general-constraints/7020806-pass-00-01.xml     |    2 +-
 .../general-constraints/7020904-fail-01-01.xml     |    4 +-
 .../general-constraints/7020904-pass-00-01.xml     |    4 +-
 .../general-constraints/7020905-fail-01-01.xml     |   34 -
 .../general-constraints/7020905-pass-00-01.xml     |   35 -
 .../general-constraints/7020906-fail-01-01.xml     |   32 -
 .../general-constraints/7020906-pass-00-01.xml     |   32 -
 .../general-constraints/7020907-fail-01-01.xml     |   18 +-
 .../general-constraints/7021004-fail-01-01.xml     |   35 -
 .../general-constraints/7021104-fail-01-01.xml     |   18 +-
 .../general-constraints/7021104-pass-00-01.xml     |   18 +-
 .../general-constraints/7021105-fail-01-01.xml     |   18 +-
 .../general-constraints/7021106-fail-01-01.xml     |   18 +-
 .../general-constraints/7021305-fail-01-01.xml     |   23 +
 .../general-constraints/7021305-pass-00-01.xml     |    2 +-
 .../general-constraints/7021904-fail-01-01.xml     |    4 +-
 .../general-constraints/7021904-pass-00-01.xml     |    4 +-
 .../general-constraints/7021905-fail-01-01.xml     |    4 +-
 .../general-constraints/7021906-fail-01-01.xml     |    4 +-
 .../general-constraints/7022004-fail-01-01.xml     |    4 +-
 .../general-constraints/7022004-pass-00-01.xml     |    4 +-
 .../general-constraints/7022005-fail-01-01.xml     |    4 +-
 .../general-constraints/7022102-fail-01-01.xml     |   33 +
 .../general-constraints/7022102-fail-01-02.xml     |   51 +
 .../general-constraints/7022102-pass-00-01.xml     |   33 +
 .../general-constraints/7022103-fail-01-01.xml     |   33 +
 .../general-constraints/7022103-pass-00-01.xml     |   33 +
 src/sbml/packages/qual/Makefile.in                 |    2 +-
 src/sbml/packages/qual/common/Makefile.in          |    2 +-
 src/sbml/packages/qual/common/QualExtensionTypes.h |    2 +-
 src/sbml/packages/qual/common/qualfwd.h            |    2 +-
 src/sbml/packages/qual/extension/Makefile.in       |    2 +-
 src/sbml/packages/qual/extension/QualExtension.cpp |    2 +-
 src/sbml/packages/qual/extension/QualExtension.h   |    2 +-
 .../packages/qual/extension/QualModelPlugin.cpp    |   15 +-
 src/sbml/packages/qual/extension/QualModelPlugin.h |   14 +-
 .../qual/extension/QualSBMLDocumentPlugin.cpp      |    2 +-
 .../qual/extension/QualSBMLDocumentPlugin.h        |   10 +-
 .../packages/qual/extension/test/CMakeLists.txt    |    2 +-
 src/sbml/packages/qual/extension/test/Makefile.in  |    2 +-
 .../qual/extension/test/TestGetAllElements.cpp     |    2 +-
 .../qual/extension/test/TestQualExtension.cpp      |    2 +-
 .../qual/extension/test/TestReadQualExtension.cpp  |    2 +-
 src/sbml/packages/qual/extension/test/TestRunner.c |    2 +-
 .../qual/extension/test/TestWriteQualExtension.cpp |    2 +-
 src/sbml/packages/qual/sbml/DefaultTerm.cpp        |    8 +-
 src/sbml/packages/qual/sbml/DefaultTerm.h          |    8 +-
 src/sbml/packages/qual/sbml/FunctionTerm.cpp       |    8 +-
 src/sbml/packages/qual/sbml/FunctionTerm.h         |    8 +-
 src/sbml/packages/qual/sbml/Input.cpp              |    8 +-
 src/sbml/packages/qual/sbml/Input.h                |    8 +-
 src/sbml/packages/qual/sbml/Makefile.in            |    2 +-
 src/sbml/packages/qual/sbml/Output.cpp             |    8 +-
 src/sbml/packages/qual/sbml/Output.h               |    8 +-
 src/sbml/packages/qual/sbml/QualitativeSpecies.cpp |    8 +-
 src/sbml/packages/qual/sbml/QualitativeSpecies.h   |    8 +-
 src/sbml/packages/qual/sbml/Transition.cpp         |   23 +-
 src/sbml/packages/qual/sbml/Transition.h           |   23 +-
 src/sbml/packages/qual/sbml/test/CMakeLists.txt    |    2 +-
 src/sbml/packages/qual/sbml/test/Makefile.in       |    2 +-
 .../packages/qual/sbml/test/TestCopyAndClone.cpp   |    2 +-
 .../packages/qual/sbml/test/TestDefaultTerm.cpp    |    2 +-
 .../packages/qual/sbml/test/TestFunctionTerm.cpp   |    2 +-
 src/sbml/packages/qual/sbml/test/TestInput.cpp     |    2 +-
 .../qual/sbml/test/TestListOfFunctionTerms.cpp     |    2 +-
 src/sbml/packages/qual/sbml/test/TestOutput.cpp    |    2 +-
 .../qual/sbml/test/TestQualitativeSpecies.cpp      |    2 +-
 src/sbml/packages/qual/sbml/test/TestRunner.c      |    2 +-
 .../packages/qual/sbml/test/TestTransition.cpp     |    2 +-
 src/sbml/packages/qual/validator/Makefile.in       |    2 +-
 .../qual/validator/QualConsistencyValidator.cpp    |    2 +-
 .../qual/validator/QualConsistencyValidator.h      |    2 +-
 .../QualIdentifierConsistencyValidator.cpp         |    2 +-
 .../validator/QualIdentifierConsistencyValidator.h |    2 +-
 .../validator/QualMathConsistencyValidator.cpp     |    2 +-
 .../qual/validator/QualMathConsistencyValidator.h  |    2 +-
 src/sbml/packages/qual/validator/QualSBMLError.h   |    2 +-
 .../packages/qual/validator/QualSBMLErrorTable.h   |    2 +-
 src/sbml/packages/qual/validator/QualValidator.cpp |    2 +-
 src/sbml/packages/qual/validator/QualValidator.h   |    8 +-
 .../qual/validator/constraints/Makefile.in         |    2 +-
 .../qual/validator/constraints/QSAssignedOnce.cpp  |    2 +-
 .../qual/validator/constraints/QSAssignedOnce.h    |    2 +-
 .../validator/constraints/QualCSymbolMathCheck.cpp |    2 +-
 .../validator/constraints/QualCSymbolMathCheck.h   |    2 +-
 .../constraints/QualConsistencyConstraints.cpp     |    2 +-
 .../QualConsistencyConstraintsDeclared.cxx         |    2 +-
 .../QualIdentifierConsistencyConstraints.cpp       |    2 +-
 ...ualIdentifierConsistencyConstraintsDeclared.cxx |    2 +-
 .../constraints/QualMathConsistencyConstraints.cpp |    2 +-
 .../QualMathConsistencyConstraintsDeclared.cxx     |    2 +-
 .../constraints/QualUniqueModelWideIds.cpp         |    2 +-
 .../validator/constraints/QualUniqueModelWideIds.h |    2 +-
 .../constraints/ResultBecomesNegative.cpp          |    4 +-
 .../validator/constraints/ResultBecomesNegative.h  |    2 +-
 .../validator/constraints/ResultExceedsMaximum.cpp |    4 +-
 .../validator/constraints/ResultExceedsMaximum.h   |    2 +-
 .../packages/qual/validator/test/CMakeLists.txt    |    2 +-
 src/sbml/packages/qual/validator/test/Makefile.in  |    2 +-
 src/sbml/packages/qual/validator/test/TestFile.cpp |    2 +-
 src/sbml/packages/qual/validator/test/TestFile.h   |    2 +-
 .../test/TestQualConsistencyValidator.cpp          |    2 +-
 .../packages/qual/validator/test/TestValidator.cpp |    2 +-
 .../packages/qual/validator/test/TestValidator.h   |    2 +-
 .../qual/validator/test/test-data/Makefile.in      |    2 +-
 .../packages/render/common/RenderExtensionTypes.h  |    2 +-
 .../packages/render/extension/RenderExtension.cpp  |    2 +-
 .../packages/render/extension/RenderExtension.h    |    2 +-
 .../extension/RenderGraphicalObjectPlugin.cpp      |    2 +-
 .../render/extension/RenderGraphicalObjectPlugin.h |    2 +-
 .../render/extension/RenderLayoutPlugin.cpp        |    2 +-
 .../packages/render/extension/RenderLayoutPlugin.h |    2 +-
 .../render/extension/RenderListOfLayoutsPlugin.cpp |    2 +-
 .../render/extension/RenderListOfLayoutsPlugin.h   |    2 +-
 .../render/extension/RenderSBMLDocumentPlugin.cpp  |    2 +-
 .../render/extension/RenderSBMLDocumentPlugin.h    |    2 +-
 src/sbml/packages/render/sbml/ColorDefinition.cpp  |    2 +-
 src/sbml/packages/render/sbml/ColorDefinition.h    |    2 +-
 src/sbml/packages/render/sbml/Ellipse.cpp          |    2 +-
 src/sbml/packages/render/sbml/Ellipse.h            |    2 +-
 .../render/sbml/GlobalRenderInformation.cpp        |    2 +-
 .../packages/render/sbml/GlobalRenderInformation.h |    2 +-
 src/sbml/packages/render/sbml/GlobalStyle.cpp      |    2 +-
 src/sbml/packages/render/sbml/GlobalStyle.h        |    2 +-
 src/sbml/packages/render/sbml/GradientBase.cpp     |    2 +-
 src/sbml/packages/render/sbml/GradientBase.h       |    2 +-
 src/sbml/packages/render/sbml/GradientStop.cpp     |    2 +-
 src/sbml/packages/render/sbml/GradientStop.h       |    2 +-
 .../packages/render/sbml/GraphicalPrimitive1D.cpp  |    2 +-
 .../packages/render/sbml/GraphicalPrimitive1D.h    |    2 +-
 .../packages/render/sbml/GraphicalPrimitive2D.cpp  |    2 +-
 .../packages/render/sbml/GraphicalPrimitive2D.h    |    2 +-
 src/sbml/packages/render/sbml/Image.cpp            |    2 +-
 src/sbml/packages/render/sbml/Image.h              |    2 +-
 src/sbml/packages/render/sbml/LineEnding.cpp       |    2 +-
 src/sbml/packages/render/sbml/LineEnding.h         |    2 +-
 src/sbml/packages/render/sbml/LinearGradient.cpp   |    2 +-
 src/sbml/packages/render/sbml/LinearGradient.h     |    2 +-
 .../packages/render/sbml/ListOfCurveElements.cpp   |    2 +-
 .../packages/render/sbml/ListOfCurveElements.h     |    2 +-
 .../render/sbml/LocalRenderInformation.cpp         |    2 +-
 .../packages/render/sbml/LocalRenderInformation.h  |    2 +-
 src/sbml/packages/render/sbml/LocalStyle.cpp       |    2 +-
 src/sbml/packages/render/sbml/LocalStyle.h         |    2 +-
 src/sbml/packages/render/sbml/Polygon.cpp          |    2 +-
 src/sbml/packages/render/sbml/Polygon.h            |    2 +-
 src/sbml/packages/render/sbml/RadialGradient.cpp   |    2 +-
 src/sbml/packages/render/sbml/RadialGradient.h     |    2 +-
 src/sbml/packages/render/sbml/Rectangle.cpp        |    2 +-
 src/sbml/packages/render/sbml/Rectangle.h          |    2 +-
 src/sbml/packages/render/sbml/RelAbsVector.cpp     |    2 +-
 src/sbml/packages/render/sbml/RelAbsVector.h       |    2 +-
 .../packages/render/sbml/RenderCubicBezier.cpp     |    2 +-
 src/sbml/packages/render/sbml/RenderCubicBezier.h  |    2 +-
 src/sbml/packages/render/sbml/RenderCurve.cpp      |    2 +-
 src/sbml/packages/render/sbml/RenderCurve.h        |    2 +-
 src/sbml/packages/render/sbml/RenderGroup.cpp      |    2 +-
 src/sbml/packages/render/sbml/RenderGroup.h        |    2 +-
 .../packages/render/sbml/RenderInformationBase.cpp |    2 +-
 .../packages/render/sbml/RenderInformationBase.h   |    2 +-
 src/sbml/packages/render/sbml/RenderPoint.cpp      |    2 +-
 src/sbml/packages/render/sbml/RenderPoint.h        |    2 +-
 src/sbml/packages/render/sbml/Style.cpp            |    2 +-
 src/sbml/packages/render/sbml/Style.h              |    2 +-
 src/sbml/packages/render/sbml/Text.cpp             |    2 +-
 src/sbml/packages/render/sbml/Text.h               |    2 +-
 src/sbml/packages/render/sbml/Transformation.cpp   |    2 +-
 src/sbml/packages/render/sbml/Transformation.h     |    2 +-
 src/sbml/packages/render/sbml/Transformation2D.cpp |    2 +-
 src/sbml/packages/render/sbml/Transformation2D.h   |    2 +-
 .../render/sbml/test/TestRenderWriting.cpp         |    2 -
 .../packages/render/util/RenderLayoutConverter.cpp |    2 +-
 .../packages/render/util/RenderLayoutConverter.h   |    2 +-
 src/sbml/packages/render/util/RenderUtilities.cpp  |    2 +-
 src/sbml/packages/render/util/RenderUtilities.h    |    2 +-
 src/sbml/packages/req-register.cxx                 |    2 +-
 src/sbml/packages/req-register.h                   |    2 +-
 src/sbml/packages/req/common/ReqExtensionTypes.h   |    2 +-
 src/sbml/packages/req/common/reqfwd.h              |    2 +-
 src/sbml/packages/req/extension/ReqExtension.cpp   |    2 +-
 src/sbml/packages/req/extension/ReqExtension.h     |    2 +-
 .../req/extension/ReqSBMLDocumentPlugin.cpp        |    2 +-
 .../packages/req/extension/ReqSBMLDocumentPlugin.h |    2 +-
 src/sbml/packages/req/extension/ReqSBasePlugin.cpp |    2 +-
 src/sbml/packages/req/extension/ReqSBasePlugin.h   |    2 +-
 .../packages/req/extension/test/CMakeLists.txt     |    2 +-
 src/sbml/packages/req/sbml/ChangedMath.cpp         |    2 +-
 src/sbml/packages/req/sbml/ChangedMath.h           |    2 +-
 .../req/validator/ReqConsistencyValidator.cpp      |    2 +-
 .../req/validator/ReqConsistencyValidator.h        |    2 +-
 .../ReqIdentifierConsistencyValidator.cpp          |    2 +-
 .../validator/ReqIdentifierConsistencyValidator.h  |    2 +-
 src/sbml/packages/req/validator/ReqSBMLError.h     |    2 +-
 .../packages/req/validator/ReqSBMLErrorTable.h     |    2 +-
 src/sbml/packages/req/validator/ReqValidator.cpp   |    2 +-
 src/sbml/packages/req/validator/ReqValidator.h     |    2 +-
 .../constraints/ReqConsistencyConstraints.cpp      |    2 +-
 .../ReqIdentifierConsistencyConstraints.cpp        |    2 +-
 src/sbml/packages/spatial-register.cxx             |    2 +-
 src/sbml/packages/spatial-register.h               |    2 +-
 .../spatial/common/SpatialExtensionTypes.h         |    2 +-
 src/sbml/packages/spatial/common/spatialfwd.h      |    2 +-
 .../spatial/extension/SpatialCompartmentPlugin.cpp |    2 +-
 .../spatial/extension/SpatialCompartmentPlugin.h   |    2 +-
 .../spatial/extension/SpatialExtension.cpp         |    2 +-
 .../packages/spatial/extension/SpatialExtension.h  |    2 +-
 .../spatial/extension/SpatialModelPlugin.cpp       |    2 +-
 .../spatial/extension/SpatialModelPlugin.h         |    2 +-
 .../spatial/extension/SpatialParameterPlugin.cpp   |    2 +-
 .../spatial/extension/SpatialParameterPlugin.h     |    2 +-
 .../spatial/extension/SpatialReactionPlugin.cpp    |    2 +-
 .../spatial/extension/SpatialReactionPlugin.h      |    2 +-
 .../extension/SpatialSBMLDocumentPlugin.cpp        |    2 +-
 .../spatial/extension/SpatialSBMLDocumentPlugin.h  |    2 +-
 .../spatial/extension/SpatialSpeciesPlugin.cpp     |    2 +-
 .../spatial/extension/SpatialSpeciesPlugin.h       |    2 +-
 .../extension/test/TestReadSpatialExtension.cpp    |    4 +-
 .../packages/spatial/extension/test/TestRunner.c   |    5 +
 src/sbml/packages/spatial/sbml/AdjacentDomains.cpp |    2 +-
 src/sbml/packages/spatial/sbml/AdjacentDomains.h   |    2 +-
 .../packages/spatial/sbml/AdvectionCoefficient.cpp |    2 +-
 .../packages/spatial/sbml/AdvectionCoefficient.h   |    2 +-
 .../packages/spatial/sbml/AnalyticGeometry.cpp     |    2 +-
 src/sbml/packages/spatial/sbml/AnalyticGeometry.h  |    2 +-
 src/sbml/packages/spatial/sbml/AnalyticVolume.cpp  |    2 +-
 src/sbml/packages/spatial/sbml/AnalyticVolume.h    |    2 +-
 src/sbml/packages/spatial/sbml/Boundary.cpp        |    2 +-
 src/sbml/packages/spatial/sbml/Boundary.h          |    2 +-
 .../packages/spatial/sbml/BoundaryCondition.cpp    |    2 +-
 src/sbml/packages/spatial/sbml/BoundaryCondition.h |    2 +-
 .../spatial/sbml/CSGHomogeneousTransformation.cpp  |    2 +-
 .../spatial/sbml/CSGHomogeneousTransformation.h    |    2 +-
 src/sbml/packages/spatial/sbml/CSGNode.cpp         |    2 +-
 src/sbml/packages/spatial/sbml/CSGNode.h           |    2 +-
 src/sbml/packages/spatial/sbml/CSGObject.cpp       |    2 +-
 src/sbml/packages/spatial/sbml/CSGObject.h         |    2 +-
 src/sbml/packages/spatial/sbml/CSGPrimitive.cpp    |    2 +-
 src/sbml/packages/spatial/sbml/CSGPrimitive.h      |    2 +-
 .../packages/spatial/sbml/CSGPseudoPrimitive.cpp   |    2 +-
 .../packages/spatial/sbml/CSGPseudoPrimitive.h     |    2 +-
 src/sbml/packages/spatial/sbml/CSGRotation.cpp     |    2 +-
 src/sbml/packages/spatial/sbml/CSGRotation.h       |    2 +-
 src/sbml/packages/spatial/sbml/CSGScale.cpp        |    2 +-
 src/sbml/packages/spatial/sbml/CSGScale.h          |    2 +-
 src/sbml/packages/spatial/sbml/CSGSetOperator.cpp  |    2 +-
 src/sbml/packages/spatial/sbml/CSGSetOperator.h    |    2 +-
 .../packages/spatial/sbml/CSGTransformation.cpp    |    2 +-
 src/sbml/packages/spatial/sbml/CSGTransformation.h |    2 +-
 src/sbml/packages/spatial/sbml/CSGTranslation.cpp  |    2 +-
 src/sbml/packages/spatial/sbml/CSGTranslation.h    |    2 +-
 src/sbml/packages/spatial/sbml/CSGeometry.cpp      |    2 +-
 src/sbml/packages/spatial/sbml/CSGeometry.h        |    2 +-
 .../packages/spatial/sbml/CompartmentMapping.cpp   |    2 +-
 .../packages/spatial/sbml/CompartmentMapping.h     |    2 +-
 .../packages/spatial/sbml/CoordinateComponent.cpp  |    2 +-
 .../packages/spatial/sbml/CoordinateComponent.h    |    2 +-
 .../packages/spatial/sbml/CoordinateReference.cpp  |    2 +-
 .../packages/spatial/sbml/CoordinateReference.h    |    2 +-
 .../packages/spatial/sbml/DiffusionCoefficient.cpp |    2 +-
 .../packages/spatial/sbml/DiffusionCoefficient.h   |    2 +-
 src/sbml/packages/spatial/sbml/Domain.cpp          |    2 +-
 src/sbml/packages/spatial/sbml/Domain.h            |    2 +-
 src/sbml/packages/spatial/sbml/DomainType.cpp      |    2 +-
 src/sbml/packages/spatial/sbml/DomainType.h        |    2 +-
 src/sbml/packages/spatial/sbml/Geometry.cpp        |    2 +-
 src/sbml/packages/spatial/sbml/Geometry.h          |    2 +-
 .../packages/spatial/sbml/GeometryDefinition.cpp   |    2 +-
 .../packages/spatial/sbml/GeometryDefinition.h     |    2 +-
 src/sbml/packages/spatial/sbml/InteriorPoint.cpp   |    2 +-
 src/sbml/packages/spatial/sbml/InteriorPoint.h     |    2 +-
 src/sbml/packages/spatial/sbml/MixedGeometry.cpp   |    2 +-
 src/sbml/packages/spatial/sbml/MixedGeometry.h     |    2 +-
 src/sbml/packages/spatial/sbml/OrdinalMapping.cpp  |    2 +-
 src/sbml/packages/spatial/sbml/OrdinalMapping.h    |    2 +-
 .../packages/spatial/sbml/ParametricGeometry.cpp   |    2 +-
 .../packages/spatial/sbml/ParametricGeometry.h     |    2 +-
 .../packages/spatial/sbml/ParametricObject.cpp     |    4 +-
 src/sbml/packages/spatial/sbml/ParametricObject.h  |    2 +-
 src/sbml/packages/spatial/sbml/SampledField.cpp    |    2 +-
 src/sbml/packages/spatial/sbml/SampledField.h      |    2 +-
 .../packages/spatial/sbml/SampledFieldGeometry.cpp |    2 +-
 .../packages/spatial/sbml/SampledFieldGeometry.h   |    2 +-
 src/sbml/packages/spatial/sbml/SampledVolume.cpp   |    2 +-
 src/sbml/packages/spatial/sbml/SampledVolume.h     |    2 +-
 src/sbml/packages/spatial/sbml/SpatialPoints.cpp   |    2 +-
 src/sbml/packages/spatial/sbml/SpatialPoints.h     |    2 +-
 .../spatial/sbml/SpatialSymbolReference.cpp        |    2 +-
 .../packages/spatial/sbml/SpatialSymbolReference.h |    2 +-
 .../spatial/sbml/TransformationComponents.cpp      |    2 +-
 .../spatial/sbml/TransformationComponents.h        |    2 +-
 src/sbml/packages/spatial/sbml/test/CMakeLists.txt |    2 +-
 .../spatial/sbml/test/TestCopyAndClone.cpp         |    2 +-
 .../packages/spatial/sbml/test/TestImageData.cpp   |    2 +-
 .../spatial/sbml/test/TestParametricObject.cpp     |    2 +-
 src/sbml/packages/spatial/sbml/test/TestRunner.c   |    6 +-
 .../sbml/test/TestTransformationComponents.cpp     |    2 +-
 .../validator/SpatialConsistencyValidator.cpp      |    2 +-
 .../validator/SpatialConsistencyValidator.h        |    2 +-
 .../SpatialIdentifierConsistencyValidator.cpp      |    2 +-
 .../SpatialIdentifierConsistencyValidator.h        |    2 +-
 .../packages/spatial/validator/SpatialSBMLError.h  |    2 +-
 .../spatial/validator/SpatialSBMLErrorTable.h      |    2 +-
 .../spatial/validator/SpatialValidator.cpp         |    2 +-
 .../packages/spatial/validator/SpatialValidator.h  |    2 +-
 .../constraints/SpatialConsistencyConstraints.cpp  |    2 +-
 .../SpatialIdentifierConsistencyConstraints.cpp    |    2 +-
 src/sbml/test/CMakeLists.txt                       |    2 +-
 src/sbml/test/Makefile.in                          |    5 +-
 src/sbml/test/TestAlgebraicRule.c                  |    2 +-
 src/sbml/test/TestAncestor.cpp                     |    2 +-
 src/sbml/test/TestAssignmentRule.c                 |    2 +-
 src/sbml/test/TestCompartment.c                    |    2 +-
 src/sbml/test/TestCompartmentType.c                |    2 +-
 src/sbml/test/TestCompartmentType_newSetters.c     |    2 +-
 src/sbml/test/TestCompartmentVolumeRule.c          |    2 +-
 src/sbml/test/TestCompartment_newSetters.c         |    2 +-
 src/sbml/test/TestConsistencyChecks.cpp            |    2 +-
 src/sbml/test/TestConstraint.c                     |    2 +-
 src/sbml/test/TestConstraint_newSetters.c          |    2 +-
 src/sbml/test/TestCopyAndClone.cpp                 |    2 +-
 src/sbml/test/TestDelay.c                          |    2 +-
 src/sbml/test/TestEvent.c                          |    2 +-
 src/sbml/test/TestEventAssignment.c                |    2 +-
 src/sbml/test/TestEventAssignment_newSetters.c     |    2 +-
 src/sbml/test/TestEvent_newSetters.c               |    2 +-
 src/sbml/test/TestFunctionDefinition.c             |    2 +-
 src/sbml/test/TestFunctionDefinition_newSetters.c  |    2 +-
 src/sbml/test/TestGetMultipleObjects.cpp           |    2 +-
 src/sbml/test/TestInitialAssignment.c              |    2 +-
 src/sbml/test/TestInitialAssignment_newSetters.c   |    2 +-
 src/sbml/test/TestInternalConsistencyChecks.cpp    |    2 +-
 src/sbml/test/TestKineticLaw.c                     |    2 +-
 src/sbml/test/TestKineticLaw_newSetters.c          |    2 +-
 src/sbml/test/TestL3Compartment.c                  |    2 +-
 src/sbml/test/TestL3Event.c                        |    2 +-
 src/sbml/test/TestL3KineticLaw.c                   |    2 +-
 src/sbml/test/TestL3LocalParameter.c               |    2 +-
 src/sbml/test/TestL3Model.c                        |    2 +-
 src/sbml/test/TestL3Parameter.c                    |    2 +-
 src/sbml/test/TestL3Reaction.c                     |    2 +-
 src/sbml/test/TestL3Species.c                      |    2 +-
 src/sbml/test/TestL3SpeciesReference.c             |    2 +-
 src/sbml/test/TestL3Trigger.c                      |    2 +-
 src/sbml/test/TestL3Unit.c                         |    2 +-
 src/sbml/test/TestLevelCompatibility.cpp           |  271 +
 src/sbml/test/TestListOf.c                         |    2 +-
 src/sbml/test/TestModel.c                          |    2 +-
 src/sbml/test/TestModel_newSetters.c               |    2 +-
 src/sbml/test/TestModifierSpeciesReference.c       |    2 +-
 src/sbml/test/TestParameter.c                      |    2 +-
 src/sbml/test/TestParameterRule.c                  |    2 +-
 src/sbml/test/TestParameter_newSetters.c           |    2 +-
 src/sbml/test/TestPriority.c                       |    2 +-
 src/sbml/test/TestRateRule.c                       |    2 +-
 src/sbml/test/TestReaction.c                       |    2 +-
 src/sbml/test/TestReaction_newSetters.c            |    2 +-
 src/sbml/test/TestReadFromFile1.c                  |    2 +-
 src/sbml/test/TestReadFromFile2.c                  |    2 +-
 src/sbml/test/TestReadFromFile3.c                  |    2 +-
 src/sbml/test/TestReadFromFile4.c                  |    2 +-
 src/sbml/test/TestReadFromFile5.cpp                |    2 +-
 src/sbml/test/TestReadFromFile6.cpp                |    2 +-
 src/sbml/test/TestReadFromFile7.cpp                |    2 +-
 src/sbml/test/TestReadFromFile8.cpp                |    2 +-
 src/sbml/test/TestReadFromFile9.cpp                |    2 +-
 src/sbml/test/TestReadFromFileL2V5.cpp             |    2 +-
 src/sbml/test/TestReadSBML.cpp                     |    2 +-
 src/sbml/test/TestRemoveFromParent.cpp             |    2 +-
 src/sbml/test/TestRenameIDs.cpp                    |    2 +-
 src/sbml/test/TestRequiredAttributes.cpp           |    2 +-
 src/sbml/test/TestRequiredElements.cpp             |    2 +-
 src/sbml/test/TestRule.c                           |    2 +-
 src/sbml/test/TestRule_newSetters.c                |    2 +-
 src/sbml/test/TestRunner.c                         |    6 +-
 src/sbml/test/TestSBMLConstructorException.cpp     |    2 +-
 src/sbml/test/TestSBMLConvert.c                    |    2 +-
 src/sbml/test/TestSBMLConvertStrict.c              |    2 +-
 src/sbml/test/TestSBMLDocument.c                   |    2 +-
 src/sbml/test/TestSBMLError.cpp                    |    2 +-
 src/sbml/test/TestSBMLNamespaces.cpp               |    2 +-
 src/sbml/test/TestSBMLParentObject.cpp             |    2 +-
 src/sbml/test/TestSBMLTransforms.cpp               |    2 +-
 src/sbml/test/TestSBMLValidators.cpp               |    2 +-
 src/sbml/test/TestSBase.cpp                        |    2 +-
 src/sbml/test/TestSBase_newSetters.cpp             |    2 +-
 src/sbml/test/TestSpecies.c                        |    2 +-
 src/sbml/test/TestSpeciesConcentrationRule.c       |    2 +-
 src/sbml/test/TestSpeciesReference.c               |    2 +-
 src/sbml/test/TestSpeciesReference_newSetters.c    |    2 +-
 src/sbml/test/TestSpeciesType.c                    |    2 +-
 src/sbml/test/TestSpeciesType_newSetters.c         |    2 +-
 src/sbml/test/TestSpecies_newSetters.c             |    2 +-
 src/sbml/test/TestStoichiometryMath.c              |    2 +-
 src/sbml/test/TestSyntaxChecker.c                  |    2 +-
 src/sbml/test/TestTrigger.c                        |    2 +-
 src/sbml/test/TestUnit.c                           |    2 +-
 src/sbml/test/TestUnitDefinition.c                 |    2 +-
 src/sbml/test/TestUnitDefinition_newSetters.c      |    2 +-
 src/sbml/test/TestUnitKind.c                       |    2 +-
 src/sbml/test/TestUnit_newSetters.c                |    2 +-
 src/sbml/test/TestWriteL3SBML.cpp                  |    2 +-
 src/sbml/test/TestWriteSBML.cpp                    |    2 +-
 .../test/test-data/inconsistent-l2v1-units-2.xml   |   20 +
 .../test/test-data/inconsistent-l2v1-units.xml     |   20 +
 src/sbml/units/FormulaUnitsData.cpp                |    2 +-
 src/sbml/units/FormulaUnitsData.h                  |    2 +-
 src/sbml/units/Makefile.in                         |    2 +-
 src/sbml/units/UnitFormulaFormatter.cpp            |    2 +-
 src/sbml/units/UnitFormulaFormatter.h              |    2 +-
 src/sbml/units/UnitKindList.cpp                    |    2 +-
 src/sbml/units/UnitKindList.h                      |    2 +-
 src/sbml/units/test/CMakeLists.txt                 |    2 +-
 src/sbml/units/test/Makefile.in                    |    2 +-
 .../units/test/TestCalculatedUnitDefinitions.cpp   |    2 +-
 src/sbml/units/test/TestDerivedUnitDefinitions.cpp |    2 +-
 src/sbml/units/test/TestFormulaUnitsData.cpp       |    2 +-
 src/sbml/units/test/TestRunner.c                   |    2 +-
 src/sbml/units/test/TestUnitFormulaFormatter.cpp   |    2 +-
 src/sbml/units/test/TestUnitFormulaFormatter1.cpp  |    2 +-
 src/sbml/units/test/TestUnitFormulaFormatter2.cpp  |    2 +-
 src/sbml/units/test/TestUnitFormulaFormatter3.cpp  |    2 +-
 src/sbml/units/test/TestUtilsUnit.cpp              |    2 +-
 src/sbml/units/test/TestUtilsUnitDefinition.cpp    |    2 +-
 src/sbml/util/ElementFilter.cpp                    |    2 +-
 src/sbml/util/ElementFilter.h                      |    2 +-
 src/sbml/util/IdFilter.cpp                         |    2 +-
 src/sbml/util/IdFilter.h                           |    2 +-
 src/sbml/util/IdList.cpp                           |    2 +-
 src/sbml/util/IdList.h                             |    2 +-
 src/sbml/util/IdentifierTransformer.cpp            |    2 +-
 src/sbml/util/IdentifierTransformer.h              |    2 +-
 src/sbml/util/List.cpp                             |    2 +-
 src/sbml/util/List.h                               |    2 +-
 src/sbml/util/Makefile.in                          |    2 +-
 src/sbml/util/MetaIdFilter.cpp                     |    2 +-
 src/sbml/util/MetaIdFilter.h                       |    2 +-
 src/sbml/util/PrefixTransformer.cpp                |    2 +-
 src/sbml/util/PrefixTransformer.h                  |    2 +-
 src/sbml/util/Stack.c                              |    2 +-
 src/sbml/util/Stack.h                              |    2 +-
 src/sbml/util/StringBuffer.c                       |    2 +-
 src/sbml/util/StringBuffer.h                       |    2 +-
 src/sbml/util/memory.c                             |    2 +-
 src/sbml/util/memory.h                             |    2 +-
 src/sbml/util/test/CMakeLists.txt                  |    2 +-
 src/sbml/util/test/Makefile.in                     |    2 +-
 src/sbml/util/test/TestList.c                      |    2 +-
 src/sbml/util/test/TestMemory.c                    |    2 +-
 src/sbml/util/test/TestRunner.c                    |    2 +-
 src/sbml/util/test/TestStack.c                     |    2 +-
 src/sbml/util/test/TestStringBuffer.c              |    2 +-
 src/sbml/util/test/TestUtil.c                      |    2 +-
 src/sbml/util/util.cpp                             |    2 +-
 src/sbml/util/util.h                               |    2 +-
 src/sbml/validator/ConsistencyValidator.cpp        |    2 +-
 src/sbml/validator/ConsistencyValidator.h          |    2 +-
 src/sbml/validator/ConstraintMacros.h              |    2 +-
 .../validator/IdentifierConsistencyValidator.cpp   |    2 +-
 .../validator/IdentifierConsistencyValidator.h     |    2 +-
 .../validator/InternalConsistencyValidator.cpp     |    2 +-
 src/sbml/validator/InternalConsistencyValidator.h  |    2 +-
 src/sbml/validator/L1CompatibilityValidator.cpp    |    2 +-
 src/sbml/validator/L1CompatibilityValidator.h      |    2 +-
 src/sbml/validator/L2v1CompatibilityValidator.cpp  |    2 +-
 src/sbml/validator/L2v1CompatibilityValidator.h    |    2 +-
 src/sbml/validator/L2v2CompatibilityValidator.cpp  |    2 +-
 src/sbml/validator/L2v2CompatibilityValidator.h    |    2 +-
 src/sbml/validator/L2v3CompatibilityValidator.cpp  |    2 +-
 src/sbml/validator/L2v3CompatibilityValidator.h    |    2 +-
 src/sbml/validator/L2v4CompatibilityValidator.cpp  |    2 +-
 src/sbml/validator/L2v4CompatibilityValidator.h    |    2 +-
 src/sbml/validator/L3v1CompatibilityValidator.cpp  |    2 +-
 src/sbml/validator/L3v1CompatibilityValidator.h    |    2 +-
 src/sbml/validator/Makefile.in                     |    2 +-
 src/sbml/validator/MathMLConsistencyValidator.cpp  |    2 +-
 src/sbml/validator/MathMLConsistencyValidator.h    |    2 +-
 src/sbml/validator/ModelingPracticeValidator.cpp   |    2 +-
 src/sbml/validator/ModelingPracticeValidator.h     |    2 +-
 src/sbml/validator/OverdeterminedValidator.cpp     |    2 +-
 src/sbml/validator/OverdeterminedValidator.h       |    2 +-
 src/sbml/validator/SBMLExternalValidator.cpp       |    2 +-
 src/sbml/validator/SBMLExternalValidator.h         |    2 +-
 src/sbml/validator/SBMLInternalValidator.cpp       |    2 +-
 src/sbml/validator/SBMLInternalValidator.h         |    2 +-
 src/sbml/validator/SBMLValidator.cpp               |    2 +-
 src/sbml/validator/SBMLValidator.h                 |    2 +-
 src/sbml/validator/SBOConsistencyValidator.cpp     |    2 +-
 src/sbml/validator/SBOConsistencyValidator.h       |    2 +-
 .../validator/StrictUnitConsistencyValidator.cpp   |    2 +-
 .../validator/StrictUnitConsistencyValidator.h     |  132 +-
 src/sbml/validator/UnitConsistencyValidator.cpp    |    2 +-
 src/sbml/validator/UnitConsistencyValidator.h      |    2 +-
 src/sbml/validator/VConstraint.cpp                 |    2 +-
 src/sbml/validator/VConstraint.h                   |    2 +-
 src/sbml/validator/Validator.cpp                   |    2 +-
 src/sbml/validator/Validator.h                     |    2 +-
 .../validator/constraints/ArgumentsUnitsCheck.cpp  |    2 +-
 .../validator/constraints/ArgumentsUnitsCheck.h    |    2 +-
 .../constraints/ArgumentsUnitsCheckWarnings.cpp    |    2 +-
 .../constraints/ArgumentsUnitsCheckWarnings.h      |    2 +-
 .../validator/constraints/AssignmentCycles.cpp     |    2 +-
 src/sbml/validator/constraints/AssignmentCycles.h  |    2 +-
 .../constraints/AssignmentRuleOrdering.cpp         |    2 +-
 .../validator/constraints/AssignmentRuleOrdering.h |    2 +-
 .../validator/constraints/CiElementMathCheck.cpp   |    2 +-
 .../validator/constraints/CiElementMathCheck.h     |    2 +-
 .../validator/constraints/CiElementNot0DComp.cpp   |    2 +-
 .../validator/constraints/CiElementNot0DComp.h     |  234 +-
 .../constraints/CompartmentOutsideCycles.cpp       |    2 +-
 .../constraints/CompartmentOutsideCycles.h         |    2 +-
 .../constraints/ConsistencyConstraints.cpp         |    2 +-
 .../constraints/ConsistencyConstraintsDeclared.cxx |    2 +-
 .../constraints/DuplicateTopLevelAnnotation.cpp    |    2 +-
 .../constraints/DuplicateTopLevelAnnotation.h      |    2 +-
 .../constraints/EqualityArgsMathCheck.cpp          |    2 +-
 .../validator/constraints/EqualityArgsMathCheck.h  |    2 +-
 .../validator/constraints/ExponentUnitsCheck.cpp   |    2 +-
 .../validator/constraints/ExponentUnitsCheck.h     |    2 +-
 .../constraints/FunctionApplyMathCheck.cpp         |    2 +-
 .../validator/constraints/FunctionApplyMathCheck.h |    2 +-
 .../constraints/FunctionDefinitionRecursion.cpp    |    2 +-
 .../constraints/FunctionDefinitionRecursion.h      |  226 +-
 .../constraints/FunctionDefinitionVars.cpp         |    2 +-
 .../validator/constraints/FunctionDefinitionVars.h |    2 +-
 .../constraints/FunctionNoArgsMathCheck.cpp        |    2 +-
 .../constraints/FunctionNoArgsMathCheck.h          |    2 +-
 .../constraints/FunctionReferredToExists.cpp       |    2 +-
 .../constraints/FunctionReferredToExists.h         |    2 +-
 src/sbml/validator/constraints/IdBase.cpp          |    2 +-
 src/sbml/validator/constraints/IdBase.h            |    2 +-
 .../IdentifierConsistencyConstraints.cpp           |    2 +-
 .../IdentifierConsistencyConstraintsDeclared.cxx   |    2 +-
 .../constraints/InternalConsistencyConstraints.cpp |    2 +-
 .../InternalConsistencyConstraintsDeclared.cxx     |    2 +-
 .../validator/constraints/KineticLawUnitsCheck.cpp |    2 +-
 .../validator/constraints/KineticLawUnitsCheck.h   |    2 +-
 src/sbml/validator/constraints/KineticLawVars.cpp  |    2 +-
 src/sbml/validator/constraints/KineticLawVars.h    |    2 +-
 .../constraints/L1CompatibilityConstraints.cpp     |    2 +-
 .../L1CompatibilityConstraintsDeclared.cxx         |    2 +-
 .../constraints/L2v1CompatibilityConstraints.cpp   |    2 +-
 .../L2v1CompatibilityConstraintsDeclared.cxx       |    2 +-
 .../constraints/L2v2CompatibilityConstraints.cpp   |    2 +-
 .../L2v2CompatibilityConstraintsDeclared.cxx       |    2 +-
 .../constraints/L2v3CompatibilityConstraints.cpp   |    2 +-
 .../L2v3CompatibilityConstraintsDeclared.cxx       |    2 +-
 .../constraints/L2v4CompatibilityConstraints.cpp   |    2 +-
 .../L2v4CompatibilityConstraintsDeclared.cxx       |    2 +-
 .../constraints/L3v1CompatibilityConstraints.cpp   |    2 +-
 .../L3v1CompatibilityConstraintsDeclared.cxx       |    2 +-
 src/sbml/validator/constraints/LambdaMathCheck.cpp |    2 +-
 src/sbml/validator/constraints/LambdaMathCheck.h   |    2 +-
 .../constraints/LocalParameterMathCheck.cpp        |    2 +-
 .../constraints/LocalParameterMathCheck.h          |    2 +-
 .../constraints/LocalParameterShadowsIdInModel.cpp |    2 +-
 .../constraints/LocalParameterShadowsIdInModel.h   |    2 +-
 .../validator/constraints/LogicalArgsMathCheck.cpp |    2 +-
 .../validator/constraints/LogicalArgsMathCheck.h   |    2 +-
 src/sbml/validator/constraints/Makefile.in         |    2 +-
 src/sbml/validator/constraints/MathMLBase.cpp      |   14 +-
 src/sbml/validator/constraints/MathMLBase.h        |    2 +-
 .../constraints/MathMLConsistencyConstraints.cpp   |    2 +-
 .../MathMLConsistencyConstraintsDeclared.cxx       |    2 +-
 .../constraints/ModelingPracticeConstraints.cpp    |    2 +-
 .../ModelingPracticeConstraintsDeclared.cxx        |    2 +-
 .../validator/constraints/NumberArgsMathCheck.cpp  |    8 +-
 .../validator/constraints/NumberArgsMathCheck.h    |    2 +-
 .../validator/constraints/NumericArgsMathCheck.cpp |    2 +-
 .../validator/constraints/NumericArgsMathCheck.h   |    2 +-
 .../constraints/NumericReturnMathCheck.cpp         |    2 +-
 .../validator/constraints/NumericReturnMathCheck.h |    2 +-
 .../validator/constraints/OverDeterminedCheck.cpp  |    2 +-
 .../validator/constraints/OverDeterminedCheck.h    |    2 +-
 .../constraints/OverdeterminedConstraints.cpp      |    2 +-
 .../OverdeterminedConstraintsDeclared.cxx          |    2 +-
 .../constraints/PieceBooleanMathCheck.cpp          |   27 +-
 .../validator/constraints/PieceBooleanMathCheck.h  |    2 +-
 .../constraints/PiecewiseValueMathCheck.cpp        |    2 +-
 .../constraints/PiecewiseValueMathCheck.h          |    2 +-
 src/sbml/validator/constraints/PowerUnitsCheck.cpp |    8 +-
 src/sbml/validator/constraints/PowerUnitsCheck.h   |    2 +-
 .../constraints/SBOConsistencyConstraints.cpp      |    2 +-
 .../SBOConsistencyConstraintsDeclared.cxx          |    2 +-
 .../constraints/SpeciesReactionOrRule.cpp          |    2 +-
 .../validator/constraints/SpeciesReactionOrRule.h  |    2 +-
 .../constraints/StoichiometryMathVars.cpp          |    2 +-
 .../validator/constraints/StoichiometryMathVars.h  |    2 +-
 .../StrictUnitConsistencyConstraints.cpp           |   38 +-
 .../StrictUnitConsistencyConstraintsDeclared.cxx   |    2 +-
 src/sbml/validator/constraints/UniqueIdBase.cpp    |    2 +-
 src/sbml/validator/constraints/UniqueIdBase.h      |    2 +-
 .../constraints/UniqueIdsForUnitDefinitions.cpp    |    2 +-
 .../constraints/UniqueIdsForUnitDefinitions.h      |    2 +-
 .../constraints/UniqueIdsInKineticLaw.cpp          |    2 +-
 .../validator/constraints/UniqueIdsInKineticLaw.h  |    2 +-
 .../validator/constraints/UniqueIdsInModel.cpp     |    2 +-
 src/sbml/validator/constraints/UniqueIdsInModel.h  |    2 +-
 src/sbml/validator/constraints/UniqueMetaId.cpp    |    2 +-
 src/sbml/validator/constraints/UniqueMetaId.h      |    2 +-
 .../UniqueSpeciesTypesInCompartment.cpp            |    2 +-
 .../constraints/UniqueSpeciesTypesInCompartment.h  |    2 +-
 .../UniqueSymbolsInInitialAssignments.cpp          |    2 +-
 .../UniqueSymbolsInInitialAssignments.h            |    2 +-
 .../constraints/UniqueVarsInEventAssignments.cpp   |    2 +-
 .../constraints/UniqueVarsInEventAssignments.h     |    2 +-
 .../constraints/UniqueVarsInEventsAndRules.cpp     |    2 +-
 .../constraints/UniqueVarsInEventsAndRules.h       |    2 +-
 .../UniqueVarsInInitialAssignmentsAndRules.cpp     |    2 +-
 .../UniqueVarsInInitialAssignmentsAndRules.h       |    2 +-
 .../validator/constraints/UniqueVarsInRules.cpp    |    2 +-
 src/sbml/validator/constraints/UniqueVarsInRules.h |    2 +-
 .../constraints/UnitConsistencyConstraints.cpp     |    4 +-
 .../UnitConsistencyConstraintsDeclared.cxx         |    2 +-
 src/sbml/validator/constraints/UnitsBase.cpp       |    2 +-
 src/sbml/validator/constraints/UnitsBase.h         |    2 +-
 .../validator/constraints/ValidCnUnitsValue.cpp    |    2 +-
 src/sbml/validator/constraints/ValidCnUnitsValue.h |    2 +-
 src/sbml/validator/test/CMakeLists.txt             |    2 +-
 src/sbml/validator/test/Makefile.in                |    2 +-
 .../validator/test/TestConsistencyValidator.cpp    |    2 +-
 src/sbml/validator/test/TestFile.cpp               |    2 +-
 src/sbml/validator/test/TestFile.h                 |    2 +-
 src/sbml/validator/test/TestValidator.cpp          |   28 +-
 src/sbml/validator/test/TestValidator.h            |    2 +-
 src/sbml/validator/test/test-data/Makefile.in      |    2 +-
 .../libsbml-constraints/99505-pass-00-02.xml       |   46 +
 .../libsbml-constraints/99505-pass-00-03.xml       |   38 +
 .../libsbml-constraints/99505-pass-00-04.xml       |   30 +
 .../libsbml-constraints/99505-pass-00-05.xml       |   30 +
 .../libsbml-constraints/99505-pass-00-06.xml       |   30 +
 .../20502-fail-01-13.xml                           |    2 +-
 .../20910-fail-01-02.xml                           |   44 +
 .../Makefile.in                                    |    2 +-
 .../10218-fail-01-11-10213.xml                     |   34 +
 .../sbml-mathml-constraints/10218-fail-01-12.xml   |   36 +
 .../sbml-mathml-constraints/10218-fail-01-13.xml   |   36 +
 .../sbml-mathml-constraints/10218-fail-02-10.xml   |   37 +
 .../{10501-fail-01-40.xml => 10501-pass-00-60.xml} |    0
 .../sbml-unit-constraints/10513-pass-00-21.xml     |  110 +
 .../sbml-unit-constraints/10541-pass-00-54.xml     |   87 +
 src/sbml/xml/ExpatAttributes.cpp                   |    2 +-
 src/sbml/xml/ExpatAttributes.h                     |    2 +-
 src/sbml/xml/ExpatHandler.cpp                      |    8 +-
 src/sbml/xml/ExpatHandler.h                        |    2 +-
 src/sbml/xml/ExpatParser.cpp                       |    2 +-
 src/sbml/xml/ExpatParser.h                         |    2 +-
 src/sbml/xml/LibXMLAttributes.cpp                  |    2 +-
 src/sbml/xml/LibXMLAttributes.h                    |    2 +-
 src/sbml/xml/LibXMLHandler.cpp                     |    2 +-
 src/sbml/xml/LibXMLHandler.h                       |    2 +-
 src/sbml/xml/LibXMLNamespaces.cpp                  |    2 +-
 src/sbml/xml/LibXMLNamespaces.h                    |    2 +-
 src/sbml/xml/LibXMLParser.cpp                      |    2 +-
 src/sbml/xml/LibXMLParser.h                        |    2 +-
 src/sbml/xml/LibXMLTranscode.cpp                   |    2 +-
 src/sbml/xml/LibXMLTranscode.h                     |    2 +-
 src/sbml/xml/Makefile.in                           |    2 +-
 src/sbml/xml/XMLAttributes.cpp                     |    4 +-
 src/sbml/xml/XMLAttributes.h                       |    2 +-
 src/sbml/xml/XMLBuffer.cpp                         |    2 +-
 src/sbml/xml/XMLBuffer.h                           |    2 +-
 src/sbml/xml/XMLConstructorException.cpp           |    2 +-
 src/sbml/xml/XMLConstructorException.h             |    2 +-
 src/sbml/xml/XMLError.cpp                          |    2 +-
 src/sbml/xml/XMLError.h                            |    2 +-
 src/sbml/xml/XMLErrorLog.cpp                       |    2 +-
 src/sbml/xml/XMLErrorLog.h                         |    2 +-
 src/sbml/xml/XMLExtern.h                           |    2 +-
 src/sbml/xml/XMLFileBuffer.cpp                     |    2 +-
 src/sbml/xml/XMLFileBuffer.h                       |    2 +-
 src/sbml/xml/XMLHandler.cpp                        |    2 +-
 src/sbml/xml/XMLHandler.h                          |    2 +-
 src/sbml/xml/XMLInputStream.cpp                    |    4 +-
 src/sbml/xml/XMLInputStream.h                      |    2 +-
 src/sbml/xml/XMLLogOverride.cpp                    |    2 +-
 src/sbml/xml/XMLLogOverride.h                      |    2 +-
 src/sbml/xml/XMLMemoryBuffer.cpp                   |    2 +-
 src/sbml/xml/XMLMemoryBuffer.h                     |    2 +-
 src/sbml/xml/XMLNamespaces.cpp                     |    2 +-
 src/sbml/xml/XMLNamespaces.h                       |    2 +-
 src/sbml/xml/XMLNode.cpp                           |    2 +-
 src/sbml/xml/XMLNode.h                             |    2 +-
 src/sbml/xml/XMLOutputStream.cpp                   |  119 +-
 src/sbml/xml/XMLOutputStream.h                     |   78 +-
 src/sbml/xml/XMLParser.cpp                         |    2 +-
 src/sbml/xml/XMLParser.h                           |    2 +-
 src/sbml/xml/XMLToken.cpp                          |    2 +-
 src/sbml/xml/XMLToken.h                            |    2 +-
 src/sbml/xml/XMLTokenizer.cpp                      |    5 +-
 src/sbml/xml/XMLTokenizer.h                        |    2 +-
 src/sbml/xml/XMLTriple.cpp                         |    2 +-
 src/sbml/xml/XMLTriple.h                           |    2 +-
 src/sbml/xml/XercesAttributes.cpp                  |    2 +-
 src/sbml/xml/XercesAttributes.h                    |    2 +-
 src/sbml/xml/XercesHandler.cpp                     |    2 +-
 src/sbml/xml/XercesHandler.h                       |    2 +-
 src/sbml/xml/XercesNamespaces.cpp                  |    2 +-
 src/sbml/xml/XercesNamespaces.h                    |    2 +-
 src/sbml/xml/XercesParser.cpp                      |    2 +-
 src/sbml/xml/XercesParser.h                        |    2 +-
 src/sbml/xml/XercesTranscode.cpp                   |    2 +-
 src/sbml/xml/XercesTranscode.h                     |    2 +-
 src/sbml/xml/test/CMakeLists.txt                   |    2 +-
 src/sbml/xml/test/Makefile.in                      |    2 +-
 src/sbml/xml/test/TestCopyAndClone.cpp             |    2 +-
 src/sbml/xml/test/TestRunner.c                     |    2 +-
 src/sbml/xml/test/TestXMLAttributes.cpp            |    2 +-
 src/sbml/xml/test/TestXMLAttributesC.c             |    2 +-
 src/sbml/xml/test/TestXMLError.cpp                 |    2 +-
 src/sbml/xml/test/TestXMLErrorC.c                  |    2 +-
 src/sbml/xml/test/TestXMLErrorLog.c                |    2 +-
 src/sbml/xml/test/TestXMLExceptions.cpp            |    2 +-
 src/sbml/xml/test/TestXMLInputStream.c             |    2 +-
 src/sbml/xml/test/TestXMLNamespaces.c              |    2 +-
 src/sbml/xml/test/TestXMLNode.cpp                  |    2 +-
 src/sbml/xml/test/TestXMLNode_newSetters.c         |    2 +-
 src/sbml/xml/test/TestXMLOutputStream.c            |    2 +-
 src/sbml/xml/test/TestXMLToken.c                   |    2 +-
 src/sbml/xml/test/TestXMLToken_newSetters.c        |    2 +-
 src/sbml/xml/test/TestXMLTriple.c                  |    2 +-
 src/spatial-package.cmake                          |    2 +-
 2751 files changed, 54015 insertions(+), 37985 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f402ab7..ea2334d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -59,11 +59,13 @@ set(LIBSBML_VERSION_MAJOR)
 set(LIBSBML_VERSION_MINOR)
 set(LIBSBML_VERSION_PATCH)
 set(LIBSBML_VERSION_RELEASE)
+set(LIBSBML_DOTTED_VERSION)
 
 if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt")
 
     file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION.txt" VersionString NEWLINE_CONSUME)
     string(STRIP "${VersionString}" VersionString)
+    set(LIBSBML_DOTTED_VERSION ${VersionString})
     string(REPLACE "." ";" VersionString "${VersionString}" )
     string(REPLACE "-" ";" VersionString "${VersionString}" )
     list(LENGTH VersionString versionLength)
@@ -304,7 +306,7 @@ endif()
 #
 set(LIBSBML_USE_CPP_NAMESPACE OFF)
 if(WITH_CPP_NAMESPACE)
-    add_definitions(-DLIBSBML_USE_CPP_NAMESPACE)
+    add_definitions(-DLIBSBML_USE_CPP_NAMESPACE=1)
     set(LIBSBML_USE_CPP_NAMESPACE ON)	
 endif()
 
@@ -1298,6 +1300,14 @@ CONFIGURE_FILE(
 ADD_CUSTOM_TARGET(uninstall
   "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") 
 
+if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/dev/utilities/sboTree/updateSBO.cmake")
+# add update_sbo target
+ADD_CUSTOM_TARGET(update_sbo
+  "${CMAKE_COMMAND}"
+      -DSRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}"
+      -DPYTHON_EXECUTABLE="${PYTHON_EXECUTABLE}"
+      -P "${CMAKE_CURRENT_SOURCE_DIR}/dev/utilities/sboTree/updateSBO.cmake") 
+endif()
 ## To compile a test program simply comment out the lines below ...
 #
 #OPTION(WITH_TEST_PROGRAM " COMPILE SMALL TEST PROGRAM " ON)
diff --git a/LICENSE.html b/LICENSE.html
index 2b28201..96d6047 100644
--- a/LICENSE.html
+++ b/LICENSE.html
@@ -9,7 +9,7 @@ The majority of libSBML is copyrighted as follows:
 
 <ul>
 
-<li> Copyright © 2013-2014 jointly by the following organizations:<br>
+<li> Copyright © 2013-2016 jointly by the following organizations:<br>
     1. California Institute of Technology, Pasadena, CA, USA<br>
     2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK<br>
     3. University of Heidelberg, Heidelberg, Germany<br>
diff --git a/LICENSE.txt b/LICENSE.txt
index f51490f..4999751 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -2,7 +2,7 @@
 
 The majority of libSBML is copyrighted as follows:
 
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
   1. California Institute of Technology, Pasadena, CA, USA
   2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
   3. University of Heidelberg, Heidelberg, Germany
diff --git a/Makefile.in b/Makefile.in
index ca35842..25af9f1 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/NEWS.txt b/NEWS.txt
index 69b10b7..25b8851 100644
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,6 +1,152 @@
            libSBML NEWS -- History of user-visible changes
 
 ====================================================================
+5.13.0 (2016-04-14)
+====================================================================
+
+STABLE RELEASE
+
+* Groups
+
+  - The first official version of the specification of Groups 
+    is now available, and thus the libSBML code for
+    'groups' is now included in the stable release of libSBML.  This
+    means that all prebuilt binaries for the stable release will
+    include the 'groups' package code. The src archive containing
+    libSBML core code will continue to be available, but there will be
+    additional src archives available in the stable branch: one
+    containing libSBML core plus all stable packages and additional
+    archives of the individual package code.
+    
+    NOTE: The libSBML GNU make-based build system has not been updated
+          for packages. Thus, to build from src, it is necessary to
+          use the CMake build system.
+
+
+* New features
+
+
+  - New functions have been added to the XMLOutputStream to allow the 
+    optional XML comment to be further customized. 
+
+  - The Python binding now includes a __version__ field.
+	
+  - 'comp' package-specific updates:
+
+    - The SBMLResolver interface has been exposed within language bindings.
+
+  - 'fbc' package-specific updates:
+
+    - The MATLAB interface has been expanded to include a dedicated 
+      FBC V2 structure.  Thanks to the COBRA Toolbox team for their
+      feedback and testing. 
+      
+    - There was an issue with round-tripping geneProductAssociations
+      between the expression and the infix representation.  This has
+      been sorted.
+       
+  - 'groups' package-specific updates:
+
+    - A function named 'copyInformationToNestedLists' has been
+      added to facilitate keeping information consistent when multiple 
+      <group> objects refer to the same thing.
+
+* Bug fixes
+
+  - Validation was failing to catch when the <piece> element of a
+    <piecewise> had an incorrect number of children.  This has been
+    fixed. Thanks to Jason Zwolak for the report.
+
+  - Unit consistency checking was failing to interpret the units of 
+    <cn> elements when passed to a <functionDefinition>. This has been fixed.
+
+  - The getListOfElements code was not being correctly ported to 
+    language bindings. This has been corrected.
+
+  - Unit consistency checking was failing to correctly handle non-integer
+    power expressions. This has been corrected. Thanks to Matthias K�nig
+    for reporting this.
+
+  - The StrictUnitConsistencyValidator has been corrected to identify
+    matching base SI units. Thus, 1000 litre will be correctly equated
+    with 1 metre cubed. 
+
+  - Sourceforge libSBML Tracker #421: The MATLAB binding was failing 
+    to round-trip multi-byte characters used in strings. This has
+    been fixed. Thanks to Will Matern for the report.
+
+  - Validation was failing to report that a 'variable' attribute is
+    not permitted on an AlgebraicRule.  This has been corrected.
+
+  - Sourceforge libSBML Tracker #418: Using the isnan() function can
+    cause issues with some compilers. LibSBML has a util_isNaN() function
+    which should be used when necessary.  Thanks to Alan Garny for
+    reporting this issue.
+
+  - The functions that convert an enumeration value to a string had
+    not been ported to language bindings.  This has now been sorted.
+    Thanks to Matthias K�nig for letting us know.
+
+  - The new ASTNode class instances were failing to deal correctly with 
+    semantic annotations.  This has been fixed.
+
+  - 'comp' package-specific bug fixes:
+
+    - Failing to access an external model could cause an endless
+      loop while attempting validation.  This has been corrected.
+      Thanks to Chris Myers for the report.
+
+  - 'fbc' package-specific bug fixes:
+
+    - Sourceforge libSBML Tracker #419: The converters provided for
+      converting from COBRA style SBML models to SBML+fbc style models
+      were losing a charge of '0' if explicitly set. This has been
+      corrected. Thanks to Ali Ebrahim for reporting the problem. 
+
+  - 'layout' package-specific bug fixes:
+
+    - In some cases the value of the 'id' attribute was being written out
+      as the 'name'.  This has been fixed.
+
+* Configuration/build system changes
+
+  - The Python bindings can now be configured to install using setup.py.
+
+
+* Miscellaneous
+
+  - The Python version of libSBML available via PyPi now includes binary
+    wheels for Windows and Mac OSX operating systems. 
+
+  - The Python version of libSBML available via PyPi now includes all
+    dependencies. 
+
+  - We conducted a review of the mathml-infix parsing code and compared
+    inputs and outputs with those of JSBML. This has produced a more 
+    synchronized approach between the two APIs.
+
+  - There is a known bug in GCC versions 5.1 and 5.2 which results in the 
+    problem that calling the copy constructor of a base class in the 
+    constructor of derived classes produces crashing code.  The problem 
+    manifests itself in libSBML when using a language binding such as the 
+    Python interface. Workarounds have been added to the libSBML 
+    'Known Issues' documentation.
+
+  - Sourceforge libSBML Tracker #417: Documentation was failing to write
+    using Python 3.5.  This has been fixed.  Thanks to  Antonio Trande for
+    reporting this.
+
+
+EXPERIMENTAL RELEASE
+
+* New features
+
+  - 'multi' package-specific updates:
+
+    - The code has been updated to reflect v 1.0.6 of the specification.
+
+
+====================================================================
 5.12.0 (2015-11-12)
 ====================================================================
 
diff --git a/README.txt b/README.txt
index 75e1d0c..849058a 100644
--- a/README.txt
+++ b/README.txt
@@ -336,7 +336,7 @@ software included in and used by the libSBML distribution.
 
 The majority of the libSBML source code is copyrighted as follows:
 
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
   1. California Institute of Technology, Pasadena, CA, USA
   2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
   3. University of Heidelberg, Heidelberg, Germany
diff --git a/VERSION.txt b/VERSION.txt
index dd0ad7a..26f30f7 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-5.12.0
+5.13.0
diff --git a/VERSION_PACKAGES.ac b/VERSION_PACKAGES.ac
index 0628839..020b353 100644
--- a/VERSION_PACKAGES.ac
+++ b/VERSION_PACKAGES.ac
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -68,6 +68,15 @@ AC_SUBST(PACKAGE_FBC_V2_SPEC_URL, [http://identifiers.org/combine.specifications
 AC_SUBST(PACKAGE_FBC_V2_ERRATA_URL, [http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Flux_Balance_Constraints_%28flux%29/Confirmed_issues_in_the_Flux_Balance_Constraints_package_specification])
 
 # -----------------------------------------------------------------------------
+# 'groups' package, v1
+# -----------------------------------------------------------------------------
+
+AC_SUBST(PACKAGE_GROUPS_V1_VERSION, 1)
+AC_SUBST(PACKAGE_GROUPS_V1_RELEASE, 1)
+AC_SUBST(PACKAGE_GROUPS_V1_SPEC_URL, [http://identifiers.org/combine.specifications/sbml.level-3.version-1.groups.version-1.release-1])
+AC_SUBST(PACKAGE_GROUPS_V1_ERRATA_URL, [http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Groups/Confirmed_issues_in_the_Groups_package_specification])
+
+# -----------------------------------------------------------------------------
 # 'layout' package
 # -----------------------------------------------------------------------------
 
diff --git a/arrays-package.cmake b/arrays-package.cmake
index f3bc36f..5ceac0d 100644
--- a/arrays-package.cmake
+++ b/arrays-package.cmake
@@ -5,7 +5,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/cmake_uninstall.cmake.in b/cmake_uninstall.cmake.in
index faee99c..8209bad 100644
--- a/cmake_uninstall.cmake.in
+++ b/cmake_uninstall.cmake.in
@@ -1,122 +1,122 @@
-###############################################################################
-#
-# File                     : cmake_uninstall.cmake.in
-# Description              : CMake uninstall script
-# originally available from: http://www.cmake.org/Wiki/RecipeAddUninstallTarget
-#
-# This file is part of libSBML.  Please visit http://sbml.org for more
-# information about SBML, and the latest version of libSBML.
-#
-# Copyright (C) 2013-2015 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#     3. University of Heidelberg, Heidelberg, Germany
-#
-# Copyright (C) 2009-2013 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#
-# Copyright (C) 2006-2008 by the California Institute of Technology,
-#     Pasadena, CA, USA
-#
-# Copyright (C) 2002-2005 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. Japan Science and Technology Agency, Japan
-#
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation.  A copy of the license agreement is provided
-# in the file named "LICENSE.txt" included with this software distribution
-# and also available online as http://sbml.org/software/libsbml/license.html
-#
-###############################################################################
-
-IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
-  MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
-ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
-
-FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
-STRING(REGEX REPLACE "\n" ";" files "${files}")
-STRING(REGEX REPLACE " " ";" files "${files}")
-STRING(REGEX REPLACE ";;" ";" files "${files}")
-
-# addition files that wouldn't be deleted (since they are symlinks)
-# and the actual file is listed before in the manifest
-set(extra_files
-  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.5.dylib"
-  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.dylib"
-  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.5.so"
-  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.so"
-)
-
-FOREACH(file ${extra_files})
-
-    EXEC_PROGRAM(
-      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
-      OUTPUT_VARIABLE rm_out
-      RETURN_VALUE rm_retval
-      )
-
-ENDFOREACH(file)
-
-# We also should delete a number of directories that we create with 
-# make install, but only those that could not include files from others
-SET(directories 
-     "@CMAKE_INSTALL_PREFIX@/share/libsbml"
-)
-FOREACH(file ${files})
-  get_filename_component(fileName ${file} NAME)
-  get_filename_component(filePath ${file} PATH)
-  
-  # these are the files created by us
-  foreach(pattern 
-		".*/uninstall-libsbml-pkg.sh$"
-		".*/include/sbml$"
-		".*/lib/mono/libsbmlcsP$"
-		".*/auto/libSBML$"
-		".*/site-packages/libsbml$"
-		".*/share/libsbml$"
-		".*/bindings/csharp$"
-		".*/bindings/java$"
-		".*/bindings/python$"
-		".*/bindings/r$"
-		".*/bindings/ruby$"
-		".*/bindings/perl$"
-		".*/bindings/matlab$"
-		".*/bindings/octave$"
-		".*/examples$"
-		)
-  if("${filePath}" MATCHES ${pattern})
-     list(FIND directories ${filePath} index)
-	 if (index EQUAL "-1")
-		list(APPEND directories ${filePath})
-	 endif()
-  endif()
-  endforeach(pattern)
-  
-  IF(EXISTS "$ENV{DESTDIR}${file}")
-    MESSAGE(STATUS "Uninstalling \"${fileName}\"")
-    EXEC_PROGRAM(
-      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
-      OUTPUT_VARIABLE rm_out
-      RETURN_VALUE rm_retval
-      )
-    IF(NOT "${rm_retval}" STREQUAL 0)
-      MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
-    ENDIF(NOT "${rm_retval}" STREQUAL 0)
-  ENDIF(EXISTS "$ENV{DESTDIR}${file}")
-ENDFOREACH(file)
-
-# Remove the directories found before.
-foreach(dir ${directories})
-
-  IF(EXISTS "$ENV{DESTDIR}${dir}")
-    message(STATUS "Remove directory '${dir}'")
-	EXEC_PROGRAM(
-      "@CMAKE_COMMAND@" ARGS "-E remove_directory \"$ENV{DESTDIR}${dir}\""
-      OUTPUT_VARIABLE rm_out
-      RETURN_VALUE rm_retval
-      )
-  endif()
-  
-endforeach(dir)
+###############################################################################
+#
+# File                     : cmake_uninstall.cmake.in
+# Description              : CMake uninstall script
+# originally available from: http://www.cmake.org/Wiki/RecipeAddUninstallTarget
+#
+# This file is part of libSBML.  Please visit http://sbml.org for more
+# information about SBML, and the latest version of libSBML.
+#
+# Copyright (C) 2013-2016 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#     3. University of Heidelberg, Heidelberg, Germany
+#
+# Copyright (C) 2009-2013 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#
+# Copyright (C) 2006-2008 by the California Institute of Technology,
+#     Pasadena, CA, USA
+#
+# Copyright (C) 2002-2005 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. Japan Science and Technology Agency, Japan
+#
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation.  A copy of the license agreement is provided
+# in the file named "LICENSE.txt" included with this software distribution
+# and also available online as http://sbml.org/software/libsbml/license.html
+#
+###############################################################################
+
+IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+  MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
+ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+
+FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
+STRING(REGEX REPLACE "\n" ";" files "${files}")
+STRING(REGEX REPLACE " " ";" files "${files}")
+STRING(REGEX REPLACE ";;" ";" files "${files}")
+
+# addition files that wouldn't be deleted (since they are symlinks)
+# and the actual file is listed before in the manifest
+set(extra_files
+  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.5.dylib"
+  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.dylib"
+  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.5.so"
+  "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@/libsbml.so"
+)
+
+FOREACH(file ${extra_files})
+
+    EXEC_PROGRAM(
+      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+      OUTPUT_VARIABLE rm_out
+      RETURN_VALUE rm_retval
+      )
+
+ENDFOREACH(file)
+
+# We also should delete a number of directories that we create with 
+# make install, but only those that could not include files from others
+SET(directories 
+     "@CMAKE_INSTALL_PREFIX@/share/libsbml"
+)
+FOREACH(file ${files})
+  get_filename_component(fileName ${file} NAME)
+  get_filename_component(filePath ${file} PATH)
+  
+  # these are the files created by us
+  foreach(pattern 
+		".*/uninstall-libsbml-pkg.sh$"
+		".*/include/sbml$"
+		".*/lib/mono/libsbmlcsP$"
+		".*/auto/libSBML$"
+		".*/site-packages/libsbml$"
+		".*/share/libsbml$"
+		".*/bindings/csharp$"
+		".*/bindings/java$"
+		".*/bindings/python$"
+		".*/bindings/r$"
+		".*/bindings/ruby$"
+		".*/bindings/perl$"
+		".*/bindings/matlab$"
+		".*/bindings/octave$"
+		".*/examples$"
+		)
+  if("${filePath}" MATCHES ${pattern})
+     list(FIND directories ${filePath} index)
+	 if (index EQUAL "-1")
+		list(APPEND directories ${filePath})
+	 endif()
+  endif()
+  endforeach(pattern)
+  
+  IF(EXISTS "$ENV{DESTDIR}${file}")
+    MESSAGE(STATUS "Uninstalling \"${fileName}\"")
+    EXEC_PROGRAM(
+      "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+      OUTPUT_VARIABLE rm_out
+      RETURN_VALUE rm_retval
+      )
+    IF(NOT "${rm_retval}" STREQUAL 0)
+      MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+    ENDIF(NOT "${rm_retval}" STREQUAL 0)
+  ENDIF(EXISTS "$ENV{DESTDIR}${file}")
+ENDFOREACH(file)
+
+# Remove the directories found before.
+foreach(dir ${directories})
+
+  IF(EXISTS "$ENV{DESTDIR}${dir}")
+    message(STATUS "Remove directory '${dir}'")
+	EXEC_PROGRAM(
+      "@CMAKE_COMMAND@" ARGS "-E remove_directory \"$ENV{DESTDIR}${dir}\""
+      OUTPUT_VARIABLE rm_out
+      RETURN_VALUE rm_retval
+      )
+  endif()
+  
+endforeach(dir)
diff --git a/common.cmake b/common.cmake
index 3efaef9..63a943f 100644
--- a/common.cmake
+++ b/common.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/comp-package.cmake b/comp-package.cmake
index cb47cde..791115f 100644
--- a/comp-package.cmake
+++ b/comp-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/bzip2.m4 b/config/bzip2.m4
index 16f27a4..f12cc4a 100644
--- a/config/bzip2.m4
+++ b/config/bzip2.m4
@@ -9,7 +9,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/chk_swig_version.sh.in b/config/chk_swig_version.sh.in
index 9eb979b..c81359e 100644
--- a/config/chk_swig_version.sh.in
+++ b/config/chk_swig_version.sh.in
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/csharp.m4 b/config/csharp.m4
index 7f062ee..65d1c1d 100644
--- a/config/csharp.m4
+++ b/config/csharp.m4
@@ -9,7 +9,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/doxygen.m4 b/config/doxygen.m4
index a477fb5..a1c9584 100644
--- a/config/doxygen.m4
+++ b/config/doxygen.m4
@@ -7,7 +7,7 @@ dnl ---------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/expat.m4 b/config/expat.m4
index 853bc37..a9dc022 100644
--- a/config/expat.m4
+++ b/config/expat.m4
@@ -9,7 +9,7 @@ dnl ---------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/java.m4 b/config/java.m4
index ba5e186..3ea0ec3 100644
--- a/config/java.m4
+++ b/config/java.m4
@@ -9,7 +9,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/libcheck.m4 b/config/libcheck.m4
index e42169b..a8f9526 100644
--- a/config/libcheck.m4
+++ b/config/libcheck.m4
@@ -6,7 +6,7 @@ dnl ---------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
@@ -58,7 +58,7 @@ AC_DEFUN([CONFIG_LIB_LIBCHECK],
 
     AC_LANG_PUSH(C)
 
-    LIBCHECK_LIBS="-lcheck"
+    LIBCHECK_LIBS="-lcheck -pthread"
 
     if test $with_libcheck != yes; then
       libcheck_root="$with_libcheck"
diff --git a/config/machine.m4 b/config/machine.m4
index 01cf41f..08a44a0 100644
--- a/config/machine.m4
+++ b/config/machine.m4
@@ -6,7 +6,7 @@ dnl ---------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/makefile-common-actions.mk b/config/makefile-common-actions.mk
index 28ebbae..4ac2588 100644
--- a/config/makefile-common-actions.mk
+++ b/config/makefile-common-actions.mk
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2014 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/makefile-common-vars.mk.in b/config/makefile-common-vars.mk.in
index 104cc05..00ee4ce 100644
--- a/config/makefile-common-vars.mk.in
+++ b/config/makefile-common-vars.mk.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -172,6 +172,7 @@ USE_COMP          = @USE_COMP@
 USE_FBC           = @USE_FBC@
 USE_LAYOUT        = @USE_LAYOUT@
 USE_QUAL          = @USE_QUAL@
+USE_GROUPS        = @USE_GROUPS@
 
 USE_SWIG          = @USE_SWIG@
 SWIG              = @SWIG@
diff --git a/config/matlab.m4 b/config/matlab.m4
index 8d7bf31..334da18 100644
--- a/config/matlab.m4
+++ b/config/matlab.m4
@@ -8,7 +8,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/octave.m4 b/config/octave.m4
index a2b459e..aaeb297 100644
--- a/config/octave.m4
+++ b/config/octave.m4
@@ -8,7 +8,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/perl.m4 b/config/perl.m4
index 260a97e..e1dd9e4 100644
--- a/config/perl.m4
+++ b/config/perl.m4
@@ -9,7 +9,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/platform.m4 b/config/platform.m4
index 77f4804..13fe32c 100644
--- a/config/platform.m4
+++ b/config/platform.m4
@@ -6,7 +6,7 @@ dnl ---------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/printJavaDataModel.java b/config/printJavaDataModel.java
index d1ad5b0..67821ba 100644
--- a/config/printJavaDataModel.java
+++ b/config/printJavaDataModel.java
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/python.m4 b/config/python.m4
index 23ab997..35b6245 100644
--- a/config/python.m4
+++ b/config/python.m4
@@ -9,7 +9,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/ruby.m4 b/config/ruby.m4
index 8065d37..0894fae7 100644
--- a/config/ruby.m4
+++ b/config/ruby.m4
@@ -9,7 +9,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
@@ -81,6 +81,12 @@ AC_DEFUN([CONFIG_PROG_RUBY],
     RUBY_PREFIX=`$RUBY -rrbconfig -e ["include Config; puts CONFIG['prefix']"]`
     AC_MSG_RESULT($RUBY_PREFIX)
 
+    if test `$RUBY -rrbconfig -e ["puts RUBY_VERSION >= \"2.1.0\" ? \"OK\" : \"OLD\""]` = "OK";
+    then
+      RUBY_ARCHDIR=`$RUBY -rrbconfig -e ["include RbConfig; print \"#{CONFIG['rubyhdrdir']} -I#{CONFIG['rubyarchhdrdir']}\" "]`
+      RUBY_H=`$RUBY -rrbconfig -e ["include RbConfig; print \"#{CONFIG['rubyhdrdir']}\" "]`"/ruby.h"
+      RUBY_INSTALL_DIR=`/usr/bin/ruby -rrbconfig -e 's = File::SEPARATOR; a = RbConfig::CONFIG["archdir"].squeeze(s); b = RbConfig::CONFIG["libdir"].squeeze(s); print a.sub(/^#{b}#{s}ruby/, "/usr/local/lib#{s}ruby#{s}site_ruby")'`
+    else
     if test `$RUBY -rrbconfig -e ["puts RUBY_VERSION >= \"2.0.0\" ? \"OK\" : \"OLD\""]` = "OK";
     then
       RUBY_ARCHDIR=`$RUBY -rrbconfig -e ["include RbConfig; print \"#{CONFIG['rubyhdrdir']} -I#{CONFIG['rubyhdrdir']}/#{CONFIG['arch']}\" "]`
@@ -98,6 +104,7 @@ AC_DEFUN([CONFIG_PROG_RUBY],
       RUBY_INSTALL_DIR=`/usr/bin/ruby -rrbconfig -e 's = File::SEPARATOR; a = Config::CONFIG["archdir"].squeeze(s); b = Config::CONFIG["libdir"].squeeze(s); print a.sub(/^#{b}#{s}ruby/, "/usr/local/lib#{s}ruby#{s}site_ruby")'`
     fi
     fi
+    fi
 
     AC_MSG_CHECKING(for ruby.h)
     if test -z "$RUBY_H" || ! test -f "$RUBY_H"; 
@@ -108,8 +115,17 @@ AC_DEFUN([CONFIG_PROG_RUBY],
     fi
     AC_MSG_RESULT(yes)
 
-    RUBY_LIBDIR=`$RUBY -rrbconfig -e ["include Config; puts CONFIG['libdir']"]` 
+    RUBY_LIBDIR=`$RUBY -rrbconfig -e ["include Config; puts CONFIG['libdir']"]`
+    if test -z "$RUBY_LIBDIR"; 
+    then
+      RUBY_LIBDIR=`$RUBY -rrbconfig -e ["include RbConfig; puts CONFIG['libdir']"]`
+    fi  
     RUBY_NAME=`$RUBY -rrbconfig -e ["include Config; puts CONFIG['RUBY_SO_NAME']"]`
+    if test -z "$RUBY_NAME"; 
+    then
+      RUBY_NAME=`$RUBY -rrbconfig -e ["include RbConfig; puts CONFIG['RUBY_SO_NAME']"]`
+    fi  
+    
 
 
     dnl
diff --git a/config/runldpath.m4 b/config/runldpath.m4
index e6d324f..9b7a848 100644
--- a/config/runldpath.m4
+++ b/config/runldpath.m4
@@ -8,7 +8,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/swig.m4 b/config/swig.m4
index 26f40d2..770ec14 100644
--- a/config/swig.m4
+++ b/config/swig.m4
@@ -8,7 +8,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/xercesc.m4 b/config/xercesc.m4
index b35ada9..d5cf046 100644
--- a/config/xercesc.m4
+++ b/config/xercesc.m4
@@ -8,7 +8,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/config/zlib.m4 b/config/zlib.m4
index 6f5eccf..2662f55 100644
--- a/config/zlib.m4
+++ b/config/zlib.m4
@@ -9,7 +9,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2014 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
diff --git a/configure b/configure
index 16417a3..665f20d 100755
--- a/configure
+++ b/configure
@@ -1,12 +1,14 @@
 #! /bin/sh
-# From configure.ac Revision: 22502 .
+# From configure.ac Revision: 23070 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libSBML 5.12.0.
+# Generated by GNU Autoconf 2.68 for libSBML 5.13.0.
 #
 # Report bugs to <libsbml-team at caltech.edu>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -135,31 +137,6 @@ export LANGUAGE
 # CDPATH.
 (unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
-# Use a proper internal environment variable to ensure we don't fall
-  # into an infinite loop, continuously re-executing ourselves.
-  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
-    _as_can_reexec=no; export _as_can_reexec;
-    # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
-  fi
-  # We don't want this to propagate to other subprocesses.
-          { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
   as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
@@ -193,8 +170,7 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
 else
   exitcode=1; echo positional parameters were not saved.
 fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
+test x\$exitcode = x0 || exit 1"
   as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
@@ -239,25 +215,21 @@ IFS=$as_save_IFS
 
 
       if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
+  # We cannot yet assume a decent shell, so we have to provide a
+	# neutralization value for shells without unset; and this also
+	# works around shells that cannot unset nonexistent variables.
+	# Preserve -v and -x to the replacement shell.
+	BASH_ENV=/dev/null
+	ENV=/dev/null
+	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+	export CONFIG_SHELL
+	case $- in # ((((
+	  *v*x* | *x*v* ) as_opts=-vx ;;
+	  *v* ) as_opts=-v ;;
+	  *x* ) as_opts=-x ;;
+	  * ) as_opts= ;;
+	esac
+	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -360,14 +332,6 @@ $as_echo X"$as_dir" |
 
 
 } # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
 # as_fn_append VAR VALUE
 # ----------------------
 # Append the text in VALUE to the end of the definition contained in VAR. Take
@@ -489,10 +453,6 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
   chmod +x "$as_me.lineno" ||
     { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
   # original and so on.  Autoconf is especially sensitive to this).
@@ -527,16 +487,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # In both cases, we have to default to `cp -p'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
+      as_ln_s='cp -p'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -pR'
+    as_ln_s='cp -p'
   fi
 else
-  as_ln_s='cp -pR'
+  as_ln_s='cp -p'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -548,8 +508,28 @@ else
   as_mkdir_p=false
 fi
 
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+	test -d "$1/.";
+      else
+	case $1 in #(
+	-*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -735,8 +715,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libSBML'
 PACKAGE_TARNAME='libsbml'
-PACKAGE_VERSION='5.12.0'
-PACKAGE_STRING='libSBML 5.12.0'
+PACKAGE_VERSION='5.13.0'
+PACKAGE_STRING='libSBML 5.13.0'
 PACKAGE_BUGREPORT='libsbml-team at caltech.edu'
 PACKAGE_URL='http://sbml.org/Software/libSBML'
 
@@ -930,6 +910,10 @@ PACKAGE_LAYOUT_ERRATA_URL
 PACKAGE_LAYOUT_SPEC_URL
 PACKAGE_LAYOUT_RELEASE
 PACKAGE_LAYOUT_VERSION
+PACKAGE_GROUPS_V1_ERRATA_URL
+PACKAGE_GROUPS_V1_SPEC_URL
+PACKAGE_GROUPS_V1_RELEASE
+PACKAGE_GROUPS_V1_VERSION
 PACKAGE_FBC_V2_ERRATA_URL
 PACKAGE_FBC_V2_SPEC_URL
 PACKAGE_FBC_V2_RELEASE
@@ -942,6 +926,8 @@ PACKAGE_COMP_ERRATA_URL
 PACKAGE_COMP_SPEC_URL
 PACKAGE_COMP_RELEASE
 PACKAGE_COMP_VERSION
+LIBSBML_HAS_PACKAGE_GROUPS
+USE_GROUPS
 LIBSBML_HAS_PACKAGE_QUAL
 USE_QUAL
 LIBSBML_HAS_PACKAGE_FBC
@@ -1001,6 +987,7 @@ enable_layout
 enable_comp
 enable_fbc
 enable_qual
+enable_groups
 enable_compression
 enable_shared_version
 enable_legacy_math
@@ -1509,6 +1496,8 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
+    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used" >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
   fi
@@ -1594,7 +1583,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libSBML 5.12.0 to adapt to many kinds of systems.
+\`configure' configures libSBML 5.13.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1659,7 +1648,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libSBML 5.12.0:";;
+     short | recursive ) echo "Configuration of libSBML 5.13.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1673,6 +1662,7 @@ Optional Features:
   --enable-comp[=ARG]     build support for SBML 'comp' [default=no]
   --enable-fbc[=ARG]      build support for SBML 'fbc' [default=no]
   --enable-qual[=ARG]     build support for SBML 'qual' [default=no]
+  --enable-groups[=ARG]   build support for SBML 'groups' [default=no]
   --enable-compression[=ARG]
                           enable file compression if possible [default=yes]
   --enable-shared-version[=ARG]
@@ -1811,10 +1801,10 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libSBML configure 5.12.0
-generated by GNU Autoconf 2.69
+libSBML configure 5.13.0
+generated by GNU Autoconf 2.68
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1965,7 +1955,7 @@ $as_echo "$ac_try_echo"; } >&5
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
+	 $as_test_x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2279,7 +2269,7 @@ $as_echo "$ac_try_echo"; } >&5
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
+	 $as_test_x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2363,7 +2353,7 @@ $as_echo "$ac_try_echo"; } >&5
 	 test ! -s conftest.err
        } && test -s conftest$ac_exeext && {
 	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
+	 $as_test_x conftest$ac_exeext
        }; then :
   ac_retval=0
 else
@@ -2530,8 +2520,8 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libSBML $as_me 5.12.0, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+It was created by libSBML $as_me 5.13.0, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -2920,7 +2910,7 @@ ac_config_headers="$ac_config_headers src/sbml/common/libsbml-package.h"
 ac_config_headers="$ac_config_headers src/sbml/common/libsbml-namespace.h"
 
 
-LIBSBML_VERSION_NUMERIC=51200
+LIBSBML_VERSION_NUMERIC=51300
 
 
 
@@ -2928,7 +2918,7 @@ LIBSBML_MAJOR_VERSION=5
 
 
 
-LIBSBML_MINOR_VERSION=12
+LIBSBML_MINOR_VERSION=13
 
 
 
@@ -3044,6 +3034,27 @@ $as_echo "#define LIBSBML_HAS_PACKAGE_QUAL 1" >>confdefs.h
 
 fi
 
+# Check whether --enable-groups was given.
+if test "${enable_groups+set}" = set; then :
+  enableval=$enable_groups; enable_groups=$enableval
+else
+  enable_groups=no
+fi
+
+
+if test "$enable_groups" != no; then
+
+$as_echo "#define USE_GROUPS 1" >>confdefs.h
+
+
+$as_echo "#define LIBSBML_HAS_PACKAGE_GROUPS 1" >>confdefs.h
+
+  USE_GROUPS=1
+
+  LIBSBML_HAS_PACKAGE_GROUPS=1
+
+fi
+
 
 
 
@@ -3087,6 +3098,19 @@ PACKAGE_FBC_V2_ERRATA_URL=http://sbml.org/Documents/Specifications/SBML_Level_3/
 
 
 # -----------------------------------------------------------------------------
+# 'groups' package, v1
+# -----------------------------------------------------------------------------
+
+PACKAGE_GROUPS_V1_VERSION=1
+
+PACKAGE_GROUPS_V1_RELEASE=1
+
+PACKAGE_GROUPS_V1_SPEC_URL=http://identifiers.org/combine.specifications/sbml.level-3.version-1.groups.version-1.release-1
+
+PACKAGE_GROUPS_V1_ERRATA_URL=http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/Groups/Confirmed_issues_in_the_Groups_package_specification
+
+
+# -----------------------------------------------------------------------------
 # 'layout' package
 # -----------------------------------------------------------------------------
 
@@ -3471,7 +3495,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3515,7 +3539,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -3972,7 +3996,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4012,7 +4036,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4065,7 +4089,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4106,7 +4130,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
@@ -4164,7 +4188,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4208,7 +4232,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4404,7 +4428,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
-struct stat;
+#include <sys/types.h>
+#include <sys/stat.h>
 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
 struct buf { int x; };
 FILE * (*rcsopen) (struct buf *, struct stat *, int);
@@ -4665,7 +4690,7 @@ case $as_dir/ in #((
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
 	  if test $ac_prog = install &&
 	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
 	    # AIX install.  It has an incompatible calling convention.
@@ -4771,7 +4796,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_AUTOCONF="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4812,7 +4837,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_ACLOCAL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -4974,7 +4999,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5016,7 +5041,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5127,7 +5152,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PYTHON_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5169,7 +5194,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PYTHON_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5674,7 +5699,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5716,7 +5741,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5829,7 +5854,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_JAVA="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5870,7 +5895,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5911,7 +5936,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_JAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5954,7 +5979,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_JAVA="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -5994,7 +6019,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6034,7 +6059,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_JAR="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6721,7 +6746,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_MATLAB="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6763,7 +6788,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_MATLAB="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6836,7 +6861,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_OCTAVE="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6877,7 +6902,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_MKOCTFILE="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6918,7 +6943,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_OCTAVE_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -6960,7 +6985,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_OCTAVE="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7000,7 +7025,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_MKOCTFILE="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7040,7 +7065,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_OCTAVE_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7214,7 +7239,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_RUBY="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7261,7 +7286,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_RUBY="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7301,6 +7326,12 @@ $as_echo_n "checking for ruby prefix... " >&6; }
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_PREFIX" >&5
 $as_echo "$RUBY_PREFIX" >&6; }
 
+    if test `$RUBY -rrbconfig -e "puts RUBY_VERSION >= \"2.1.0\" ? \"OK\" : \"OLD\""` = "OK";
+    then
+      RUBY_ARCHDIR=`$RUBY -rrbconfig -e "include RbConfig; print \"#{CONFIG['rubyhdrdir']} -I#{CONFIG['rubyarchhdrdir']}\" "`
+      RUBY_H=`$RUBY -rrbconfig -e "include RbConfig; print \"#{CONFIG['rubyhdrdir']}\" "`"/ruby.h"
+      RUBY_INSTALL_DIR=`/usr/bin/ruby -rrbconfig -e 's = File::SEPARATOR; a = RbConfig::CONFIG"archdir".squeeze(s); b = RbConfig::CONFIG"libdir".squeeze(s); print a.sub(/^#{b}#{s}ruby/, "/usr/local/lib#{s}ruby#{s}site_ruby")'`
+    else
     if test `$RUBY -rrbconfig -e "puts RUBY_VERSION >= \"2.0.0\" ? \"OK\" : \"OLD\""` = "OK";
     then
       RUBY_ARCHDIR=`$RUBY -rrbconfig -e "include RbConfig; print \"#{CONFIG['rubyhdrdir']} -I#{CONFIG['rubyhdrdir']}/#{CONFIG['arch']}\" "`
@@ -7318,6 +7349,7 @@ $as_echo "$RUBY_PREFIX" >&6; }
       RUBY_INSTALL_DIR=`/usr/bin/ruby -rrbconfig -e 's = File::SEPARATOR; a = Config::CONFIG"archdir".squeeze(s); b = Config::CONFIG"libdir".squeeze(s); print a.sub(/^#{b}#{s}ruby/, "/usr/local/lib#{s}ruby#{s}site_ruby")'`
     fi
     fi
+    fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ruby.h" >&5
 $as_echo_n "checking for ruby.h... " >&6; }
@@ -7332,7 +7364,16 @@ $as_echo "no" >&6; }
 $as_echo "yes" >&6; }
 
     RUBY_LIBDIR=`$RUBY -rrbconfig -e "include Config; puts CONFIG['libdir']"`
+    if test -z "$RUBY_LIBDIR";
+    then
+      RUBY_LIBDIR=`$RUBY -rrbconfig -e "include RbConfig; puts CONFIG['libdir']"`
+    fi
     RUBY_NAME=`$RUBY -rrbconfig -e "include Config; puts CONFIG['RUBY_SO_NAME']"`
+    if test -z "$RUBY_NAME";
+    then
+      RUBY_NAME=`$RUBY -rrbconfig -e "include RbConfig; puts CONFIG['RUBY_SO_NAME']"`
+    fi
+
 
 
 
@@ -7737,7 +7778,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_COMPILER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7783,7 +7824,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_COMPILER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7838,7 +7879,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_COMPILER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7884,7 +7925,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_COMPILER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7939,7 +7980,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_COMPILER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -7985,7 +8026,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_COMPILER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8058,7 +8099,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_CILINTERPRETER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8104,7 +8145,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_CILINTERPRETER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8169,7 +8210,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_CILINTERPRETER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8215,7 +8256,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_CSHARP_CILINTERPRETER="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8287,7 +8328,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_SN="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8332,7 +8373,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GACUTIL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8378,7 +8419,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_SN="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8424,7 +8465,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GACUTIL="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8838,7 +8879,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -8883,7 +8924,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9025,7 +9066,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9069,7 +9110,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -9099,7 +9140,7 @@ fi
 
 
     DOXYGEN_MIN_VERSION=1.7.0
-    DOXYGEN_MAX_VERSION=1.8.10
+    DOXYGEN_MAX_VERSION=1.8.11
 
 
       { $as_echo "$as_me:${as_lineno-$LINENO}: checking $DOXYGEN version >= 1.7.0" >&5
@@ -9259,7 +9300,7 @@ do
   test -z "$as_dir" && as_dir=.
   for lt_ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      if as_fn_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+      if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then
         lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
       fi
     done
@@ -9320,7 +9361,7 @@ do
     for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
 # Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
@@ -9386,7 +9427,7 @@ do
     for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
 # Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
@@ -9863,7 +9904,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 9866 "configure"' > conftest.$ac_ext
+  echo '#line 9907 "configure"' > conftest.$ac_ext
   if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -10040,7 +10081,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10080,7 +10121,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10132,7 +10173,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AS="${ac_tool_prefix}as"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10172,7 +10213,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AS="as"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10224,7 +10265,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10264,7 +10305,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10315,7 +10356,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_FILE="no"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10634,7 +10675,7 @@ ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
 ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_f77_compiler_gnu
 if test -n "$ac_tool_prefix"; then
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
@@ -10652,7 +10693,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -10678,7 +10719,7 @@ fi
 fi
 if test -z "$F77"; then
   ac_ct_F77=$F77
-  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor
+  for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -10696,7 +10737,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_F77="$ac_prog"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11261,7 +11302,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11301,7 +11342,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11353,7 +11394,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11393,7 +11434,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11445,7 +11486,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11485,7 +11526,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11725,7 +11766,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11765,7 +11806,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11817,7 +11858,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -11857,7 +11898,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -12081,11 +12122,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12084: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12125: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12088: \$? = $ac_status" >&5
+   echo "$as_me:12129: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -12371,11 +12412,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12374: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12415: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12378: \$? = $ac_status" >&5
+   echo "$as_me:12419: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -12475,11 +12516,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:12478: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12519: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:12482: \$? = $ac_status" >&5
+   echo "$as_me:12523: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14500,7 +14541,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 14503 "configure"
+#line 14544 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14600,7 +14641,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 14603 "configure"
+#line 14644 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -16945,11 +16986,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16948: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16989: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16952: \$? = $ac_status" >&5
+   echo "$as_me:16993: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -17049,11 +17090,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17052: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17093: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17056: \$? = $ac_status" >&5
+   echo "$as_me:17097: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -18632,11 +18673,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18635: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18676: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:18639: \$? = $ac_status" >&5
+   echo "$as_me:18680: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -18736,11 +18777,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18739: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18780: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:18743: \$? = $ac_status" >&5
+   echo "$as_me:18784: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -20906,11 +20947,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:20909: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:20950: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:20913: \$? = $ac_status" >&5
+   echo "$as_me:20954: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -21196,11 +21237,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:21199: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:21240: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:21203: \$? = $ac_status" >&5
+   echo "$as_me:21244: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -21300,11 +21341,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:21303: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:21344: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:21307: \$? = $ac_status" >&5
+   echo "$as_me:21348: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -23947,7 +23988,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_DOLT_BASH="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -24798,7 +24839,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -24844,7 +24885,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -24889,7 +24930,7 @@ do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_XML2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
@@ -25219,7 +25260,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-    LIBCHECK_LIBS="-lcheck"
+    LIBCHECK_LIBS="-lcheck -pthread"
 
     if test $with_libcheck != yes; then
       libcheck_root="$with_libcheck"
@@ -26380,11 +26421,11 @@ else
 int
 main ()
 {
-
+/* FIXME: Include the comments suggested by Paul. */
 #ifndef __cplusplus
-  /* Ultrix mips cc rejects this sort of thing.  */
+  /* Ultrix mips cc rejects this.  */
   typedef int charset[2];
-  const charset cs = { 0, 0 };
+  const charset cs;
   /* SunOS 4.1.1 cc rejects this.  */
   char const *const *pcpcc;
   char **ppc;
@@ -26401,9 +26442,8 @@ main ()
   ++pcpcc;
   ppc = (char**) pcpcc;
   pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this sort of thing.  */
-    char tx;
-    char *t = &tx;
+  { /* SCO 3.2v4 cc rejects this.  */
+    char *t;
     char const *s = 0 ? (char *) 0 : (char const *) 0;
 
     *t++ = 0;
@@ -26419,10 +26459,10 @@ main ()
     iptr p = 0;
     ++p;
   }
-  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
+  { /* AIX XL C 1.02.0.0 rejects this saying
        "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; } bx;
-    struct s *b = &bx; b->j = 5;
+    struct s { int j; const int *ap[3]; };
+    struct s *b; b->j = 5;
   }
   { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
     const int foo = 10;
@@ -26747,6 +26787,8 @@ ac_config_files="$ac_config_files docs/src/common-text/libsbml-group-comp-intro.
 
 ac_config_files="$ac_config_files docs/src/common-text/libsbml-group-fbc-intro.html"
 
+ac_config_files="$ac_config_files docs/src/common-text/libsbml-group-groups-intro.html"
+
 ac_config_files="$ac_config_files docs/src/common-text/libsbml-group-layout-intro.html"
 
 ac_config_files="$ac_config_files docs/src/common-text/libsbml-group-qual-intro.html"
@@ -26797,6 +26839,8 @@ if test -d dev; then
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/README.md"
 
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/R_interface/README.md"
+
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/README.md"
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md"
@@ -26807,6 +26851,8 @@ if test -d dev; then
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md"
 
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/MATLAB_interface/README.md"
+
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md"
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md"
@@ -26815,6 +26861,8 @@ if test -d dev; then
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md"
 
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/MATLAB_interface/README.md"
+
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md"
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md"
@@ -26825,12 +26873,16 @@ if test -d dev; then
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md"
 
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/MATLAB_interface/README.md"
+
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md"
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md"
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md"
 
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/MATLAB_interface/README.md"
+
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md"
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md"
@@ -26839,6 +26891,12 @@ if test -d dev; then
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md"
 
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/MATLAB_interface/README.md"
+
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/MATLAB_interface/README.md"
+
+  ac_config_files="$ac_config_files dev/misc-files/readmes-for-downloads-new-dir-struct/stable/R_interface/README.md"
+
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-experimental-release-downloads/README.md"
 
   ac_config_files="$ac_config_files dev/misc-files/readmes-for-experimental-release-downloads/source/README.md"
@@ -27351,16 +27409,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # In both cases, we have to default to `cp -p'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
+      as_ln_s='cp -p'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -pR'
+    as_ln_s='cp -p'
   fi
 else
-  as_ln_s='cp -pR'
+  as_ln_s='cp -p'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
@@ -27420,16 +27478,28 @@ else
   as_mkdir_p=false
 fi
 
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
+else
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+	test -d "$1/.";
+      else
+	case $1 in #(
+	-*)set "./$1";;
+	esac;
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+	???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
+fi
+as_executable_p=$as_test_x
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -27450,8 +27520,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libSBML $as_me 5.12.0, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
+This file was extended by libSBML $as_me 5.13.0, which was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -27513,11 +27583,11 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libSBML config.status 5.12.0
-configured by $0, generated by GNU Autoconf 2.69,
+libSBML config.status 5.13.0
+configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2012 Free Software Foundation, Inc.
+Copyright (C) 2010 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -27606,7 +27676,7 @@ fi
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
   shift
   \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
   CONFIG_SHELL='$SHELL'
@@ -27745,6 +27815,7 @@ do
     "docs/src/common-text/libsbml-downloading.html") CONFIG_FILES="$CONFIG_FILES docs/src/common-text/libsbml-downloading.html" ;;
     "docs/src/common-text/libsbml-group-comp-intro.html") CONFIG_FILES="$CONFIG_FILES docs/src/common-text/libsbml-group-comp-intro.html" ;;
     "docs/src/common-text/libsbml-group-fbc-intro.html") CONFIG_FILES="$CONFIG_FILES docs/src/common-text/libsbml-group-fbc-intro.html" ;;
+    "docs/src/common-text/libsbml-group-groups-intro.html") CONFIG_FILES="$CONFIG_FILES docs/src/common-text/libsbml-group-groups-intro.html" ;;
     "docs/src/common-text/libsbml-group-layout-intro.html") CONFIG_FILES="$CONFIG_FILES docs/src/common-text/libsbml-group-layout-intro.html" ;;
     "docs/src/common-text/libsbml-group-qual-intro.html") CONFIG_FILES="$CONFIG_FILES docs/src/common-text/libsbml-group-qual-intro.html" ;;
     "docs/src/common-text/libsbml-installation.html") CONFIG_FILES="$CONFIG_FILES docs/src/common-text/libsbml-installation.html" ;;
@@ -27767,27 +27838,35 @@ do
     "dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/binaries/windows/python/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/binaries/windows/python/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/binaries/windows/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/binaries/windows/R_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/R_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/binary-package/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/binary-package/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/MATLAB_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/MATLAB_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/binary-package/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/binary-package/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/MATLAB_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/MATLAB_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/binary-package/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/binary-package/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/MATLAB_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/MATLAB_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/MATLAB_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/MATLAB_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/R_interface/README.md" ;;
     "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/MATLAB_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/MATLAB_interface/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/MATLAB_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/MATLAB_interface/README.md" ;;
+    "dev/misc-files/readmes-for-downloads-new-dir-struct/stable/R_interface/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-downloads-new-dir-struct/stable/R_interface/README.md" ;;
     "dev/misc-files/readmes-for-experimental-release-downloads/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-experimental-release-downloads/README.md" ;;
     "dev/misc-files/readmes-for-experimental-release-downloads/source/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-experimental-release-downloads/source/README.md" ;;
     "dev/misc-files/readmes-for-experimental-release-downloads/source/accepted-packages/README.md") CONFIG_FILES="$CONFIG_FILES dev/misc-files/readmes-for-experimental-release-downloads/source/accepted-packages/README.md" ;;
@@ -28553,6 +28632,9 @@ fi
 if test "$enable_fbc" != "no" ; then
   echo "  SBML 'fbc'                    = $enable_fbc"
 fi
+if test "$enable_groups" != "no" ; then
+  echo "  SBML 'groups'                 = $enable_groups"
+fi
 if test "$enable_layout" != "no" ; then
   echo "  SBML 'layout'                 = $enable_layout"
 fi
diff --git a/configure.ac b/configure.ac
index 126ca33..9bd96eb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7,7 +7,7 @@ dnl <!-------------------------------------------------------------------------
 dnl This file is part of libSBML.  Please visit http://sbml.org for more
 dnl information about SBML, and the latest version of libSBML.
 dnl
-dnl Copyright (C) 2013-2015 jointly by the following organizations:
+dnl Copyright (C) 2013-2016 jointly by the following organizations:
 dnl     1. California Institute of Technology, Pasadena, CA, USA
 dnl     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 dnl     3. University of Heidelberg, Heidelberg, Germany
@@ -50,7 +50,7 @@ AC_INIT([libSBML],
 
 AC_CONFIG_AUX_DIR(config)
 
-AC_REVISION($Revision: 22502 $)
+AC_REVISION($Revision: 23070 $)
 
 AC_CONFIG_SRCDIR(src/Makefile.in)
 
@@ -162,6 +162,19 @@ if test "$enable_qual" != no; then
   AC_SUBST(LIBSBML_HAS_PACKAGE_QUAL, 1)
 fi
 
+AC_ARG_ENABLE([groups],
+  AS_HELP_STRING([--enable-groups@<:@=ARG@:>@],
+                 [build support for SBML 'groups' @<:@default=no@:>@]),
+  [enable_groups=$enableval],
+  [enable_groups=no])
+
+if test "$enable_groups" != no; then
+  AC_DEFINE([USE_GROUPS], 1, [Define to 1 to build support for SBML 'groups'.])
+  AC_DEFINE([LIBSBML_HAS_PACKAGE_GROUPS], 1, [Define to 1 to build support for SBML 'groups'.])
+  AC_SUBST(USE_GROUPS, 1)
+  AC_SUBST(LIBSBML_HAS_PACKAGE_GROUPS, 1)
+fi
+
 dnl -------------------------------------------------------
 dnl Other SBML L3 package variables
 dnl -------------------------------------------------------
@@ -306,7 +319,7 @@ CONFIG_PROG_SWIG(2.0.0)
 dnl Make sure to test doxygen *after* java, because there's a dependency
 dnl in CONFIG_PROG_DOXYGEN on whether --with-java was also given.
 
-CONFIG_PROG_DOXYGEN(1.7.0,1.8.10)
+CONFIG_PROG_DOXYGEN(1.7.0,1.8.11)
 
 dnl Do this one last, because some earlier config options may end up changing
 dnl things like CFLAGS, which in turn affects the libtool script that the
@@ -548,6 +561,7 @@ AC_CONFIG_FILES([docs/src/doxygen-config-matlab.txt])
 AC_CONFIG_FILES([docs/src/common-text/libsbml-downloading.html])
 AC_CONFIG_FILES([docs/src/common-text/libsbml-group-comp-intro.html])
 AC_CONFIG_FILES([docs/src/common-text/libsbml-group-fbc-intro.html])
+AC_CONFIG_FILES([docs/src/common-text/libsbml-group-groups-intro.html])
 AC_CONFIG_FILES([docs/src/common-text/libsbml-group-layout-intro.html])
 AC_CONFIG_FILES([docs/src/common-text/libsbml-group-qual-intro.html])
 AC_CONFIG_FILES([docs/src/common-text/libsbml-installation.html])
@@ -578,27 +592,35 @@ if test -d dev; then
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/binaries/windows/python/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/binaries/windows/R_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/experimental/source/R_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/binary-package/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/R_interface/source-package/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/32-bit/MATLAB_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/binary-package/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/R_interface/source-package/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/64-bit/MATLAB_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/linux/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/binary-package/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/R_interface/source-package/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/macos/MATLAB_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/python/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/R_interface/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/32-bit/MATLAB_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/python/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/R_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/windows/64-bit/MATLAB_interface/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/MATLAB_interface/README.md])
+  AC_CONFIG_FILES([dev/misc-files/readmes-for-downloads-new-dir-struct/stable/R_interface/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-experimental-release-downloads/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-experimental-release-downloads/source/README.md])
   AC_CONFIG_FILES([dev/misc-files/readmes-for-experimental-release-downloads/source/accepted-packages/README.md])
@@ -794,6 +816,9 @@ fi
 if test "$enable_fbc" != "no" ; then
   echo "  SBML 'fbc'                    = $enable_fbc"
 fi
+if test "$enable_groups" != "no" ; then
+  echo "  SBML 'groups'                 = $enable_groups"
+fi
 if test "$enable_layout" != "no" ; then
   echo "  SBML 'layout'                 = $enable_layout"
 fi
diff --git a/distrib-package.cmake b/distrib-package.cmake
index 8f91f87..1cd0462 100644
--- a/distrib-package.cmake
+++ b/distrib-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index c9c1b67..9f59f63 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/Makefile.in b/docs/Makefile.in
index f64713d..905ae66 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/Makefile.in b/docs/src/Makefile.in
index c257ead..788d9d8 100644
--- a/docs/src/Makefile.in
+++ b/docs/src/Makefile.in
@@ -7,7 +7,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -206,6 +206,7 @@ distfiles =                                                  \
         common-text/libsbml-group-comp-intro.html.in         \
         common-text/libsbml-group-core-intro.html            \
         common-text/libsbml-group-fbc-intro.html.in          \
+        common-text/libsbml-group-groups-intro.html.in        \
         common-text/libsbml-group-layout-intro.html.in       \
         common-text/libsbml-group-qual-intro.html.in         \
         common-text/libsbml-import-for-c-cpp.html	     \
@@ -235,6 +236,8 @@ distfiles =                                                  \
         common-text/pkg-marker-core.txt                      \
         common-text/pkg-marker-fbc.html                      \
         common-text/pkg-marker-fbc.txt                       \
+        common-text/pkg-marker-groups.html                    \
+        common-text/pkg-marker-groups.txt                     \
         common-text/pkg-marker-layout.html                   \
         common-text/pkg-marker-layout.txt                    \
         common-text/pkg-marker-qual.html                     \
@@ -292,6 +295,7 @@ distfiles =                                                  \
         java-substitutions/CVTermList.java                   \
         java-substitutions/DateList.java                     \
         java-substitutions/FbcPkgNamespaces.java             \
+        java-substitutions/GroupsPkgNamespaces.java          \
         java-substitutions/LayoutPkgNamespaces.java          \
         java-substitutions/ModelCreatorList.java             \
         java-substitutions/QualPkgNamespaces.java            \
@@ -357,6 +361,7 @@ distfiles =                                                  \
         python-substitutions/CompPkgNamespaces.py            \
         python-substitutions/DateList.py                     \
         python-substitutions/FbcPkgNamespaces.py             \
+        python-substitutions/GroupsPkgNamespaces.py          \
         python-substitutions/LayoutPkgNamespaces.py          \
         python-substitutions/ModelCreatorList.py             \
         python-substitutions/QualPkgNamespaces.py            \
@@ -474,6 +479,7 @@ expanded-html-files = \
   common-text/libsbml-downloading.html        \
   common-text/libsbml-group-comp-intro.html   \
   common-text/libsbml-group-fbc-intro.html    \
+  common-text/libsbml-group-groups-intro.html  \
   common-text/libsbml-group-layout-intro.html \
   common-text/libsbml-group-qual-intro.html   \
   common-text/libsbml-installation.html
@@ -557,9 +563,11 @@ endef
 # contents lacking all the classes flagged with @ingroup.  To solve that,
 # we copy over the index files created from the first Doxygen pass.
 
+#
+
 define run_doxygen
-  $(call doxygen_indexing_pass,$(1),$(2),$(3))
-  $(call doxygen_final_pass,$(1),$(2),$(3))
+   $(call doxygen_indexing_pass,$(1),$(2),$(3))
+   $(call doxygen_final_pass,$(1),$(2),$(3))
 endef
 
 define doxygen_indexing_pass
diff --git a/docs/src/common-text/astnode-types.html b/docs/src/common-text/astnode-types.html
index b1122a7..06d7188 100644
--- a/docs/src/common-text/astnode-types.html
+++ b/docs/src/common-text/astnode-types.html
@@ -1,4 +1,4 @@
-<table border="0" class="centered text-table borderless code">
+<table border="0" class="centered text-table align-bottom borderless code">
 <tr><td>AST_CONSTANT_E</td><td>         AST_FUNCTION_COT</td><td>       AST_LOGICAL_NOT</td></tr>
 <tr><td>AST_CONSTANT_FALSE</td><td>     AST_FUNCTION_COTH</td><td>      AST_LOGICAL_OR</td></tr>
 <tr><td>AST_CONSTANT_PI</td><td>        AST_FUNCTION_CSC</td><td>       AST_LOGICAL_XOR</td></tr>
diff --git a/docs/src/common-text/libsbml-group-groups-intro.html.in b/docs/src/common-text/libsbml-group-groups-intro.html.in
new file mode 100644
index 0000000..534ce05
--- /dev/null
+++ b/docs/src/common-text/libsbml-group-groups-intro.html.in
@@ -0,0 +1,30 @@
+<p> The libSBML “groups” extension implements support for the SBML Level 3 <em>Groups</em> package.
+
+<h2>Introduction</h2>
+
+The SBML Level 3 Groups package offers a more flexible mechanism for indicating that components of an SBML model are related in some way.  The nature of the relationship is left up to the modeler, and can be clarified by means of annotations on model components.  Groups may contain either the same or different types of SBML objects, and groups may be nested if desired.  There are no predefined behavioral semantics associated with groups.
+
+The term <em>groups</em> is used in this package rather than <em>types</em>, because the latter would imply stronger behavioral constraints on objects than what Groups provides. This package only provides a way of conceptually grouping components of a model.  It does not provide a way to define types in the computer science sense; therefore, a different term is appropriate.
+
+<h2>The specification for this SBML package</h2>
+
+<p style="color: #880000"> This API documentation for libSBML does not provide a complete explanation of the SBML Level 3 Groups package (whose nickname is also “groups”).  If you are developing software that uses “groups”, you are strongly urged to read the actual specification for the package.  A link to the specification document current is provided below, along with a link to the page of known issues (if any).
+
+<table border="0" class="centered text-table width80 normal-font alt-row-colors" style="padding-bottom: 0.5em">
+  <caption class="top-caption">Specification for SBML Level 3 
+    Groups, current at the time of this libSBML release
+    (@PACKAGE_VERSION@).  Note: an Internet connection is required
+    to access these documents.</caption>
+<tr>
+<th style="text-align: left">Specification (in PDF format)</th>
+<th style="text-align: left">Known issues</th>
+</tr>
+
+<tr><td>
+
+<a class="spec-link" target="_blank" href="@PACKAGE_GROUPS_V1_SPEC_URL@"> <img class="big-icon" width="22px" src="icon-format-pdf-44px.jpg">Groups package, Version @PACKAGE_GROUPS_V1_VERSION@ Release @PACKAGE_GROUPS_V1_RELEASE@</a> </td><td>
+
+<a class="spec-link" target="_blank" href="@PACKAGE_GROUPS_V1_ERRATA_URL@"> <img class="big-icon" width="22px" src="icon-format-html-44px.jpg">Errata page</a>
+
+</td></tr>
+</table>
diff --git a/docs/src/common-text/libsbml-installation.html.in b/docs/src/common-text/libsbml-installation.html.in
index c84ecaf..3b9607a 100644
--- a/docs/src/common-text/libsbml-installation.html.in
+++ b/docs/src/common-text/libsbml-installation.html.in
@@ -721,6 +721,14 @@ documentation.
 <!-- ---------------------------------------------------------------------- -->
 <h4><a class="anchor" name="compiling-gnumake">1.3.b Using GNU make</a></h4>
 
+<p> <strong>Important</strong>: parallel GNU make builds of libSBML are not
+supported at this time.  Attempting to use the
+<nobr><code>-j</code></nobr> option
+with <code>make</code> will not work properly and will not complete, but will
+also not produce diagnostics that indicate the cause of the failure (thus
+making it difficult to understand what went wrong).  Do not use the
+<nobr><code>-j</code></nobr> option with GNU make.
+
 <p> If you are using GNU make and <i>not</i> using CMake, in a terminal/shell
 window, <code>cd</code> to the top level of the libSBML source directory.  
 In the following example, let
diff --git a/docs/src/common-text/libsbml-issues.html b/docs/src/common-text/libsbml-issues.html
index da66cc1..d65815b 100644
--- a/docs/src/common-text/libsbml-issues.html
+++ b/docs/src/common-text/libsbml-issues.html
@@ -15,6 +15,8 @@ possible pitfalls in using libSBML:
 <li><a href="#swig-warnings">Some libsbml_wrap.cpp files produce compile-time warnings</a></li>
 <li><a href="#mac-libcheck-build">Difficulty configuring libSBML with MacPorts version of libcheck under Mac OS X 10.6</a></li>
 <li><a href="#matlab-win-unicode">MATLAB on Windows has issues with unicode filenames</a></li>
+<li><a href="#parallel-gnumake">Parallel builds with GNU <code>make</code> are not supported</a></li>
+<li><a href="#gcc5-python">Bug in GCC 5.1 and 5.2 causes <code>free()</code> errors in Python interface</a></li>
 </ul>
 
 
@@ -222,6 +224,31 @@ LDFLAGS="-arch ppc -arch i386 -arch x86_64"  \
 
 <p>
 
-<h2><a class="anchor" name="link-accidents">MATLAB on Windows has issues with unicode filenames</a></h2>
+<h2><a class="anchor" name="matlab-win-unicode">MATLAB on Windows has issues with unicode filenames</a></h2>
 
 <p> Using MATLAB on a Windows system unicode filenames can prove problematic.  There appears to be an issue with MATLAB failing to correctly pass along such filenames when typed directly into the workspace.  It is possible to use unicode filenames directly via the dialogs that OutputSBML / TranslateSBML open up; but only if the relevant executable and the file are in the same directory.
+
+<h2><a class="anchor" name="parallel-gnumake"></a>Parallel builds with GNU <code>make</code> are not supported</h2>
+
+Parallel GNU make builds of libSBML are not supported at this time.  Attempting to use the <nobr><code>-j</code></nobr> option with <code>make</code> will not work properly and will not complete, but will also not produce diagnostics that indicate the cause of the failure (thus making it difficult to understand what went wrong).  Do not use the <nobr><code>-j</code></nobr> option with GNU make.
+
+<h2><a class="anchor" name="gcc5-python">Bug in GCC 5.1 and 5.2 causes <code>free()</code> errors in Python interface</a></h2>
+
+There is a <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67557">known bug in GCC versions 5.1 and 5.2</a> which results in the problem that calling the copy constructor of a base class in the constructor of derived classes produces crashing code.  The problem manifests itself in libSBML when using a language binding such as the Python interface, and leads to the following error:
+
+<pre class="fragment">
+>>> from libsbml import *
+>>> reader = SBMLReader()
+>>> doc = reader.readSBML('MODEL1504280000_URNs.xml')
+*** Error in `python': free(): invalid pointer: 0x00007ffda7deb2a8 ***
+Aborted (core dumped)
+</pre>
+
+There are four work-arounds for this problem:
+
+<ol>
+<li> Do not use <code>gcc</code> versions 5.1 or 5.2 (use a different version).
+<li> Use the <code>clang</code> compiler instead of <code>gcc</code>.
+<li> Use <code>gcc</code> with the option <code>-D_GLIBCXX_USE_CXX11_ABI=0</code>.
+<li> Use <code>gcc</code> with the option <code>-fno-elide-constructors</code>.
+</ol>
diff --git a/docs/src/common-text/pkg-marker-groups.html b/docs/src/common-text/pkg-marker-groups.html
new file mode 100644
index 0000000..d3aad7f
--- /dev/null
+++ b/docs/src/common-text/pkg-marker-groups.html
@@ -0,0 +1 @@
+<span class="pkg-marker pkg-color-groups"><a href="group__groups.html">groups</a></span>
diff --git a/docs/src/common-text/pkg-marker-groups.txt b/docs/src/common-text/pkg-marker-groups.txt
new file mode 100644
index 0000000..b53e101
--- /dev/null
+++ b/docs/src/common-text/pkg-marker-groups.txt
@@ -0,0 +1 @@
+[SBML 'groups' package]
diff --git a/docs/src/css/libsbml-base-stylesheet.css b/docs/src/css/libsbml-base-stylesheet.css
index 57a805a..cac5e75 100644
--- a/docs/src/css/libsbml-base-stylesheet.css
+++ b/docs/src/css/libsbml-base-stylesheet.css
@@ -488,6 +488,11 @@ object.centered
     line-height: 140%;
 }
 
+.align-bottom td
+{
+    vertical-align: bottom;
+}
+
 .width80
 {
     width: 80%;
diff --git a/docs/src/css/libsbml-doxygen-stylesheet.css b/docs/src/css/libsbml-doxygen-stylesheet.css
index 6539f85..4d81456 100644
--- a/docs/src/css/libsbml-doxygen-stylesheet.css
+++ b/docs/src/css/libsbml-doxygen-stylesheet.css
@@ -1322,7 +1322,7 @@ span.signatureArrow {
   padding: 0px;
   margin: 0px;
   display: inline-block;
-  background-image: url(right-arrow.gif);
+  background-image: url(right-arrow.png);
   background-position: left center;
   background-repeat: no-repeat;
   vertical-align: bottom;
diff --git a/docs/src/css/libsbml-python-stylesheet.css b/docs/src/css/libsbml-python-stylesheet.css
index d0ea1cf..c82b2bd 100644
--- a/docs/src/css/libsbml-python-stylesheet.css
+++ b/docs/src/css/libsbml-python-stylesheet.css
@@ -7,8 +7,14 @@
  * information about SBML, and the latest version of libSBML.
  */
 
-.memdoc > p:first-child:after {
-  content: "The Python method signature(s) are as follows:";
+.memdoc > pre.signature:first-of-type {
+    border-radius: 5px;
+    -webkit-border-radius: 5px;
+    -moz-border-radius: 5px;
+    background-color: #f5f5f5;
+    border: 1px solid #eeeeee;
+    padding: 5px;
+    margin-right: 15px;
 }
 
 .contents div.textblock div.fragment {
diff --git a/docs/src/doxygen-config-c.txt.cmake b/docs/src/doxygen-config-c.txt.cmake
index 4e0640c..a6b15d7 100644
--- a/docs/src/doxygen-config-c.txt.cmake
+++ b/docs/src/doxygen-config-c.txt.cmake
@@ -131,6 +131,10 @@ INPUT =                                    \
   ../../src/sbml/packages/fbc/sbml         \
   ../../src/sbml/packages/fbc/util         \ 
   ../../src/sbml/packages/fbc/validator    \
+  ../../src/sbml/packages/groups/common    \
+  ../../src/sbml/packages/groups/extension \
+  ../../src/sbml/packages/groups/sbml      \
+  ../../src/sbml/packages/groups/validator \
   ../../src/sbml/packages/layout/common    \
   ../../src/sbml/packages/layout/extension \
   ../../src/sbml/packages/layout/sbml      \
diff --git a/docs/src/doxygen-config-c.txt.in b/docs/src/doxygen-config-c.txt.in
index 91bbaac..5b8d783 100644
--- a/docs/src/doxygen-config-c.txt.in
+++ b/docs/src/doxygen-config-c.txt.in
@@ -132,6 +132,10 @@ INPUT =                                    \
   ../../src/sbml/packages/fbc/sbml         \
   ../../src/sbml/packages/fbc/util         \ 
   ../../src/sbml/packages/fbc/validator    \
+  ../../src/sbml/packages/groups/common    \
+  ../../src/sbml/packages/groups/extension \
+  ../../src/sbml/packages/groups/sbml      \
+  ../../src/sbml/packages/groups/validator \
   ../../src/sbml/packages/layout/common    \
   ../../src/sbml/packages/layout/extension \
   ../../src/sbml/packages/layout/sbml      \
diff --git a/docs/src/doxygen-config-common.txt b/docs/src/doxygen-config-common.txt
index 765b6ea..db827d0 100644
--- a/docs/src/doxygen-config-common.txt
+++ b/docs/src/doxygen-config-common.txt
@@ -558,6 +558,10 @@ INPUT =                                    \
   ../../src/sbml/packages/fbc/sbml         \
   ../../src/sbml/packages/fbc/util         \ 
   ../../src/sbml/packages/fbc/validator    \
+  ../../src/sbml/packages/groups/common    \
+  ../../src/sbml/packages/groups/extension \
+  ../../src/sbml/packages/groups/sbml      \
+  ../../src/sbml/packages/groups/validator \
   ../../src/sbml/packages/layout/common    \
   ../../src/sbml/packages/layout/extension \
   ../../src/sbml/packages/layout/sbml      \
diff --git a/docs/src/doxygen-config-common.txt.cmake b/docs/src/doxygen-config-common.txt.cmake
index 765b6ea..db827d0 100644
--- a/docs/src/doxygen-config-common.txt.cmake
+++ b/docs/src/doxygen-config-common.txt.cmake
@@ -558,6 +558,10 @@ INPUT =                                    \
   ../../src/sbml/packages/fbc/sbml         \
   ../../src/sbml/packages/fbc/util         \ 
   ../../src/sbml/packages/fbc/validator    \
+  ../../src/sbml/packages/groups/common    \
+  ../../src/sbml/packages/groups/extension \
+  ../../src/sbml/packages/groups/sbml      \
+  ../../src/sbml/packages/groups/validator \
   ../../src/sbml/packages/layout/common    \
   ../../src/sbml/packages/layout/extension \
   ../../src/sbml/packages/layout/sbml      \
diff --git a/docs/src/doxygen-config-cpp.txt.cmake b/docs/src/doxygen-config-cpp.txt.cmake
index 16b702c..9bb4040 100644
--- a/docs/src/doxygen-config-cpp.txt.cmake
+++ b/docs/src/doxygen-config-cpp.txt.cmake
@@ -77,4 +77,5 @@ ENABLED_SECTIONS       = cpp clike doxygenCppOnly hasDefaultArgs
 
 EXAMPLE_PATH           = common-text . ../.. ../../examples/c++ \
                          ../../examples/c++/comp ../../examples/c++/layout \
-                         ../../examples/c++/fbc ../../examples/c++/qual 
+                         ../../examples/c++/fbc ../../examples/c++/groups \
+                         ../../examples/c++/qual
diff --git a/docs/src/doxygen-config-cpp.txt.in b/docs/src/doxygen-config-cpp.txt.in
index f1fb92b..b376439 100644
--- a/docs/src/doxygen-config-cpp.txt.in
+++ b/docs/src/doxygen-config-cpp.txt.in
@@ -79,4 +79,5 @@ ENABLED_SECTIONS       = cpp clike doxygenCppOnly hasDefaultArgs
 
 EXAMPLE_PATH           = common-text . ../.. ../../examples/c++ \
                          ../../examples/c++/comp ../../examples/c++/layout \
-                         ../../examples/c++/fbc ../../examples/c++/qual 
+                         ../../examples/c++/fbc ../../examples/c++/groups \
+                         ../../examples/c++/qual 
diff --git a/docs/src/doxygen-config-csharp.txt.cmake b/docs/src/doxygen-config-csharp.txt.cmake
index 48d31d0..ea95a79 100644
--- a/docs/src/doxygen-config-csharp.txt.cmake
+++ b/docs/src/doxygen-config-csharp.txt.cmake
@@ -130,7 +130,7 @@ EXCLUDE +=  \
   ../../src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_SBMLNamespaces_const_p_t.cs \
   ../../src/bindings/csharp/csharp-files/SBMLTransforms.cs
 
-EXAMPLE_PATH           = common-text . ../.. ../../examples/csharp \
-                         ../../examples/csharp/comp ../../examples/csharp/layout \
-                         ../../examples/csharp/fbc ../../examples/csharp/qual 
-
+EXAMPLE_PATH           = common-text . ../.. ../../examples/c++ \
+                         ../../examples/c++/comp ../../examples/c++/layout \
+                         ../../examples/c++/fbc ../../examples/c++/groups \
+                         ../../examples/c++/qual 
diff --git a/docs/src/doxygen-config-csharp.txt.in b/docs/src/doxygen-config-csharp.txt.in
index 344a23f..ce799c0 100644
--- a/docs/src/doxygen-config-csharp.txt.in
+++ b/docs/src/doxygen-config-csharp.txt.in
@@ -127,5 +127,5 @@ EXCLUDE +=  \
 
 EXAMPLE_PATH           = common-text . ../.. ../../examples/csharp \
                          ../../examples/csharp/comp ../../examples/csharp/layout \
-                         ../../examples/csharp/fbc ../../examples/csharp/qual 
-
+                         ../../examples/csharp/fbc ../../examples/csharp/groups \
+                         ../../examples/csharp/qual 
diff --git a/docs/src/doxygen-config-python.txt.cmake b/docs/src/doxygen-config-python.txt.cmake
index 41220c3..7ce32f9 100644
--- a/docs/src/doxygen-config-python.txt.cmake
+++ b/docs/src/doxygen-config-python.txt.cmake
@@ -168,6 +168,7 @@ EXCLUDE_SYMBOLS =                      \
   accept                               \
   string
 
-EXAMPLE_PATH           = common-text examples . ../.. ../../examples/python \
-                         ../../examples/python/comp ../../examples/python/layout \
-                         ../../examples/python/fbc ../../examples/python/qual 
+EXAMPLE_PATH           = common-text . ../.. ../../examples/c++ \
+                         ../../examples/c++/comp ../../examples/c++/layout \
+                         ../../examples/c++/fbc ../../examples/c++/groups \
+                         ../../examples/c++/qual 
diff --git a/docs/src/doxygen-config-python.txt.in b/docs/src/doxygen-config-python.txt.in
index 93652e7..0b4ba40 100644
--- a/docs/src/doxygen-config-python.txt.in
+++ b/docs/src/doxygen-config-python.txt.in
@@ -177,4 +177,5 @@ EXCLUDE_SYMBOLS +=                     \
 
 EXAMPLE_PATH           = common-text . ../.. ../../examples/python \
                          ../../examples/python/comp ../../examples/python/layout \
-                         ../../examples/python/fbc ../../examples/python/qual 
+                         ../../examples/python/fbc ../../examples/python/groups \
+                         ../../examples/python/qual 
diff --git a/docs/src/doxygen-layout-c.xml b/docs/src/doxygen-layout-c.xml
index d73036e..5e11d70 100644
--- a/docs/src/doxygen-layout-c.xml
+++ b/docs/src/doxygen-layout-c.xml
@@ -8,6 +8,7 @@
     <tab type="usergroup" visible="yes" title="Level 3 Extensions">
       <tab type="user" url="@ref comp"   title="Hierarchical Model Composition"/>
       <tab type="user" url="@ref fbc"    title="Flux Balance Constraints"/>
+      <tab type="user" url="@ref groups" title="Groups"/>
       <tab type="user" url="@ref layout" title="Layout"/>
       <tab type="user" url="@ref qual"   title="Qualitative Models"/>
     </tab>
diff --git a/docs/src/doxygen-layout-cpp.xml b/docs/src/doxygen-layout-cpp.xml
index ebfeae8..58381a8 100644
--- a/docs/src/doxygen-layout-cpp.xml
+++ b/docs/src/doxygen-layout-cpp.xml
@@ -8,6 +8,7 @@
     <tab type="usergroup" visible="yes" title="Level 3 Extensions">
       <tab type="user" url="@ref comp"   title="Hierarchical Model Composition"/>
       <tab type="user" url="@ref fbc"    title="Flux Balance Constraints"/>
+      <tab type="user" url="@ref groups" title="Groups"/>
       <tab type="user" url="@ref layout" title="Layout"/>
       <tab type="user" url="@ref qual"   title="Qualitative Models"/>
     </tab>
diff --git a/docs/src/doxygen-layout-csharp.xml b/docs/src/doxygen-layout-csharp.xml
index 7691921..279ae98 100644
--- a/docs/src/doxygen-layout-csharp.xml
+++ b/docs/src/doxygen-layout-csharp.xml
@@ -8,6 +8,7 @@
     <tab type="usergroup" visible="yes" title="Level 3 Extensions">
       <tab type="user" url="@ref comp"   title="Hierarchical Model Composition"/>
       <tab type="user" url="@ref fbc"    title="Flux Balance Constraints"/>
+      <tab type="user" url="@ref groups" title="Groups"/>
       <tab type="user" url="@ref layout" title="Layout"/>
       <tab type="user" url="@ref qual"   title="Qualitative Models"/>
     </tab>
diff --git a/docs/src/doxygen-layout-python.xml b/docs/src/doxygen-layout-python.xml
index 26b837d..1ec418a 100644
--- a/docs/src/doxygen-layout-python.xml
+++ b/docs/src/doxygen-layout-python.xml
@@ -8,6 +8,7 @@
     <tab type="usergroup" visible="yes" title="Level 3 Extensions">
       <tab type="user" url="@ref comp"   title="Hierarchical Model Composition"/>
       <tab type="user" url="@ref fbc"    title="Flux Balance Constraints"/>
+      <tab type="user" url="@ref groups" title="Groups"/>
       <tab type="user" url="@ref layout" title="Layout"/>
       <tab type="user" url="@ref qual"   title="Qualitative Models"/>
     </tab>
diff --git a/docs/src/filters/doc-filter-c.py b/docs/src/filters/doc-filter-c.py
index 96d7205..f38dd5a 100755
--- a/docs/src/filters/doc-filter-c.py
+++ b/docs/src/filters/doc-filter-c.py
@@ -25,7 +25,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/filters/doc-filter-csharp.py b/docs/src/filters/doc-filter-csharp.py
index 4303b73..2686a78 100755
--- a/docs/src/filters/doc-filter-csharp.py
+++ b/docs/src/filters/doc-filter-csharp.py
@@ -17,7 +17,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/filters/doc-filter-python.py b/docs/src/filters/doc-filter-python.py
index de5fbd7..e9e9869 100755
--- a/docs/src/filters/doc-filter-python.py
+++ b/docs/src/filters/doc-filter-python.py
@@ -18,7 +18,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -117,7 +117,7 @@ def reformatDocString (match):
 
   # Now we do some final transformations.
 
-  start  = '<pre class=["\']signature["\']>'
+  start  = '<pre class=["\']signature["\']>'      #" This comment is for Emacs.
   middle = '.*?'
   end    = '</pre>'
 
@@ -149,7 +149,7 @@ def clean_up_spaces(match):
   return normalized
 
 
-def filterDocStrings (contents):
+def filterDocStrings(contents):
   global libsbml_enums
 
   # Make the docstrings more readable.
diff --git a/docs/src/java-substitutions/GroupsPkgNamespaces.java b/docs/src/java-substitutions/GroupsPkgNamespaces.java
new file mode 100644
index 0000000..4430a88
--- /dev/null
+++ b/docs/src/java-substitutions/GroupsPkgNamespaces.java
@@ -0,0 +1,106 @@
+package org.sbml.libsbml;
+
+/**
+ * <span class='pkg-marker pkg-color-groups'><a href='group__groups.html'>groups</a></span>
+ *
+ * Class to store SBML Level, Version, and XML namespace for the
+ * SBML Level 3 Groups (“groups”) package.
+ * <p>
+ * <em style='color: #555'>
+ * This class of objects is defined by libSBML only and has no direct
+ * equivalent in terms of SBML components.  This class is not prescribed by
+ * the SBML specifications, although it is used to implement features
+ * defined in SBML.
+ * </em>
+ * <p>
+ * SBML Level 3 “packages” add features on top of SBML
+ * Level 3 Core.  When a model definition uses an SBML package, it must
+ * declare the Level and Version of SBML Core and the Version of the package
+ * being used.  The package name, the SBML Level and Version, and the package
+ * Version correspond uniquely to an XML namespace added to the XML encoding
+ * of the SBML model.
+ * <p>
+ * LibSBML Level 3 <em>extensions</em> are implementations of support
+ * for SBML Level 3 packages.  Each package is implemented as a separate
+ * extension.  To allow software applications to query the level and version
+ * information of an extension's package implementation, libSBML uses
+ * specialized object classes.  For the extension implementing the SBML
+ * “groups” package, the object class is {@link GroupsPkgNamespaces}.
+ * (This class is a specialization of a common base class called
+ * <code>SBMLExtensionNamespaces</code> that is not exposed in the libSBML
+ * programming language interfaces other than C++.)
+ * <p>
+ * Objects of class {@link GroupsPkgNamespaces} can be passed to constructors of
+ * SBML components defined by “groups” in order to ensure that the
+ * correct component structure is created.  This is necessary because
+ * different versions of an SBML Level 3 package may introduce
+ * differences in the definition of the components defined by the package.
+ * (For example, later editions of a package may introduce new attributes on
+ * a component that are not present in earlier editions of the package
+ * specification.)
+ * <p>
+ * @see CompPkgNamespaces
+ * @see FbcPkgNamespaces
+ * @see LayoutPkgNamespaces
+ * @see QualPkgNamespaces
+ */
+public class GroupsPkgNamespaces {
+
+    /**
+     * Creates a new {@link GroupsPkgNamespaces} object.
+     * <p>
+     * @warning Note that the internal implementation of the list nodes uses
+     * C++ objects.  If callers use this constructor to create the list
+     * object deliberately, those objects are in a sense "owned" by the caller
+     * when this constructor is used. Callers need to remember to call
+     * {@link #delete()} on this list object after it is no longer
+     * needed or risk leaking memory.
+     */
+    public GroupsPkgNamespaces() { }
+
+
+    /**
+     * Creates and returns a deep copy of this {@link GroupsPkgNamespaces}.
+     * <p>
+     * @return a (deep) copy of this {@link GroupsPkgNamespaces}.
+     */ 
+    public GroupsPkgNamespaces cloneObject() {}
+
+
+    /**
+     * Destroys this object.
+     * <p>
+     * If a caller created this list using the {@link #GroupsPkgNamespaces()}
+     * constructor, the caller should use this method to delete this list
+     * object after it is no longer in use.
+     */
+    public synchronized void delete() { }
+
+
+    /**
+     * Returns a string representing the package's XML namespace.
+     * <p>
+     * @return a string representing the XML namespace that reflects the
+     * SBML Level and Version, and the package Version.
+     */
+    public String getURI() { }
+
+
+    /**
+     * Returns the package's version number.
+     * <p>
+     * @return an integer, the version number for the SBML Level 3
+     * Groups package implemented by the libSBML
+     * extension.
+     */
+    public long getPackageVersion() { }
+
+
+    /**
+     * Returns the short-form name or label for the package.
+     * <p>
+     * @return the short-form name of the SBML Level 3 package, which in
+     * this case, will be “groups”.
+     */ 
+     public String getPackageName() { }
+}
diff --git a/docs/src/java-substitutions/libsbmlConstants.java.in b/docs/src/java-substitutions/libsbmlConstants.java.in
index 3708bd7..3163485 100644
--- a/docs/src/java-substitutions/libsbmlConstants.java.in
+++ b/docs/src/java-substitutions/libsbmlConstants.java.in
@@ -205,6 +205,19 @@ public interface libsbmlConstants
     /**
      * One of the possible libSBML operation return codes.
      * <p>
+     * This code has the following meaning: The existing annotation does
+     * not have a top-level element with the given namespace. This error is
+     * typically returned in situations where one of the annotation
+     * replacement functions is being used to remove an annotation with a
+     * namespace that does not match the namespace of any top-level element
+     * that is already present in the existing annotation.
+     */
+    public final static int LIBSBML_ANNOTATION_NS_NOT_FOUND = -13;
+
+
+    /**
+     * One of the possible libSBML operation return codes.
+     * <p>
      * This code has the following meaning: the requested action cannot be
      * performed because the target object does not have its "metaid"
      * attribute set.
@@ -215,14 +228,11 @@ public interface libsbmlConstants
     /**
      * One of the possible libSBML operation return codes.
      * <p>
-     * This code has the following meaning: The existing annotation does
-     * not have a top-level element with the given namespace. This error is
-     * typically returned in situations where one of the annotation
-     * replacement functinos is being used to remove an annotation with a
-     * namespace that does not match the namespace of any top-level element
-     * that is already present in the existing annotation.
+     * This code has the following meaning: The attribute that is the subject
+     * of this operation has been deprecated for the combination of SBML Level
+     * and Version for the underlying object.
      */
-    public final static int LIBSBML_ANNOTATION_NS_NOT_FOUND = -13;
+    public final static int LIBSBML_DEPRECATED_ATTRIBUTE = -15;
 
 
     /**
@@ -7010,6 +7020,376 @@ public interface libsbmlConstants
     public final static int OBJECTIVE_TYPE_UNKNOWN = OBJECTIVE_TYPE_MINIMIZE + 1;
 
 
+  // SBMLGroupsTypeCode_t 
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> One of the
+     * possible SBML component type codes.
+     * <p>
+     * LibSBML attaches an identifying code to every kind of SBML object.
+     * These are known as <em>SBML type codes</em>.  In other languages,
+     * the set of type codes is stored in an enumeration; in the Java
+     * language interface for libSBML, the type codes are defined as static
+     * integer constants in the interface class {@link libsbmlConstants}.
+     * The names of the type codes all begin with the characters
+     * <code>SBML_</code>.
+     * <p>
+     * Each libSBML extension for SBML Level 3 packages adds its own
+     * type codes to objects.  The present type code belongs to libSBML's
+     * extension to support the SBML Level 3 Groups
+     * (“groups”) package.  It is used to identify the type of
+     * SBML component to which a given object corresponds.
+     */
+    public final static int SBML_GROUPS_MEMBER = 500;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> One of the
+     * possible SBML component type codes.
+     * <p>
+     * LibSBML attaches an identifying code to every kind of SBML object.
+     * These are known as <em>SBML type codes</em>.  In other languages,
+     * the set of type codes is stored in an enumeration; in the Java
+     * language interface for libSBML, the type codes are defined as static
+     * integer constants in the interface class {@link libsbmlConstants}.
+     * The names of the type codes all begin with the characters
+     * <code>SBML_</code>.
+     * <p>
+     * Each libSBML extension for SBML Level 3 packages adds its own
+     * type codes to objects.  The present type code belongs to libSBML's
+     * extension to support the SBML Level 3 Groups
+     * (“groups”) package.  It is used to identify the type of
+     * SBML component to which a given object corresponds.
+     */
+    public final static int SBML_GROUPS_GROUP = 501;
+
+
+  // GroupKind_t 
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> One of the
+     * possible Group kinds.
+     */
+    public final static int GROUP_KIND_CLASSIFICATION = 0;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> One of the
+     * possible Group kinds.
+     */
+    public final static int GROUP_KIND_PARTONOMY = GROUP_KIND_CLASSIFICATION + 1;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> One of the
+     * possible Group kinds.
+     */
+    public final static int GROUP_KIND_COLLECTION = GROUP_KIND_PARTONOMY + 1;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> One of the
+     * possible Group kinds.
+     */
+    public final static int GROUP_KIND_UNKNOWN = GROUP_KIND_COLLECTION + 1;
+
+
+  // GroupsSBMLErrorCode_t 
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsUnknown = 4010100;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsNSUndeclared = 4010101;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsElementNotInNs = 4010102;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsDuplicateComponentId = 4010301;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsIdSyntaxRule = 4010302;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsAttributeRequiredMissing = 4020101;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsAttributeRequiredMustBeBoolean = 4020102;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsAttributeRequiredMustHaveValue = 4020103;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsModelAllowedElements = 4020201;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsModelEmptyLOElements = 4020202;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsModelLOGroupsAllowedCoreElements = 4020203;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsModelLOGroupsAllowedCoreAttributes = 4020204;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupAllowedCoreAttributes = 4020301;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupAllowedCoreElements = 4020302;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupAllowedAttributes = 4020303;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupAllowedElements = 4020304;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupKindMustBeGroupKindEnum = 4020305;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupNameMustBeString = 4020306;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupEmptyLOElements = 4020307;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupLOMembersAllowedCoreElements = 4020308;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupLOMembersAllowedCoreAttributes = 4020309;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsGroupLOMembersAllowedAttributes = 4020310;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsLOMembersNameMustBeString = 4020311;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsLOMembersConsistentReferences = 4020312;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsNotCircularReferences = 4020313;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberAllowedCoreAttributes = 4020401;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberAllowedCoreElements = 4020402;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberAllowedAttributes = 4020403;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberNameMustBeString = 4020404;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberIdRefMustBeSBase = 4020405;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberMetaIdRefMustBeSBase = 4020406;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberIdRefMustBeSId = 4020407;
+
+    /**
+     * <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+     * enumeration of all the error and warning codes generated by the
+     * libSBML “groups” extension for objects of class {@link
+     * SBMLError}.  Please consult the documentation for {@link SBMLError}
+     * for an explanation of the meaning of this particular error code.
+     */
+    public final static int GroupsMemberMetaIdRefMustBeID = 4020408;
+  
+
     // SBMLLayoutTypeCode_t
 
     /**
diff --git a/docs/src/libsbml-coding.txt b/docs/src/libsbml-coding.txt
index 3960786..395c36e 100644
--- a/docs/src/libsbml-coding.txt
+++ b/docs/src/libsbml-coding.txt
@@ -207,7 +207,10 @@ Doxygen if the file they are in is also documented.
 @li Here is a template header file suitable for use when creating a new
 <code>.h</code> file for libSBML (and in fact, it's the same for
 <code>.cpp</code> files, too).  Of course, you should substitute appropriate
-content for the text in square brackets (@c [ and @c ]) below:
+content for the text in square brackets (@c [ and @c ]) below.  Note also that
+the Doxygen keywords <code>@@file</code>, <code>@@brief</code> and
+<code>@@author</code> are @em not followed by colon ('<code>:</code>') 
+characters.
 @verbatim
 /**
  * @file    [filename]
@@ -218,7 +221,7 @@ content for the text in square brackets (@c [ and @c ]) below:
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/libsbml-csharp-example-files.txt b/docs/src/libsbml-csharp-example-files.txt
index a33fb06..e194c6b 100644
--- a/docs/src/libsbml-csharp-example-files.txt
+++ b/docs/src/libsbml-csharp-example-files.txt
@@ -127,6 +127,13 @@ Example of converting an SBML Level 3 model using the Flux
 Balance Constraints package to a COBRA-style SBML Level 2 model.
 
 
+ at subsection package-groups-examples Package: Groups
+
+ at li @ref groups_example1.cs "groups_example1.cs":
+Simple example of writing a model that uses the SBML Level 3 Groups
+package.
+
+
 @subsection package-comp-examples Package: Hierarchical Model Composition
 
 The <a href="group__comp.html">Hierarchical Model Composition</a>
diff --git a/docs/src/libsbml-example-files.txt b/docs/src/libsbml-example-files.txt
index dd0f38c..6a0a26d 100644
--- a/docs/src/libsbml-example-files.txt
+++ b/docs/src/libsbml-example-files.txt
@@ -148,6 +148,17 @@ Example of converting an SBML Level 3 model using the Flux
 Balance Constraints package to a COBRA-style SBML Level 2 model.
 
 
+ at subsection package-groups-examples Package: Groups
+
+ at li @ref groups_example1.cpp "groups_example1.cpp":
+Simple example of writing a model that uses the SBML Level 3
+Groups package.
+
+ at li @ref groups_example2.cpp "groups_example2.cpp":
+Simple example of writing a model that uses the SBML Level 3
+Groups package and also the SBML Level 3 Layout package.
+
+
 @subsection package-comp-examples Package: Hierarchical Model Composition
 
 The <a href="group__comp.html">Hierarchical Model Composition</a>
@@ -342,6 +353,14 @@ Level 3 using the Flux Balance Constraints package.
 Example of converting an SBML Level 3 model using the Flux
 Balance Constraints package to a COBRA-style SBML Level 2 model.
 
+ at example groups_example1.cpp
+Simple example of writing a model that uses the SBML Level 3
+Groups package.
+
+ at example groups_example2.cpp
+Simple example of writing a model that uses the SBML Level 3
+Groups package and also the SBML Level 3 Layout package.
+
 @example SBMLHttpResolverExample.cpp
 Example of the definition and use of an SBMLHttpResolver for working
 with SBML “comp” files.
diff --git a/docs/src/libsbml-groups.txt b/docs/src/libsbml-groups.txt
index 3eb6fec..74714bc 100644
--- a/docs/src/libsbml-groups.txt
+++ b/docs/src/libsbml-groups.txt
@@ -16,6 +16,12 @@
 
 */
 
+/** @defgroup groups Groups
+
+ at htmlinclude libsbml-group-groups-intro.html
+
+*/
+
 /** @defgroup layout Layout
 
 @htmlinclude libsbml-group-layout-intro.html
diff --git a/docs/src/libsbml-installation-guide.txt b/docs/src/libsbml-installation-guide.txt
index d2d55b5..508a330 100644
--- a/docs/src/libsbml-installation-guide.txt
+++ b/docs/src/libsbml-installation-guide.txt
@@ -14,6 +14,7 @@ yourself. For that, please follow the instructions below:
 @htmlinclude doxygen-regular-text-start.html
 - @subpage libsbml-installation
 - @subpage libsbml-accessing
+- @subpage libsbml-issues
 @htmlinclude doxygen-regular-text-end.html
 
 */
diff --git a/docs/src/libsbml-java-example-files.html b/docs/src/libsbml-java-example-files.html
index 23ec170..dcc5f1e 100644
--- a/docs/src/libsbml-java-example-files.html
+++ b/docs/src/libsbml-java-example-files.html
@@ -135,6 +135,24 @@ libSBML classes that implement this package are marked with the symbol
 </ul>
 
 
+<h3>Package: Groups</h3>
+
+<p> The <a target="_blank" 
+href="http://sbml.org/Documents/Specifications/SBML_Level_3/Packages/groups">Groups</a>
+package has the nickname “groups”.  
+The libSBML classes that implement this package are marked with 
+the symbol <span class="pkg-marker pkg-color-groups">groups</span> in 
+the libSBML documentation.
+
+<ul>
+
+  <li> <a href="examples/groups_example1.java.html"><code>groups_example1.java</code></a>:
+    Simple example of writing a model that uses the SBML Level 3 Groups
+    package.</li>
+
+</ul>
+
+
 <h3>Package: Hierarchical Model Composition</h3>
 
 <p> The <a target="_blank" 
diff --git a/docs/src/libsbml-python-example-files.txt b/docs/src/libsbml-python-example-files.txt
index 4b20d81..5ab058d 100644
--- a/docs/src/libsbml-python-example-files.txt
+++ b/docs/src/libsbml-python-example-files.txt
@@ -132,6 +132,18 @@ Example of converting an SBML Level 3 model using the Flux
 Balance Constraints package to a COBRA-style SBML Level 2 model.
 
 
+ at subsection package-groups-examples Package: Groups
+
+The <a href="group__groups.html">Groups</a>
+package has the nickname “groups”.  The libSBML classes that
+implement this package are marked with the symbol @htmlinclude
+pkg-marker-groups.html@~ in the libSBML documentation.
+
+ at li @ref groups_example1.py "groups_example1.py":
+Simple example of writing a model that uses the SBML Level 3 Groups
+package.
+
+
 @subsection package-comp-examples Package: Hierarchical Model Composition
 
 The <a href="group__comp.html">Hierarchical Model Composition</a>
diff --git a/docs/src/python-substitutions/GroupsPkgNamespaces.py b/docs/src/python-substitutions/GroupsPkgNamespaces.py
new file mode 100644
index 0000000..58cd14a
--- /dev/null
+++ b/docs/src/python-substitutions/GroupsPkgNamespaces.py
@@ -0,0 +1,72 @@
+class GroupsPkgNamespaces(SBMLNamespaces):
+    """
+    @sbmlpackage{groups}
+    
+    @htmlinclude pkg-marker-groups.html SBMLNamespaces extension for the package.
+    
+    @htmlinclude not-sbml-warning.html
+    
+    SBML Level 3 “packages” add features on top of SBML
+    Level 3 Core.  When a model definition uses an SBML package, it must
+    declare the Level and Version of SBML Core and the Version of the package
+    being used.  The package name, the SBML Level and Version, and the package
+    Version correspond uniquely to an XML namespace added to the XML encoding
+    of the SBML model.
+    
+    LibSBML Level 3 <em>extensions</em> are implementations of support
+    for SBML Level 3 packages.  Each package is implemented as a separate
+    extension.  To allow software applications to query the level and version
+    information of an extension's package implementation, libSBML uses
+    specialized object classes.  For the extension implementing the SBML
+    “groups” package, the object class is GroupsPkgNamespaces.
+    (This class is a specialization of a common base class called
+    <code>SBMLExtensionNamespaces</code> that is not exposed in the libSBML
+    programming language interfaces other than C++.)
+    
+    Objects of class GroupsPkgNamespaces can be passed to constructors of SBML
+    components defined by “groups” in order to ensure that the
+    correct component structure is created.  This is necessary because
+    different versions of an SBML Level 3 package may introduce
+    differences in the definition of the components defined by the package.
+    (For example, later editions of a package may introduce new attributes on
+    a component that are not present in earlier editions of the package
+    specification.)
+    
+    @see CompPkgNamespaces
+    @see FbcPkgNamespaces
+    @see LayoutPkgNamespaces
+    @see QualPkgNamespaces
+    """
+    def clone(self):
+        """
+        clone(GroupsPkgNamespaces self) -> GroupsPkgNamespaces
+
+        Creates and returns a deep copy of this SBMLExtensionNamespaces.
+
+        @return a (deep) copy of this SBMLExtensionNamespaces.
+
+        """
+
+    def getURI(self):
+        """
+        getURI(GroupsPkgNamespaces self) -> string
+
+        Returns a string representing the SBML XML namespace of this
+        object.
+
+        @return a string representing the SBML namespace that reflects the
+        SBML Level and Version of this object.
+
+        """
+
+    def getPackageName(self):
+        """
+        getPackageName(GroupsPkgNamespaces self) -> string
+
+        Returns the name of the main package for this namespace.
+
+        @return the name of the main package for this namespace.
+        'core' will be returned if this namespace is defined in the SBML 
+        core.
+
+        """
diff --git a/docs/src/python-substitutions/libsbml.py b/docs/src/python-substitutions/libsbml.py
index ff3a879..0bd707c 100644
--- a/docs/src/python-substitutions/libsbml.py
+++ b/docs/src/python-substitutions/libsbml.py
@@ -5169,6 +5169,13 @@ LIBSBML_MISSING_METAID = _libsbml.LIBSBML_MISSING_METAID
     ## @brief The requested action cannot be performed as the target object
     ## does not have the "metaid" attribute set.
 
+LIBSBML_DEPRECATED_ATTRIBUTE = _libsbml.LIBSBML_DEPRECATED_ATTRIBUTE
+    ## @var long LIBSBML_DEPRECATED_ATTRIBUTE
+    ## @brief The attribute that is the subject of this operation has
+    ## been deprecated for the combination of SBML Level and Version for
+    ## the underlying object.
+
+
 LIBSBML_PKG_UNKNOWN = _libsbml.LIBSBML_PKG_UNKNOWN
     ## @var long LIBSBML_PKG_UNKNOWN
     ## @brief One of the possible libSBML package operation return codes.
@@ -5967,6 +5974,84 @@ OBJECTIVE_TYPE_UNKNOWN = _libsbml.OBJECTIVE_TYPE_UNKNOWN
     ##
 
 
+    ## SBMLGroupsTypeCode_t
+
+SBML_GROUPS_MEMBER = _libsbml.SBML_GROUPS_MEMBER
+    ## @var long SBML_GROUPS_MEMBER
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> One of the
+    ## possible SBML component type codes.
+    ##
+    ## LibSBML attaches an identifying code to every kind of SBML object.
+    ## These are known as <em>SBML type codes</em>.  In other languages,
+    ## the set of type codes is stored in an enumeration; in the Java
+    ## language interface for libSBML, the type codes are defined as static
+    ## integer constants in the interface class @link libsbml libsbml at endlink.
+    ## The names of the type codes all begin with the characters
+    ## <code>SBML_</code>.
+    ##
+    ## Each libSBML extension for SBML Level 3 packages adds its own
+    ## type codes to objects.  The present type code belongs to libSBML's
+    ## extension to support the SBML Level 3 Groups
+    ## (“groups”) package.  It is used to identify the type of
+    ## SBML component to which a given object corresponds.
+
+
+SBML_GROUPS_GROUP = _libsbml.SBML_GROUPS_GROUP
+    ## @var long SBML_GROUPS_GROUP
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> One of the
+    ## possible SBML component type codes.
+    ##
+    ## LibSBML attaches an identifying code to every kind of SBML object.
+    ## These are known as <em>SBML type codes</em>.  In other languages,
+    ## the set of type codes is stored in an enumeration; in the Java
+    ## language interface for libSBML, the type codes are defined as static
+    ## integer constants in the interface class @link libsbml libsbml at endlink.
+    ## The names of the type codes all begin with the characters
+    ## <code>SBML_</code>.
+    ##
+    ## Each libSBML extension for SBML Level 3 packages adds its own
+    ## type codes to objects.  The present type code belongs to libSBML's
+    ## extension to support the SBML Level 3 Groups
+    ## (“groups”) package.  It is used to identify the type of
+    ## SBML component to which a given object corresponds.
+
+
+    ## GroupKind_t
+
+GROUP_KIND_CLASSIFICATION = _libsbml.GROUP_KIND_CLASSIFICATION
+    ## @var long GROUP_KIND_CLASSIFICATION
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> One of the
+    ## possible Group kinds.
+    ##
+
+
+GROUP_KIND_PARTONOMY = _libsbml.GROUP_KIND_PARTONOMY
+    ## @var long GROUP_KIND_PARTONOMY
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> One of the
+    ## possible Group kinds.
+    ##
+
+
+GROUP_KIND_COLLECTION = _libsbml.GROUP_KIND_COLLECTION
+    ## @var long GROUP_KIND_COLLECTION
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> One of the
+    ## possible Group kinds.
+    ##
+
+
+GROUP_KIND_UNKNOWN = _libsbml.GROUP_KIND_UNKNOWN
+    ## @var long GROUP_KIND_UNKNOWN
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> Unrecognized
+    ## Group kind.
+    ##
+
+
     ## SBMLLayoutTypeCode_t 
 
     
@@ -9121,8 +9206,340 @@ FbcGeneProductAssocSpeciesMustExist = _libsbml.FbcGeneProductAssocSpeciesMustExi
     ## for an explanation of the meaning of this particular error code.
 
 
+    ## GroupsSBMLErrorCode_t
+
+GroupsUnknown = _libsbml.GroupsUnknown
+    ## @var long GroupsUnknown
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsNSUndeclared = _libsbml.GroupsNSUndeclared
+    ## @var long GroupsNSUndeclared
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsElementNotInNs = _libsbml.GroupsElementNotInNs
+    ## @var long GroupsElementNotInNs
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsDuplicateComponentId = _libsbml.GroupsDuplicateComponentId
+    ## @var long GroupsDuplicateComponentId
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsIdSyntaxRule = _libsbml.GroupsIdSyntaxRule
+    ## @var long GroupsIdSyntaxRule
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsAttributeRequiredMissing = _libsbml.GroupsAttributeRequiredMissing
+    ## @var long GroupsAttributeRequiredMissing
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsAttributeRequiredMustBeBoolean = _libsbml.GroupsAttributeRequiredMustBeBoolean
+    ## @var long GroupsAttributeRequiredMustBeBoolean
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsAttributeRequiredMustHaveValue = _libsbml.GroupsAttributeRequiredMustHaveValue
+    ## @var long GroupsAttributeRequiredMustHaveValue
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsModelAllowedElements = _libsbml.GroupsModelAllowedElements
+    ## @var long GroupsModelAllowedElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsModelEmptyLOElements = _libsbml.GroupsModelEmptyLOElements
+    ## @var long GroupsModelEmptyLOElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsModelLOGroupsAllowedCoreElements = _libsbml.GroupsModelLOGroupsAllowedCoreElements
+    ## @var long GroupsModelLOGroupsAllowedCoreElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsModelLOGroupsAllowedCoreAttributes = _libsbml.GroupsModelLOGroupsAllowedCoreAttributes
+    ## @var long GroupsModelLOGroupsAllowedCoreAttributes
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupAllowedCoreAttributes = _libsbml.GroupsGroupAllowedCoreAttributes
+    ## @var long GroupsGroupAllowedCoreAttributes
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupAllowedCoreElements = _libsbml.GroupsGroupAllowedCoreElements
+    ## @var long GroupsGroupAllowedCoreElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupAllowedAttributes = _libsbml.GroupsGroupAllowedAttributes
+    ## @var long GroupsGroupAllowedAttributes
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupAllowedElements = _libsbml.GroupsGroupAllowedElements
+    ## @var long GroupsGroupAllowedElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupKindMustBeGroupKindEnum = _libsbml.GroupsGroupKindMustBeGroupKindEnum
+    ## @var long GroupsGroupKindMustBeGroupKindEnum
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupNameMustBeString = _libsbml.GroupsGroupNameMustBeString
+    ## @var long GroupsGroupNameMustBeString
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupEmptyLOElements = _libsbml.GroupsGroupEmptyLOElements
+    ## @var long GroupsGroupEmptyLOElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupLOMembersAllowedCoreElements = _libsbml.GroupsGroupLOMembersAllowedCoreElements
+    ## @var long GroupsGroupLOMembersAllowedCoreElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupLOMembersAllowedCoreAttributes = _libsbml.GroupsGroupLOMembersAllowedCoreAttributes
+    ## @var long GroupsGroupLOMembersAllowedCoreAttributes
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsGroupLOMembersAllowedAttributes = _libsbml.GroupsGroupLOMembersAllowedAttributes
+    ## @var long GroupsGroupLOMembersAllowedAttributes
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsLOMembersNameMustBeString = _libsbml.GroupsLOMembersNameMustBeString
+    ## @var long GroupsLOMembersNameMustBeString
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsLOMembersConsistentReferences = _libsbml.GroupsLOMembersConsistentReferences
+    ## @var long GroupsLOMembersConsistentReferences
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsNotCircularReferences = _libsbml.GroupsNotCircularReferences
+    ## @var long GroupsNotCircularReferences
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberAllowedCoreAttributes = _libsbml.GroupsMemberAllowedCoreAttributes
+    ## @var long GroupsMemberAllowedCoreAttributes
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberAllowedCoreElements = _libsbml.GroupsMemberAllowedCoreElements
+    ## @var long GroupsMemberAllowedCoreElements
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberAllowedAttributes = _libsbml.GroupsMemberAllowedAttributes
+    ## @var long GroupsMemberAllowedAttributes
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberNameMustBeString = _libsbml.GroupsMemberNameMustBeString
+    ## @var long GroupsMemberNameMustBeString
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberIdRefMustBeSBase = _libsbml.GroupsMemberIdRefMustBeSBase
+    ## @var long GroupsMemberIdRefMustBeSBase
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberMetaIdRefMustBeSBase = _libsbml.GroupsMemberMetaIdRefMustBeSBase
+    ## @var long GroupsMemberMetaIdRefMustBeSBase
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberIdRefMustBeSId = _libsbml.GroupsMemberIdRefMustBeSId
+    ## @var long GroupsMemberIdRefMustBeSId
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
+
+GroupsMemberMetaIdRefMustBeID = _libsbml.GroupsMemberMetaIdRefMustBeID
+    ## @var long GroupsMemberMetaIdRefMustBeID
+    ##
+    ## <span class="pkg-marker pkg-color-groups">groups</span> A value in the
+    ## enumeration of all the error and warning codes generated by the
+    ## libSBML “groups” extension for objects of class
+    ## SBMLError.  Please consult the documentation for  SBMLError
+    ## for an explanation of the meaning of this particular error code.
+
     ## LayoutSBMLErrorCode_t 
 
+
     
 LayoutUnknownError = _libsbml.LayoutUnknownError
     ## @var long LayoutUnknownError
diff --git a/docs/src/utilities/compare-classes.py b/docs/src/utilities/compare-classes.py
index fec96ea..057e907 100755
--- a/docs/src/utilities/compare-classes.py
+++ b/docs/src/utilities/compare-classes.py
@@ -14,7 +14,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/utilities/compare-constants.py b/docs/src/utilities/compare-constants.py
index a853c86..c9677f7 100755
--- a/docs/src/utilities/compare-constants.py
+++ b/docs/src/utilities/compare-constants.py
@@ -16,7 +16,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/utilities/generate-class-name-list.py b/docs/src/utilities/generate-class-name-list.py
index 035aec1..7f76659 100755
--- a/docs/src/utilities/generate-class-name-list.py
+++ b/docs/src/utilities/generate-class-name-list.py
@@ -16,7 +16,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/utilities/generate-converters-list.py b/docs/src/utilities/generate-converters-list.py
index 0e4b39f..7742b34 100755
--- a/docs/src/utilities/generate-converters-list.py
+++ b/docs/src/utilities/generate-converters-list.py
@@ -12,7 +12,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/utilities/generate-cplusplus-class-names.py b/docs/src/utilities/generate-cplusplus-class-names.py
index 0c60b1f..7059c3a 100755
--- a/docs/src/utilities/generate-cplusplus-class-names.py
+++ b/docs/src/utilities/generate-cplusplus-class-names.py
@@ -14,7 +14,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/docs/src/utilities/generate-extensions-summary.py b/docs/src/utilities/generate-extensions-summary.py
index a117cd6..e62d0af 100755
--- a/docs/src/utilities/generate-extensions-summary.py
+++ b/docs/src/utilities/generate-extensions-summary.py
@@ -21,7 +21,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -78,7 +78,7 @@ section_start_template = '''
 <table style="margin-top: 1.5em" border="1" width="100%" cellpadding="3" cellspacing="0" summary="">
 <tr bgcolor="#ccccff" class="TableHeadingColor">
 <th align="left" colspan="2"><font size="+2">
-<b>Extension for SBML Level 3 package '{}'</b></font></th>
+<b><a name='{0}'></a>Extension for SBML Level 3 package '{0}'</b></font></th>
 </tr>
 '''
 
diff --git a/docs/src/utilities/generate-pkg-stylesheet.py b/docs/src/utilities/generate-pkg-stylesheet.py
index d31111e..2995dae 100755
--- a/docs/src/utilities/generate-pkg-stylesheet.py
+++ b/docs/src/utilities/generate-pkg-stylesheet.py
@@ -24,7 +24,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -56,16 +56,16 @@ from libsbmlutils import find_classes
 
 color_table = [
     # Name,   red,   green,   blue
-    ['comp',  '205',   '200',   '230'],
-    ['fbc',  '190',   '230',  '215'],
-    ['layout',  '240',  '195',  '160'],
-    ['qual',  '160',   '185',  '235'],
-    ['multi',  '223',  '189',  '30'],
+    ['comp',    '205',  '200',  '230'],
+    ['fbc',     '190',  '230',  '215'],
+    ['layout',  '250',  '220',  '170'],
+    ['qual',    '160',  '185',  '235'],
+    ['multi',   '223',  '189',  '30'],
     ['groups',  '250',  '170',  '210'],
-    ['arrays',  '55',  '221',  '177'],
-    ['distrib',  '243',  '250',  '134'],
-    ['spatial',  '0',  '150',  '132'],
-    ['req',  '100',  '100',  '100'],
+    ['arrays',  '55',   '221',  '177'],
+    ['distrib', '243',  '250',  '134'],
+    ['spatial', '0',    '150',  '132'],
+    ['req',     '100',  '100',  '100'],
     ['render',  '225',  '225',  '225']
 ]
 
@@ -100,6 +100,14 @@ pkg_style_template = '''.pkg-color-{0}
 '''
 
 
+group_page_ref_template = '''{
+    font-family: "Noto Sans", Verdana, Helvetica, Arial, Sans, sans-serif !important;
+    font-weight: normal;
+    font-size: 12px;
+}
+'''
+
+
 safari_bugfix_template = '''{
     display: inline-block;
     margin-left: 0px;
@@ -122,7 +130,7 @@ after_template = '''{{
     font-size: 80%;
     font-style: italic;
     font-weight: normal;
-    line-height: 130%;
+    line-height: 100%;
     text-align: center;
     color: #333 !important;
     background-color: rgba({1}, {2}, {3}, 0.35);
@@ -131,7 +139,7 @@ after_template = '''{{
     -moz-border-radius: 5px;
     -webkit-border-radius: 5px;
     margin-left: 1em;
-    padding: 0px 3px;
+    padding: 1px 3px;
     min-width: 40px;
     width: 40px;
 }}
@@ -152,6 +160,12 @@ def main(args):
     for entry in color_table:
         print (pkg_style_template.format(entry[0], entry[1], entry[2], entry[3]))
 
+    # Next, write rules for general references to the summary pages for packages.
+    print ('/* Styles for references to the package summary pages. */\n')
+    for entry in color_table:
+        print ('p a.el[href="group__{}.html"]'.format(entry[0]))
+        print (group_page_ref_template)
+
     # Next, read the source dir to find out the L3 packages available, and
     # extract the names of the libSBML object classes in each package.
     known_pkgs = [entry[0] for entry in color_table]
@@ -177,18 +191,27 @@ def main(args):
         # http://stackoverflow.com/a/8988418/743730
         for c in classes:
             comma = (',' if c != last else '')
+            # This next format works for Javadoc version 1.6:
             print ('.FrameItemFont a[href$="{}.html"]{}'.format(c, comma))
+            # This next format works for Javadoc versions after version 1.6:
+            print ('.indexContainer a[href$="{}.html"]{}'.format(c, comma))
         print (safari_bugfix_template)
 
         # With that out of the way, we can write the real CSS.
         for c in classes:
             comma = (',' if c != last else '')
+            # This next format works for Javadoc version 1.6:
             print ('.FrameItemFont a[href$="{}.html"]:before{}'.format(c, comma))
+            # This next format works for Javadoc versions after version 1.6:
+            print ('.indexContainer a[href$="{}.html"]:before{}'.format(c, comma))
         print (before_template.format(pkg, color[1], color[2], color[3]))
 
         for c in classes:
             comma = (',' if c != last else '')
+            # This next format works for Javadoc version 1.6:
             print ('.FrameItemFont a[href$="{}.html"]:after{}'.format(c, comma))
+            # This next format works for Javadoc versions after version 1.6:
+            print ('.indexContainer a[href$="{}.html"]:after{}'.format(c, comma))
         print (after_template.format(pkg, color[1], color[2], color[3]))
 
     # A final bit of styling for Doxygen output.
diff --git a/dyn-package.cmake b/dyn-package.cmake
index 6cc3880..b8d2efc 100644
--- a/dyn-package.cmake
+++ b/dyn-package.cmake
@@ -8,7 +8,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index d98cffd..da05b43 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/CMakeLists.txt b/examples/c++/CMakeLists.txt
index 47cd574..09f20df 100644
--- a/examples/c++/CMakeLists.txt
+++ b/examples/c++/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/Makefile.in b/examples/c++/Makefile.in
index 4ccac5e..7f6148b 100644
--- a/examples/c++/Makefile.in
+++ b/examples/c++/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/addCVTerms.cpp b/examples/c++/addCVTerms.cpp
index e8e9946..d5d6b81 100644
--- a/examples/c++/addCVTerms.cpp
+++ b/examples/c++/addCVTerms.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/addCustomValidator.cpp b/examples/c++/addCustomValidator.cpp
index c27e6ff..292c171 100644
--- a/examples/c++/addCustomValidator.cpp
+++ b/examples/c++/addCustomValidator.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/addModelHistory.cpp b/examples/c++/addModelHistory.cpp
index 98ef507..047645d 100644
--- a/examples/c++/addModelHistory.cpp
+++ b/examples/c++/addModelHistory.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/addingEvidenceCodes_1.cpp b/examples/c++/addingEvidenceCodes_1.cpp
index 0cfbcb0..2733bb0 100644
--- a/examples/c++/addingEvidenceCodes_1.cpp
+++ b/examples/c++/addingEvidenceCodes_1.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/addingEvidenceCodes_2.cpp b/examples/c++/addingEvidenceCodes_2.cpp
index fa18a1e..2a8d875 100644
--- a/examples/c++/addingEvidenceCodes_2.cpp
+++ b/examples/c++/addingEvidenceCodes_2.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/appendAnnotation.cpp b/examples/c++/appendAnnotation.cpp
index 7c50ccd..6da4138 100644
--- a/examples/c++/appendAnnotation.cpp
+++ b/examples/c++/appendAnnotation.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/arrays/CMakeLists.txt b/examples/c++/arrays/CMakeLists.txt
index 15d7478..eecdac7 100644
--- a/examples/c++/arrays/CMakeLists.txt
+++ b/examples/c++/arrays/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/callExternalValidator.cpp b/examples/c++/callExternalValidator.cpp
index 2982026..d6bc2fa 100644
--- a/examples/c++/callExternalValidator.cpp
+++ b/examples/c++/callExternalValidator.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/comp/CMakeLists.txt b/examples/c++/comp/CMakeLists.txt
index 16f65c3..13caeea 100644
--- a/examples/c++/comp/CMakeLists.txt
+++ b/examples/c++/comp/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/comp/Makefile.in b/examples/c++/comp/Makefile.in
index 0f2c86b..ec5cc7f 100644
--- a/examples/c++/comp/Makefile.in
+++ b/examples/c++/comp/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/comp/SBMLHttpResolverExample.cpp b/examples/c++/comp/SBMLHttpResolverExample.cpp
index 7439d4b..50ff70f 100644
--- a/examples/c++/comp/SBMLHttpResolverExample.cpp
+++ b/examples/c++/comp/SBMLHttpResolverExample.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/comp/flattenModel.cpp b/examples/c++/comp/flattenModel.cpp
index ed7aaf4..e1943d8 100644
--- a/examples/c++/comp/flattenModel.cpp
+++ b/examples/c++/comp/flattenModel.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/comp/flattenModelAdvanced.cpp b/examples/c++/comp/flattenModelAdvanced.cpp
index 2d7ade6..99725fb 100644
--- a/examples/c++/comp/flattenModelAdvanced.cpp
+++ b/examples/c++/comp/flattenModelAdvanced.cpp
@@ -11,7 +11,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/comp/spec_example1.cpp b/examples/c++/comp/spec_example1.cpp
index 208e0b9..afe330b 100644
--- a/examples/c++/comp/spec_example1.cpp
+++ b/examples/c++/comp/spec_example1.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/comp/spec_example2.cpp b/examples/c++/comp/spec_example2.cpp
index b6ba025..52fe297 100644
--- a/examples/c++/comp/spec_example2.cpp
+++ b/examples/c++/comp/spec_example2.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/comp/spec_example3.cpp b/examples/c++/comp/spec_example3.cpp
index 1b3335e..2815ffd 100644
--- a/examples/c++/comp/spec_example3.cpp
+++ b/examples/c++/comp/spec_example3.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/comp/spec_example4.cpp b/examples/c++/comp/spec_example4.cpp
index add126d..67bac3b 100644
--- a/examples/c++/comp/spec_example4.cpp
+++ b/examples/c++/comp/spec_example4.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/convertReactions.cpp b/examples/c++/convertReactions.cpp
index 9f12b50..a06dd2c 100644
--- a/examples/c++/convertReactions.cpp
+++ b/examples/c++/convertReactions.cpp
@@ -1,107 +1,107 @@
-/**
- * @file    convertReactions.cpp
- * @brief   Loads an SBML File and converts reactions to ODEs
- * @author  Sarah Keating
- * @author  Frank T. Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This sample program is distributed under a different license than the rest
- * of libSBML.  This program uses the open-source MIT license, as follows:
- *
- * Copyright (c) 2013-2015 by the California Institute of Technology
- * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
- * and the University of Heidelberg (Germany), with support from the National
- * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Neither the name of the California Institute of Technology (Caltech), nor
- * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
- * of Heidelberg, nor the names of any contributors, may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * ------------------------------------------------------------------------ -->
- */
-
-
-#include <iostream>
-#include <sbml/SBMLTypes.h>
-#include <sbml/conversion/ConversionProperties.h>
-
-using namespace std;
-LIBSBML_CPP_NAMESPACE_USE
-
-int
-main (int argc, char *argv[])
-{
- 
-  if (argc != 3)
-  {
-    cout 
-	     << endl
-		 << "Usage: convertReactions input-filename output-filename" << endl
-	     << endl
-	     << "This program will attempt to convert all reactions" << endl
-	     << "contained in the source model, and write a new SBML file."
-	     << endl
-	     << endl;
-    return 1;
-  }
-
-  const char* inputFile   = argv[1];
-  const char* outputFile  = argv[2];
-
-  // read document 
-  SBMLDocument* document  = readSBML(inputFile);
-  unsigned int  errors    = document->getNumErrors(LIBSBML_SEV_ERROR);
-
-  // stop in case of errors
-  if (errors > 0)
-  {
-    cerr << "Encountered the following SBML errors:" << endl;
-    document->printErrors(cerr);
-    cerr << "Conversion skipped.  Please correct the problems above first."
-	 << endl;
-    return errors;
-  }
-
-  // create conversion object that identifies the function definition converter
-  ConversionProperties props;
-  props.addOption("replaceReactions", true,
-                 "Replace reactions with rateRules");
-  
-  // convert
-  int success = document->convert(props);
-
-  if (success != LIBSBML_OPERATION_SUCCESS)
-  {
-    cerr << "Unable to perform conversion due to the following:" << endl;
-    document->printErrors(cerr);
-    return errors;
-  }   
-  else
-  {
-    cout << "Conversion completed." << endl;
-    writeSBML(document, outputFile);
-  }
-
-  return 0;
-}
-
-
+/**
+ * @file    convertReactions.cpp
+ * @brief   Loads an SBML File and converts reactions to ODEs
+ * @author  Sarah Keating
+ * @author  Frank T. Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+
+#include <iostream>
+#include <sbml/SBMLTypes.h>
+#include <sbml/conversion/ConversionProperties.h>
+
+using namespace std;
+LIBSBML_CPP_NAMESPACE_USE
+
+int
+main (int argc, char *argv[])
+{
+ 
+  if (argc != 3)
+  {
+    cout 
+	     << endl
+		 << "Usage: convertReactions input-filename output-filename" << endl
+	     << endl
+	     << "This program will attempt to convert all reactions" << endl
+	     << "contained in the source model, and write a new SBML file."
+	     << endl
+	     << endl;
+    return 1;
+  }
+
+  const char* inputFile   = argv[1];
+  const char* outputFile  = argv[2];
+
+  // read document 
+  SBMLDocument* document  = readSBML(inputFile);
+  unsigned int  errors    = document->getNumErrors(LIBSBML_SEV_ERROR);
+
+  // stop in case of errors
+  if (errors > 0)
+  {
+    cerr << "Encountered the following SBML errors:" << endl;
+    document->printErrors(cerr);
+    cerr << "Conversion skipped.  Please correct the problems above first."
+	 << endl;
+    return errors;
+  }
+
+  // create conversion object that identifies the function definition converter
+  ConversionProperties props;
+  props.addOption("replaceReactions", true,
+                 "Replace reactions with rateRules");
+  
+  // convert
+  int success = document->convert(props);
+
+  if (success != LIBSBML_OPERATION_SUCCESS)
+  {
+    cerr << "Unable to perform conversion due to the following:" << endl;
+    document->printErrors(cerr);
+    return errors;
+  }   
+  else
+  {
+    cout << "Conversion completed." << endl;
+    writeSBML(document, outputFile);
+  }
+
+  return 0;
+}
+
+
diff --git a/examples/c++/convertSBML.cpp b/examples/c++/convertSBML.cpp
index cf23828..6c32620 100644
--- a/examples/c++/convertSBML.cpp
+++ b/examples/c++/convertSBML.cpp
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/convertToL1V1.cpp b/examples/c++/convertToL1V1.cpp
index 88b3ecd..1a82c15 100644
--- a/examples/c++/convertToL1V1.cpp
+++ b/examples/c++/convertToL1V1.cpp
@@ -1,122 +1,122 @@
-/**
-* @file    convertToL1V1.cpp
-* @brief   Converts SBML documents to L1 V1
-* @author  Frank Bergmann
-*
-* <!--------------------------------------------------------------------------
-* This sample program is distributed under a different license than the rest
-* of libSBML.  This program uses the open-source MIT license, as follows:
-*
-* Copyright (c) 2013-2015 by the California Institute of Technology
-* (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
-* and the University of Heidelberg (Germany), with support from the National
-* Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
-*
-* Permission is hereby granted, free of charge, to any person obtaining a
-* copy of this software and associated documentation files (the "Software"),
-* to deal in the Software without restriction, including without limitation
-* the rights to use, copy, modify, merge, publish, distribute, sublicense,
-* and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in
-* all copies or substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-* DEALINGS IN THE SOFTWARE.
-*
-* Neither the name of the California Institute of Technology (Caltech), nor
-* of the European Bioinformatics Institute (EMBL-EBI), nor of the University
-* of Heidelberg, nor the names of any contributors, may be used to endorse
-* or promote products derived from this software without specific prior
-* written permission.
-* ------------------------------------------------------------------------ -->
-*/
-
-
-#include <iostream>
-#include <vector>
-#include <map>
-#include <string>
-
-#include <sbml/SBMLTypes.h>
-#include <sbml/conversion/ConversionProperties.h>
-
-using namespace std;
-LIBSBML_CPP_NAMESPACE_USE
-
-
-int
-main (int argc, char *argv[])
-{
-
-  if (argc != 3)
-  {
-    cout << "Usage: convertToL1V1 input-filename output-filename" << endl
-      << "This program will attempt to convert a model either to" << endl
-      << "SBML Level 1 Version 1."
-      << endl;
-    return 1;
-  }
-
-  const char* inputFile   = argv[1];
-  const char* outputFile  = argv[2];
-
-  SBMLDocument* document  = readSBML(inputFile);
-  unsigned int  errors    = document->getNumErrors();
-
-  if (errors > 0)
-  {
-    cerr << "Encountered the following SBML errors:" << endl;
-    document->printErrors(cerr);
-    cerr << "Conversion skipped.  Please correct the problems above first."
-      << endl;
-    return errors;
-  }
-
-  ConversionProperties prop;
-  prop.addOption("convertToL1V1", true,
-    "convert the document to SBML Level 1 Version 1");
-  prop.addOption("changePow", true, 
-    "change pow expressions to the (^) hat notation");
-  prop.addOption("inlineCompartmentSizes", true, 
-    "if true, occurrances of compartment ids in expressions will be replaced with their initial size");
-  int conversionResult = document->convert(prop);
-
-  errors = document->getNumErrors();
-
-  if (conversionResult != LIBSBML_OPERATION_SUCCESS)
-  {
-    cerr << "Unable to perform conversion due to the following:" << endl;
-    document->printErrors(cerr);
-    cout << endl;
-    cout << "Conversion skipped.  Either libSBML does not (yet)" << endl
-      << "have the ability to convert this model or (automatic)" << endl
-      << "conversion is not possible in this case." << endl;
-
-    delete document;
-    return errors;
-  }   
-  else if (errors > 0)
-  {
-    cout << "Information may have been lost in conversion; but a valid model ";
-    cout << "was produced by the conversion.\nThe following information ";
-    cout << "was provided:\n";
-    document->printErrors(cout);
-    writeSBML(document, outputFile);
-  }
-  else
-  {
-    cout << "Conversion completed." << endl;
-    writeSBML(document, outputFile);
-  }
-
-  delete document;
-  return 0;
-}
-
+/**
+* @file    convertToL1V1.cpp
+* @brief   Converts SBML documents to L1 V1
+* @author  Frank Bergmann
+*
+* <!--------------------------------------------------------------------------
+* This sample program is distributed under a different license than the rest
+* of libSBML.  This program uses the open-source MIT license, as follows:
+*
+* Copyright (c) 2013-2016 by the California Institute of Technology
+* (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+* and the University of Heidelberg (Germany), with support from the National
+* Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+*
+* Permission is hereby granted, free of charge, to any person obtaining a
+* copy of this software and associated documentation files (the "Software"),
+* to deal in the Software without restriction, including without limitation
+* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+* and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in
+* all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+* DEALINGS IN THE SOFTWARE.
+*
+* Neither the name of the California Institute of Technology (Caltech), nor
+* of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+* of Heidelberg, nor the names of any contributors, may be used to endorse
+* or promote products derived from this software without specific prior
+* written permission.
+* ------------------------------------------------------------------------ -->
+*/
+
+
+#include <iostream>
+#include <vector>
+#include <map>
+#include <string>
+
+#include <sbml/SBMLTypes.h>
+#include <sbml/conversion/ConversionProperties.h>
+
+using namespace std;
+LIBSBML_CPP_NAMESPACE_USE
+
+
+int
+main (int argc, char *argv[])
+{
+
+  if (argc != 3)
+  {
+    cout << "Usage: convertToL1V1 input-filename output-filename" << endl
+      << "This program will attempt to convert a model either to" << endl
+      << "SBML Level 1 Version 1."
+      << endl;
+    return 1;
+  }
+
+  const char* inputFile   = argv[1];
+  const char* outputFile  = argv[2];
+
+  SBMLDocument* document  = readSBML(inputFile);
+  unsigned int  errors    = document->getNumErrors();
+
+  if (errors > 0)
+  {
+    cerr << "Encountered the following SBML errors:" << endl;
+    document->printErrors(cerr);
+    cerr << "Conversion skipped.  Please correct the problems above first."
+      << endl;
+    return errors;
+  }
+
+  ConversionProperties prop;
+  prop.addOption("convertToL1V1", true,
+    "convert the document to SBML Level 1 Version 1");
+  prop.addOption("changePow", true, 
+    "change pow expressions to the (^) hat notation");
+  prop.addOption("inlineCompartmentSizes", true, 
+    "if true, occurrances of compartment ids in expressions will be replaced with their initial size");
+  int conversionResult = document->convert(prop);
+
+  errors = document->getNumErrors();
+
+  if (conversionResult != LIBSBML_OPERATION_SUCCESS)
+  {
+    cerr << "Unable to perform conversion due to the following:" << endl;
+    document->printErrors(cerr);
+    cout << endl;
+    cout << "Conversion skipped.  Either libSBML does not (yet)" << endl
+      << "have the ability to convert this model or (automatic)" << endl
+      << "conversion is not possible in this case." << endl;
+
+    delete document;
+    return errors;
+  }   
+  else if (errors > 0)
+  {
+    cout << "Information may have been lost in conversion; but a valid model ";
+    cout << "was produced by the conversion.\nThe following information ";
+    cout << "was provided:\n";
+    document->printErrors(cout);
+    writeSBML(document, outputFile);
+  }
+  else
+  {
+    cout << "Conversion completed." << endl;
+    writeSBML(document, outputFile);
+  }
+
+  delete document;
+  return 0;
+}
+
diff --git a/examples/c++/createExampleSBML.cpp b/examples/c++/createExampleSBML.cpp
index 1238777..feadb6a 100644
--- a/examples/c++/createExampleSBML.cpp
+++ b/examples/c++/createExampleSBML.cpp
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/dyn/CMakeLists.txt b/examples/c++/dyn/CMakeLists.txt
index 3b47048..706db94 100644
--- a/examples/c++/dyn/CMakeLists.txt
+++ b/examples/c++/dyn/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/dyn/dyn_example1.cpp b/examples/c++/dyn/dyn_example1.cpp
index b3fcd97..d09d392 100644
--- a/examples/c++/dyn/dyn_example1.cpp
+++ b/examples/c++/dyn/dyn_example1.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/dyn/dyn_example2.cpp b/examples/c++/dyn/dyn_example2.cpp
index 97fc814..fd90b0d 100644
--- a/examples/c++/dyn/dyn_example2.cpp
+++ b/examples/c++/dyn/dyn_example2.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/echoSBML.cpp b/examples/c++/echoSBML.cpp
index dedc270..8edad5b 100644
--- a/examples/c++/echoSBML.cpp
+++ b/examples/c++/echoSBML.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/fbc/CMakeLists.txt b/examples/c++/fbc/CMakeLists.txt
index 8aa384e..ebee64d 100644
--- a/examples/c++/fbc/CMakeLists.txt
+++ b/examples/c++/fbc/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/fbc/Makefile.in b/examples/c++/fbc/Makefile.in
index 9f9f1f7..0fa97f0 100644
--- a/examples/c++/fbc/Makefile.in
+++ b/examples/c++/fbc/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/fbc/convertCobraToFbc.cpp b/examples/c++/fbc/convertCobraToFbc.cpp
index 1f55188..3b72938 100644
--- a/examples/c++/fbc/convertCobraToFbc.cpp
+++ b/examples/c++/fbc/convertCobraToFbc.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/fbc/convertFbcToCobra.cpp b/examples/c++/fbc/convertFbcToCobra.cpp
index 1a0f3e7..3aabd74 100644
--- a/examples/c++/fbc/convertFbcToCobra.cpp
+++ b/examples/c++/fbc/convertFbcToCobra.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/fbc/convertFbcV1ToV2.cpp b/examples/c++/fbc/convertFbcV1ToV2.cpp
index ef5c720..dadb54b 100644
--- a/examples/c++/fbc/convertFbcV1ToV2.cpp
+++ b/examples/c++/fbc/convertFbcV1ToV2.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/fbc/convertFbcV2ToV1.cpp b/examples/c++/fbc/convertFbcV2ToV1.cpp
index b49e238..2aced1f 100644
--- a/examples/c++/fbc/convertFbcV2ToV1.cpp
+++ b/examples/c++/fbc/convertFbcV2ToV1.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/fbc/fbc_example1.cpp b/examples/c++/fbc/fbc_example1.cpp
index 3fd2a36..9a77b01 100644
--- a/examples/c++/fbc/fbc_example1.cpp
+++ b/examples/c++/fbc/fbc_example1.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/getAllElementsWithNotes.cpp b/examples/c++/getAllElementsWithNotes.cpp
index e803064..65a4a73 100644
--- a/examples/c++/getAllElementsWithNotes.cpp
+++ b/examples/c++/getAllElementsWithNotes.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/groups/CMakeLists.txt b/examples/c++/groups/CMakeLists.txt
index af75d19..21e74b0 100644
--- a/examples/c++/groups/CMakeLists.txt
+++ b/examples/c++/groups/CMakeLists.txt
@@ -16,8 +16,8 @@ endif(EXTRA_INCLUDE_DIRS)
 
 foreach(example 
 
-	example1
-	example2
+	groups_example1
+	groups_example2
 	
 )
 	add_executable(example_groups_cpp_${example} ${example}.cpp ../util.c)
diff --git a/examples/c++/groups/example1.cpp b/examples/c++/groups/example1.cpp
deleted file mode 100644
index e348328..0000000
--- a/examples/c++/groups/example1.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * @file    example1.cpp
- * @brief   SBML Groups example
- * @author  Akiya Jouraku
- *
- * $Id: example1.cpp 13540 2011-04-08 22:12:58Z fbergmann $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/examples/groups/example1.cpp $
- *
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- */
-
-#include "sbml/SBMLTypes.h"
-#include "sbml/packages/groups/common/GroupsExtensionTypes.h"
-
-LIBSBML_CPP_NAMESPACE_USE
-
-int main(int argc,char** argv){
-
-//
-// Creates an SBMLNamespaces object with the given SBML level, version
-// package name, package version.
-//
-// (NOTE) By defualt, the name of package (i.e. "groups") will be used
-// if the arugment for the prefix is missing or empty. Thus the argument
-// for the prefix can be added as follows:
-//
-//    SBMLNamespaces sbmlns(3,1,"groups",1,"GROUP");
-//
-
-SBMLNamespaces sbmlns(3,1,"groups",1);
-
-//
-// (NOTES) The above code creating an SBMLNamespaces object can be replaced 
-//         with one of the following other styles.
-//
-// (1) Creates an SBMLNamespace object with a SBML core namespace and then
-//     adds a groups package namespace to the object. 
-//
-//         SBMLNamespaces sbmlns(3,1);
-//         sbmlns.addPkgNamespace("groups",1);
-//
-//          OR
-//
-//         SBMLNamespaces sbmlns(3,1);
-//         sbmlns.addNamespace(GroupsExtension::XmlnsL3V1V1,"groups");
-//
-// (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
-//     groups package. The class is basically used for createing an SBase derived
-//     objects defined in the groups package) with the given SBML level, version, 
-//     and package version
-//
-//        GroupsPkgNamespaces sbmlns(3,1,1);
-//     
-
-
-// create the document
-
-SBMLDocument *document = new SBMLDocument(&sbmlns);
-
-// create the Model
-
-Model* model=document->createModel();
-
-// create the Compartment
-
-Compartment* compartment = model->createCompartment();
-compartment->setId("cytosol");
-compartment->setConstant(true);
-
-compartment=model->createCompartment();
-compartment->setId("mitochon");
-compartment->setConstant(true);
-
-// create the Species
-
-Species* species = model->createSpecies();
-species->setId("ATPc");
-species->setCompartment("cytosol");
-species->setInitialConcentration(1);
-species->setHasOnlySubstanceUnits(false);
-species->setBoundaryCondition(false);
-species->setConstant(false);
-
-species = model->createSpecies();
-species->setId("ATPm");
-species->setCompartment("mitochon");
-species->setInitialConcentration(2);
-species->setHasOnlySubstanceUnits(false);
-species->setBoundaryCondition(false);
-species->setConstant(false);
-
-// create the Groups
-
-//
-// Get a GroupsModelPlugin object plugged in the model object.
-//
-// The type of the returned value of SBase::getPlugin() function is SBasePlugin*, and
-// thus the value needs to be casted for the corresponding derived class. 
-//
-GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
-
-//
-// Creates a Group object via GroupsModelPlugin object.
-//
-Group* group = mplugin->createGroup();
-
-group->setId("ATP");
-group->setKind(GROUP_KIND_CLASSIFICATION);
-group->setSBOTerm("SBO:0000252");
-
-Member* member = group->createMember();
-member->setIdRef("ATPc");
-
-member = group->createMember();
-member->setIdRef("ATPm");
-
-writeSBML(document,"groups_example1.xml");
-delete document;
-
-}
diff --git a/examples/c++/groups/example2.cpp b/examples/c++/groups/example2.cpp
deleted file mode 100644
index 1eac599..0000000
--- a/examples/c++/groups/example2.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-/**
- * @file    example2.cpp
- * @brief   SBML Groups/Layout example
- * @author  Ralph Gauges
- * @author  Akiya Jouraku (Modified for layout and groups extensions in libSBML 5)
- *
- */
-/* 
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *  
- * Copyright 2004 European Media Laboratories Research gGmbH
- */
-
-
-#include "sbml/SBMLTypes.h"
-#include "sbml/packages/layout/common/LayoutExtensionTypes.h"
-#include "sbml/packages/groups/common/GroupsExtensionTypes.h"
-
-LIBSBML_CPP_NAMESPACE_USE
-
-int main(int argc,char** argv){
-
-//
-// set the SBMLNamespaces with Layout Level 3 Version 1 Package Version1
-// and Groups Level 3 Version 1 Package Version 1
-//
-SBMLNamespaces sbmlns(3,1);
-sbmlns.addPkgNamespace("layout",1);
-sbmlns.addPkgNamespace("groups",1);
-
-//
-// (NOTES) The above code creating an SBMLNamespaces object can be replaced 
-//         with one of the following other styles.
-//
-// (1) Creates an SBMLNamespace object with the given SBML level, version,
-//     and one of pakage names, packge version, and then adds a namespace
-//     of another package to the object. 
-//
-//         SBMLNamespaces sbmlns(3,1,"layout",1);
-//         sbmlns.addPkgNamespace("groups",1);
-//
-//        OR
-//
-//         SBMLNamespaces sbmlns(3,1,"groups",1);
-//         sbmlns.addPkgNamespace("layout",1);
-//
-// (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
-//     groups package. The class is basically used for createing an SBase derived
-//     objects defined in the groups package) with the given SBML level, version, 
-//     and package version and then adds a namespace of another package to the object.
-//
-//        GroupsPkgNamespaces sbmlns(3,1,1);
-//        sbmlns.addPkgNamespace("layout",1);
-//
-// (3) Creates a LayoutPkgNamespaces object (SBMLNamespace derived class for
-//     layout package. The class is basically used for createing an SBase derived
-//     objects defined in the layout package) with the given SBML level, version, 
-//     and package version and then adds a namespace of another package to the object.
-//
-//        LayoutPkgNamespaces sbmlns(3,1,1);
-//        sbmlns.addPkgNamespace("groups",1);
-//     
-
-
-// create the document
-
-SBMLDocument *document=new SBMLDocument(&sbmlns);
-
-// create the Model
-
-Model* model=document->createModel();
-model->setId("TestModel");
-document->setModel(model);
-
-
-// create the Compartment
-
-Compartment* compartment=model->createCompartment();
-compartment->setId("Compartment_1");
-compartment->setConstant(true);
-
-// create the Species
-
-Species* species1=model->createSpecies();
-species1->setId("Species_1");
-species1->setCompartment(compartment->getId());
-species1->setHasOnlySubstanceUnits(false);
-species1->setBoundaryCondition(false);
-species1->setConstant(false);
-
-Species* species2=model->createSpecies();
-species2->setId("Species_2");
-species2->setCompartment(compartment->getId());
-species2->setHasOnlySubstanceUnits(false);
-species2->setBoundaryCondition(false);
-species2->setConstant(false);
-
-// create the Reactions
-
-Reaction* reaction1=model->createReaction();
-reaction1->setId("Reaction_1");
-reaction1->setReversible(false);
-reaction1->setFast(false);
-
-SpeciesReference* reference1=reaction1->createReactant();
-reference1->setSpecies(species1->getId());
-reference1->setId("SpeciesReference_1");
-reference1->setConstant(false);
-
-
-SpeciesReference* reference2=reaction1->createProduct();
-reference2->setSpecies(species2->getId());
-reference2->setId("SpeciesReference_2");
-reference2->setConstant(false);
-
-Reaction* reaction2=model->createReaction();
-reaction2->setId("Reaction_2");
-reaction2->setReversible(false);
-reaction2->setFast(false);
-
-
-SpeciesReference* reference3=reaction2->createReactant();
-reference3->setSpecies(species2->getId());
-reference3->setId("SpeciesReference_3");
-reference3->setConstant(false);
-
-SpeciesReference* reference4=reaction2->createProduct();
-reference4->setSpecies(species1->getId());
-reference4->setId("SpeciesReference_4");
-reference4->setConstant(false);
-
-
-// create the Layout
-
-LayoutPkgNamespaces layoutns(3,1,1);
-
-//
-// The type of the returned value of SBase::getPlugin() function is SBasePlugin*, and
-// thus the value needs to be casted for the corresponding derived class.
-//
-LayoutModelPlugin* mpluginLayout = static_cast<LayoutModelPlugin*>(model->getPlugin("layout"));
-Layout* layout=mpluginLayout->createLayout();
-
-layout->setId("Layout_1");
-Dimensions dim(&layoutns, 400.0,220.0);
-layout->setDimensions(&dim);
-
-
-// create the CompartmentGlyph
-
-CompartmentGlyph* compartmentGlyph=layout->createCompartmentGlyph();
-compartmentGlyph->setId("CompartmentGlyph_1");
-compartmentGlyph->setCompartmentId(compartment->getId());
-BoundingBox bb(&layoutns, "bb1",5,5,390,210);
-compartmentGlyph->setBoundingBox(&bb);
-
-
-// create the SpeciesGlyphs
-
-SpeciesGlyph* speciesGlyph1=layout->createSpeciesGlyph();
-speciesGlyph1->setId("SpeciesGlyph_1");
-speciesGlyph1->setSpeciesId(species1->getId());
-bb=BoundingBox(&layoutns, "bb2",80,26,240,24);
-speciesGlyph1->setBoundingBox(&bb);
-
-TextGlyph* textGlyph1=layout->createTextGlyph();
-textGlyph1->setId("TextGlyph_01");
-bb=BoundingBox(&layoutns, "bbA",92,26,228,24);
-textGlyph1->setBoundingBox(&bb);
-textGlyph1->setOriginOfTextId(speciesGlyph1->getId());
-textGlyph1->setGraphicalObjectId(speciesGlyph1->getId());
-
-SpeciesGlyph* speciesGlyph2=layout->createSpeciesGlyph();
-speciesGlyph2->setId("SpeciesGlyph_2");
-speciesGlyph2->setSpeciesId(species2->getId());
-bb=BoundingBox(&layoutns, "bb3",80,170,240,24);
-speciesGlyph2->setBoundingBox(&bb);
-
-TextGlyph* textGlyph2=layout->createTextGlyph();
-textGlyph2->setId("TextGlyph_02");
-bb=BoundingBox(&layoutns, "bbB",92,170,228,24);
-textGlyph2->setBoundingBox(&bb);
-textGlyph2->setOriginOfTextId(speciesGlyph2->getId());
-textGlyph2->setGraphicalObjectId(speciesGlyph2->getId());
-
-// create the ReactionGlyphs
-
-ReactionGlyph* reactionGlyph1=layout->createReactionGlyph();
-reactionGlyph1->setId("ReactionGlyph_1");
-reactionGlyph1->setReactionId(reaction1->getId());
-
-Curve* reactionCurve1=reactionGlyph1->getCurve();
-LineSegment* ls=reactionCurve1->createLineSegment();
-Point p(&layoutns,165,105);
-ls->setStart(&p);
-p=Point(&layoutns,165,115);
-ls->setEnd(&p);
-
-ReactionGlyph* reactionGlyph2=layout->createReactionGlyph();
-reactionGlyph2->setId("ReactionGlyph_1");
-reactionGlyph2->setReactionId(reaction2->getId());
-
-Curve* reactionCurve2=reactionGlyph2->getCurve();
-ls=reactionCurve2->createLineSegment();
-p=Point(&layoutns,235,105);
-ls->setStart(&p);
-p=Point(&layoutns,235,115);
-ls->setEnd(&p);
-
-// add the SpeciesReferenceGlyphs
-
-SpeciesReferenceGlyph* speciesReferenceGlyph1=reactionGlyph1->createSpeciesReferenceGlyph();
-speciesReferenceGlyph1->setId("SpeciesReferenceGlyph_1");
-speciesReferenceGlyph1->setSpeciesGlyphId(speciesGlyph1->getId());
-speciesReferenceGlyph1->setSpeciesReferenceId(reference1->getId());
-speciesReferenceGlyph1->setRole(SPECIES_ROLE_SUBSTRATE);
-
-Curve* speciesReferenceCurve1=speciesReferenceGlyph1->getCurve();
-CubicBezier* cb=speciesReferenceCurve1->createCubicBezier();
-p=Point(&layoutns,165,105);
-cb->setStart(&p);
-p=Point(&layoutns,165,90);
-cb->setBasePoint1(&p);
-p=Point(&layoutns,165,90);
-cb->setBasePoint2(&p);
-p=Point(&layoutns,195,60);
-cb->setEnd(&p);
-
-SpeciesReferenceGlyph* speciesReferenceGlyph2=reactionGlyph1->createSpeciesReferenceGlyph();
-speciesReferenceGlyph2->setId("SpeciesReferenceGlyph_2");
-speciesReferenceGlyph2->setSpeciesGlyphId(speciesGlyph2->getId());
-speciesReferenceGlyph2->setSpeciesReferenceId(reference2->getId());
-speciesReferenceGlyph2->setRole(SPECIES_ROLE_PRODUCT);
-
-Curve* speciesReferenceCurve2=speciesReferenceGlyph2->getCurve();
-cb=speciesReferenceCurve2->createCubicBezier();
-p=Point(&layoutns,165,115);
-cb->setStart(&p);
-p=Point(&layoutns,165,130);
-cb->setBasePoint1(&p);
-p=Point(&layoutns,165,130);
-cb->setBasePoint2(&p);
-p=Point(&layoutns,195,160);
-cb->setEnd(&p);
-
-
-SpeciesReferenceGlyph* speciesReferenceGlyph3=reactionGlyph2->createSpeciesReferenceGlyph();
-speciesReferenceGlyph3->setId("SpeciesReferenceGlyph_3");
-speciesReferenceGlyph3->setSpeciesGlyphId(speciesGlyph2->getId());
-speciesReferenceGlyph3->setSpeciesReferenceId(reference3->getId());
-speciesReferenceGlyph3->setRole(SPECIES_ROLE_SUBSTRATE);
-
-Curve* speciesReferenceCurve3=speciesReferenceGlyph3->getCurve();
-cb=speciesReferenceCurve3->createCubicBezier();
-p=Point(&layoutns,235,115);
-cb->setStart(&p);
-p=Point(&layoutns,235,130);
-cb->setBasePoint1(&p);
-p=Point(&layoutns,235,130);
-cb->setBasePoint2(&p);
-p=Point(&layoutns,205,160);
-cb->setEnd(&p);
-
-SpeciesReferenceGlyph* speciesReferenceGlyph4=reactionGlyph2->createSpeciesReferenceGlyph();
-speciesReferenceGlyph4->setId("SpeciesReferenceGlyph_4");
-speciesReferenceGlyph4->setSpeciesGlyphId(speciesGlyph1->getId());
-speciesReferenceGlyph4->setSpeciesReferenceId(reference4->getId());
-speciesReferenceGlyph4->setRole(SPECIES_ROLE_PRODUCT);
-
-Curve* speciesReferenceCurve4=speciesReferenceGlyph4->getCurve();
-cb=speciesReferenceCurve4->createCubicBezier();
-p=Point(&layoutns,235,105);
-cb->setStart(&p);
-p=Point(&layoutns,235,90);
-cb->setBasePoint1(&p);
-p=Point(&layoutns,235,90);
-cb->setBasePoint2(&p);
-p=Point(&layoutns,205,60);
-cb->setEnd(&p);
-
-//
-// Create Group
-//
-
-//
-// Get a GroupsModelPlugin object plugged in the model object.
-//
-// The type of the returned value of SBase::getPlugin() function is SBasePlugin*, and
-// thus the value needs to be casted for the corresponding derived class.
-//
-GroupsModelPlugin* mpluginGroups = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
-
-//
-// Creates a Group object via GroupsModelPlugin object.
-//
-Group* group = mpluginGroups->createGroup();
-
-group->setId("role_substrate");
-group->setKind(GROUP_KIND_CLASSIFICATION);
-
-Member* member = group->createMember();
-member->setIdRef("SpeciesReferenceGlyph_1");
-
-member = group->createMember();
-member->setIdRef("SpeciesReferenceGlyph_3");
-
-group = mpluginGroups->createGroup();
-group->setId("role_product");
-
-member = group->createMember();
-member->setIdRef("SpeciesReferenceGlyph_2");
-
-member = group->createMember();
-member->setIdRef("SpeciesReferenceGlyph_4");
-
-
-writeSBML(document,"groups_example2.xml");
-delete document;
-
-}
diff --git a/examples/c++/groups/groups_example1.cpp b/examples/c++/groups/groups_example1.cpp
new file mode 100644
index 0000000..2883e37
--- /dev/null
+++ b/examples/c++/groups/groups_example1.cpp
@@ -0,0 +1,122 @@
+/**
+ * @file    example1.cpp
+ * @brief   SBML Groups example
+ * @author  Akiya Jouraku
+ *
+ * $Id: example1.cpp 13540 2011-04-08 22:12:58Z fbergmann $
+ * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/examples/groups/example1.cpp $
+ *
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ */
+
+#include "sbml/SBMLTypes.h"
+#include "sbml/packages/groups/common/GroupsExtensionTypes.h"
+
+LIBSBML_CPP_NAMESPACE_USE
+
+int main(int argc,char** argv){
+
+//
+// Creates an SBMLNamespaces object with the given SBML level, version
+// package name, package version.
+//
+// (NOTE) By defualt, the name of package (i.e. "groups") will be used
+// if the arugment for the prefix is missing or empty. Thus the argument
+// for the prefix can be added as follows:
+//
+//    SBMLNamespaces sbmlns(3,1,"groups",1,"GROUP");
+//
+
+SBMLNamespaces sbmlns(3,1,"groups",1);
+
+//
+// (NOTES) The above code creating an SBMLNamespaces object can be replaced 
+//         with one of the following other styles.
+//
+// (1) Creates an SBMLNamespace object with a SBML core namespace and then
+//     adds a groups package namespace to the object. 
+//
+//         SBMLNamespaces sbmlns(3,1);
+//         sbmlns.addPkgNamespace("groups",1);
+//
+//          OR
+//
+//         SBMLNamespaces sbmlns(3,1);
+//         sbmlns.addNamespace(GroupsExtension::XmlnsL3V1V1,"groups");
+//
+// (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
+//     groups package. The class is basically used for createing an SBase derived
+//     objects defined in the groups package) with the given SBML level, version, 
+//     and package version
+//
+//        GroupsPkgNamespaces sbmlns(3,1,1);
+//     
+
+
+// create the document
+
+SBMLDocument *document = new SBMLDocument(&sbmlns);
+document->setPackageRequired("groups", false);
+
+// create the Model
+
+Model* model=document->createModel();
+
+// create the Compartment
+
+Compartment* compartment = model->createCompartment();
+compartment->setId("cytosol");
+compartment->setConstant(true);
+
+compartment=model->createCompartment();
+compartment->setId("mitochon");
+compartment->setConstant(true);
+
+// create the Species
+
+Species* species = model->createSpecies();
+species->setId("ATPc");
+species->setCompartment("cytosol");
+species->setInitialConcentration(1);
+species->setHasOnlySubstanceUnits(false);
+species->setBoundaryCondition(false);
+species->setConstant(false);
+
+species = model->createSpecies();
+species->setId("ATPm");
+species->setCompartment("mitochon");
+species->setInitialConcentration(2);
+species->setHasOnlySubstanceUnits(false);
+species->setBoundaryCondition(false);
+species->setConstant(false);
+
+// create the Groups
+
+//
+// Get a GroupsModelPlugin object plugged in the model object.
+//
+// The type of the returned value of SBase::getPlugin() function is SBasePlugin*, and
+// thus the value needs to be casted for the corresponding derived class. 
+//
+GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+
+//
+// Creates a Group object via GroupsModelPlugin object.
+//
+Group* group = mplugin->createGroup();
+
+group->setId("ATP");
+group->setKind(GROUP_KIND_CLASSIFICATION);
+group->setSBOTerm("SBO:0000252");
+
+Member* member = group->createMember();
+member->setIdRef("ATPc");
+
+member = group->createMember();
+member->setIdRef("ATPm");
+
+writeSBML(document,"groups_example1.xml");
+delete document;
+
+}
diff --git a/examples/c++/groups/groups_example2.cpp b/examples/c++/groups/groups_example2.cpp
new file mode 100644
index 0000000..7be66b9
--- /dev/null
+++ b/examples/c++/groups/groups_example2.cpp
@@ -0,0 +1,323 @@
+/**
+ * @file    example2.cpp
+ * @brief   SBML Groups/Layout example
+ * @author  Ralph Gauges
+ * @author  Akiya Jouraku (Modified for layout and groups extensions in libSBML 5)
+ *
+ */
+/* 
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *  
+ * Copyright 2004 European Media Laboratories Research gGmbH
+ */
+
+
+#include "sbml/SBMLTypes.h"
+#include "sbml/packages/layout/common/LayoutExtensionTypes.h"
+#include "sbml/packages/groups/common/GroupsExtensionTypes.h"
+
+LIBSBML_CPP_NAMESPACE_USE
+
+int main(int argc,char** argv){
+
+//
+// set the SBMLNamespaces with Layout Level 3 Version 1 Package Version1
+// and Groups Level 3 Version 1 Package Version 1
+//
+SBMLNamespaces sbmlns(3,1);
+sbmlns.addPkgNamespace("layout",1);
+sbmlns.addPkgNamespace("groups",1);
+
+//
+// (NOTES) The above code creating an SBMLNamespaces object can be replaced 
+//         with one of the following other styles.
+//
+// (1) Creates an SBMLNamespace object with the given SBML level, version,
+//     and one of pakage names, packge version, and then adds a namespace
+//     of another package to the object. 
+//
+//         SBMLNamespaces sbmlns(3,1,"layout",1);
+//         sbmlns.addPkgNamespace("groups",1);
+//
+//        OR
+//
+//         SBMLNamespaces sbmlns(3,1,"groups",1);
+//         sbmlns.addPkgNamespace("layout",1);
+//
+// (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
+//     groups package. The class is basically used for createing an SBase derived
+//     objects defined in the groups package) with the given SBML level, version, 
+//     and package version and then adds a namespace of another package to the object.
+//
+//        GroupsPkgNamespaces sbmlns(3,1,1);
+//        sbmlns.addPkgNamespace("layout",1);
+//
+// (3) Creates a LayoutPkgNamespaces object (SBMLNamespace derived class for
+//     layout package. The class is basically used for createing an SBase derived
+//     objects defined in the layout package) with the given SBML level, version, 
+//     and package version and then adds a namespace of another package to the object.
+//
+//        LayoutPkgNamespaces sbmlns(3,1,1);
+//        sbmlns.addPkgNamespace("groups",1);
+//     
+
+
+// create the document
+
+SBMLDocument *document=new SBMLDocument(&sbmlns);
+document->setPackageRequired("groups", false);
+document->setPackageRequired("layout", false);
+
+// create the Model
+
+Model* model=document->createModel();
+model->setId("TestModel");
+document->setModel(model);
+
+
+// create the Compartment
+
+Compartment* compartment=model->createCompartment();
+compartment->setId("Compartment_1");
+compartment->setConstant(true);
+
+// create the Species
+
+Species* species1=model->createSpecies();
+species1->setId("Species_1");
+species1->setCompartment(compartment->getId());
+species1->setHasOnlySubstanceUnits(false);
+species1->setBoundaryCondition(false);
+species1->setConstant(false);
+
+Species* species2=model->createSpecies();
+species2->setId("Species_2");
+species2->setCompartment(compartment->getId());
+species2->setHasOnlySubstanceUnits(false);
+species2->setBoundaryCondition(false);
+species2->setConstant(false);
+
+// create the Reactions
+
+Reaction* reaction1=model->createReaction();
+reaction1->setId("Reaction_1");
+reaction1->setReversible(false);
+reaction1->setFast(false);
+
+SpeciesReference* reference1=reaction1->createReactant();
+reference1->setSpecies(species1->getId());
+reference1->setId("SpeciesReference_1");
+reference1->setConstant(false);
+
+
+SpeciesReference* reference2=reaction1->createProduct();
+reference2->setSpecies(species2->getId());
+reference2->setId("SpeciesReference_2");
+reference2->setConstant(false);
+
+Reaction* reaction2=model->createReaction();
+reaction2->setId("Reaction_2");
+reaction2->setReversible(false);
+reaction2->setFast(false);
+
+
+SpeciesReference* reference3=reaction2->createReactant();
+reference3->setSpecies(species2->getId());
+reference3->setId("SpeciesReference_3");
+reference3->setConstant(false);
+
+SpeciesReference* reference4=reaction2->createProduct();
+reference4->setSpecies(species1->getId());
+reference4->setId("SpeciesReference_4");
+reference4->setConstant(false);
+
+
+// create the Layout
+
+LayoutPkgNamespaces layoutns(3,1,1);
+
+//
+// The type of the returned value of SBase::getPlugin() function is SBasePlugin*, and
+// thus the value needs to be casted for the corresponding derived class.
+//
+LayoutModelPlugin* mpluginLayout = static_cast<LayoutModelPlugin*>(model->getPlugin("layout"));
+Layout* layout=mpluginLayout->createLayout();
+
+layout->setId("Layout_1");
+Dimensions dim(&layoutns, 400.0,220.0);
+layout->setDimensions(&dim);
+
+
+// create the CompartmentGlyph
+
+CompartmentGlyph* compartmentGlyph=layout->createCompartmentGlyph();
+compartmentGlyph->setId("CompartmentGlyph_1");
+compartmentGlyph->setCompartmentId(compartment->getId());
+BoundingBox bb(&layoutns, "bb1",5,5,390,210);
+compartmentGlyph->setBoundingBox(&bb);
+
+
+// create the SpeciesGlyphs
+
+SpeciesGlyph* speciesGlyph1=layout->createSpeciesGlyph();
+speciesGlyph1->setId("SpeciesGlyph_1");
+speciesGlyph1->setSpeciesId(species1->getId());
+bb=BoundingBox(&layoutns, "bb2",80,26,240,24);
+speciesGlyph1->setBoundingBox(&bb);
+
+TextGlyph* textGlyph1=layout->createTextGlyph();
+textGlyph1->setId("TextGlyph_01");
+bb=BoundingBox(&layoutns, "bbA",92,26,228,24);
+textGlyph1->setBoundingBox(&bb);
+textGlyph1->setOriginOfTextId(speciesGlyph1->getId());
+textGlyph1->setGraphicalObjectId(speciesGlyph1->getId());
+
+SpeciesGlyph* speciesGlyph2=layout->createSpeciesGlyph();
+speciesGlyph2->setId("SpeciesGlyph_2");
+speciesGlyph2->setSpeciesId(species2->getId());
+bb=BoundingBox(&layoutns, "bb3",80,170,240,24);
+speciesGlyph2->setBoundingBox(&bb);
+
+TextGlyph* textGlyph2=layout->createTextGlyph();
+textGlyph2->setId("TextGlyph_02");
+bb=BoundingBox(&layoutns, "bbB",92,170,228,24);
+textGlyph2->setBoundingBox(&bb);
+textGlyph2->setOriginOfTextId(speciesGlyph2->getId());
+textGlyph2->setGraphicalObjectId(speciesGlyph2->getId());
+
+// create the ReactionGlyphs
+
+ReactionGlyph* reactionGlyph1=layout->createReactionGlyph();
+reactionGlyph1->setId("ReactionGlyph_1");
+reactionGlyph1->setReactionId(reaction1->getId());
+
+Curve* reactionCurve1=reactionGlyph1->getCurve();
+LineSegment* ls=reactionCurve1->createLineSegment();
+Point p(&layoutns,165,105);
+ls->setStart(&p);
+p=Point(&layoutns,165,115);
+ls->setEnd(&p);
+
+ReactionGlyph* reactionGlyph2=layout->createReactionGlyph();
+reactionGlyph2->setId("ReactionGlyph_1");
+reactionGlyph2->setReactionId(reaction2->getId());
+
+Curve* reactionCurve2=reactionGlyph2->getCurve();
+ls=reactionCurve2->createLineSegment();
+p=Point(&layoutns,235,105);
+ls->setStart(&p);
+p=Point(&layoutns,235,115);
+ls->setEnd(&p);
+
+// add the SpeciesReferenceGlyphs
+
+SpeciesReferenceGlyph* speciesReferenceGlyph1=reactionGlyph1->createSpeciesReferenceGlyph();
+speciesReferenceGlyph1->setId("SpeciesReferenceGlyph_1");
+speciesReferenceGlyph1->setSpeciesGlyphId(speciesGlyph1->getId());
+speciesReferenceGlyph1->setSpeciesReferenceId(reference1->getId());
+speciesReferenceGlyph1->setRole(SPECIES_ROLE_SUBSTRATE);
+
+Curve* speciesReferenceCurve1=speciesReferenceGlyph1->getCurve();
+CubicBezier* cb=speciesReferenceCurve1->createCubicBezier();
+p=Point(&layoutns,165,105);
+cb->setStart(&p);
+p=Point(&layoutns,165,90);
+cb->setBasePoint1(&p);
+p=Point(&layoutns,165,90);
+cb->setBasePoint2(&p);
+p=Point(&layoutns,195,60);
+cb->setEnd(&p);
+
+SpeciesReferenceGlyph* speciesReferenceGlyph2=reactionGlyph1->createSpeciesReferenceGlyph();
+speciesReferenceGlyph2->setId("SpeciesReferenceGlyph_2");
+speciesReferenceGlyph2->setSpeciesGlyphId(speciesGlyph2->getId());
+speciesReferenceGlyph2->setSpeciesReferenceId(reference2->getId());
+speciesReferenceGlyph2->setRole(SPECIES_ROLE_PRODUCT);
+
+Curve* speciesReferenceCurve2=speciesReferenceGlyph2->getCurve();
+cb=speciesReferenceCurve2->createCubicBezier();
+p=Point(&layoutns,165,115);
+cb->setStart(&p);
+p=Point(&layoutns,165,130);
+cb->setBasePoint1(&p);
+p=Point(&layoutns,165,130);
+cb->setBasePoint2(&p);
+p=Point(&layoutns,195,160);
+cb->setEnd(&p);
+
+
+SpeciesReferenceGlyph* speciesReferenceGlyph3=reactionGlyph2->createSpeciesReferenceGlyph();
+speciesReferenceGlyph3->setId("SpeciesReferenceGlyph_3");
+speciesReferenceGlyph3->setSpeciesGlyphId(speciesGlyph2->getId());
+speciesReferenceGlyph3->setSpeciesReferenceId(reference3->getId());
+speciesReferenceGlyph3->setRole(SPECIES_ROLE_SUBSTRATE);
+
+Curve* speciesReferenceCurve3=speciesReferenceGlyph3->getCurve();
+cb=speciesReferenceCurve3->createCubicBezier();
+p=Point(&layoutns,235,115);
+cb->setStart(&p);
+p=Point(&layoutns,235,130);
+cb->setBasePoint1(&p);
+p=Point(&layoutns,235,130);
+cb->setBasePoint2(&p);
+p=Point(&layoutns,205,160);
+cb->setEnd(&p);
+
+SpeciesReferenceGlyph* speciesReferenceGlyph4=reactionGlyph2->createSpeciesReferenceGlyph();
+speciesReferenceGlyph4->setId("SpeciesReferenceGlyph_4");
+speciesReferenceGlyph4->setSpeciesGlyphId(speciesGlyph1->getId());
+speciesReferenceGlyph4->setSpeciesReferenceId(reference4->getId());
+speciesReferenceGlyph4->setRole(SPECIES_ROLE_PRODUCT);
+
+Curve* speciesReferenceCurve4=speciesReferenceGlyph4->getCurve();
+cb=speciesReferenceCurve4->createCubicBezier();
+p=Point(&layoutns,235,105);
+cb->setStart(&p);
+p=Point(&layoutns,235,90);
+cb->setBasePoint1(&p);
+p=Point(&layoutns,235,90);
+cb->setBasePoint2(&p);
+p=Point(&layoutns,205,60);
+cb->setEnd(&p);
+
+//
+// Create Group
+//
+
+//
+// Get a GroupsModelPlugin object plugged in the model object.
+//
+// The type of the returned value of SBase::getPlugin() function is SBasePlugin*, and
+// thus the value needs to be casted for the corresponding derived class.
+//
+GroupsModelPlugin* mpluginGroups = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+
+//
+// Creates a Group object via GroupsModelPlugin object.
+//
+Group* group = mpluginGroups->createGroup();
+
+group->setId("role_substrate");
+group->setKind(GROUP_KIND_CLASSIFICATION);
+
+Member* member = group->createMember();
+member->setIdRef("SpeciesReferenceGlyph_1");
+
+member = group->createMember();
+member->setIdRef("SpeciesReferenceGlyph_3");
+
+group = mpluginGroups->createGroup();
+group->setId("role_product");
+
+member = group->createMember();
+member->setIdRef("SpeciesReferenceGlyph_2");
+
+member = group->createMember();
+member->setIdRef("SpeciesReferenceGlyph_4");
+
+
+writeSBML(document,"groups_example2.xml");
+delete document;
+
+}
diff --git a/examples/c++/inferUnits.cpp b/examples/c++/inferUnits.cpp
index 1588292..7ec1bab 100644
--- a/examples/c++/inferUnits.cpp
+++ b/examples/c++/inferUnits.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/inlineFunctionDefintions.cpp b/examples/c++/inlineFunctionDefintions.cpp
index 99e4613..0a5b807 100644
--- a/examples/c++/inlineFunctionDefintions.cpp
+++ b/examples/c++/inlineFunctionDefintions.cpp
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/layout/CMakeLists.txt b/examples/c++/layout/CMakeLists.txt
index 0b3b4da..f4b7d72 100644
--- a/examples/c++/layout/CMakeLists.txt
+++ b/examples/c++/layout/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/layout/Makefile.in b/examples/c++/layout/Makefile.in
index e180747..0bce027 100644
--- a/examples/c++/layout/Makefile.in
+++ b/examples/c++/layout/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/layout/addLayout.cpp b/examples/c++/layout/addLayout.cpp
index 63286d7..c6ff214 100644
--- a/examples/c++/layout/addLayout.cpp
+++ b/examples/c++/layout/addLayout.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/layout/convertLayout.cpp b/examples/c++/layout/convertLayout.cpp
index 2566f2f..3d0d0a2 100644
--- a/examples/c++/layout/convertLayout.cpp
+++ b/examples/c++/layout/convertLayout.cpp
@@ -18,7 +18,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/multi/multi_example1.cpp b/examples/c++/multi/multi_example1.cpp
index b8e6838..ba5a4d8 100644
--- a/examples/c++/multi/multi_example1.cpp
+++ b/examples/c++/multi/multi_example1.cpp
@@ -100,12 +100,10 @@ main (int argc, char* argv[])
   SpeciesTypeInstance * sti = st->createSpeciesTypeInstance();
   sti->setId("stiX1");
   sti->setSpeciesType("stX");
-  sti->setOccur(1);
 
   sti = st->createSpeciesTypeInstance();
   sti->setId("stiX2");
   sti->setSpeciesType("stX");
-  sti->setOccur(1);
 
   // create speciesTypeBond
 
@@ -124,13 +122,11 @@ main (int argc, char* argv[])
   sti = st->createSpeciesTypeInstance();
   sti->setId("stiX1");
   sti->setSpeciesType("stX");
-  sti->setOccur(1);
   sti->setCompartmentReference("cr1");
 
   sti = st->createSpeciesTypeInstance();
   sti->setId("stiX2");
   sti->setSpeciesType("stX");
-  sti->setOccur(1);
   sti->setCompartmentReference("cr2");
 
   // create speciesTypeBond
diff --git a/examples/c++/multi/multi_example3.cpp b/examples/c++/multi/multi_example3.cpp
index 955933c..95f0b63 100644
--- a/examples/c++/multi/multi_example3.cpp
+++ b/examples/c++/multi/multi_example3.cpp
@@ -94,13 +94,9 @@ main (int argc, char* argv[])
   SpeciesFeatureValue *sfv = sf->createSpeciesFeatureValue();
   sfv->setValue("c");
 
-  // set the relation attribute on the listOfSpeciesfeatures element
-  ListOfSpeciesFeatures * loSF = spPlug->getListOfSpeciesFeatures();
-  loSF->setRelation(Relation_fromString("or"));
-
   // create a subListOfSpeciesFeatures
-  loSF = spPlug->createSubListOfSpeciesFeatures();
-  loSF->setRelation(Relation_fromString("and"));
+  SubListOfSpeciesFeatures* subloSF = spPlug->createSubListOfSpeciesFeatures();
+  subloSF->setRelation(Relation_fromString("and"));
 
   // add speciesFeatures to the subList
   SpeciesFeature *sf1 = new SpeciesFeature(3, 1, 1);
@@ -111,7 +107,7 @@ main (int argc, char* argv[])
   SpeciesFeatureValue *sfv1 = sf1->createSpeciesFeatureValue();
   sfv1->setValue("c1");
 
-  loSF->appendAndOwn(sf1);
+  subloSF->appendAndOwn(sf1);
 
   sf1 = new SpeciesFeature(3, 1, 1);
   sf1->setSpeciesFeatureType("a2");
@@ -121,11 +117,11 @@ main (int argc, char* argv[])
   sfv1 = sf1->createSpeciesFeatureValue();
   sfv1->setValue("c2");
 
-  loSF->appendAndOwn(sf1);
+  subloSF->appendAndOwn(sf1);
 
   // create a second subListOfSpeciesfeatures
-  loSF = spPlug->createSubListOfSpeciesFeatures();
-  loSF->setRelation(Relation_fromString("or"));
+  subloSF = spPlug->createSubListOfSpeciesFeatures();
+  subloSF->setRelation(Relation_fromString("or"));
 
   sf1 = new SpeciesFeature(3, 1, 1);
   sf1->setSpeciesFeatureType("a3");
@@ -135,7 +131,7 @@ main (int argc, char* argv[])
   sfv1 = sf1->createSpeciesFeatureValue();
   sfv1->setValue("c3");
 
-  loSF->appendAndOwn(sf1);
+  subloSF->appendAndOwn(sf1);
 
   sf1 = new SpeciesFeature(3, 1, 1);
   sf1->setSpeciesFeatureType("a4");
@@ -145,7 +141,7 @@ main (int argc, char* argv[])
   sfv1 = sf1->createSpeciesFeatureValue();
   sfv1->setValue("c4");
 
-  loSF->appendAndOwn(sf1);
+  subloSF->appendAndOwn(sf1);
 
   writeSBML(document,"multi_example3.xml");
  
diff --git a/examples/c++/printAnnotation.cpp b/examples/c++/printAnnotation.cpp
index efd2fc8..32bef42 100644
--- a/examples/c++/printAnnotation.cpp
+++ b/examples/c++/printAnnotation.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/printMath.cpp b/examples/c++/printMath.cpp
index b4ef946..6d4a1ae 100644
--- a/examples/c++/printMath.cpp
+++ b/examples/c++/printMath.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/printNotes.cpp b/examples/c++/printNotes.cpp
index ed3a313..296503d 100644
--- a/examples/c++/printNotes.cpp
+++ b/examples/c++/printNotes.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/printRegisteredPackages.cpp b/examples/c++/printRegisteredPackages.cpp
index 5fa887f..d5ee6ea 100644
--- a/examples/c++/printRegisteredPackages.cpp
+++ b/examples/c++/printRegisteredPackages.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/printSBML.cpp b/examples/c++/printSBML.cpp
index 8dc06e3..ead2244 100644
--- a/examples/c++/printSBML.cpp
+++ b/examples/c++/printSBML.cpp
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/printSupported.cpp b/examples/c++/printSupported.cpp
index 75c71f7..b246bb5 100644
--- a/examples/c++/printSupported.cpp
+++ b/examples/c++/printSupported.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/printUnits.cpp b/examples/c++/printUnits.cpp
index 5bf2fb1..3357e9c 100644
--- a/examples/c++/printUnits.cpp
+++ b/examples/c++/printUnits.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/promoteParameters.cpp b/examples/c++/promoteParameters.cpp
index 0ef9171..5b7b9c2 100644
--- a/examples/c++/promoteParameters.cpp
+++ b/examples/c++/promoteParameters.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/qual/CMakeLists.txt b/examples/c++/qual/CMakeLists.txt
index 63aaf67..040f4a7 100644
--- a/examples/c++/qual/CMakeLists.txt
+++ b/examples/c++/qual/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/qual/Makefile.in b/examples/c++/qual/Makefile.in
index 672093c..3c606a0 100644
--- a/examples/c++/qual/Makefile.in
+++ b/examples/c++/qual/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c++/qual/qual_example1.cpp b/examples/c++/qual/qual_example1.cpp
index fe883a1..c89aa26 100644
--- a/examples/c++/qual/qual_example1.cpp
+++ b/examples/c++/qual/qual_example1.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/readSBML.cpp b/examples/c++/readSBML.cpp
index ae9930c..cc2f7b0 100644
--- a/examples/c++/readSBML.cpp
+++ b/examples/c++/readSBML.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/renameSId.cpp b/examples/c++/renameSId.cpp
index 2efdfef..98fade5 100644
--- a/examples/c++/renameSId.cpp
+++ b/examples/c++/renameSId.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/rngvalidator.cpp b/examples/c++/rngvalidator.cpp
index 6b3d295..475bc93 100644
--- a/examples/c++/rngvalidator.cpp
+++ b/examples/c++/rngvalidator.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/setIdFromNames.cpp b/examples/c++/setIdFromNames.cpp
index c020e7c..4735de9 100644
--- a/examples/c++/setIdFromNames.cpp
+++ b/examples/c++/setIdFromNames.cpp
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/setNamesFromIds.cpp b/examples/c++/setNamesFromIds.cpp
index 773c0c2..715e24e 100644
--- a/examples/c++/setNamesFromIds.cpp
+++ b/examples/c++/setNamesFromIds.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/stripPackage.cpp b/examples/c++/stripPackage.cpp
index 6622b9a..4a05e6c 100644
--- a/examples/c++/stripPackage.cpp
+++ b/examples/c++/stripPackage.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/translateL3Math.cpp b/examples/c++/translateL3Math.cpp
index 2bc26a4..c09eadd 100644
--- a/examples/c++/translateL3Math.cpp
+++ b/examples/c++/translateL3Math.cpp
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/translateMath.cpp b/examples/c++/translateMath.cpp
index 260fd85..66ec62c 100644
--- a/examples/c++/translateMath.cpp
+++ b/examples/c++/translateMath.cpp
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/unsetAnnotation.cpp b/examples/c++/unsetAnnotation.cpp
index 207a18d..04b579c 100644
--- a/examples/c++/unsetAnnotation.cpp
+++ b/examples/c++/unsetAnnotation.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/unsetNotes.cpp b/examples/c++/unsetNotes.cpp
index 8d6e633..e71933d 100644
--- a/examples/c++/unsetNotes.cpp
+++ b/examples/c++/unsetNotes.cpp
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/util.c b/examples/c++/util.c
index 70f5abf..e5167b7 100644
--- a/examples/c++/util.c
+++ b/examples/c++/util.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/util.h b/examples/c++/util.h
index 4b628cc..074f7bf 100644
--- a/examples/c++/util.h
+++ b/examples/c++/util.h
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c++/validateSBML.cpp b/examples/c++/validateSBML.cpp
index 22dc0d4..4a4e6b9 100644
--- a/examples/c++/validateSBML.cpp
+++ b/examples/c++/validateSBML.cpp
@@ -10,7 +10,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/CMakeLists.txt b/examples/c/CMakeLists.txt
index 9f1dc8e..89ae290 100644
--- a/examples/c/CMakeLists.txt
+++ b/examples/c/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c/FormulaGraphvizFormatter.h b/examples/c/FormulaGraphvizFormatter.h
index 606926f..38dab71 100644
--- a/examples/c/FormulaGraphvizFormatter.h
+++ b/examples/c/FormulaGraphvizFormatter.h
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/Makefile.in b/examples/c/Makefile.in
index 52a356a..d895405 100644
--- a/examples/c/Makefile.in
+++ b/examples/c/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c/addCVTerms.c b/examples/c/addCVTerms.c
index 2ae8d7c..09db6d8 100644
--- a/examples/c/addCVTerms.c
+++ b/examples/c/addCVTerms.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/addModelHistory.c b/examples/c/addModelHistory.c
index f4168f6..3a050c6 100644
--- a/examples/c/addModelHistory.c
+++ b/examples/c/addModelHistory.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/addingEvidenceCodes_1.c b/examples/c/addingEvidenceCodes_1.c
index e8ebca0..d056503 100644
--- a/examples/c/addingEvidenceCodes_1.c
+++ b/examples/c/addingEvidenceCodes_1.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/addingEvidenceCodes_2.c b/examples/c/addingEvidenceCodes_2.c
index c8fe6e4..70d422f 100644
--- a/examples/c/addingEvidenceCodes_2.c
+++ b/examples/c/addingEvidenceCodes_2.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/appendAnnotation.c b/examples/c/appendAnnotation.c
index cfec378..2cabb24 100644
--- a/examples/c/appendAnnotation.c
+++ b/examples/c/appendAnnotation.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/comp/CMakeLists.txt b/examples/c/comp/CMakeLists.txt
index 7c7355d..4e0feaa 100644
--- a/examples/c/comp/CMakeLists.txt
+++ b/examples/c/comp/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c/comp/Makefile.in b/examples/c/comp/Makefile.in
index 0fce146..1d0426e 100644
--- a/examples/c/comp/Makefile.in
+++ b/examples/c/comp/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/c/comp/flattenModel.c b/examples/c/comp/flattenModel.c
index c006764..5ed7089 100644
--- a/examples/c/comp/flattenModel.c
+++ b/examples/c/comp/flattenModel.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/comp/spec_example1.c b/examples/c/comp/spec_example1.c
index e7164ba..458e160 100644
--- a/examples/c/comp/spec_example1.c
+++ b/examples/c/comp/spec_example1.c
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/convertSBML.c b/examples/c/convertSBML.c
index a614894..8e475fe 100644
--- a/examples/c/convertSBML.c
+++ b/examples/c/convertSBML.c
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/createExampleSBML.c b/examples/c/createExampleSBML.c
index 6abb598..f02c763 100644
--- a/examples/c/createExampleSBML.c
+++ b/examples/c/createExampleSBML.c
@@ -10,7 +10,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/drawMath.c b/examples/c/drawMath.c
index 4ad441a..8f30db5 100644
--- a/examples/c/drawMath.c
+++ b/examples/c/drawMath.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/echoSBML.c b/examples/c/echoSBML.c
index 4dc5001..476eba8 100644
--- a/examples/c/echoSBML.c
+++ b/examples/c/echoSBML.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/printAnnotation.c b/examples/c/printAnnotation.c
index 804a877..7617cad 100644
--- a/examples/c/printAnnotation.c
+++ b/examples/c/printAnnotation.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/printMath.c b/examples/c/printMath.c
index f746ba8..00e409c 100644
--- a/examples/c/printMath.c
+++ b/examples/c/printMath.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/printNotes.c b/examples/c/printNotes.c
index 82757a6..80b10a3 100644
--- a/examples/c/printNotes.c
+++ b/examples/c/printNotes.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/printRegisteredPackages.c b/examples/c/printRegisteredPackages.c
index 35b9e35..8108f01 100644
--- a/examples/c/printRegisteredPackages.c
+++ b/examples/c/printRegisteredPackages.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/printSBML.c b/examples/c/printSBML.c
index eafd4cc..1765615 100644
--- a/examples/c/printSBML.c
+++ b/examples/c/printSBML.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/printSupported.c b/examples/c/printSupported.c
index 5c044a9..bcbae0c 100644
--- a/examples/c/printSupported.c
+++ b/examples/c/printSupported.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/printUnits.c b/examples/c/printUnits.c
index 495842d..355f917 100644
--- a/examples/c/printUnits.c
+++ b/examples/c/printUnits.c
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/promoteParameters.c b/examples/c/promoteParameters.c
index 80b6d75..c5f55e8 100644
--- a/examples/c/promoteParameters.c
+++ b/examples/c/promoteParameters.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/readSBML.c b/examples/c/readSBML.c
index a27c28e..d3f5ef0 100644
--- a/examples/c/readSBML.c
+++ b/examples/c/readSBML.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/stripPackage.c b/examples/c/stripPackage.c
index 3f73923..3097c27 100644
--- a/examples/c/stripPackage.c
+++ b/examples/c/stripPackage.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/translateL3Math.c b/examples/c/translateL3Math.c
index 743aac1..345a4a1 100644
--- a/examples/c/translateL3Math.c
+++ b/examples/c/translateL3Math.c
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/translateMath.c b/examples/c/translateMath.c
index 627eaf4..f07b538 100644
--- a/examples/c/translateMath.c
+++ b/examples/c/translateMath.c
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/unsetAnnotation.c b/examples/c/unsetAnnotation.c
index d546cdc..f636d77 100644
--- a/examples/c/unsetAnnotation.c
+++ b/examples/c/unsetAnnotation.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/unsetNotes.c b/examples/c/unsetNotes.c
index 05f72f5..022148e 100644
--- a/examples/c/unsetNotes.c
+++ b/examples/c/unsetNotes.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/util.c b/examples/c/util.c
index c4e3604..a30504f 100644
--- a/examples/c/util.c
+++ b/examples/c/util.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/util.h b/examples/c/util.h
index c68faf3..f143303 100644
--- a/examples/c/util.h
+++ b/examples/c/util.h
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/c/validateSBML.c b/examples/c/validateSBML.c
index b661a9f..258b8b8 100644
--- a/examples/c/validateSBML.c
+++ b/examples/c/validateSBML.c
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2015 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/comp-package.cmake b/examples/comp-package.cmake
index 8f7f9ae..2fb182c 100644
--- a/examples/comp-package.cmake
+++ b/examples/comp-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/csharp/CMakeLists.txt b/examples/csharp/CMakeLists.txt
index 6758797..01a8690 100644
--- a/examples/csharp/CMakeLists.txt
+++ b/examples/csharp/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/csharp/GetAllElementsWithNotes.cs b/examples/csharp/GetAllElementsWithNotes.cs
index 76ccc53..e41435a 100644
--- a/examples/csharp/GetAllElementsWithNotes.cs
+++ b/examples/csharp/GetAllElementsWithNotes.cs
@@ -10,7 +10,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/Makefile.in b/examples/csharp/Makefile.in
index a31bfc9..1273d5f 100644
--- a/examples/csharp/Makefile.in
+++ b/examples/csharp/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/csharp/SetIdFromNames.cs b/examples/csharp/SetIdFromNames.cs
index d071d69..f181d23 100644
--- a/examples/csharp/SetIdFromNames.cs
+++ b/examples/csharp/SetIdFromNames.cs
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/addCVTerms.cs b/examples/csharp/addCVTerms.cs
index c87fb33..2890592 100644
--- a/examples/csharp/addCVTerms.cs
+++ b/examples/csharp/addCVTerms.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/addCustomValidator.cs b/examples/csharp/addCustomValidator.cs
index 4e54f27..6585c16 100644
--- a/examples/csharp/addCustomValidator.cs
+++ b/examples/csharp/addCustomValidator.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/addModelHistory.cs b/examples/csharp/addModelHistory.cs
index b296122..57da080 100644
--- a/examples/csharp/addModelHistory.cs
+++ b/examples/csharp/addModelHistory.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/addingEvidenceCodes_1.cs b/examples/csharp/addingEvidenceCodes_1.cs
index f9ac7fb..e705765 100644
--- a/examples/csharp/addingEvidenceCodes_1.cs
+++ b/examples/csharp/addingEvidenceCodes_1.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/addingEvidenceCodes_2.cs b/examples/csharp/addingEvidenceCodes_2.cs
index 0cc4588..94ae448 100644
--- a/examples/csharp/addingEvidenceCodes_2.cs
+++ b/examples/csharp/addingEvidenceCodes_2.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/appendAnnotation.cs b/examples/csharp/appendAnnotation.cs
index 68440cb..2cfe6d9 100644
--- a/examples/csharp/appendAnnotation.cs
+++ b/examples/csharp/appendAnnotation.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/callExternalValidator.cs b/examples/csharp/callExternalValidator.cs
index 657866b..ae825b1 100644
--- a/examples/csharp/callExternalValidator.cs
+++ b/examples/csharp/callExternalValidator.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/comp/CMakeLists.txt b/examples/csharp/comp/CMakeLists.txt
index 2a5ebd5..0ee5980 100644
--- a/examples/csharp/comp/CMakeLists.txt
+++ b/examples/csharp/comp/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/csharp/comp/CompExample1.cs b/examples/csharp/comp/CompExample1.cs
index 5c19e7e..05d9e6c 100644
--- a/examples/csharp/comp/CompExample1.cs
+++ b/examples/csharp/comp/CompExample1.cs
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/comp/CustomResolver.cs b/examples/csharp/comp/CustomResolver.cs
new file mode 100644
index 0000000..0646800
--- /dev/null
+++ b/examples/csharp/comp/CustomResolver.cs
@@ -0,0 +1,147 @@
+/**
+ * @file CustomResolver.cs
+ * @brief Demonstrates implementation of a custom resolver for comp models
+ * @author Frank Bergmann
+ * 
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+using System;
+using System.Net;
+using libsbmlcs;
+
+
+public class CustomResolver : SBMLResolver
+{
+  public CustomResolver()
+    : base()
+  {
+  }
+
+
+  public CustomResolver(CustomResolver orig)
+    : base(orig)
+  {
+  }
+
+
+  public override
+  SBMLResolver clone()
+  {
+    return new CustomResolver(this);
+  }
+
+
+  public override
+  SBMLDocument resolve(String uri, String baseUri)
+  {
+    try
+    {
+      WebClient wc = new WebClient();
+      string content = wc.DownloadString(uri);
+      return libsbml.readSBMLFromString(content);
+    }
+    catch
+    {
+      // couldn't download file handle this somehow
+      return null;
+    }
+  }
+
+
+  public override
+  SBMLUri resolveUri(String uri, String baseUri)
+  {
+    SBMLUri uriObject = new SBMLUri(uri);
+    if (uriObject.getScheme() != "http") return null;
+    return uriObject;
+  }
+
+
+  public static void Main(String[] args)
+  {
+    if (!SBMLExtensionRegistry.isPackageEnabled("comp"))
+    {
+      Console.WriteLine("This copy of libSBML does not contain the 'comp' extension");
+      Console.WriteLine("Unable to proceed with the resolver example the model.");
+      Environment.Exit(2);
+    }
+
+    // create custom resolver
+    CustomResolver resolver = new CustomResolver();
+
+    // add the resolver and store its index, so we can free it later.
+    int index = SBMLResolverRegistry.getInstance().addResolver(resolver);
+
+    // create a new document with comp enabled
+    SBMLDocument doc = new SBMLDocument(new CompPkgNamespaces());
+
+    // get a hold of a plugin object
+    CompSBMLDocumentPlugin plugin = (CompSBMLDocumentPlugin)doc.getPlugin("comp");
+
+    // create an external model definition
+    ExternalModelDefinition external = plugin.createExternalModelDefinition();
+
+    // set the source to the URI
+    external.setSource("http://www.ebi.ac.uk/biomodels-main/download?mid=BMID000000063853");
+
+    // resolve the model
+    Model model = external.getReferencedModel();
+
+    if (model == null)
+    {
+      Console.Error.WriteLine("couldn't resolve");
+      Environment.Exit(2);
+    }
+
+    // model is ready to be used now, however, only as long and the document
+    // holding the external model definition is still alive and referenced
+
+    Console.WriteLine("Model id: " + model.getId());
+    Console.WriteLine("# species: " + model.getNumSpecies());
+    Console.WriteLine("# reactions: " + model.getNumReactions());
+
+    // now that we are done get rid of the resolver
+    SBMLResolverRegistry.getInstance().removeResolver(index);
+    // also clear the resolver instance, just to be sure that it has 
+    // no more references to the C# resolver
+    SBMLResolverRegistry.deleteResolerRegistryInstance();
+
+    // finally we can get rid of the C# resolver 
+    resolver = null;
+
+  }
+
+}
diff --git a/examples/csharp/comp/FlattenModel.cs b/examples/csharp/comp/FlattenModel.cs
index 51fd266..6afcc5c 100644
--- a/examples/csharp/comp/FlattenModel.cs
+++ b/examples/csharp/comp/FlattenModel.cs
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/comp/SpecExample1.cs b/examples/csharp/comp/SpecExample1.cs
index 35a7222..7169d4b 100644
--- a/examples/csharp/comp/SpecExample1.cs
+++ b/examples/csharp/comp/SpecExample1.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/comp/SpecExample2.cs b/examples/csharp/comp/SpecExample2.cs
index 77609f0..56a9e1b 100644
--- a/examples/csharp/comp/SpecExample2.cs
+++ b/examples/csharp/comp/SpecExample2.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/comp/SpecExample3.cs b/examples/csharp/comp/SpecExample3.cs
index bfa751b..2429e22 100644
--- a/examples/csharp/comp/SpecExample3.cs
+++ b/examples/csharp/comp/SpecExample3.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/comp/SpecExample4.cs b/examples/csharp/comp/SpecExample4.cs
index 8a1e714..af03fc5 100644
--- a/examples/csharp/comp/SpecExample4.cs
+++ b/examples/csharp/comp/SpecExample4.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/convertSBML.cs b/examples/csharp/convertSBML.cs
index aa18c79..d91d048 100644
--- a/examples/csharp/convertSBML.cs
+++ b/examples/csharp/convertSBML.cs
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/createExampleSBML.cs b/examples/csharp/createExampleSBML.cs
index 6f7da63..0171eb3 100644
--- a/examples/csharp/createExampleSBML.cs
+++ b/examples/csharp/createExampleSBML.cs
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/echoSBML.cs b/examples/csharp/echoSBML.cs
index 46041ca..8043dcf 100644
--- a/examples/csharp/echoSBML.cs
+++ b/examples/csharp/echoSBML.cs
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/evaluateCustomMath.cs b/examples/csharp/evaluateCustomMath.cs
index 73c9368..12cbe1c 100644
--- a/examples/csharp/evaluateCustomMath.cs
+++ b/examples/csharp/evaluateCustomMath.cs
@@ -1,95 +1,95 @@
-
-/**
- * @file    evaluateCustomMath.cs
- * @brief   evaluates the given formula
- * @author  Frank Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This sample program is distributed under a different license than the rest
- * of libSBML.  This program uses the open-source MIT license, as follows:
- *
- * Copyright (c) 2013-2014 by the California Institute of Technology
- * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
- * and the University of Heidelberg (Germany), with support from the National
- * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Neither the name of the California Institute of Technology (Caltech), nor
- * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
- * of Heidelberg, nor the names of any contributors, may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * ------------------------------------------------------------------------ -->
- */
-
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using libsbmlcs;
-
-internal class EvaluateCustomMath
-{
-  public static int Main(string[] args)
-  {
-    if (args.Length < 1)
-    {
-      Console.WriteLine("Usage: evaluateCustomMath formula [model containing values]");
-      return 1;
-    }
-
-    string formula = args[0];
-    string filename = args.Length == 2 ?  args[1] : null;
-
-    var math = libsbml.parseFormula(formula);
-    if (math == null)
-    {
-      Console.WriteLine("Invalid formula, aborting.");
-      return 1;
-    }
-
-    SBMLDocument doc = null;
-    if (filename != null)
-    {
-      doc = libsbml.readSBML(filename);
-      if (doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
-      {
-        Console.WriteLine("The models contains errors, please correct them before continuing.");
-        doc.printErrors();
-        return 1;
-      }
-      // the following maps a list of ids to their corresponding model values
-      // this makes it possible to evaluate expressions involving SIds. 
-      SBMLTransforms.mapComponentValues(doc.getModel());
-    }
-    else
-    {
-      // create dummy document
-      doc = new SBMLDocument(3, 1);
-    }
-
-    var result = SBMLTransforms.evaluateASTNode(math, doc.getModel());
-    Console.WriteLine("{0} = {1}", formula, result);
-
-    return 0;
-  }
-
-}
+
+/**
+ * @file    evaluateCustomMath.cs
+ * @brief   evaluates the given formula
+ * @author  Frank Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using libsbmlcs;
+
+internal class EvaluateCustomMath
+{
+  public static int Main(string[] args)
+  {
+    if (args.Length < 1)
+    {
+      Console.WriteLine("Usage: evaluateCustomMath formula [model containing values]");
+      return 1;
+    }
+
+    string formula = args[0];
+    string filename = args.Length == 2 ?  args[1] : null;
+
+    var math = libsbml.parseFormula(formula);
+    if (math == null)
+    {
+      Console.WriteLine("Invalid formula, aborting.");
+      return 1;
+    }
+
+    SBMLDocument doc = null;
+    if (filename != null)
+    {
+      doc = libsbml.readSBML(filename);
+      if (doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
+      {
+        Console.WriteLine("The models contains errors, please correct them before continuing.");
+        doc.printErrors();
+        return 1;
+      }
+      // the following maps a list of ids to their corresponding model values
+      // this makes it possible to evaluate expressions involving SIds. 
+      SBMLTransforms.mapComponentValues(doc.getModel());
+    }
+    else
+    {
+      // create dummy document
+      doc = new SBMLDocument(3, 1);
+    }
+
+    var result = SBMLTransforms.evaluateASTNode(math, doc.getModel());
+    Console.WriteLine("{0} = {1}", formula, result);
+
+    return 0;
+  }
+
+}
diff --git a/examples/csharp/fbc/CMakeLists.txt b/examples/csharp/fbc/CMakeLists.txt
index 86a97cd..ee725d8 100644
--- a/examples/csharp/fbc/CMakeLists.txt
+++ b/examples/csharp/fbc/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/csharp/fbc/convertCobraToFbc.cs b/examples/csharp/fbc/convertCobraToFbc.cs
index 2269905..f0808e0 100644
--- a/examples/csharp/fbc/convertCobraToFbc.cs
+++ b/examples/csharp/fbc/convertCobraToFbc.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/fbc/convertFbcToCobra.cs b/examples/csharp/fbc/convertFbcToCobra.cs
index ddb6225..0eefbf5 100644
--- a/examples/csharp/fbc/convertFbcToCobra.cs
+++ b/examples/csharp/fbc/convertFbcToCobra.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/fbc/fbc_example1.cs b/examples/csharp/fbc/fbc_example1.cs
index 82d5861..b6bab52 100644
--- a/examples/csharp/fbc/fbc_example1.cs
+++ b/examples/csharp/fbc/fbc_example1.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/groups/CMakeLists.txt b/examples/csharp/groups/CMakeLists.txt
index 08cf8be..4d6cdf8 100644
--- a/examples/csharp/groups/CMakeLists.txt
+++ b/examples/csharp/groups/CMakeLists.txt
@@ -1,26 +1,26 @@
-####################################################################
-#
-# CMake Build Script for libsbml C# examples
-#
-# 
-
-foreach( example
-	
-	example1
-	
-)
-
-	ADD_CUSTOM_COMMAND(	
-		OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${example}.exe
-		COMMAND "${CSHARP_COMPILER}"
-		ARGS -r:${CMAKE_CURRENT_BINARY_DIR}/../../../src/bindings/csharp/libsbmlcsP.dll
-			-target:exe
-			-out:${example}.exe
-			${CSHARP_EXTRA_ARGS}
-			${CMAKE_CURRENT_SOURCE_DIR}${PATH_SEP}${example}.cs
-		MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cs
-		COMMENT "Build C# example: ${example}") 
-	
-	add_custom_target(example_groups_cs_${example} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${example}.exe)
-	add_dependencies(example_groups_cs_${example} binding_csharp_managed_lib)
-endforeach()
+####################################################################
+#
+# CMake Build Script for libsbml C# examples
+#
+# 
+
+foreach( example
+	
+	groups_example1
+	
+)
+
+	ADD_CUSTOM_COMMAND(	
+		OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${example}.exe
+		COMMAND "${CSHARP_COMPILER}"
+		ARGS -r:${CMAKE_CURRENT_BINARY_DIR}/../../../src/bindings/csharp/libsbmlcsP.dll
+			-target:exe
+			-out:${example}.exe
+			${CSHARP_EXTRA_ARGS}
+			${CMAKE_CURRENT_SOURCE_DIR}${PATH_SEP}${example}.cs
+		MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cs
+		COMMENT "Build C# example: ${example}") 
+	
+	add_custom_target(example_groups_cs_${example} ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${example}.exe)
+	add_dependencies(example_groups_cs_${example} binding_csharp_managed_lib)
+endforeach()
diff --git a/examples/csharp/groups/example1.cs b/examples/csharp/groups/groups_example1.cs
similarity index 100%
rename from examples/csharp/groups/example1.cs
rename to examples/csharp/groups/groups_example1.cs
diff --git a/examples/csharp/inlineInitialAssignments.cs b/examples/csharp/inlineInitialAssignments.cs
index b77492b..acf360b 100644
--- a/examples/csharp/inlineInitialAssignments.cs
+++ b/examples/csharp/inlineInitialAssignments.cs
@@ -1,80 +1,80 @@
-/**
- * @file    inlineInitialAssignments.cs
- * @brief   inlines all initial assignments directly
- * @author  Frank Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This sample program is distributed under a different license than the rest
- * of libSBML.  This program uses the open-source MIT license, as follows:
- *
- * Copyright (c) 2013-2014 by the California Institute of Technology
- * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
- * and the University of Heidelberg (Germany), with support from the National
- * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Neither the name of the California Institute of Technology (Caltech), nor
- * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
- * of Heidelberg, nor the names of any contributors, may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * ------------------------------------------------------------------------ -->
- */
-
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using libsbmlcs;
-
-internal class InlineIA
-{
-  public static int Main(string[] args)
-  {
-    if (args.Length != 2)
-    {
-      Console.WriteLine("Usage: inlineInitialAssignments filename outFile");
-      return 1;
-    }
-
-    string filename = args[0];
-    string outFile = args[1];
-    long current = DateTime.Now.Ticks;
-    SBMLDocument document = libsbml.readSBML(filename);
-
-
-    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
-    {
-      Console.WriteLine("The models contains errors, please correct them before continuing.");
-      document.printErrors();
-      return 1;
-    }
-
-    var model = document.getModel();
-
-    SBMLTransforms.expandInitialAssignments(model);
-
-    libsbml.writeSBML(document, outFile);
-    
-    return 0;
-  }
-
-}
+/**
+ * @file    inlineInitialAssignments.cs
+ * @brief   inlines all initial assignments directly
+ * @author  Frank Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using libsbmlcs;
+
+internal class InlineIA
+{
+  public static int Main(string[] args)
+  {
+    if (args.Length != 2)
+    {
+      Console.WriteLine("Usage: inlineInitialAssignments filename outFile");
+      return 1;
+    }
+
+    string filename = args[0];
+    string outFile = args[1];
+    long current = DateTime.Now.Ticks;
+    SBMLDocument document = libsbml.readSBML(filename);
+
+
+    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
+    {
+      Console.WriteLine("The models contains errors, please correct them before continuing.");
+      document.printErrors();
+      return 1;
+    }
+
+    var model = document.getModel();
+
+    SBMLTransforms.expandInitialAssignments(model);
+
+    libsbml.writeSBML(document, outFile);
+    
+    return 0;
+  }
+
+}
diff --git a/examples/csharp/layout/CMakeLists.txt b/examples/csharp/layout/CMakeLists.txt
index 9696fc4..79e0ff7 100644
--- a/examples/csharp/layout/CMakeLists.txt
+++ b/examples/csharp/layout/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/csharp/printAnnotation.cs b/examples/csharp/printAnnotation.cs
index 5a5b327..dc4a2cd 100644
--- a/examples/csharp/printAnnotation.cs
+++ b/examples/csharp/printAnnotation.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/printMath.cs b/examples/csharp/printMath.cs
index 0ff797b..5564c82 100644
--- a/examples/csharp/printMath.cs
+++ b/examples/csharp/printMath.cs
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/printNotes.cs b/examples/csharp/printNotes.cs
index 3d4d989..4aff8e7 100644
--- a/examples/csharp/printNotes.cs
+++ b/examples/csharp/printNotes.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/printRegisteredPackages.cs b/examples/csharp/printRegisteredPackages.cs
index 744942f..e5dc907 100644
--- a/examples/csharp/printRegisteredPackages.cs
+++ b/examples/csharp/printRegisteredPackages.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/printSBML.cs b/examples/csharp/printSBML.cs
index e9d5b26..15984fd 100644
--- a/examples/csharp/printSBML.cs
+++ b/examples/csharp/printSBML.cs
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/printUnits.cs b/examples/csharp/printUnits.cs
index 5139cbd..f52c1b0 100644
--- a/examples/csharp/printUnits.cs
+++ b/examples/csharp/printUnits.cs
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/printsupported.cs b/examples/csharp/printsupported.cs
index b534fba..8205709 100644
--- a/examples/csharp/printsupported.cs
+++ b/examples/csharp/printsupported.cs
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/promoteParameters.cs b/examples/csharp/promoteParameters.cs
index 8477ccf..bff1cd0 100644
--- a/examples/csharp/promoteParameters.cs
+++ b/examples/csharp/promoteParameters.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/qual/CMakeLists.txt b/examples/csharp/qual/CMakeLists.txt
index e44e72a..cfef7c5 100644
--- a/examples/csharp/qual/CMakeLists.txt
+++ b/examples/csharp/qual/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/csharp/qual/qual_example1.cs b/examples/csharp/qual/qual_example1.cs
index 42cd836..f7590d0 100644
--- a/examples/csharp/qual/qual_example1.cs
+++ b/examples/csharp/qual/qual_example1.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/readSBML.cs b/examples/csharp/readSBML.cs
index e9eee34..88c3962 100644
--- a/examples/csharp/readSBML.cs
+++ b/examples/csharp/readSBML.cs
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/replaceOneFD.cs b/examples/csharp/replaceOneFD.cs
index f0050f1..a7bc331 100644
--- a/examples/csharp/replaceOneFD.cs
+++ b/examples/csharp/replaceOneFD.cs
@@ -1,113 +1,113 @@
-/**
- * @file    replaceOneFD.cs
- * @brief   replaces a given function definition in a specific part of the model
- * @author  Frank Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This sample program is distributed under a different license than the rest
- * of libSBML.  This program uses the open-source MIT license, as follows:
- *
- * Copyright (c) 2013-2014 by the California Institute of Technology
- * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
- * and the University of Heidelberg (Germany), with support from the National
- * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Neither the name of the California Institute of Technology (Caltech), nor
- * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
- * of Heidelberg, nor the names of any contributors, may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * ------------------------------------------------------------------------ -->
- */
-
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Text;
-using libsbmlcs;
-
-/**
- * This example is not something you would normally do, what you would want to do is to 
- * call the inline function definition converter. However, if for example you would only 
- * want to expand one function definition, you could use the methods in SBMLTransform 
- * directly. 
- */
-internal class ReplaceFD
-{
-  public static int Main(string[] args)
-  {
-    if (args.Length != 4)
-    {
-      Console.WriteLine("Usage: replaceOneFD filename functionDefinitionId reactionId outfile");
-      return 1;
-    }
-
-    string filename = args[0];
-    string outFile = args[3];
-    string functionDefinitionId = args[1];
-    string reactionId = args[2];
-    long current = DateTime.Now.Ticks;
-    SBMLDocument document = libsbml.readSBML(filename);
-
-    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR)  > 0)
-    {
-      Console.WriteLine("The models contains errors, please correct them before continuing.");
-      document.printErrors();
-      return 1;
-    }
-
-    var model = document.getModel();
-    var functionDefinition = model.getFunctionDefinition(functionDefinitionId);
-    if (functionDefinition == null)
-    {
-      Console.WriteLine();
-      Console.WriteLine("No functiondefinition with the given id can be found.");
-      return 1;
-    }
-
-    var reaction = model.getReaction(reactionId);
-    if (reaction == null)
-    {
-      Console.WriteLine();
-      Console.WriteLine("No reaction with the given id can be found.");
-      return 1;
-    }
-
-    if (!reaction.isSetKineticLaw() || !reaction.getKineticLaw().isSetMath())
-    {
-      Console.WriteLine();
-      Console.WriteLine("The reaction has no math set. ");
-      return 1;
-    }
-
-    // Until here it was all setup, all we needed was an ASTNode, in which we wanted to 
-    // replace calls to a function definition, with the function definitions content. 
-    //
-    SBMLTransforms.replaceFD(reaction.getKineticLaw().getMath(), functionDefinition);
-
-    // finally write to file
-    libsbml.writeSBML(document, outFile);
-
-    return 0;
-  }
-
-}
+/**
+ * @file    replaceOneFD.cs
+ * @brief   replaces a given function definition in a specific part of the model
+ * @author  Frank Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using libsbmlcs;
+
+/**
+ * This example is not something you would normally do, what you would want to do is to 
+ * call the inline function definition converter. However, if for example you would only 
+ * want to expand one function definition, you could use the methods in SBMLTransform 
+ * directly. 
+ */
+internal class ReplaceFD
+{
+  public static int Main(string[] args)
+  {
+    if (args.Length != 4)
+    {
+      Console.WriteLine("Usage: replaceOneFD filename functionDefinitionId reactionId outfile");
+      return 1;
+    }
+
+    string filename = args[0];
+    string outFile = args[3];
+    string functionDefinitionId = args[1];
+    string reactionId = args[2];
+    long current = DateTime.Now.Ticks;
+    SBMLDocument document = libsbml.readSBML(filename);
+
+    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR)  > 0)
+    {
+      Console.WriteLine("The models contains errors, please correct them before continuing.");
+      document.printErrors();
+      return 1;
+    }
+
+    var model = document.getModel();
+    var functionDefinition = model.getFunctionDefinition(functionDefinitionId);
+    if (functionDefinition == null)
+    {
+      Console.WriteLine();
+      Console.WriteLine("No functiondefinition with the given id can be found.");
+      return 1;
+    }
+
+    var reaction = model.getReaction(reactionId);
+    if (reaction == null)
+    {
+      Console.WriteLine();
+      Console.WriteLine("No reaction with the given id can be found.");
+      return 1;
+    }
+
+    if (!reaction.isSetKineticLaw() || !reaction.getKineticLaw().isSetMath())
+    {
+      Console.WriteLine();
+      Console.WriteLine("The reaction has no math set. ");
+      return 1;
+    }
+
+    // Until here it was all setup, all we needed was an ASTNode, in which we wanted to 
+    // replace calls to a function definition, with the function definitions content. 
+    //
+    SBMLTransforms.replaceFD(reaction.getKineticLaw().getMath(), functionDefinition);
+
+    // finally write to file
+    libsbml.writeSBML(document, outFile);
+
+    return 0;
+  }
+
+}
diff --git a/examples/csharp/stripPackage.cs b/examples/csharp/stripPackage.cs
index bd5952e..3652009 100644
--- a/examples/csharp/stripPackage.cs
+++ b/examples/csharp/stripPackage.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/translateMath.cs b/examples/csharp/translateMath.cs
index ef47969..ed55e3a 100644
--- a/examples/csharp/translateMath.cs
+++ b/examples/csharp/translateMath.cs
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/unsetAnnotation.cs b/examples/csharp/unsetAnnotation.cs
index 291955b..da7c047 100644
--- a/examples/csharp/unsetAnnotation.cs
+++ b/examples/csharp/unsetAnnotation.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/unsetNotes.cs b/examples/csharp/unsetNotes.cs
index ead45c1..84ecf88 100644
--- a/examples/csharp/unsetNotes.cs
+++ b/examples/csharp/unsetNotes.cs
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/csharp/validateSBML.cs b/examples/csharp/validateSBML.cs
index 35dd5d4..ea9e678 100644
--- a/examples/csharp/validateSBML.cs
+++ b/examples/csharp/validateSBML.cs
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/dyn-package.cmake b/examples/dyn-package.cmake
index 7220b09..18c5e00 100644
--- a/examples/dyn-package.cmake
+++ b/examples/dyn-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/fbc-package.cmake b/examples/fbc-package.cmake
index 21159d9..4c680c2 100644
--- a/examples/fbc-package.cmake
+++ b/examples/fbc-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/java/CMakeLists.txt b/examples/java/CMakeLists.txt
index 393edb7..ac13f28 100644
--- a/examples/java/CMakeLists.txt
+++ b/examples/java/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/java/Makefile.in b/examples/java/Makefile.in
index 2ba1bc6..ff201fa 100644
--- a/examples/java/Makefile.in
+++ b/examples/java/Makefile.in
@@ -11,7 +11,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/java/addCVTerms.java b/examples/java/addCVTerms.java
index 833af0e..59bdf02 100644
--- a/examples/java/addCVTerms.java
+++ b/examples/java/addCVTerms.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/addCustomValidator.java b/examples/java/addCustomValidator.java
index 44ffee2..77e7c7a 100644
--- a/examples/java/addCustomValidator.java
+++ b/examples/java/addCustomValidator.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/addModelHistory.java b/examples/java/addModelHistory.java
index 05a9eb3..20aea68 100644
--- a/examples/java/addModelHistory.java
+++ b/examples/java/addModelHistory.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/addingEvidenceCodes_1.java b/examples/java/addingEvidenceCodes_1.java
index 49d7882..dc54e75 100644
--- a/examples/java/addingEvidenceCodes_1.java
+++ b/examples/java/addingEvidenceCodes_1.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/addingEvidenceCodes_2.java b/examples/java/addingEvidenceCodes_2.java
index 535c91e..5fc067c 100644
--- a/examples/java/addingEvidenceCodes_2.java
+++ b/examples/java/addingEvidenceCodes_2.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/appendAnnotation.java b/examples/java/appendAnnotation.java
index 15b9689..d55999b 100644
--- a/examples/java/appendAnnotation.java
+++ b/examples/java/appendAnnotation.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/callExternalValidator.java b/examples/java/callExternalValidator.java
index bc91341..7d1e337 100644
--- a/examples/java/callExternalValidator.java
+++ b/examples/java/callExternalValidator.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/comp/CMakeLists.txt b/examples/java/comp/CMakeLists.txt
index ad1945c..4a50e36 100644
--- a/examples/java/comp/CMakeLists.txt
+++ b/examples/java/comp/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -33,6 +33,7 @@ find_package(Java COMPONENTS Development REQUIRED)
 
 foreach(file 
 		flattenModel
+		customResolver
 		)
 	
 	file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR} CURRENT_BIN)
diff --git a/examples/java/comp/customResolver.java b/examples/java/comp/customResolver.java
new file mode 100644
index 0000000..12b7062
--- /dev/null
+++ b/examples/java/comp/customResolver.java
@@ -0,0 +1,220 @@
+/**
+ * @file customResolver.java
+ * @brief Demonstrates implementation of a custom resolver for comp models
+ * @author Frank Bergmann
+ * 
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.net.URLConnection;
+import org.sbml.libsbml.CompPkgNamespaces;
+import org.sbml.libsbml.CompSBMLDocumentPlugin;
+import org.sbml.libsbml.ExternalModelDefinition;
+import org.sbml.libsbml.Model;
+import org.sbml.libsbml.SBMLDocument;
+import org.sbml.libsbml.SBMLExtensionRegistry;
+import org.sbml.libsbml.SBMLResolver;
+import org.sbml.libsbml.SBMLResolverRegistry;
+import org.sbml.libsbml.SBMLUri;
+import org.sbml.libsbml.libsbml;
+
+public class customResolver
+    extends SBMLResolver
+{
+    public customResolver()
+    {
+        super();
+    }
+
+
+    public customResolver(customResolver orig)
+    {
+        super(orig);
+    }
+
+
+    public @Override
+    SBMLResolver cloneObject()
+    {
+        return new customResolver(this);
+    }
+
+
+    public @Override
+    SBMLDocument resolve(String uri, String baseUri)
+    {
+        try
+        {
+            URL website = new URL(uri);
+            URLConnection connection = website.openConnection();
+            BufferedReader in = new BufferedReader(
+                                                   new InputStreamReader(
+                                                                         connection.getInputStream()));
+
+            StringBuilder response = new StringBuilder();
+            String inputLine;
+
+            while ((inputLine = in.readLine()) != null)
+                response.append(inputLine);
+
+            in.close();
+
+            return libsbml.readSBMLFromString(response.toString());
+        }
+        catch (Exception e)
+        {
+            // couldn't download file handle this somehow
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+    public @Override
+    SBMLUri resolveUri(String uri, String baseUri)
+    {
+        SBMLUri uriObject = new SBMLUri(uri);
+        if (!uriObject.getScheme().equals("http")) return null;
+        return uriObject;
+    }
+
+
+    public static void main(String[] args)
+    {
+        if (!SBMLExtensionRegistry.isPackageEnabled("comp"))
+        {
+            println("This copy of libSBML does not contain the 'comp' extension");
+            println("Unable to proceed with the resolver example the model.");
+            System.exit(2);
+        }
+
+        // create custom resolver
+        customResolver resolver = new customResolver();
+
+        // add the resolver and store its index, so we can free it later.
+        int index = SBMLResolverRegistry.getInstance().addResolver(resolver);
+
+        // create a new document with comp enabled
+        SBMLDocument doc = new SBMLDocument(new CompPkgNamespaces());
+
+        // get a hold of a plugin object
+        CompSBMLDocumentPlugin plugin = (CompSBMLDocumentPlugin) doc.getPlugin("comp");
+
+        // create an external model definition
+        ExternalModelDefinition external = plugin.createExternalModelDefinition();
+
+        // set the source to the URI
+        external.setSource("http://www.ebi.ac.uk/biomodels-main/download?mid=BMID000000063853");
+
+        // resolve the model
+        Model model = external.getReferencedModel();
+
+        if (model == null)
+        {
+            System.err.println("couldn't resolve");
+        }
+
+        // model is ready to be used now, however, only as long and the document
+        // holding the external model definition is still alive and referenced
+
+        System.out.println("Model id: " + model.getId());
+        System.out.println("# species: " + model.getNumSpecies());
+        System.out.println("# reactions: " + model.getNumReactions());
+
+        // now that we are done get rid of the resolver
+        SBMLResolverRegistry.getInstance().removeResolver(index);
+        // also clear the resolver instance, just to be sure that it has 
+        // no more references to the java resolver
+        SBMLResolverRegistry.deleteResolerRegistryInstance();
+        
+        // finally we can get rid of the java resolver 
+        resolver = null;
+
+    }
+
+
+    static void println(String msg)
+    {
+        System.out.println(msg);
+    }
+
+    /**
+     * Loads the SWIG-generated libSBML Java module when this class is
+     * loaded, or reports a sensible diagnostic message about why it failed.
+     */
+    static
+    {
+        try
+        {
+            System.loadLibrary("sbmlj");
+            // For extra safety, check that the jar file is in the classpath.
+            Class.forName("org.sbml.libsbml.libsbml");
+        }
+        catch (UnsatisfiedLinkError e)
+        {
+            System.err.println("Error encountered while attempting to load libSBML:");
+            System.err.println("Please check the value of your "
+                + (System.getProperty("os.name").startsWith("Mac OS") ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH")
+                + " environment variable and/or your"
+                + " 'java.library.path' system property (depending on"
+                + " which one you are using) to make sure it list the"
+                + " directories needed to find the "
+                + System.mapLibraryName("sbmlj") + " library file and"
+                + " libraries it depends upon (e.g., the XML parser).");
+            System.exit(1);
+        }
+        catch (ClassNotFoundException e)
+        {
+            System.err.println("Error: unable to load the file 'libsbmlj.jar'."
+                + " It is likely that your -classpath command line "
+                + " setting or your CLASSPATH environment variable "
+                + " do not include the file 'libsbmlj.jar'.");
+            e.printStackTrace();
+
+            System.exit(1);
+        }
+        catch (SecurityException e)
+        {
+            System.err.println("Error encountered while attempting to load libSBML:");
+            e.printStackTrace();
+            System.err.println("Could not load the libSBML library files due to a"
+                + " security exception.\n");
+            System.exit(1);
+        }
+    }
+}
diff --git a/examples/java/comp/flattenModel.java b/examples/java/comp/flattenModel.java
index e6c9fa2..0d90543 100644
--- a/examples/java/comp/flattenModel.java
+++ b/examples/java/comp/flattenModel.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/convertSBML.java b/examples/java/convertSBML.java
index d3899ac..f778ec1 100644
--- a/examples/java/convertSBML.java
+++ b/examples/java/convertSBML.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/createExampleSBML.java b/examples/java/createExampleSBML.java
index c0957ba..f4ea279 100644
--- a/examples/java/createExampleSBML.java
+++ b/examples/java/createExampleSBML.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/echoSBML.java b/examples/java/echoSBML.java
index 60de160..65f2fcc 100644
--- a/examples/java/echoSBML.java
+++ b/examples/java/echoSBML.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/evaluateCustomMath.java b/examples/java/evaluateCustomMath.java
index f1d16af..234d5b7 100644
--- a/examples/java/evaluateCustomMath.java
+++ b/examples/java/evaluateCustomMath.java
@@ -1,136 +1,136 @@
-/**
- * @file    evaluateCustomMath.cs
- * @brief   evaluates the given formula
- * @author  Frank Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This sample program is distributed under a different license than the rest
- * of libSBML.  This program uses the open-source MIT license, as follows:
- *
- * Copyright (c) 2013-2014 by the California Institute of Technology
- * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
- * and the University of Heidelberg (Germany), with support from the National
- * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Neither the name of the California Institute of Technology (Caltech), nor
- * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
- * of Heidelberg, nor the names of any contributors, may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * ------------------------------------------------------------------------ -->
- */
-
-import java.lang.*;
-import java.io.*;
-import org.sbml.libsbml.*;
-
-
-class evaluateCustomMath
-{
-  public static void main(String[] args)
-  {
-    if (args.length < 1)
-    {
-      System.out.println("Usage: evaluateCustomMath formula [model containing values]");
-      System.exit(1);
-    }
-
-    String formula = args[0];
-    String filename = args.length == 2 ?  args[1] : null;
-
-    ASTNode math = libsbml.parseFormula(formula);
-    if (math == null)
-    {
-      System.out.println("Invalid formula, aborting.");
-      System.exit(1);
-    }
-
-    SBMLDocument doc = null;
-    if (filename != null)
-    {
-      doc = libsbml.readSBML(filename);
-      if (doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
-      {
-        System.out.println("The models contains errors, please correct them before continuing.");
-        doc.printErrors();
-        System.exit(1);
-      }
-      // the following maps a list of ids to their corresponding model values
-      // this makes it possible to evaluate expressions involving SIds. 
-      SBMLTransforms.mapComponentValues(doc.getModel());
-    }
-    else
-    {
-      // create dummy document
-      doc = new SBMLDocument(3, 1);
-    }
-
-    double result = SBMLTransforms.evaluateASTNode(math, doc.getModel());
-    System.out.println(String.format("%s = %s", formula, result));
-
-  }
-
-  /**
-   * Loads the SWIG-generated libSBML Java module when this class is
-   * loaded, or reports a sensible diagnostic message about why it failed.
-   */
-  static
-  {
-    try
-    {
-      System.loadLibrary("sbmlj");
-      // For extra safety, check that the jar file is in the classpath.
-      Class.forName("org.sbml.libsbml.libsbml");
-    }
-    catch (UnsatisfiedLinkError e)
-    {
-      System.err.println("Error encountered while attempting to load libSBML:");
-      System.err.println("Please check the value of your "
-                         + (System.getProperty("os.name").startsWith("Mac OS")
-                            ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH") +
-                         " environment variable and/or your" +
-                         " 'java.library.path' system property (depending on" +
-                         " which one you are using) to make sure it list the" +
-                         " directories needed to find the " +
-                         System.mapLibraryName("sbmlj") + " library file and" +
-                         " libraries it depends upon (e.g., the XML parser).");
-      System.exit(1);
-    }
-    catch (ClassNotFoundException e)
-    {
-      System.err.println("Error: unable to load the file 'libsbmlj.jar'." +
-                         " It is likely that your -classpath command line " +
-                         " setting or your CLASSPATH environment variable " +
-                         " do not include the file 'libsbmlj.jar'.");
-      e.printStackTrace();
-
-      System.exit(1);
-    }
-    catch (SecurityException e)
-    {
-      System.err.println("Error encountered while attempting to load libSBML:");
-      e.printStackTrace();
-      System.err.println("Could not load the libSBML library files due to a"+
-                         " security exception.\n");
-      System.exit(1);
-    }
-  }
-}
+/**
+ * @file    evaluateCustomMath.cs
+ * @brief   evaluates the given formula
+ * @author  Frank Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+import java.lang.*;
+import java.io.*;
+import org.sbml.libsbml.*;
+
+
+class evaluateCustomMath
+{
+  public static void main(String[] args)
+  {
+    if (args.length < 1)
+    {
+      System.out.println("Usage: evaluateCustomMath formula [model containing values]");
+      System.exit(1);
+    }
+
+    String formula = args[0];
+    String filename = args.length == 2 ?  args[1] : null;
+
+    ASTNode math = libsbml.parseFormula(formula);
+    if (math == null)
+    {
+      System.out.println("Invalid formula, aborting.");
+      System.exit(1);
+    }
+
+    SBMLDocument doc = null;
+    if (filename != null)
+    {
+      doc = libsbml.readSBML(filename);
+      if (doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
+      {
+        System.out.println("The models contains errors, please correct them before continuing.");
+        doc.printErrors();
+        System.exit(1);
+      }
+      // the following maps a list of ids to their corresponding model values
+      // this makes it possible to evaluate expressions involving SIds. 
+      SBMLTransforms.mapComponentValues(doc.getModel());
+    }
+    else
+    {
+      // create dummy document
+      doc = new SBMLDocument(3, 1);
+    }
+
+    double result = SBMLTransforms.evaluateASTNode(math, doc.getModel());
+    System.out.println(String.format("%s = %s", formula, result));
+
+  }
+
+  /**
+   * Loads the SWIG-generated libSBML Java module when this class is
+   * loaded, or reports a sensible diagnostic message about why it failed.
+   */
+  static
+  {
+    try
+    {
+      System.loadLibrary("sbmlj");
+      // For extra safety, check that the jar file is in the classpath.
+      Class.forName("org.sbml.libsbml.libsbml");
+    }
+    catch (UnsatisfiedLinkError e)
+    {
+      System.err.println("Error encountered while attempting to load libSBML:");
+      System.err.println("Please check the value of your "
+                         + (System.getProperty("os.name").startsWith("Mac OS")
+                            ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH") +
+                         " environment variable and/or your" +
+                         " 'java.library.path' system property (depending on" +
+                         " which one you are using) to make sure it list the" +
+                         " directories needed to find the " +
+                         System.mapLibraryName("sbmlj") + " library file and" +
+                         " libraries it depends upon (e.g., the XML parser).");
+      System.exit(1);
+    }
+    catch (ClassNotFoundException e)
+    {
+      System.err.println("Error: unable to load the file 'libsbmlj.jar'." +
+                         " It is likely that your -classpath command line " +
+                         " setting or your CLASSPATH environment variable " +
+                         " do not include the file 'libsbmlj.jar'.");
+      e.printStackTrace();
+
+      System.exit(1);
+    }
+    catch (SecurityException e)
+    {
+      System.err.println("Error encountered while attempting to load libSBML:");
+      e.printStackTrace();
+      System.err.println("Could not load the libSBML library files due to a"+
+                         " security exception.\n");
+      System.exit(1);
+    }
+  }
+}
diff --git a/examples/java/evaluateMath.java b/examples/java/evaluateMath.java
index 4ed89a0..571fd2f 100644
--- a/examples/java/evaluateMath.java
+++ b/examples/java/evaluateMath.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/fbc/CMakeLists.txt b/examples/java/fbc/CMakeLists.txt
index 22acd37..b615936 100644
--- a/examples/java/fbc/CMakeLists.txt
+++ b/examples/java/fbc/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/java/fbc/convertCobraToFbc.java b/examples/java/fbc/convertCobraToFbc.java
index a41022f..ad2f8e9 100644
--- a/examples/java/fbc/convertCobraToFbc.java
+++ b/examples/java/fbc/convertCobraToFbc.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/fbc/convertFbcToCobra.java b/examples/java/fbc/convertFbcToCobra.java
index 011dffd..1880289 100644
--- a/examples/java/fbc/convertFbcToCobra.java
+++ b/examples/java/fbc/convertFbcToCobra.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/fbc/fbc_example1.java b/examples/java/fbc/fbc_example1.java
index b39869d..aa1deef 100644
--- a/examples/java/fbc/fbc_example1.java
+++ b/examples/java/fbc/fbc_example1.java
@@ -7,7 +7,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/getAllElementsWithNotes.java b/examples/java/getAllElementsWithNotes.java
index 937b362..008dadd 100644
--- a/examples/java/getAllElementsWithNotes.java
+++ b/examples/java/getAllElementsWithNotes.java
@@ -10,7 +10,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/groups/CMakeLists.txt b/examples/java/groups/CMakeLists.txt
index e2bcc9b..17c8b45 100644
--- a/examples/java/groups/CMakeLists.txt
+++ b/examples/java/groups/CMakeLists.txt
@@ -1,40 +1,40 @@
-####################################################################
-#
-# CMake Build Script for java examples
-#
-# 
-
-find_package(Java COMPONENTS Development REQUIRED)
-
-foreach(file 
-		example1
-		)
-	
-	file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR} CURRENT_BIN)
-	file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../../../src/bindings/java/libsbmlj.jar CURRENT_JAR )
-	file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/${file}.java CURRENT_FILE)
-		
-	add_custom_command(	
-		OUTPUT ${file}.class
-		COMMAND "${Java_JAVAC_EXECUTABLE}"
-		ARGS -cp ".${FILE_SEP}\"${CURRENT_JAR}\"${FILE_SEP}${CMAKE_CURRENT_SOURCE_DIR}"
-			 ${CURRENT_FILE}
-			 -source 1.5
-			 -target 1.5
-			 -d ${CMAKE_CURRENT_BINARY_DIR}
-		MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/bindings/java/local.i"
-		WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
-		DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.java
-		COMMENT "Build java example ${file}"
-	) 
-	
-	add_custom_target(example_groups_java_${file} ALL 
-		DEPENDS 
-		${CMAKE_CURRENT_BINARY_DIR}/${file}.class 
-		SOURCES 
-		${CMAKE_CURRENT_SOURCE_DIR}/${file}.java 
-	)
-	
-	add_dependencies(example_groups_java_${file} binding_java_jar)
-	
-endforeach()
+####################################################################
+#
+# CMake Build Script for java examples
+#
+# 
+
+find_package(Java COMPONENTS Development REQUIRED)
+
+foreach(file 
+		groups_example1
+		)
+	
+	file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR} CURRENT_BIN)
+	file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR}/../../../src/bindings/java/libsbmlj.jar CURRENT_JAR )
+	file(TO_NATIVE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/${file}.java CURRENT_FILE)
+		
+	add_custom_command(	
+		OUTPUT ${file}.class
+		COMMAND "${Java_JAVAC_EXECUTABLE}"
+		ARGS -cp ".${FILE_SEP}\"${CURRENT_JAR}\"${FILE_SEP}${CMAKE_CURRENT_SOURCE_DIR}"
+			 ${CURRENT_FILE}
+			 -source 1.5
+			 -target 1.5
+			 -d ${CMAKE_CURRENT_BINARY_DIR}
+		MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/../../../src/bindings/java/local.i"
+		WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+		DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.java
+		COMMENT "Build java example ${file}"
+	) 
+	
+	add_custom_target(example_groups_java_${file} ALL 
+		DEPENDS 
+		${CMAKE_CURRENT_BINARY_DIR}/${file}.class 
+		SOURCES 
+		${CMAKE_CURRENT_SOURCE_DIR}/${file}.java 
+	)
+	
+	add_dependencies(example_groups_java_${file} binding_java_jar)
+	
+endforeach()
diff --git a/examples/java/groups/example1.java b/examples/java/groups/example1.java
deleted file mode 100644
index 29da9b2..0000000
--- a/examples/java/groups/example1.java
+++ /dev/null
@@ -1,124 +0,0 @@
-// 
-// @file    example1.java
-// @brief   SBML Groups example
-// @author  Akiya Jouraku
-// @author  Frank Bergmann (java port)
-// 
-// $Id: example1.java 11938 2010-09-20 02:04:23Z mhucka $
-// $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/examples/groups/example1.java $
-// 
-// This file is part of libSBML.  Please visit http://sbml.org for more
-// information about SBML, and the latest version of libSBML.
-// 
-
-import org.sbml.libsbml.*;
-
-public class example1
-{
-
-public static void main(String[] args)
-{
-	System.loadLibrary("sbmlj");
-//
-// Creates an SBMLNamespaces object with the given SBML level, version
-// package name, package version.
-//
-// (NOTE) By defualt, the name of package (i.e. "groups") will be used
-// if the arugment for the prefix is missing or empty. Thus the argument
-// for the prefix can be added as follows:
-//
-//    SBMLNamespaces sbmlns(3,1,"groups",1,"GROUP");
-//
-
-SBMLNamespaces sbmlns = new SBMLNamespaces(3,1,"groups",1);
-
-//
-// (NOTES) The above code creating an SBMLNamespaces object can be replaced 
-//         with one of the following other styles.
-//
-// (1) Creates an SBMLNamespace object with a SBML core namespace and then
-//     adds a groups package namespace to the object. 
-//
-//         SBMLNamespaces sbmlns(3,1);
-//         sbmlns.addPkgNamespace("groups",1);
-//
-//          OR
-//
-//         SBMLNamespaces sbmlns(3,1);
-//         sbmlns.addNamespace(GroupsExtension::XmlnsL3V1V1,"groups");
-//
-// (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
-//     groups package. The class is basically used for createing an SBase derived
-//     objects defined in the groups package) with the given SBML level, version, 
-//     and package version
-//
-//        GroupsPkgNamespaces sbmlns(3,1,1);
-//     
-
-
-// create the document
-
-SBMLDocument document = new SBMLDocument(sbmlns);
-
-// create the Model
-
-Model model=document.createModel();
-
-// create the Compartment
-
-Compartment compartment = model.createCompartment();
-compartment.setId("cytosol");
-compartment.setConstant(true);
-
-compartment=model.createCompartment();
-compartment.setId("mitochon");
-compartment.setConstant(true);
-
-// create the Species
-
-Species species = model.createSpecies();
-species.setId("ATPc");
-species.setCompartment("cytosol");
-species.setInitialConcentration(1);
-species.setHasOnlySubstanceUnits(false);
-species.setBoundaryCondition(false);
-species.setConstant(false);
-
-species = model.createSpecies();
-species.setId("ATPm");
-species.setCompartment("mitochon");
-species.setInitialConcentration(2);
-species.setHasOnlySubstanceUnits(false);
-species.setBoundaryCondition(false);
-species.setConstant(false);
-
-// create the Groups
-
-//
-// Get a GroupsModelPlugin object plugged in the model object.
-//
-// The type of the returned value of SBase::getPlugin() function is SBasePlugin, and
-// thus the value needs to be casted for the corresponding derived class. 
-//
-GroupsModelPlugin mplugin = (GroupsModelPlugin)(model.getPlugin("groups"));
-
-//
-// Creates a Group object via GroupsModelPlugin object.
-//
-Group group = mplugin.createGroup();
-
-group.setId("ATP");
-group.setKind(libsbml.GROUP_KIND_CLASSIFICATION);
-group.setSBOTerm("SBO:0000252");
-
-Member member = group.createMember();
-member.setIdRef("ATPc");
-
-member = group.createMember();
-member.setIdRef("ATPm");
-
-libsbml.writeSBML(document,"groups_example1-java.xml");
-
-}
-
-}
diff --git a/examples/java/groups/groups_example1.java b/examples/java/groups/groups_example1.java
new file mode 100644
index 0000000..45dfacf
--- /dev/null
+++ b/examples/java/groups/groups_example1.java
@@ -0,0 +1,124 @@
+// 
+// @file    groups_example1.java
+// @brief   SBML Groups example
+// @author  Akiya Jouraku
+// @author  Frank Bergmann (java port)
+// 
+// $Id: example1.java 11938 2010-09-20 02:04:23Z mhucka $
+// $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/examples/groups/example1.java $
+// 
+// This file is part of libSBML.  Please visit http://sbml.org for more
+// information about SBML, and the latest version of libSBML.
+// 
+
+import org.sbml.libsbml.*;
+
+public class groups_example1
+{
+
+public static void main(String[] args)
+{
+	System.loadLibrary("sbmlj");
+//
+// Creates an SBMLNamespaces object with the given SBML level, version
+// package name, package version.
+//
+// (NOTE) By defualt, the name of package (i.e. "groups") will be used
+// if the arugment for the prefix is missing or empty. Thus the argument
+// for the prefix can be added as follows:
+//
+//    SBMLNamespaces sbmlns(3,1,"groups",1,"GROUP");
+//
+
+SBMLNamespaces sbmlns = new SBMLNamespaces(3,1,"groups",1);
+
+//
+// (NOTES) The above code creating an SBMLNamespaces object can be replaced 
+//         with one of the following other styles.
+//
+// (1) Creates an SBMLNamespace object with a SBML core namespace and then
+//     adds a groups package namespace to the object. 
+//
+//         SBMLNamespaces sbmlns(3,1);
+//         sbmlns.addPkgNamespace("groups",1);
+//
+//          OR
+//
+//         SBMLNamespaces sbmlns(3,1);
+//         sbmlns.addNamespace(GroupsExtension::XmlnsL3V1V1,"groups");
+//
+// (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
+//     groups package. The class is basically used for createing an SBase derived
+//     objects defined in the groups package) with the given SBML level, version, 
+//     and package version
+//
+//        GroupsPkgNamespaces sbmlns(3,1,1);
+//     
+
+
+// create the document
+
+SBMLDocument document = new SBMLDocument(sbmlns);
+
+// create the Model
+
+Model model=document.createModel();
+
+// create the Compartment
+
+Compartment compartment = model.createCompartment();
+compartment.setId("cytosol");
+compartment.setConstant(true);
+
+compartment=model.createCompartment();
+compartment.setId("mitochon");
+compartment.setConstant(true);
+
+// create the Species
+
+Species species = model.createSpecies();
+species.setId("ATPc");
+species.setCompartment("cytosol");
+species.setInitialConcentration(1);
+species.setHasOnlySubstanceUnits(false);
+species.setBoundaryCondition(false);
+species.setConstant(false);
+
+species = model.createSpecies();
+species.setId("ATPm");
+species.setCompartment("mitochon");
+species.setInitialConcentration(2);
+species.setHasOnlySubstanceUnits(false);
+species.setBoundaryCondition(false);
+species.setConstant(false);
+
+// create the Groups
+
+//
+// Get a GroupsModelPlugin object plugged in the model object.
+//
+// The type of the returned value of SBase::getPlugin() function is SBasePlugin, and
+// thus the value needs to be casted for the corresponding derived class. 
+//
+GroupsModelPlugin mplugin = (GroupsModelPlugin)(model.getPlugin("groups"));
+
+//
+// Creates a Group object via GroupsModelPlugin object.
+//
+Group group = mplugin.createGroup();
+
+group.setId("ATP");
+group.setKind(libsbml.GROUP_KIND_CLASSIFICATION);
+group.setSBOTerm("SBO:0000252");
+
+Member member = group.createMember();
+member.setIdRef("ATPc");
+
+member = group.createMember();
+member.setIdRef("ATPm");
+
+libsbml.writeSBML(document,"groups_example1-java.xml");
+
+}
+
+}
diff --git a/examples/java/inlineInitialAssignments.java b/examples/java/inlineInitialAssignments.java
index 70fe684..28743be 100644
--- a/examples/java/inlineInitialAssignments.java
+++ b/examples/java/inlineInitialAssignments.java
@@ -1,122 +1,122 @@
-/**
- * @file    inlineInitialAssignments.java
- * @brief   inlines all initial assignments directly
- * @author  Frank Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This sample program is distributed under a different license than the rest
- * of libSBML.  This program uses the open-source MIT license, as follows:
- *
- * Copyright (c) 2013-2014 by the California Institute of Technology
- * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
- * and the University of Heidelberg (Germany), with support from the National
- * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Neither the name of the California Institute of Technology (Caltech), nor
- * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
- * of Heidelberg, nor the names of any contributors, may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * ------------------------------------------------------------------------ -->
- */
-
-
-import java.lang.*;
-import java.io.*;
-import org.sbml.libsbml.*;
-
-class inlineInitialAssignments
-{
-  public static void main(String[] args)
-  {
-    if (args.length != 2)
-    {
-      System.out.println("Usage: inlineInitialAssignments filename outFile");
-      System.exit(1);
-    }
-
-    String filename = args[0];
-    String outFile = args[1];
-
-    SBMLDocument document = libsbml.readSBML(filename);
-
-
-    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
-    {
-      System.out.println("The models contains errors, please correct them before continuing.");
-      document.printErrors();
-      System.exit(1);
-    }
-
-    Model model = document.getModel();
-
-    SBMLTransforms.expandInitialAssignments(model);
-
-    libsbml.writeSBML(document, outFile);
-    
-  }
-  
-  /**
-   * Loads the SWIG-generated libSBML Java module when this class is
-   * loaded, or reports a sensible diagnostic message about why it failed.
-   */
-  static
-  {
-    try
-    {
-      System.loadLibrary("sbmlj");
-      // For extra safety, check that the jar file is in the classpath.
-      Class.forName("org.sbml.libsbml.libsbml");
-    }
-    catch (UnsatisfiedLinkError e)
-    {
-      System.err.println("Error encountered while attempting to load libSBML:");
-      System.err.println("Please check the value of your "
-                         + (System.getProperty("os.name").startsWith("Mac OS")
-                            ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH") +
-                         " environment variable and/or your" +
-                         " 'java.library.path' system property (depending on" +
-                         " which one you are using) to make sure it list the" +
-                         " directories needed to find the " +
-                         System.mapLibraryName("sbmlj") + " library file and" +
-                         " libraries it depends upon (e.g., the XML parser).");
-      System.exit(1);
-    }
-    catch (ClassNotFoundException e)
-    {
-      System.err.println("Error: unable to load the file 'libsbmlj.jar'." +
-                         " It is likely that your -classpath command line " +
-                         " setting or your CLASSPATH environment variable " +
-                         " do not include the file 'libsbmlj.jar'.");
-      e.printStackTrace();
-
-      System.exit(1);
-    }
-    catch (SecurityException e)
-    {
-      System.err.println("Error encountered while attempting to load libSBML:");
-      e.printStackTrace();
-      System.err.println("Could not load the libSBML library files due to a"+
-                         " security exception.\n");
-      System.exit(1);
-    }
-  }
-}
+/**
+ * @file    inlineInitialAssignments.java
+ * @brief   inlines all initial assignments directly
+ * @author  Frank Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+
+import java.lang.*;
+import java.io.*;
+import org.sbml.libsbml.*;
+
+class inlineInitialAssignments
+{
+  public static void main(String[] args)
+  {
+    if (args.length != 2)
+    {
+      System.out.println("Usage: inlineInitialAssignments filename outFile");
+      System.exit(1);
+    }
+
+    String filename = args[0];
+    String outFile = args[1];
+
+    SBMLDocument document = libsbml.readSBML(filename);
+
+
+    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
+    {
+      System.out.println("The models contains errors, please correct them before continuing.");
+      document.printErrors();
+      System.exit(1);
+    }
+
+    Model model = document.getModel();
+
+    SBMLTransforms.expandInitialAssignments(model);
+
+    libsbml.writeSBML(document, outFile);
+    
+  }
+  
+  /**
+   * Loads the SWIG-generated libSBML Java module when this class is
+   * loaded, or reports a sensible diagnostic message about why it failed.
+   */
+  static
+  {
+    try
+    {
+      System.loadLibrary("sbmlj");
+      // For extra safety, check that the jar file is in the classpath.
+      Class.forName("org.sbml.libsbml.libsbml");
+    }
+    catch (UnsatisfiedLinkError e)
+    {
+      System.err.println("Error encountered while attempting to load libSBML:");
+      System.err.println("Please check the value of your "
+                         + (System.getProperty("os.name").startsWith("Mac OS")
+                            ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH") +
+                         " environment variable and/or your" +
+                         " 'java.library.path' system property (depending on" +
+                         " which one you are using) to make sure it list the" +
+                         " directories needed to find the " +
+                         System.mapLibraryName("sbmlj") + " library file and" +
+                         " libraries it depends upon (e.g., the XML parser).");
+      System.exit(1);
+    }
+    catch (ClassNotFoundException e)
+    {
+      System.err.println("Error: unable to load the file 'libsbmlj.jar'." +
+                         " It is likely that your -classpath command line " +
+                         " setting or your CLASSPATH environment variable " +
+                         " do not include the file 'libsbmlj.jar'.");
+      e.printStackTrace();
+
+      System.exit(1);
+    }
+    catch (SecurityException e)
+    {
+      System.err.println("Error encountered while attempting to load libSBML:");
+      e.printStackTrace();
+      System.err.println("Could not load the libSBML library files due to a"+
+                         " security exception.\n");
+      System.exit(1);
+    }
+  }
+}
diff --git a/examples/java/layout/CMakeLists.txt b/examples/java/layout/CMakeLists.txt
index 89b276a..518dffc 100644
--- a/examples/java/layout/CMakeLists.txt
+++ b/examples/java/layout/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/java/layout/SimpleLayoutConverter.java b/examples/java/layout/SimpleLayoutConverter.java
index c60a2aa..4673f04 100644
--- a/examples/java/layout/SimpleLayoutConverter.java
+++ b/examples/java/layout/SimpleLayoutConverter.java
@@ -1,177 +1,177 @@
-import org.sbml.libsbml.ConversionProperties;
-import org.sbml.libsbml.LayoutModelPlugin;
-import org.sbml.libsbml.SBMLDocument;
-import org.sbml.libsbml.SBMLNamespaces;
-import org.sbml.libsbml.SBasePlugin;
-import org.sbml.libsbml.libsbml;
-
-/**
- * This Class converts a document (including layout) from L3 to L2 or from L2 to
- * L3V1
- * 
- * @author Frank Bergmann
- * 
- */
-public class SimpleLayoutConverter
-{
-
-    public static void main(String args[])
-    {
-        // check arguments
-        if (args.length != 2)
-        {
-            System.err.println("usage: SimpleLayoutConverter <input file> <output file>");
-            System.exit(1);
-        }
-
-        // load native library
-        System.loadLibrary("sbmlj");
-
-        // read document
-        SBMLDocument doc = libsbml.readSBMLFromFile(args[0]);
-
-        // bail on error
-        if (doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
-        {
-            doc.checkConsistency();
-            System.err.println("The document contains errors that need to be corrected first:");
-            System.err.println(doc.getErrorLog().toString());
-            System.exit(1);
-        }
-
-        // check for layout
-        if (doc.getPlugin("layout") == null)
-        {
-            System.err.println("This document contains no layout, conversion skipped.");
-            System.exit(0);
-        }
-
-        // perform the conversion
-        if (doc.getLevel() == 3)
-            convertToL2(doc);
-        else
-            convertToL3(doc);
-
-        // write document to file
-        libsbml.writeSBMLToFile(doc, args[1]);
-
-    }
-
-
-    /**
-     * This function converts the given document to L3v1, converting also layout
-     * and render elements
-     * 
-     * @param doc
-     *            the document to convert
-     */
-    private static void convertToL3(SBMLDocument doc)
-    {
-        if (doc == null || doc.getModel() == null) return;
-
-        String layoutNsUri = "http://www.sbml.org/sbml/level3/version1/layout/version1";
-        String renderNsUri = "http://www.sbml.org/sbml/level3/version1/render/version1";
-
-        LayoutModelPlugin plugin = (LayoutModelPlugin) doc.getModel()
-                                                          .getPlugin("layout");
-
-        // bail if we don't have layout
-        if (plugin == null) return;
-
-        // convert document
-        ConversionProperties prop = new ConversionProperties(
-                                                             new SBMLNamespaces(
-                                                                                3,
-                                                                                1));
-        prop.addOption("strict", false);
-        prop.addOption("setLevelAndVersion", true);
-        prop.addOption("ignorePackages", true);
-
-        if (doc.convert(prop) != libsbml.LIBSBML_OPERATION_SUCCESS)
-        {
-            System.err.println("Conversion failed!");
-            doc.printErrors();
-            System.exit(2);
-        }
-
-        // add new layout namespace and set required flag
-        SBasePlugin docPlugin = doc.getPlugin("layout");
-
-        // if we don't have layout there isnothing to do
-        if (docPlugin == null) return;
-
-        docPlugin.setElementNamespace(layoutNsUri);
-
-        doc.getSBMLNamespaces().addPackageNamespace("layout", 1);
-        doc.setPackageRequired("layout", false);
-
-        // add enable render if needed
-        SBasePlugin rdocPlugin = doc.getPlugin("render");
-        if (rdocPlugin != null)
-        {
-            doc.getSBMLNamespaces().addPackageNamespace("render", 1);
-        }
-        else
-        {
-            doc.enablePackage(renderNsUri, "render", true);
-        }
-        doc.setPackageRequired("render", false);
-
-    }
-
-
-    /**
-     * This function converts a SBML L3 document to an L2 document, moving the
-     * layout package into the annotation
-     * 
-     * @param doc
-     *            the document to convert
-     */
-    private static void convertToL2(SBMLDocument doc)
-    {
-        if (doc == null || doc.getModel() == null) return;
-
-        String layoutNsUri = "http://projects.eml.org/bcb/sbml/level2";
-        String renderNsUri = "http://projects.eml.org/bcb/sbml/render/level2";
-
-        LayoutModelPlugin plugin = (LayoutModelPlugin) doc.getModel()
-                                                          .getPlugin("layout");
-
-        // bail if we don't have layout
-        if (plugin == null) return;
-
-        // perform the conversion
-        ConversionProperties prop = new ConversionProperties(
-                                                             new SBMLNamespaces(
-                                                                                2,
-                                                                                4));
-        prop.addOption("strict", false);
-        prop.addOption("setLevelAndVersion", true);
-        prop.addOption("ignorePackages", true);
-
-        if (doc.convert(prop) != libsbml.LIBSBML_OPERATION_SUCCESS)
-        {
-            System.err.println("Conversion failed!");
-            doc.printErrors();
-            System.exit(2);
-        }
-
-        SBasePlugin docPlugin = doc.getPlugin("layout");
-
-        // if we don't have layout, there is nothing to do
-        if (docPlugin == null) return;
-
-        docPlugin.setElementNamespace(layoutNsUri);
-
-        doc.getSBMLNamespaces().removePackageNamespace(3, 1, "layout", 1);
-        doc.getSBMLNamespaces().addPackageNamespace("layout", 1);
-
-        SBasePlugin rdocPlugin = doc.getPlugin("render");
-        if (rdocPlugin != null)
-        {
-            rdocPlugin.setElementNamespace(renderNsUri);
-            doc.getSBMLNamespaces().removePackageNamespace(3, 1, "render", 1);
-            doc.getSBMLNamespaces().addPackageNamespace("render", 1);
-        }
-    }
-}
+import org.sbml.libsbml.ConversionProperties;
+import org.sbml.libsbml.LayoutModelPlugin;
+import org.sbml.libsbml.SBMLDocument;
+import org.sbml.libsbml.SBMLNamespaces;
+import org.sbml.libsbml.SBasePlugin;
+import org.sbml.libsbml.libsbml;
+
+/**
+ * This Class converts a document (including layout) from L3 to L2 or from L2 to
+ * L3V1
+ * 
+ * @author Frank Bergmann
+ * 
+ */
+public class SimpleLayoutConverter
+{
+
+    public static void main(String args[])
+    {
+        // check arguments
+        if (args.length != 2)
+        {
+            System.err.println("usage: SimpleLayoutConverter <input file> <output file>");
+            System.exit(1);
+        }
+
+        // load native library
+        System.loadLibrary("sbmlj");
+
+        // read document
+        SBMLDocument doc = libsbml.readSBMLFromFile(args[0]);
+
+        // bail on error
+        if (doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0)
+        {
+            doc.checkConsistency();
+            System.err.println("The document contains errors that need to be corrected first:");
+            System.err.println(doc.getErrorLog().toString());
+            System.exit(1);
+        }
+
+        // check for layout
+        if (doc.getPlugin("layout") == null)
+        {
+            System.err.println("This document contains no layout, conversion skipped.");
+            System.exit(0);
+        }
+
+        // perform the conversion
+        if (doc.getLevel() == 3)
+            convertToL2(doc);
+        else
+            convertToL3(doc);
+
+        // write document to file
+        libsbml.writeSBMLToFile(doc, args[1]);
+
+    }
+
+
+    /**
+     * This function converts the given document to L3v1, converting also layout
+     * and render elements
+     * 
+     * @param doc
+     *            the document to convert
+     */
+    private static void convertToL3(SBMLDocument doc)
+    {
+        if (doc == null || doc.getModel() == null) return;
+
+        String layoutNsUri = "http://www.sbml.org/sbml/level3/version1/layout/version1";
+        String renderNsUri = "http://www.sbml.org/sbml/level3/version1/render/version1";
+
+        LayoutModelPlugin plugin = (LayoutModelPlugin) doc.getModel()
+                                                          .getPlugin("layout");
+
+        // bail if we don't have layout
+        if (plugin == null) return;
+
+        // convert document
+        ConversionProperties prop = new ConversionProperties(
+                                                             new SBMLNamespaces(
+                                                                                3,
+                                                                                1));
+        prop.addOption("strict", false);
+        prop.addOption("setLevelAndVersion", true);
+        prop.addOption("ignorePackages", true);
+
+        if (doc.convert(prop) != libsbml.LIBSBML_OPERATION_SUCCESS)
+        {
+            System.err.println("Conversion failed!");
+            doc.printErrors();
+            System.exit(2);
+        }
+
+        // add new layout namespace and set required flag
+        SBasePlugin docPlugin = doc.getPlugin("layout");
+
+        // if we don't have layout there isnothing to do
+        if (docPlugin == null) return;
+
+        docPlugin.setElementNamespace(layoutNsUri);
+
+        doc.getSBMLNamespaces().addPackageNamespace("layout", 1);
+        doc.setPackageRequired("layout", false);
+
+        // add enable render if needed
+        SBasePlugin rdocPlugin = doc.getPlugin("render");
+        if (rdocPlugin != null)
+        {
+            doc.getSBMLNamespaces().addPackageNamespace("render", 1);
+        }
+        else
+        {
+            doc.enablePackage(renderNsUri, "render", true);
+        }
+        doc.setPackageRequired("render", false);
+
+    }
+
+
+    /**
+     * This function converts a SBML L3 document to an L2 document, moving the
+     * layout package into the annotation
+     * 
+     * @param doc
+     *            the document to convert
+     */
+    private static void convertToL2(SBMLDocument doc)
+    {
+        if (doc == null || doc.getModel() == null) return;
+
+        String layoutNsUri = "http://projects.eml.org/bcb/sbml/level2";
+        String renderNsUri = "http://projects.eml.org/bcb/sbml/render/level2";
+
+        LayoutModelPlugin plugin = (LayoutModelPlugin) doc.getModel()
+                                                          .getPlugin("layout");
+
+        // bail if we don't have layout
+        if (plugin == null) return;
+
+        // perform the conversion
+        ConversionProperties prop = new ConversionProperties(
+                                                             new SBMLNamespaces(
+                                                                                2,
+                                                                                4));
+        prop.addOption("strict", false);
+        prop.addOption("setLevelAndVersion", true);
+        prop.addOption("ignorePackages", true);
+
+        if (doc.convert(prop) != libsbml.LIBSBML_OPERATION_SUCCESS)
+        {
+            System.err.println("Conversion failed!");
+            doc.printErrors();
+            System.exit(2);
+        }
+
+        SBasePlugin docPlugin = doc.getPlugin("layout");
+
+        // if we don't have layout, there is nothing to do
+        if (docPlugin == null) return;
+
+        docPlugin.setElementNamespace(layoutNsUri);
+
+        doc.getSBMLNamespaces().removePackageNamespace(3, 1, "layout", 1);
+        doc.getSBMLNamespaces().addPackageNamespace("layout", 1);
+
+        SBasePlugin rdocPlugin = doc.getPlugin("render");
+        if (rdocPlugin != null)
+        {
+            rdocPlugin.setElementNamespace(renderNsUri);
+            doc.getSBMLNamespaces().removePackageNamespace(3, 1, "render", 1);
+            doc.getSBMLNamespaces().addPackageNamespace("render", 1);
+        }
+    }
+}
diff --git a/examples/java/printAnnotation.java b/examples/java/printAnnotation.java
index bac9cb6..2fccb0b 100644
--- a/examples/java/printAnnotation.java
+++ b/examples/java/printAnnotation.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/printMath.java b/examples/java/printMath.java
index 4142a5a..cc13353 100644
--- a/examples/java/printMath.java
+++ b/examples/java/printMath.java
@@ -10,7 +10,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/printNotes.java b/examples/java/printNotes.java
index c1ea8bd..c82899b 100644
--- a/examples/java/printNotes.java
+++ b/examples/java/printNotes.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/printRegisteredPackages.java b/examples/java/printRegisteredPackages.java
index e35741b..2d2ba24 100644
--- a/examples/java/printRegisteredPackages.java
+++ b/examples/java/printRegisteredPackages.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/printSBML.java b/examples/java/printSBML.java
index 5b2a2d8..a3840ba 100644
--- a/examples/java/printSBML.java
+++ b/examples/java/printSBML.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/printUnits.java b/examples/java/printUnits.java
index a68f015..4c99a88 100644
--- a/examples/java/printUnits.java
+++ b/examples/java/printUnits.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/printsupported.java b/examples/java/printsupported.java
index 2b54e79..a19dd82 100644
--- a/examples/java/printsupported.java
+++ b/examples/java/printsupported.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/promoteParameters.java b/examples/java/promoteParameters.java
index 5580e92..edc095e 100644
--- a/examples/java/promoteParameters.java
+++ b/examples/java/promoteParameters.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/qual/CMakeLists.txt b/examples/java/qual/CMakeLists.txt
index f9d7002..1095faf 100644
--- a/examples/java/qual/CMakeLists.txt
+++ b/examples/java/qual/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/java/qual/qual_example1.java b/examples/java/qual/qual_example1.java
index 320b497..dcdb8a3 100644
--- a/examples/java/qual/qual_example1.java
+++ b/examples/java/qual/qual_example1.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/readSBML.java b/examples/java/readSBML.java
index 2516658..a0b9890 100644
--- a/examples/java/readSBML.java
+++ b/examples/java/readSBML.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/replaceOneFD.java b/examples/java/replaceOneFD.java
index 2317880..c5f7f12 100644
--- a/examples/java/replaceOneFD.java
+++ b/examples/java/replaceOneFD.java
@@ -1,153 +1,153 @@
-/**
- * @file    replaceOneFD.java
- * @brief   replaces a given function definition in a specific part of the model
- * @author  Frank Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This sample program is distributed under a different license than the rest
- * of libSBML.  This program uses the open-source MIT license, as follows:
- *
- * Copyright (c) 2013-2014 by the California Institute of Technology
- * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
- * and the University of Heidelberg (Germany), with support from the National
- * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Neither the name of the California Institute of Technology (Caltech), nor
- * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
- * of Heidelberg, nor the names of any contributors, may be used to endorse
- * or promote products derived from this software without specific prior
- * written permission.
- * ------------------------------------------------------------------------ -->
- */
-
-import java.lang.*;
-import java.io.*;
-import org.sbml.libsbml.*;
-
-/**
- * This example is not something you would normally do, what you would want to do is to 
- * call the inline function definition converter. However, if for example you would only 
- * want to expand one function definition, you could use the methods in SBMLTransform 
- * directly. 
- */
-class replaceOneFD
-{
-  public static void main(String[] args)
-  {
-    if (args.length != 4)
-    {
-      System.out.println("Usage: replaceOneFD filename functionDefinitionId reactionId outfile");
-      System.exit(1);
-    }
-
-    String filename = args[0];
-    String outFile = args[3];
-    String functionDefinitionId = args[1];
-    String reactionId = args[2];
-    SBMLDocument document = libsbml.readSBML(filename);
-
-    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR)  > 0)
-    {
-      System.out.println("The models contains errors, please correct them before continuing.");
-      document.printErrors();
-      System.exit(1);
-    }
-
-    Model model = document.getModel();
-    FunctionDefinition functionDefinition = model.getFunctionDefinition(functionDefinitionId);
-    if (functionDefinition == null)
-    {
-      System.out.println();
-      System.out.println("No functiondefinition with the given id can be found.");
-      System.exit(1);
-    }
-
-    Reaction reaction = model.getReaction(reactionId);
-    if (reaction == null)
-    {
-      System.out.println();
-      System.out.println("No reaction with the given id can be found.");
-      System.exit(1);
-    }
-
-    if (!reaction.isSetKineticLaw() || !reaction.getKineticLaw().isSetMath())
-    {
-      System.out.println();
-      System.out.println("The reaction has no math set. ");
-      System.exit(1);
-    }
-
-    // Until here it was all setup, all we needed was an ASTNode, in which we wanted to 
-    // replace calls to a function definition, with the function definitions content. 
-    //
-    SBMLTransforms.replaceFD(reaction.getKineticLaw().getMath(), functionDefinition);
-
-    // finally write to file
-    libsbml.writeSBML(document, outFile);
-
-  }
-
-  /**
-   * Loads the SWIG-generated libSBML Java module when this class is
-   * loaded, or reports a sensible diagnostic message about why it failed.
-   */
-  static
-  {
-    try
-    {
-      System.loadLibrary("sbmlj");
-      // For extra safety, check that the jar file is in the classpath.
-      Class.forName("org.sbml.libsbml.libsbml");
-    }
-    catch (UnsatisfiedLinkError e)
-    {
-      System.err.println("Error encountered while attempting to load libSBML:");
-      System.err.println("Please check the value of your "
-                         + (System.getProperty("os.name").startsWith("Mac OS")
-                            ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH") +
-                         " environment variable and/or your" +
-                         " 'java.library.path' system property (depending on" +
-                         " which one you are using) to make sure it list the" +
-                         " directories needed to find the " +
-                         System.mapLibraryName("sbmlj") + " library file and" +
-                         " libraries it depends upon (e.g., the XML parser).");
-      System.exit(1);
-    }
-    catch (ClassNotFoundException e)
-    {
-      System.err.println("Error: unable to load the file 'libsbmlj.jar'." +
-                         " It is likely that your -classpath command line " +
-                         " setting or your CLASSPATH environment variable " +
-                         " do not include the file 'libsbmlj.jar'.");
-      e.printStackTrace();
-
-      System.exit(1);
-    }
-    catch (SecurityException e)
-    {
-      System.err.println("Error encountered while attempting to load libSBML:");
-      e.printStackTrace();
-      System.err.println("Could not load the libSBML library files due to a"+
-                         " security exception.\n");
-      System.exit(1);
-    }
-  }
-}
+/**
+ * @file    replaceOneFD.java
+ * @brief   replaces a given function definition in a specific part of the model
+ * @author  Frank Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This sample program is distributed under a different license than the rest
+ * of libSBML.  This program uses the open-source MIT license, as follows:
+ *
+ * Copyright (c) 2013-2016 by the California Institute of Technology
+ * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+ * and the University of Heidelberg (Germany), with support from the National
+ * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Neither the name of the California Institute of Technology (Caltech), nor
+ * of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+ * of Heidelberg, nor the names of any contributors, may be used to endorse
+ * or promote products derived from this software without specific prior
+ * written permission.
+ * ------------------------------------------------------------------------ -->
+ */
+
+import java.lang.*;
+import java.io.*;
+import org.sbml.libsbml.*;
+
+/**
+ * This example is not something you would normally do, what you would want to do is to 
+ * call the inline function definition converter. However, if for example you would only 
+ * want to expand one function definition, you could use the methods in SBMLTransform 
+ * directly. 
+ */
+class replaceOneFD
+{
+  public static void main(String[] args)
+  {
+    if (args.length != 4)
+    {
+      System.out.println("Usage: replaceOneFD filename functionDefinitionId reactionId outfile");
+      System.exit(1);
+    }
+
+    String filename = args[0];
+    String outFile = args[3];
+    String functionDefinitionId = args[1];
+    String reactionId = args[2];
+    SBMLDocument document = libsbml.readSBML(filename);
+
+    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR)  > 0)
+    {
+      System.out.println("The models contains errors, please correct them before continuing.");
+      document.printErrors();
+      System.exit(1);
+    }
+
+    Model model = document.getModel();
+    FunctionDefinition functionDefinition = model.getFunctionDefinition(functionDefinitionId);
+    if (functionDefinition == null)
+    {
+      System.out.println();
+      System.out.println("No functiondefinition with the given id can be found.");
+      System.exit(1);
+    }
+
+    Reaction reaction = model.getReaction(reactionId);
+    if (reaction == null)
+    {
+      System.out.println();
+      System.out.println("No reaction with the given id can be found.");
+      System.exit(1);
+    }
+
+    if (!reaction.isSetKineticLaw() || !reaction.getKineticLaw().isSetMath())
+    {
+      System.out.println();
+      System.out.println("The reaction has no math set. ");
+      System.exit(1);
+    }
+
+    // Until here it was all setup, all we needed was an ASTNode, in which we wanted to 
+    // replace calls to a function definition, with the function definitions content. 
+    //
+    SBMLTransforms.replaceFD(reaction.getKineticLaw().getMath(), functionDefinition);
+
+    // finally write to file
+    libsbml.writeSBML(document, outFile);
+
+  }
+
+  /**
+   * Loads the SWIG-generated libSBML Java module when this class is
+   * loaded, or reports a sensible diagnostic message about why it failed.
+   */
+  static
+  {
+    try
+    {
+      System.loadLibrary("sbmlj");
+      // For extra safety, check that the jar file is in the classpath.
+      Class.forName("org.sbml.libsbml.libsbml");
+    }
+    catch (UnsatisfiedLinkError e)
+    {
+      System.err.println("Error encountered while attempting to load libSBML:");
+      System.err.println("Please check the value of your "
+                         + (System.getProperty("os.name").startsWith("Mac OS")
+                            ? "DYLD_LIBRARY_PATH" : "LD_LIBRARY_PATH") +
+                         " environment variable and/or your" +
+                         " 'java.library.path' system property (depending on" +
+                         " which one you are using) to make sure it list the" +
+                         " directories needed to find the " +
+                         System.mapLibraryName("sbmlj") + " library file and" +
+                         " libraries it depends upon (e.g., the XML parser).");
+      System.exit(1);
+    }
+    catch (ClassNotFoundException e)
+    {
+      System.err.println("Error: unable to load the file 'libsbmlj.jar'." +
+                         " It is likely that your -classpath command line " +
+                         " setting or your CLASSPATH environment variable " +
+                         " do not include the file 'libsbmlj.jar'.");
+      e.printStackTrace();
+
+      System.exit(1);
+    }
+    catch (SecurityException e)
+    {
+      System.err.println("Error encountered while attempting to load libSBML:");
+      e.printStackTrace();
+      System.err.println("Could not load the libSBML library files due to a"+
+                         " security exception.\n");
+      System.exit(1);
+    }
+  }
+}
diff --git a/examples/java/setIdFromNames.java b/examples/java/setIdFromNames.java
index fd43ee8..6bd54d8 100644
--- a/examples/java/setIdFromNames.java
+++ b/examples/java/setIdFromNames.java
@@ -10,7 +10,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/spatial/CMakeLists.txt b/examples/java/spatial/CMakeLists.txt
index c6ac264..a9e1f0d 100644
--- a/examples/java/spatial/CMakeLists.txt
+++ b/examples/java/spatial/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/java/spatial/spatial_example1.java b/examples/java/spatial/spatial_example1.java
index 508f211..8ed6069 100644
--- a/examples/java/spatial/spatial_example1.java
+++ b/examples/java/spatial/spatial_example1.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/stripPackage.java b/examples/java/stripPackage.java
index baa5a67..b505b43 100644
--- a/examples/java/stripPackage.java
+++ b/examples/java/stripPackage.java
@@ -7,7 +7,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/translateMath.java b/examples/java/translateMath.java
index 0c36184..85443f0 100644
--- a/examples/java/translateMath.java
+++ b/examples/java/translateMath.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/unsetAnnotation.java b/examples/java/unsetAnnotation.java
index 4ce7557..2540af1 100644
--- a/examples/java/unsetAnnotation.java
+++ b/examples/java/unsetAnnotation.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/unsetNotes.java b/examples/java/unsetNotes.java
index 739e8b3..a271fdf 100644
--- a/examples/java/unsetNotes.java
+++ b/examples/java/unsetNotes.java
@@ -8,7 +8,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/java/validateSBML.java b/examples/java/validateSBML.java
index beca76f..cd77302 100644
--- a/examples/java/validateSBML.java
+++ b/examples/java/validateSBML.java
@@ -9,7 +9,7 @@
  * This sample program is distributed under a different license than the rest
  * of libSBML.  This program uses the open-source MIT license, as follows:
  *
- * Copyright (c) 2013-2014 by the California Institute of Technology
+ * Copyright (c) 2013-2016 by the California Institute of Technology
  * (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
  * and the University of Heidelberg (Germany), with support from the National
  * Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/addCVTerms.js b/examples/javascript/addCVTerms.js
index f108a54..083a07d 100644
--- a/examples/javascript/addCVTerms.js
+++ b/examples/javascript/addCVTerms.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/addModelHistory.js b/examples/javascript/addModelHistory.js
index a172398..27e9475 100644
--- a/examples/javascript/addModelHistory.js
+++ b/examples/javascript/addModelHistory.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/addingEvidenceCodes_1.js b/examples/javascript/addingEvidenceCodes_1.js
index 08227e9..5cfd216 100644
--- a/examples/javascript/addingEvidenceCodes_1.js
+++ b/examples/javascript/addingEvidenceCodes_1.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/addingEvidenceCodes_2.js b/examples/javascript/addingEvidenceCodes_2.js
index e91a4b3..e4b60f7 100644
--- a/examples/javascript/addingEvidenceCodes_2.js
+++ b/examples/javascript/addingEvidenceCodes_2.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/appendAnnotation.js b/examples/javascript/appendAnnotation.js
index 7b0a84a..5b2b833 100644
--- a/examples/javascript/appendAnnotation.js
+++ b/examples/javascript/appendAnnotation.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/callExternalValidator.js b/examples/javascript/callExternalValidator.js
index bdd2db5..d510924 100644
--- a/examples/javascript/callExternalValidator.js
+++ b/examples/javascript/callExternalValidator.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/convertSBML.js b/examples/javascript/convertSBML.js
index aaa108d..9eaa6c8 100644
--- a/examples/javascript/convertSBML.js
+++ b/examples/javascript/convertSBML.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/createExampleSBML.js b/examples/javascript/createExampleSBML.js
index 33bf0ef..d4c5d1f 100644
--- a/examples/javascript/createExampleSBML.js
+++ b/examples/javascript/createExampleSBML.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/echoSBML.js b/examples/javascript/echoSBML.js
index 855bc64..9245ffa 100644
--- a/examples/javascript/echoSBML.js
+++ b/examples/javascript/echoSBML.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/printAnnotation.js b/examples/javascript/printAnnotation.js
index faa125d..bf081bb 100644
--- a/examples/javascript/printAnnotation.js
+++ b/examples/javascript/printAnnotation.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/printMath.js b/examples/javascript/printMath.js
index ed79db9..9c6c9f2 100644
--- a/examples/javascript/printMath.js
+++ b/examples/javascript/printMath.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/printNotes.js b/examples/javascript/printNotes.js
index 7823883..f3a7d3f 100644
--- a/examples/javascript/printNotes.js
+++ b/examples/javascript/printNotes.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/printRegisteredPackages.js b/examples/javascript/printRegisteredPackages.js
index 720e83a..e2e50d2 100644
--- a/examples/javascript/printRegisteredPackages.js
+++ b/examples/javascript/printRegisteredPackages.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/printSBML.js b/examples/javascript/printSBML.js
index 8aac17e..1d7ed58 100644
--- a/examples/javascript/printSBML.js
+++ b/examples/javascript/printSBML.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/printUnits.js b/examples/javascript/printUnits.js
index 6682e63..9a13704 100644
--- a/examples/javascript/printUnits.js
+++ b/examples/javascript/printUnits.js
@@ -10,7 +10,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/printsupported.js b/examples/javascript/printsupported.js
index 85dea19..d6453d9 100644
--- a/examples/javascript/printsupported.js
+++ b/examples/javascript/printsupported.js
@@ -11,7 +11,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/promoteParameters.js b/examples/javascript/promoteParameters.js
index 4244de5..05518fe 100644
--- a/examples/javascript/promoteParameters.js
+++ b/examples/javascript/promoteParameters.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/readSBML.js b/examples/javascript/readSBML.js
index 6e312cc..ff9064a 100644
--- a/examples/javascript/readSBML.js
+++ b/examples/javascript/readSBML.js
@@ -10,7 +10,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/stripPackage.js b/examples/javascript/stripPackage.js
index ace0ea5..a1d6bb7 100644
--- a/examples/javascript/stripPackage.js
+++ b/examples/javascript/stripPackage.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/translateMath.js b/examples/javascript/translateMath.js
index 4c6af3e..2b94437 100644
--- a/examples/javascript/translateMath.js
+++ b/examples/javascript/translateMath.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/unsetAnnotation.js b/examples/javascript/unsetAnnotation.js
index 1769d3d..fd8e0ae 100644
--- a/examples/javascript/unsetAnnotation.js
+++ b/examples/javascript/unsetAnnotation.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/unsetNotes.js b/examples/javascript/unsetNotes.js
index 7a2547c..bd3c17e 100644
--- a/examples/javascript/unsetNotes.js
+++ b/examples/javascript/unsetNotes.js
@@ -9,7 +9,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/javascript/validateSBML.js b/examples/javascript/validateSBML.js
index a645857..644ff3e 100644
--- a/examples/javascript/validateSBML.js
+++ b/examples/javascript/validateSBML.js
@@ -8,7 +8,7 @@
 // This sample program is distributed under a different license than the rest
 // of libSBML.  This program uses the open-source MIT license, as follows:
 //
-// Copyright (c) 2013-2014 by the California Institute of Technology
+// Copyright (c) 2013-2016 by the California Institute of Technology
 // (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 // and the University of Heidelberg (Germany), with support from the National
 // Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/layout-package.cmake b/examples/layout-package.cmake
index d62be7d..175f716 100644
--- a/examples/layout-package.cmake
+++ b/examples/layout-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/perl/addCVTerms.pl b/examples/perl/addCVTerms.pl
index e244baa..8a7e03c 100755
--- a/examples/perl/addCVTerms.pl
+++ b/examples/perl/addCVTerms.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/addCustomValidator.pl b/examples/perl/addCustomValidator.pl
index 690bf08..fbddc2e 100755
--- a/examples/perl/addCustomValidator.pl
+++ b/examples/perl/addCustomValidator.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/addModelHistory.pl b/examples/perl/addModelHistory.pl
index 058a9e2..d92bcbc 100755
--- a/examples/perl/addModelHistory.pl
+++ b/examples/perl/addModelHistory.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/addingEvidenceCodes_1.pl b/examples/perl/addingEvidenceCodes_1.pl
index e4938e1..f25875a 100755
--- a/examples/perl/addingEvidenceCodes_1.pl
+++ b/examples/perl/addingEvidenceCodes_1.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/addingEvidenceCodes_2.pl b/examples/perl/addingEvidenceCodes_2.pl
index 99e6bc8..68d2684 100755
--- a/examples/perl/addingEvidenceCodes_2.pl
+++ b/examples/perl/addingEvidenceCodes_2.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/appendAnnotation.pl b/examples/perl/appendAnnotation.pl
index 9c869ba..6213b9f 100755
--- a/examples/perl/appendAnnotation.pl
+++ b/examples/perl/appendAnnotation.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/callExternalValidator.pl b/examples/perl/callExternalValidator.pl
index 3b61811..e81ac63 100755
--- a/examples/perl/callExternalValidator.pl
+++ b/examples/perl/callExternalValidator.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/comp/flattenModel.pl b/examples/perl/comp/flattenModel.pl
index f49f0b2..b6d0b6a 100644
--- a/examples/perl/comp/flattenModel.pl
+++ b/examples/perl/comp/flattenModel.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/createExampleSBML.pl b/examples/perl/createExampleSBML.pl
index 144427a..51a216d 100755
--- a/examples/perl/createExampleSBML.pl
+++ b/examples/perl/createExampleSBML.pl
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/echoSBML.pl b/examples/perl/echoSBML.pl
index 5b5103e..17e030b 100755
--- a/examples/perl/echoSBML.pl
+++ b/examples/perl/echoSBML.pl
@@ -12,7 +12,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/fbc/convertCobraToFbc.pl b/examples/perl/fbc/convertCobraToFbc.pl
index c472748..f80e25e 100644
--- a/examples/perl/fbc/convertCobraToFbc.pl
+++ b/examples/perl/fbc/convertCobraToFbc.pl
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/fbc/convertFbcToCobra.pl b/examples/perl/fbc/convertFbcToCobra.pl
index 1b1a4f0..255efa5 100644
--- a/examples/perl/fbc/convertFbcToCobra.pl
+++ b/examples/perl/fbc/convertFbcToCobra.pl
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/fbc/example1.pl b/examples/perl/fbc/example1.pl
index b77a8b9..ac361d8 100644
--- a/examples/perl/fbc/example1.pl
+++ b/examples/perl/fbc/example1.pl
@@ -9,7 +9,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/groups/example1.pl b/examples/perl/groups/groups_example1.pl
similarity index 100%
rename from examples/perl/groups/example1.pl
rename to examples/perl/groups/groups_example1.pl
diff --git a/examples/perl/printAnnotation.pl b/examples/perl/printAnnotation.pl
index 1d5ab62..0214ee6 100755
--- a/examples/perl/printAnnotation.pl
+++ b/examples/perl/printAnnotation.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/printNotes.pl b/examples/perl/printNotes.pl
index 212c15a..1a6da95 100755
--- a/examples/perl/printNotes.pl
+++ b/examples/perl/printNotes.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/printRegisteredPackages.pl b/examples/perl/printRegisteredPackages.pl
index 64978ee..c10fe5f 100755
--- a/examples/perl/printRegisteredPackages.pl
+++ b/examples/perl/printRegisteredPackages.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/printUnits.pl b/examples/perl/printUnits.pl
index ce353a5..ef8b1fc 100755
--- a/examples/perl/printUnits.pl
+++ b/examples/perl/printUnits.pl
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/printsupported.pl b/examples/perl/printsupported.pl
index 2437e40..41a15d7 100755
--- a/examples/perl/printsupported.pl
+++ b/examples/perl/printsupported.pl
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/promoteParameters.pl b/examples/perl/promoteParameters.pl
index 554a8af..d56fd72 100644
--- a/examples/perl/promoteParameters.pl
+++ b/examples/perl/promoteParameters.pl
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/stripPackage.pl b/examples/perl/stripPackage.pl
index 305220f..87c3d08 100644
--- a/examples/perl/stripPackage.pl
+++ b/examples/perl/stripPackage.pl
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/unsetAnnotation.pl b/examples/perl/unsetAnnotation.pl
index be72e9d..2881e38 100755
--- a/examples/perl/unsetAnnotation.pl
+++ b/examples/perl/unsetAnnotation.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/perl/unsetNotes.pl b/examples/perl/unsetNotes.pl
index 0f08115..174b211 100755
--- a/examples/perl/unsetNotes.pl
+++ b/examples/perl/unsetNotes.pl
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/addCVTerms.py b/examples/python/addCVTerms.py
index b26017b..67ecae2 100644
--- a/examples/python/addCVTerms.py
+++ b/examples/python/addCVTerms.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/addCustomValidator.py b/examples/python/addCustomValidator.py
index 423716b..19daab7 100644
--- a/examples/python/addCustomValidator.py
+++ b/examples/python/addCustomValidator.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/addModelHistory.py b/examples/python/addModelHistory.py
index f401c7d..62424fa 100644
--- a/examples/python/addModelHistory.py
+++ b/examples/python/addModelHistory.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/addingEvidenceCodes_1.py b/examples/python/addingEvidenceCodes_1.py
index 7ae120a..7d2aaf9 100644
--- a/examples/python/addingEvidenceCodes_1.py
+++ b/examples/python/addingEvidenceCodes_1.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/addingEvidenceCodes_2.py b/examples/python/addingEvidenceCodes_2.py
index ddac6b2..2d2af4d 100644
--- a/examples/python/addingEvidenceCodes_2.py
+++ b/examples/python/addingEvidenceCodes_2.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/appendAnnotation.py b/examples/python/appendAnnotation.py
index 589f18b..c684a17 100644
--- a/examples/python/appendAnnotation.py
+++ b/examples/python/appendAnnotation.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/callExternalValidator.py b/examples/python/callExternalValidator.py
index ad28ce0..4964ee1 100644
--- a/examples/python/callExternalValidator.py
+++ b/examples/python/callExternalValidator.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/comp/flattenModel.py b/examples/python/comp/flattenModel.py
index cac4358..bff55be 100644
--- a/examples/python/comp/flattenModel.py
+++ b/examples/python/comp/flattenModel.py
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/convertSBML.py b/examples/python/convertSBML.py
index e48ed5b..1e04fcf 100644
--- a/examples/python/convertSBML.py
+++ b/examples/python/convertSBML.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/createExampleSBML.py b/examples/python/createExampleSBML.py
index 13f8b90..2f73c26 100644
--- a/examples/python/createExampleSBML.py
+++ b/examples/python/createExampleSBML.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/createSimpleModel.py b/examples/python/createSimpleModel.py
index b86b64e..e30a56b 100755
--- a/examples/python/createSimpleModel.py
+++ b/examples/python/createSimpleModel.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/dyn/dyn_example1.py b/examples/python/dyn/dyn_example1.py
index 04ab377..6971b40 100644
--- a/examples/python/dyn/dyn_example1.py
+++ b/examples/python/dyn/dyn_example1.py
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 # 
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/dyn/dyn_example2.py b/examples/python/dyn/dyn_example2.py
index 31491a8..614d270 100644
--- a/examples/python/dyn/dyn_example2.py
+++ b/examples/python/dyn/dyn_example2.py
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 # 
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/echoSBML.py b/examples/python/echoSBML.py
index 52d2f44..791503f 100644
--- a/examples/python/echoSBML.py
+++ b/examples/python/echoSBML.py
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/evaluateCustomMath.py b/examples/python/evaluateCustomMath.py
index 3ccb320..764de44 100644
--- a/examples/python/evaluateCustomMath.py
+++ b/examples/python/evaluateCustomMath.py
@@ -1,81 +1,81 @@
-#!/usr/bin/env python
-## 
-## @file    evaluateCustomMath.py
-## @brief   evaluates the given formula
-## @author  Frank Bergmann
-## 
-## <!--------------------------------------------------------------------------
-## This sample program is distributed under a different license than the rest
-## of libSBML.  This program uses the open-source MIT license, as follows:
-##
-## Copyright (c) 2013-2014 by the California Institute of Technology
-## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
-## and the University of Heidelberg (Germany), with support from the National
-## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
-##
-## Permission is hereby granted, free of charge, to any person obtaining a
-## copy of this software and associated documentation files (the "Software"),
-## to deal in the Software without restriction, including without limitation
-## the rights to use, copy, modify, merge, publish, distribute, sublicense,
-## and/or sell copies of the Software, and to permit persons to whom the
-## Software is furnished to do so, subject to the following conditions:
-##
-## The above copyright notice and this permission notice shall be included in
-## all copies or substantial portions of the Software.
-##
-## THE SOFTWARE IS PROVIDED "AS IS",        WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-## DEALINGS IN THE SOFTWARE.
-##
-## Neither the name of the California Institute of Technology (Caltech), nor
-## of the European Bioinformatics Institute (EMBL-EBI), nor of the University
-## of Heidelberg, nor the names of any contributors, may be used to endorse
-## or promote products derived from this software without specific prior
-## written permission.
-## ------------------------------------------------------------------------ -->
-## 
-
-import sys
-import os.path
-import libsbml
-
-def main (args):
-    """Usage: evaluateCustomMath formula [model containing values]
-    """
-    if len(args) < 2:
-      print("Usage: evaluateCustomMath formula [model containing values]")
-      return 1;
-
-    formula = args[1];
-    filename = None
-    if (len(args) > 2):
-        filename = args[2]
-
-    math = libsbml.parseFormula(formula);
-    if (math == None):
-      print("Invalid formula, aborting.");
-      return 1;
-
-    doc = None;
-    if filename != None:
-      doc = libsbml.readSBML(filename);
-      if doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0:
-        print("The models contains errors, please correct them before continuing.");
-        doc.printErrors();
-        return 1;
-      # the following maps a list of ids to their corresponding model values
-      # this makes it possible to evaluate expressions involving SIds. 
-      libsbml.SBMLTransforms.mapComponentValues(doc.getModel());    
-    else:
-      # create dummy document
-      doc = libsbml.SBMLDocument(3, 1);
-
-    result = libsbml.SBMLTransforms.evaluateASTNode(math, doc.getModel());
-    print("{0} = {1}".format(formula, result));
-   
-if __name__ == '__main__':
-  main(sys.argv)  
+#!/usr/bin/env python
+## 
+## @file    evaluateCustomMath.py
+## @brief   evaluates the given formula
+## @author  Frank Bergmann
+## 
+## <!--------------------------------------------------------------------------
+## This sample program is distributed under a different license than the rest
+## of libSBML.  This program uses the open-source MIT license, as follows:
+##
+## Copyright (c) 2013-2016 by the California Institute of Technology
+## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+## and the University of Heidelberg (Germany), with support from the National
+## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+##
+## Permission is hereby granted, free of charge, to any person obtaining a
+## copy of this software and associated documentation files (the "Software"),
+## to deal in the Software without restriction, including without limitation
+## the rights to use, copy, modify, merge, publish, distribute, sublicense,
+## and/or sell copies of the Software, and to permit persons to whom the
+## Software is furnished to do so, subject to the following conditions:
+##
+## The above copyright notice and this permission notice shall be included in
+## all copies or substantial portions of the Software.
+##
+## THE SOFTWARE IS PROVIDED "AS IS",        WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+## DEALINGS IN THE SOFTWARE.
+##
+## Neither the name of the California Institute of Technology (Caltech), nor
+## of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+## of Heidelberg, nor the names of any contributors, may be used to endorse
+## or promote products derived from this software without specific prior
+## written permission.
+## ------------------------------------------------------------------------ -->
+## 
+
+import sys
+import os.path
+import libsbml
+
+def main (args):
+    """Usage: evaluateCustomMath formula [model containing values]
+    """
+    if len(args) < 2:
+      print("Usage: evaluateCustomMath formula [model containing values]")
+      return 1;
+
+    formula = args[1];
+    filename = None
+    if (len(args) > 2):
+        filename = args[2]
+
+    math = libsbml.parseFormula(formula);
+    if (math == None):
+      print("Invalid formula, aborting.");
+      return 1;
+
+    doc = None;
+    if filename != None:
+      doc = libsbml.readSBML(filename);
+      if doc.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0:
+        print("The models contains errors, please correct them before continuing.");
+        doc.printErrors();
+        return 1;
+      # the following maps a list of ids to their corresponding model values
+      # this makes it possible to evaluate expressions involving SIds. 
+      libsbml.SBMLTransforms.mapComponentValues(doc.getModel());    
+    else:
+      # create dummy document
+      doc = libsbml.SBMLDocument(3, 1);
+
+    result = libsbml.SBMLTransforms.evaluateASTNode(math, doc.getModel());
+    print("{0} = {1}".format(formula, result));
+   
+if __name__ == '__main__':
+  main(sys.argv)  
diff --git a/examples/python/fbc/convertCobraToFbc.py b/examples/python/fbc/convertCobraToFbc.py
index 8c7289c..9bfa8e5 100644
--- a/examples/python/fbc/convertCobraToFbc.py
+++ b/examples/python/fbc/convertCobraToFbc.py
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/fbc/convertFbcToCobra.py b/examples/python/fbc/convertFbcToCobra.py
index eedd434..a1a3cbb 100644
--- a/examples/python/fbc/convertFbcToCobra.py
+++ b/examples/python/fbc/convertFbcToCobra.py
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/fbc/fbc_example1.py b/examples/python/fbc/fbc_example1.py
index 36be134..28b9b1b 100644
--- a/examples/python/fbc/fbc_example1.py
+++ b/examples/python/fbc/fbc_example1.py
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/getAllElementsWithNotes.py b/examples/python/getAllElementsWithNotes.py
index b185e16..cd78c88 100644
--- a/examples/python/getAllElementsWithNotes.py
+++ b/examples/python/getAllElementsWithNotes.py
@@ -12,7 +12,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/groups/example1.py b/examples/python/groups/example1.py
deleted file mode 100644
index 916fc57..0000000
--- a/examples/python/groups/example1.py
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env python
-# 
-#  @file    example1.py
-#  @brief   SBML Groups example
-#  @author  Akiya Jouraku
-#  @author  Frank Bergmann (python port)
-#  
-#  $Id: example1.py 11938 2010-09-20 02:04:23Z mhucka $
-#  $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/examples/groups/example1.py $
-#  
-#  This file is part of libSBML.  Please visit http:# sbml.org for more
-#  information about SBML, and the latest version of libSBML.
-#  
-
-from libsbml import *
-# 
-#  Creates an SBMLNamespaces object with the given SBML level, version
-#  package name, package version.
-# 
-#  (NOTE) By defualt, the name of package (i.e. "groups") will be used
-#  if the arugment for the prefix is missing or empty. Thus the argument
-#  for the prefix can be added as follows:
-# 
-#     SBMLNamespaces sbmlns(3,1,"groups",1,"GROUP");
-# 
-
-sbmlns = SBMLNamespaces(3,1,"groups",1);
-
-# 
-#  (NOTES) The above code creating an SBMLNamespaces object can be replaced 
-#          with one of the following other styles.
-# 
-#  (1) Creates an SBMLNamespace object with a SBML core namespace and then
-#      adds a groups package namespace to the object. 
-# 
-#          SBMLNamespaces sbmlns(3,1);
-#          sbmlns.addPkgNamespace("groups",1);
-# 
-#           OR
-# 
-#          SBMLNamespaces sbmlns(3,1);
-#          sbmlns.addNamespace(GroupsExtension::XmlnsL3V1V1,"groups");
-# 
-#  (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
-#      groups package. The class is basically used for createing an SBase derived
-#      objects defined in the groups package) with the given SBML level, version, 
-#      and package version
-# 
-#         GroupsPkgNamespaces sbmlns(3,1,1);
-#      
-
-
-#  create the document
-
-document = SBMLDocument(sbmlns);
-
-#  create the Model
-
-model= document.createModel();
-
-#  create the Compartment
-
-compartment = model.createCompartment();
-compartment.setId("cytosol");
-compartment.setConstant(True);
-
-compartment=model.createCompartment();
-compartment.setId("mitochon");
-compartment.setConstant(True);
-
-#  create the Species
-
-species = model.createSpecies();
-species.setId("ATPc");
-species.setCompartment("cytosol");
-species.setInitialConcentration(1);
-species.setHasOnlySubstanceUnits(False);
-species.setBoundaryCondition(False);
-species.setConstant(False);
-
-species = model.createSpecies();
-species.setId("ATPm");
-species.setCompartment("mitochon");
-species.setInitialConcentration(2);
-species.setHasOnlySubstanceUnits(False);
-species.setBoundaryCondition(False);
-species.setConstant(False);
-
-#  create the Groups
-
-# 
-#  Get a GroupsModelPlugin object plugged in the model object.
-# 
-#  The type of the returned value of SBase::getPlugin() function is SBasePlugin, and
-#  thus the value needs to be casted for the corresponding derived class. 
-# 
-mplugin = model.getPlugin("groups");
-
-# 
-#  Creates a Group object via GroupsModelPlugin object.
-# 
-group = mplugin.createGroup();
-
-group.setId("ATP");
-group.setKind("classification");
-group.setSBOTerm("SBO:0000252");
-
-member = group.createMember();
-member.setIdRef("ATPc");
-
-member = group.createMember();
-member.setIdRef("ATPm");
-
-writeSBML(document,"groups_example1-python.xml");
-
diff --git a/examples/python/groups/groups_example1.py b/examples/python/groups/groups_example1.py
new file mode 100644
index 0000000..8dbfbb2
--- /dev/null
+++ b/examples/python/groups/groups_example1.py
@@ -0,0 +1,115 @@
+#!/usr/bin/env python
+# 
+#  @file    groups_example1.py
+#  @brief   SBML Groups example
+#  @author  Akiya Jouraku
+#  @author  Frank Bergmann (python port)
+#  
+#  $Id: example1.py 11938 2010-09-20 02:04:23Z mhucka $
+#  $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/examples/groups/example1.py $
+#  
+#  This file is part of libSBML.  Please visit http:# sbml.org for more
+#  information about SBML, and the latest version of libSBML.
+#  
+
+from libsbml import *
+# 
+#  Creates an SBMLNamespaces object with the given SBML level, version
+#  package name, package version.
+# 
+#  (NOTE) By defualt, the name of package (i.e. "groups") will be used
+#  if the arugment for the prefix is missing or empty. Thus the argument
+#  for the prefix can be added as follows:
+# 
+#     SBMLNamespaces sbmlns(3,1,"groups",1,"GROUP");
+# 
+
+sbmlns = SBMLNamespaces(3,1,"groups",1);
+
+# 
+#  (NOTES) The above code creating an SBMLNamespaces object can be replaced 
+#          with one of the following other styles.
+# 
+#  (1) Creates an SBMLNamespace object with a SBML core namespace and then
+#      adds a groups package namespace to the object. 
+# 
+#          SBMLNamespaces sbmlns(3,1);
+#          sbmlns.addPkgNamespace("groups",1);
+# 
+#           OR
+# 
+#          SBMLNamespaces sbmlns(3,1);
+#          sbmlns.addNamespace(GroupsExtension::XmlnsL3V1V1,"groups");
+# 
+#  (2) Creates a GroupsPkgNamespaces object (SBMLNamespace derived class for
+#      groups package. The class is basically used for createing an SBase derived
+#      objects defined in the groups package) with the given SBML level, version, 
+#      and package version
+# 
+#         GroupsPkgNamespaces sbmlns(3,1,1);
+#      
+
+
+#  create the document
+
+document = SBMLDocument(sbmlns);
+
+#  create the Model
+
+model= document.createModel();
+
+#  create the Compartment
+
+compartment = model.createCompartment();
+compartment.setId("cytosol");
+compartment.setConstant(True);
+
+compartment=model.createCompartment();
+compartment.setId("mitochon");
+compartment.setConstant(True);
+
+#  create the Species
+
+species = model.createSpecies();
+species.setId("ATPc");
+species.setCompartment("cytosol");
+species.setInitialConcentration(1);
+species.setHasOnlySubstanceUnits(False);
+species.setBoundaryCondition(False);
+species.setConstant(False);
+
+species = model.createSpecies();
+species.setId("ATPm");
+species.setCompartment("mitochon");
+species.setInitialConcentration(2);
+species.setHasOnlySubstanceUnits(False);
+species.setBoundaryCondition(False);
+species.setConstant(False);
+
+#  create the Groups
+
+# 
+#  Get a GroupsModelPlugin object plugged in the model object.
+# 
+#  The type of the returned value of SBase::getPlugin() function is SBasePlugin, and
+#  thus the value needs to be casted for the corresponding derived class. 
+# 
+mplugin = model.getPlugin("groups");
+
+# 
+#  Creates a Group object via GroupsModelPlugin object.
+# 
+group = mplugin.createGroup();
+
+group.setId("ATP");
+group.setKind("classification");
+group.setSBOTerm("SBO:0000252");
+
+member = group.createMember();
+member.setIdRef("ATPc");
+
+member = group.createMember();
+member.setIdRef("ATPm");
+
+writeSBML(document,"groups_example1-python.xml");
+
diff --git a/examples/python/inlineInitialAssignments.py b/examples/python/inlineInitialAssignments.py
index 6ff9e7f..696f0ea 100644
--- a/examples/python/inlineInitialAssignments.py
+++ b/examples/python/inlineInitialAssignments.py
@@ -1,70 +1,70 @@
-#!/usr/bin/env python
-## 
-## @file    inlineInitialAssignments.py
-## @brief   inlines all initial assignments directly
-## @author  Frank Bergmann
-## 
-## <!--------------------------------------------------------------------------
-## This sample program is distributed under a different license than the rest
-## of libSBML.  This program uses the open-source MIT license, as follows:
-##
-## Copyright (c) 2013-2014 by the California Institute of Technology
-## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
-## and the University of Heidelberg (Germany), with support from the National
-## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
-##
-## Permission is hereby granted, free of charge, to any person obtaining a
-## copy of this software and associated documentation files (the "Software"),
-## to deal in the Software without restriction, including without limitation
-## the rights to use, copy, modify, merge, publish, distribute, sublicense,
-## and/or sell copies of the Software, and to permit persons to whom the
-## Software is furnished to do so, subject to the following conditions:
-##
-## The above copyright notice and this permission notice shall be included in
-## all copies or substantial portions of the Software.
-##
-## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-## DEALINGS IN THE SOFTWARE.
-##
-## Neither the name of the California Institute of Technology (Caltech), nor
-## of the European Bioinformatics Institute (EMBL-EBI), nor of the University
-## of Heidelberg, nor the names of any contributors, may be used to endorse
-## or promote products derived from this software without specific prior
-## written permission.
-## ------------------------------------------------------------------------ -->
-## 
-
-import sys
-import os.path
-import libsbml
-
-def main (args):
-    """Usage: printNotes filename
-    """
-    if (len(args) != 3):
-      print("Usage: inlineInitialAssignments filename outFile");
-      return 1;
-
-    filename = args[1];
-    outFile = args[2];
-
-    document = libsbml.readSBML(filename);
-
-    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0):
-      print("The models contains errors, please correct them before continuing.");
-      document.printErrors();
-      return 1;
-
-    model = document.getModel();
-
-    libsbml.SBMLTransforms.expandInitialAssignments(model);
-
-    libsbml.writeSBML(document, outFile);
-   
-if __name__ == '__main__':
-    main(sys.argv)  
+#!/usr/bin/env python
+## 
+## @file    inlineInitialAssignments.py
+## @brief   inlines all initial assignments directly
+## @author  Frank Bergmann
+## 
+## <!--------------------------------------------------------------------------
+## This sample program is distributed under a different license than the rest
+## of libSBML.  This program uses the open-source MIT license, as follows:
+##
+## Copyright (c) 2013-2016 by the California Institute of Technology
+## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+## and the University of Heidelberg (Germany), with support from the National
+## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+##
+## Permission is hereby granted, free of charge, to any person obtaining a
+## copy of this software and associated documentation files (the "Software"),
+## to deal in the Software without restriction, including without limitation
+## the rights to use, copy, modify, merge, publish, distribute, sublicense,
+## and/or sell copies of the Software, and to permit persons to whom the
+## Software is furnished to do so, subject to the following conditions:
+##
+## The above copyright notice and this permission notice shall be included in
+## all copies or substantial portions of the Software.
+##
+## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+## DEALINGS IN THE SOFTWARE.
+##
+## Neither the name of the California Institute of Technology (Caltech), nor
+## of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+## of Heidelberg, nor the names of any contributors, may be used to endorse
+## or promote products derived from this software without specific prior
+## written permission.
+## ------------------------------------------------------------------------ -->
+## 
+
+import sys
+import os.path
+import libsbml
+
+def main (args):
+    """Usage: printNotes filename
+    """
+    if (len(args) != 3):
+      print("Usage: inlineInitialAssignments filename outFile");
+      return 1;
+
+    filename = args[1];
+    outFile = args[2];
+
+    document = libsbml.readSBML(filename);
+
+    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR) > 0):
+      print("The models contains errors, please correct them before continuing.");
+      document.printErrors();
+      return 1;
+
+    model = document.getModel();
+
+    libsbml.SBMLTransforms.expandInitialAssignments(model);
+
+    libsbml.writeSBML(document, outFile);
+   
+if __name__ == '__main__':
+    main(sys.argv)  
diff --git a/examples/python/layout/convertLayout.py b/examples/python/layout/convertLayout.py
index dd70c35..677543e 100644
--- a/examples/python/layout/convertLayout.py
+++ b/examples/python/layout/convertLayout.py
@@ -7,7 +7,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/printAnnotation.py b/examples/python/printAnnotation.py
index 3cc64df..c8ec1d3 100644
--- a/examples/python/printAnnotation.py
+++ b/examples/python/printAnnotation.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/printMath.py b/examples/python/printMath.py
index 5ded427..38d78ee 100644
--- a/examples/python/printMath.py
+++ b/examples/python/printMath.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/printNotes.py b/examples/python/printNotes.py
index 9f7aae1..d64cf6c 100644
--- a/examples/python/printNotes.py
+++ b/examples/python/printNotes.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/printRegisteredPackages.py b/examples/python/printRegisteredPackages.py
index 3073aea..79a20b7 100644
--- a/examples/python/printRegisteredPackages.py
+++ b/examples/python/printRegisteredPackages.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/printSBML.py b/examples/python/printSBML.py
index 36e70b2..e0d1aa8 100644
--- a/examples/python/printSBML.py
+++ b/examples/python/printSBML.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/printUnits.py b/examples/python/printUnits.py
index 0dd22a2..22b967b 100644
--- a/examples/python/printUnits.py
+++ b/examples/python/printUnits.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/printsupported.py b/examples/python/printsupported.py
index c27c007..0be412e 100644
--- a/examples/python/printsupported.py
+++ b/examples/python/printsupported.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/promoteParameters.py b/examples/python/promoteParameters.py
index 6dc5502..6edd311 100644
--- a/examples/python/promoteParameters.py
+++ b/examples/python/promoteParameters.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/qual/qual_example1.py b/examples/python/qual/qual_example1.py
index 4dd7102..91e584f 100644
--- a/examples/python/qual/qual_example1.py
+++ b/examples/python/qual/qual_example1.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/readSBML.py b/examples/python/readSBML.py
index 9f4b43d..cf29801 100644
--- a/examples/python/readSBML.py
+++ b/examples/python/readSBML.py
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/replaceOneFD.py b/examples/python/replaceOneFD.py
index 138c4fa..f201658 100644
--- a/examples/python/replaceOneFD.py
+++ b/examples/python/replaceOneFD.py
@@ -1,91 +1,91 @@
-#!/usr/bin/env python
-## 
-## @file    replaceOneFD.py
-## @brief   replaces a given function definition in a specific part of the model
-## @author  Frank Bergmann
-## 
-## <!--------------------------------------------------------------------------
-## This sample program is distributed under a different license than the rest
-## of libSBML.  This program uses the open-source MIT license, as follows:
-##
-## Copyright (c) 2013-2014 by the California Institute of Technology
-## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
-## and the University of Heidelberg (Germany), with support from the National
-## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
-##
-## Permission is hereby granted, free of charge, to any person obtaining a
-## copy of this software and associated documentation files (the "Software"),
-## to deal in the Software without restriction, including without limitation
-## the rights to use, copy, modify, merge, publish, distribute, sublicense,
-## and/or sell copies of the Software, and to permit persons to whom the
-## Software is furnished to do so, subject to the following conditions:
-##
-## The above copyright notice and this permission notice shall be included in
-## all copies or substantial portions of the Software.
-##
-## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-## DEALINGS IN THE SOFTWARE.
-##
-## Neither the name of the California Institute of Technology (Caltech), nor
-## of the European Bioinformatics Institute (EMBL-EBI), nor of the University
-## of Heidelberg, nor the names of any contributors, may be used to endorse
-## or promote products derived from this software without specific prior
-## written permission.
-## ------------------------------------------------------------------------ -->
-## 
-
-import sys
-import os.path
-import libsbml
-
-def main (args):
-    """Usage: replaceOneFD filename functionDefinitionId reactionId outfile
-    """
-    if (len(args) != 5):
-      print("Usage: replaceOneFD filename functionDefinitionId reactionId outfile");
-      return 1;
-
-    filename = args[1];
-    outFile = args[4];
-    functionDefinitionId = args[2];
-    reactionId = args[3];
-    document = libsbml.readSBML(filename);
-
-    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR)  > 0):
-      print("The models contains errors, please correct them before continuing.");
-      document.printErrors();
-      return 1;
-
-    model = document.getModel();
-    functionDefinition = model.getFunctionDefinition(functionDefinitionId);
-    if (functionDefinition == None):
-      print();
-      print("No functiondefinition with the given id can be found.");
-      return 1;
-
-    reaction = model.getReaction(reactionId);
-    if (reaction == None):
-      print();
-      print("No reaction with the given id can be found.");
-      return 1;
-
-    if (reaction.isSetKineticLaw() == False or reaction.getKineticLaw().isSetMath()== False):
-      print();
-      print("The reaction has no math set. ");
-      return 1;
-
-    # Until here it was all setup, all we needed was an ASTNode, in which we wanted to 
-    # replace calls to a function definition, with the function definitions content. 
-    #
-    libsbml.SBMLTransforms.replaceFD(reaction.getKineticLaw().getMath(), functionDefinition);
-
-    # finally write to file
-    libsbml.writeSBML(document, outFile);
-   
-if __name__ == '__main__':
-  main(sys.argv)  
+#!/usr/bin/env python
+## 
+## @file    replaceOneFD.py
+## @brief   replaces a given function definition in a specific part of the model
+## @author  Frank Bergmann
+## 
+## <!--------------------------------------------------------------------------
+## This sample program is distributed under a different license than the rest
+## of libSBML.  This program uses the open-source MIT license, as follows:
+##
+## Copyright (c) 2013-2016 by the California Institute of Technology
+## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
+## and the University of Heidelberg (Germany), with support from the National
+## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
+##
+## Permission is hereby granted, free of charge, to any person obtaining a
+## copy of this software and associated documentation files (the "Software"),
+## to deal in the Software without restriction, including without limitation
+## the rights to use, copy, modify, merge, publish, distribute, sublicense,
+## and/or sell copies of the Software, and to permit persons to whom the
+## Software is furnished to do so, subject to the following conditions:
+##
+## The above copyright notice and this permission notice shall be included in
+## all copies or substantial portions of the Software.
+##
+## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+## FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+## DEALINGS IN THE SOFTWARE.
+##
+## Neither the name of the California Institute of Technology (Caltech), nor
+## of the European Bioinformatics Institute (EMBL-EBI), nor of the University
+## of Heidelberg, nor the names of any contributors, may be used to endorse
+## or promote products derived from this software without specific prior
+## written permission.
+## ------------------------------------------------------------------------ -->
+## 
+
+import sys
+import os.path
+import libsbml
+
+def main (args):
+    """Usage: replaceOneFD filename functionDefinitionId reactionId outfile
+    """
+    if (len(args) != 5):
+      print("Usage: replaceOneFD filename functionDefinitionId reactionId outfile");
+      return 1;
+
+    filename = args[1];
+    outFile = args[4];
+    functionDefinitionId = args[2];
+    reactionId = args[3];
+    document = libsbml.readSBML(filename);
+
+    if (document.getNumErrors(libsbml.LIBSBML_SEV_ERROR)  > 0):
+      print("The models contains errors, please correct them before continuing.");
+      document.printErrors();
+      return 1;
+
+    model = document.getModel();
+    functionDefinition = model.getFunctionDefinition(functionDefinitionId);
+    if (functionDefinition == None):
+      print();
+      print("No functiondefinition with the given id can be found.");
+      return 1;
+
+    reaction = model.getReaction(reactionId);
+    if (reaction == None):
+      print();
+      print("No reaction with the given id can be found.");
+      return 1;
+
+    if (reaction.isSetKineticLaw() == False or reaction.getKineticLaw().isSetMath()== False):
+      print();
+      print("The reaction has no math set. ");
+      return 1;
+
+    # Until here it was all setup, all we needed was an ASTNode, in which we wanted to 
+    # replace calls to a function definition, with the function definitions content. 
+    #
+    libsbml.SBMLTransforms.replaceFD(reaction.getKineticLaw().getMath(), functionDefinition);
+
+    # finally write to file
+    libsbml.writeSBML(document, outFile);
+   
+if __name__ == '__main__':
+  main(sys.argv)  
diff --git a/examples/python/setIdFromNames.py b/examples/python/setIdFromNames.py
index 5ded4cb..f18165d 100644
--- a/examples/python/setIdFromNames.py
+++ b/examples/python/setIdFromNames.py
@@ -12,7 +12,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/stripPackage.py b/examples/python/stripPackage.py
index fbe5821..78639ea 100644
--- a/examples/python/stripPackage.py
+++ b/examples/python/stripPackage.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/translateMath.py b/examples/python/translateMath.py
index 014196d..4ccc8a9 100644
--- a/examples/python/translateMath.py
+++ b/examples/python/translateMath.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/unsetAnnotation.py b/examples/python/unsetAnnotation.py
index bad5c63..b886c0f 100644
--- a/examples/python/unsetAnnotation.py
+++ b/examples/python/unsetAnnotation.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/unsetNotes.py b/examples/python/unsetNotes.py
index b555a61..9a94abd 100644
--- a/examples/python/unsetNotes.py
+++ b/examples/python/unsetNotes.py
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/python/validateSBML.py b/examples/python/validateSBML.py
index 571f285..b9ba2ed 100644
--- a/examples/python/validateSBML.py
+++ b/examples/python/validateSBML.py
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/qual-package.cmake b/examples/qual-package.cmake
index 472ea9a..263e8b6 100644
--- a/examples/qual-package.cmake
+++ b/examples/qual-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/examples/r/addCVTerms.R b/examples/r/addCVTerms.R
index c1dc031..e9a94ec 100644
--- a/examples/r/addCVTerms.R
+++ b/examples/r/addCVTerms.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/addModelHistory.R b/examples/r/addModelHistory.R
index f9757e5..873f687 100644
--- a/examples/r/addModelHistory.R
+++ b/examples/r/addModelHistory.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/addingEvidenceCodes_1.R b/examples/r/addingEvidenceCodes_1.R
index ad8aff5..44c1365 100644
--- a/examples/r/addingEvidenceCodes_1.R
+++ b/examples/r/addingEvidenceCodes_1.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/addingEvidenceCodes_2.R b/examples/r/addingEvidenceCodes_2.R
index b5b248a..f43802a 100644
--- a/examples/r/addingEvidenceCodes_2.R
+++ b/examples/r/addingEvidenceCodes_2.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/appendAnnotation.R b/examples/r/appendAnnotation.R
index c2dec11..b2a5284 100644
--- a/examples/r/appendAnnotation.R
+++ b/examples/r/appendAnnotation.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/comp/flattenModel.R b/examples/r/comp/flattenModel.R
index 9584517..5966907 100644
--- a/examples/r/comp/flattenModel.R
+++ b/examples/r/comp/flattenModel.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/convertSBML.R b/examples/r/convertSBML.R
index 61bad27..f6c34ad 100644
--- a/examples/r/convertSBML.R
+++ b/examples/r/convertSBML.R
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/createExampleSBML.R b/examples/r/createExampleSBML.R
index cbb212b..38df6b6 100644
--- a/examples/r/createExampleSBML.R
+++ b/examples/r/createExampleSBML.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/echoSBML.R b/examples/r/echoSBML.R
index a15bc63..e688925 100644
--- a/examples/r/echoSBML.R
+++ b/examples/r/echoSBML.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/evaluateMath.R b/examples/r/evaluateMath.R
index 93a96c2..a5ebcc4 100644
--- a/examples/r/evaluateMath.R
+++ b/examples/r/evaluateMath.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/fbc/convertCobraToFbc.R b/examples/r/fbc/convertCobraToFbc.R
index 3a0e695..8d9f3f2 100644
--- a/examples/r/fbc/convertCobraToFbc.R
+++ b/examples/r/fbc/convertCobraToFbc.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/fbc/convertFbcToCobra.R b/examples/r/fbc/convertFbcToCobra.R
index 225c1ae..2bd09df 100644
--- a/examples/r/fbc/convertFbcToCobra.R
+++ b/examples/r/fbc/convertFbcToCobra.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/printAnnotation.R b/examples/r/printAnnotation.R
index 96a2848..276305f 100644
--- a/examples/r/printAnnotation.R
+++ b/examples/r/printAnnotation.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/printMath.R b/examples/r/printMath.R
index 1d95669..7d5f737 100644
--- a/examples/r/printMath.R
+++ b/examples/r/printMath.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/printNotes.R b/examples/r/printNotes.R
index f407720..9fc68f1 100644
--- a/examples/r/printNotes.R
+++ b/examples/r/printNotes.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/printRegisteredPackages.R b/examples/r/printRegisteredPackages.R
index f983269..f6928b1 100644
--- a/examples/r/printRegisteredPackages.R
+++ b/examples/r/printRegisteredPackages.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/printSBML.R b/examples/r/printSBML.R
index d2ca375..137e91f 100644
--- a/examples/r/printSBML.R
+++ b/examples/r/printSBML.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/printSupported.R b/examples/r/printSupported.R
index c2aeb6d..72dfbd4 100644
--- a/examples/r/printSupported.R
+++ b/examples/r/printSupported.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/printUnits.R b/examples/r/printUnits.R
index d19867a..540e057 100644
--- a/examples/r/printUnits.R
+++ b/examples/r/printUnits.R
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/promoteParameters.R b/examples/r/promoteParameters.R
index 627aa8f..137cebc 100644
--- a/examples/r/promoteParameters.R
+++ b/examples/r/promoteParameters.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/readSBML.R b/examples/r/readSBML.R
index 8adf5ca..7546d3b 100644
--- a/examples/r/readSBML.R
+++ b/examples/r/readSBML.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/stripPackage.R b/examples/r/stripPackage.R
index e611ebc..f623029 100644
--- a/examples/r/stripPackage.R
+++ b/examples/r/stripPackage.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/translateMath.R b/examples/r/translateMath.R
index 3a6739b..88574c8 100644
--- a/examples/r/translateMath.R
+++ b/examples/r/translateMath.R
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/unsetAnnotation.R b/examples/r/unsetAnnotation.R
index 6080bdc..cc0dad3 100644
--- a/examples/r/unsetAnnotation.R
+++ b/examples/r/unsetAnnotation.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/unsetNotes.R b/examples/r/unsetNotes.R
index 58231de..af3bc53 100644
--- a/examples/r/unsetNotes.R
+++ b/examples/r/unsetNotes.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/r/validateSBML.R b/examples/r/validateSBML.R
index 9376057..2edb3fb 100644
--- a/examples/r/validateSBML.R
+++ b/examples/r/validateSBML.R
@@ -7,7 +7,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/addCVTerms.rb b/examples/ruby/addCVTerms.rb
index 4fe20e9..09bba7c 100644
--- a/examples/ruby/addCVTerms.rb
+++ b/examples/ruby/addCVTerms.rb
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/addCustomValidator.rb b/examples/ruby/addCustomValidator.rb
index a1219b0..4970b7e 100644
--- a/examples/ruby/addCustomValidator.rb
+++ b/examples/ruby/addCustomValidator.rb
@@ -10,7 +10,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/addModelHistory.rb b/examples/ruby/addModelHistory.rb
index 5fc818b..48f822b 100644
--- a/examples/ruby/addModelHistory.rb
+++ b/examples/ruby/addModelHistory.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/addingEvidenceCodes_1.rb b/examples/ruby/addingEvidenceCodes_1.rb
index 1b938ae..4f39ebb 100644
--- a/examples/ruby/addingEvidenceCodes_1.rb
+++ b/examples/ruby/addingEvidenceCodes_1.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/addingEvidenceCodes_2.rb b/examples/ruby/addingEvidenceCodes_2.rb
index 96d99df..827b4b6 100644
--- a/examples/ruby/addingEvidenceCodes_2.rb
+++ b/examples/ruby/addingEvidenceCodes_2.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/appendAnnotation.rb b/examples/ruby/appendAnnotation.rb
index 1e0c85b..0100f39 100644
--- a/examples/ruby/appendAnnotation.rb
+++ b/examples/ruby/appendAnnotation.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/callExternalValidator.rb b/examples/ruby/callExternalValidator.rb
index a017157..ff0a181 100644
--- a/examples/ruby/callExternalValidator.rb
+++ b/examples/ruby/callExternalValidator.rb
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/comp/flattenModel.rb b/examples/ruby/comp/flattenModel.rb
index 5be31dc..1ce740f 100644
--- a/examples/ruby/comp/flattenModel.rb
+++ b/examples/ruby/comp/flattenModel.rb
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/convertSBML.rb b/examples/ruby/convertSBML.rb
index fed374d..8c0fee2 100644
--- a/examples/ruby/convertSBML.rb
+++ b/examples/ruby/convertSBML.rb
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/createExampleSBML.rb b/examples/ruby/createExampleSBML.rb
index 891361d..fc9a7ea 100644
--- a/examples/ruby/createExampleSBML.rb
+++ b/examples/ruby/createExampleSBML.rb
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/echoSBML.rb b/examples/ruby/echoSBML.rb
index 2c5f147..afe8254 100644
--- a/examples/ruby/echoSBML.rb
+++ b/examples/ruby/echoSBML.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/fbc/convertCobraToFbc.rb b/examples/ruby/fbc/convertCobraToFbc.rb
index e780da2..5ecda1a 100644
--- a/examples/ruby/fbc/convertCobraToFbc.rb
+++ b/examples/ruby/fbc/convertCobraToFbc.rb
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/fbc/convertFbcToCobra.rb b/examples/ruby/fbc/convertFbcToCobra.rb
index 645b419..b374a49 100644
--- a/examples/ruby/fbc/convertFbcToCobra.rb
+++ b/examples/ruby/fbc/convertFbcToCobra.rb
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/fbc/example1.rb b/examples/ruby/fbc/example1.rb
index ecd4697..9ca38b6 100644
--- a/examples/ruby/fbc/example1.rb
+++ b/examples/ruby/fbc/example1.rb
@@ -8,7 +8,7 @@
 # This sample program is distributed under a different license than the rest
 # of libSBML.  This program uses the open-source MIT license, as follows:
 #
-# Copyright (c) 2013-2014 by the California Institute of Technology
+# Copyright (c) 2013-2016 by the California Institute of Technology
 # (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 # and the University of Heidelberg (Germany), with support from the National
 # Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/groups/example1.rb b/examples/ruby/groups/groups_example1.rb
similarity index 100%
rename from examples/ruby/groups/example1.rb
rename to examples/ruby/groups/groups_example1.rb
diff --git a/examples/ruby/printAnnotation.rb b/examples/ruby/printAnnotation.rb
index 9f01d5c..b4b435f 100644
--- a/examples/ruby/printAnnotation.rb
+++ b/examples/ruby/printAnnotation.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/printMath.rb b/examples/ruby/printMath.rb
index 9ec5b21..eb34e82 100644
--- a/examples/ruby/printMath.rb
+++ b/examples/ruby/printMath.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/printNotes.rb b/examples/ruby/printNotes.rb
index 7d28a82..25be398 100644
--- a/examples/ruby/printNotes.rb
+++ b/examples/ruby/printNotes.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/printRegisteredPackages.rb b/examples/ruby/printRegisteredPackages.rb
index 24ff3e2..6486ea0 100644
--- a/examples/ruby/printRegisteredPackages.rb
+++ b/examples/ruby/printRegisteredPackages.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/printSBML.rb b/examples/ruby/printSBML.rb
index d27a2a9..466a462 100644
--- a/examples/ruby/printSBML.rb
+++ b/examples/ruby/printSBML.rb
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/printUnits.rb b/examples/ruby/printUnits.rb
index 695003c..7e71e47 100644
--- a/examples/ruby/printUnits.rb
+++ b/examples/ruby/printUnits.rb
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/printsupported.rb b/examples/ruby/printsupported.rb
index 03b77af..d23e004 100644
--- a/examples/ruby/printsupported.rb
+++ b/examples/ruby/printsupported.rb
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/promoteParameters.rb b/examples/ruby/promoteParameters.rb
index 84ab462..aa53361 100644
--- a/examples/ruby/promoteParameters.rb
+++ b/examples/ruby/promoteParameters.rb
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/readSBML.rb b/examples/ruby/readSBML.rb
index 3308985..6d6e584 100644
--- a/examples/ruby/readSBML.rb
+++ b/examples/ruby/readSBML.rb
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/stripPackage.rb b/examples/ruby/stripPackage.rb
index 98e53be..166874e 100644
--- a/examples/ruby/stripPackage.rb
+++ b/examples/ruby/stripPackage.rb
@@ -8,7 +8,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/translateMath.rb b/examples/ruby/translateMath.rb
index 09a8f97..a97609b 100644
--- a/examples/ruby/translateMath.rb
+++ b/examples/ruby/translateMath.rb
@@ -11,7 +11,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/unsetAnnotation.rb b/examples/ruby/unsetAnnotation.rb
index 36bd03e..1b2ecc1 100644
--- a/examples/ruby/unsetAnnotation.rb
+++ b/examples/ruby/unsetAnnotation.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/unsetNotes.rb b/examples/ruby/unsetNotes.rb
index 8451316..f6a9d56 100644
--- a/examples/ruby/unsetNotes.rb
+++ b/examples/ruby/unsetNotes.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/ruby/validateSBML.rb b/examples/ruby/validateSBML.rb
index f933745..65a593a 100644
--- a/examples/ruby/validateSBML.rb
+++ b/examples/ruby/validateSBML.rb
@@ -9,7 +9,7 @@
 ## This sample program is distributed under a different license than the rest
 ## of libSBML.  This program uses the open-source MIT license, as follows:
 ##
-## Copyright (c) 2013-2014 by the California Institute of Technology
+## Copyright (c) 2013-2016 by the California Institute of Technology
 ## (California, USA), the European Bioinformatics Institute (EMBL-EBI, UK)
 ## and the University of Heidelberg (Germany), with support from the National
 ## Institutes of Health (USA) under grant R01GM070923.  All rights reserved.
diff --git a/examples/sample-models/fbc/fbc_example1.xml b/examples/sample-models/fbc/fbc_example1.xml
index 4f7e998..c5f36fd 100644
--- a/examples/sample-models/fbc/fbc_example1.xml
+++ b/examples/sample-models/fbc/fbc_example1.xml
@@ -1,120 +1,120 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version1" level="3" version="1" fbc:required="false">
-  <model>
-    <listOfCompartments>
-      <compartment id="compartment" size="1" constant="true"/>
-    </listOfCompartments>
-    <listOfSpecies>
-      <species id="Node1" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node2" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node3" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node4" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node5" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node6" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node7" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node8" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-      <species id="Node0" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="true" constant="false"/>
-      <species id="Node9" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="true" constant="false"/>
-    </listOfSpecies>
-    <listOfReactions>
-      <reaction id="J0" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node0" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node1" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J1" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node1" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node2" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J2" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node2" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node3" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J3" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node1" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node4" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J4" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node4" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node3" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J5" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node3" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node5" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J6" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node5" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node6" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J7" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node6" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node7" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J8" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node5" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node8" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J9" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node8" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node7" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-      <reaction id="J10" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference species="Node7" stoichiometry="1" constant="true"/>
-        </listOfReactants>
-        <listOfProducts>
-          <speciesReference species="Node9" stoichiometry="1" constant="true"/>
-        </listOfProducts>
-      </reaction>
-    </listOfReactions>
-    <fbc:listOfFluxBounds>
-      <fbc:fluxBound fbc:id="bound1" fbc:reaction="J0" fbc:operation="equal" fbc:value="10"/>
-    </fbc:listOfFluxBounds>
-    <fbc:listOfObjectives activeObjective="obj1">
-      <fbc:objective fbc:id="obj1" fbc:type="maximize">
-        <fbc:listOfFluxObjectives>
-          <fbc:fluxObjective fbc:reaction="J8" fbc:coefficient="1"/>
-        </fbc:listOfFluxObjectives>
-      </fbc:objective>
-    </fbc:listOfObjectives>
-  </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version1" level="3" version="1" fbc:required="false">
+  <model>
+    <listOfCompartments>
+      <compartment id="compartment" size="1" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="Node1" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node2" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node3" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node4" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node5" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node6" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node7" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node8" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="Node0" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="true" constant="false"/>
+      <species id="Node9" compartment="compartment" hasOnlySubstanceUnits="false" boundaryCondition="true" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="J0" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node0" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node1" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J1" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node1" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node2" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J2" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node2" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node3" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J3" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node1" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node4" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J4" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node4" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node3" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J5" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node3" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node5" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J6" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node5" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node6" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J7" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node6" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node7" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J8" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node5" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node8" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J9" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node8" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node7" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+      <reaction id="J10" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="Node7" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="Node9" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+      </reaction>
+    </listOfReactions>
+    <fbc:listOfFluxBounds>
+      <fbc:fluxBound fbc:id="bound1" fbc:reaction="J0" fbc:operation="equal" fbc:value="10"/>
+    </fbc:listOfFluxBounds>
+    <fbc:listOfObjectives activeObjective="obj1">
+      <fbc:objective fbc:id="obj1" fbc:type="maximize">
+        <fbc:listOfFluxObjectives>
+          <fbc:fluxObjective fbc:reaction="J8" fbc:coefficient="1"/>
+        </fbc:listOfFluxObjectives>
+      </fbc:objective>
+    </fbc:listOfObjectives>
+  </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/algebraicrules.xml b/examples/sample-models/from-spec/level-3/algebraicrules.xml
index 298594b..25861f5 100644
--- a/examples/sample-models/from-spec/level-3/algebraicrules.xml
+++ b/examples/sample-models/from-spec/level-3/algebraicrules.xml
@@ -1,107 +1,107 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model>
-        <listOfUnitDefinitions>
-            <unitDefinition id="per_second">
-                <listOfUnits>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="cell" size="1" spatialDimensions="3" constant="true"
-                         units="litre"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="X0" compartment="cell" initialConcentration="1"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false" substanceUnits="mole"/>
-            <species id="X1" compartment="cell" initialConcentration="0"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false" substanceUnits="mole"/>
-            <species id="T"  compartment="cell" initialConcentration="0"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false" substanceUnits="mole"/>
-            <species id="S1" compartment="cell" initialConcentration="0"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false" substanceUnits="mole"/>
-            <species id="S2" compartment="cell" initialConcentration="0"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false" substanceUnits="mole"/>
-        </listOfSpecies>
-        <listOfParameters>
-            <parameter id="Keq" value="2.5" units="dimensionless" constant="true"/>
-        </listOfParameters>
-        <listOfRules>
-            <assignmentRule variable="S2">
-                <math xmlns="http://www.w3.org/1998/Math/MathML">
-                    <apply>
-                        <times/>
-                        <ci> Keq </ci>
-                        <ci> S1 </ci>
-                    </apply>
-                </math>
-            </assignmentRule>
-            <algebraicRule>
-                <math xmlns="http://www.w3.org/1998/Math/MathML">
-                    <apply>
-                        <minus/>
-                        <apply>
-                            <plus/>
-                            <ci> S2 </ci>
-                            <ci> S1 </ci>
-                        </apply>
-                        <ci> T </ci>
-                    </apply>
-                </math>
-            </algebraicRule>
-        </listOfRules>
-        <listOfReactions>
-            <reaction id="in" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="X0" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="T" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci> k1 </ci>
-                            <ci> X0 </ci>
-                            <ci> cell </ci>
-                        </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="k1" value="0.1" units="per_second"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-            <reaction id="out" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="T" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="X1" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <listOfModifiers>
-                        <modifierSpeciesReference species="S2"/>
-                </listOfModifiers>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci> k2 </ci>
-                            <ci> S2 </ci>
-                            <ci> cell </ci>
-                        </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="k2" value="0.15" units="per_second"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-        </listOfReactions>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model>
+        <listOfUnitDefinitions>
+            <unitDefinition id="per_second">
+                <listOfUnits>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="cell" size="1" spatialDimensions="3" constant="true"
+                         units="litre"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="X0" compartment="cell" initialConcentration="1"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false" substanceUnits="mole"/>
+            <species id="X1" compartment="cell" initialConcentration="0"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false" substanceUnits="mole"/>
+            <species id="T"  compartment="cell" initialConcentration="0"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false" substanceUnits="mole"/>
+            <species id="S1" compartment="cell" initialConcentration="0"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false" substanceUnits="mole"/>
+            <species id="S2" compartment="cell" initialConcentration="0"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false" substanceUnits="mole"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="Keq" value="2.5" units="dimensionless" constant="true"/>
+        </listOfParameters>
+        <listOfRules>
+            <assignmentRule variable="S2">
+                <math xmlns="http://www.w3.org/1998/Math/MathML">
+                    <apply>
+                        <times/>
+                        <ci> Keq </ci>
+                        <ci> S1 </ci>
+                    </apply>
+                </math>
+            </assignmentRule>
+            <algebraicRule>
+                <math xmlns="http://www.w3.org/1998/Math/MathML">
+                    <apply>
+                        <minus/>
+                        <apply>
+                            <plus/>
+                            <ci> S2 </ci>
+                            <ci> S1 </ci>
+                        </apply>
+                        <ci> T </ci>
+                    </apply>
+                </math>
+            </algebraicRule>
+        </listOfRules>
+        <listOfReactions>
+            <reaction id="in" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="X0" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="T" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci> k1 </ci>
+                            <ci> X0 </ci>
+                            <ci> cell </ci>
+                        </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="k1" value="0.1" units="per_second"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+            <reaction id="out" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="T" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="X1" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <listOfModifiers>
+                        <modifierSpeciesReference species="S2"/>
+                </listOfModifiers>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci> k2 </ci>
+                            <ci> S2 </ci>
+                            <ci> cell </ci>
+                        </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="k2" value="0.15" units="per_second"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/assignmentrules.xml b/examples/sample-models/from-spec/level-3/assignmentrules.xml
index 6f30a0c..aae8e61 100644
--- a/examples/sample-models/from-spec/level-3/assignmentrules.xml
+++ b/examples/sample-models/from-spec/level-3/assignmentrules.xml
@@ -1,102 +1,102 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model volumeUnits="litre" substanceUnits="mole" timeUnits="second" extentUnits="mole">
-        <listOfUnitDefinitions>
-            <unitDefinition id="per_second">
-                <listOfUnits>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="cell" size="1" spatialDimensions="3" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="X0" compartment="cell" initialConcentration="1" constant="false"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
-            <species id="X1" compartment="cell" initialConcentration="0" constant="false"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
-            <species id="T"  compartment="cell" initialConcentration="0" constant="false"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
-            <species id="S1" compartment="cell" initialConcentration="0" constant="false"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
-            <species id="S2" compartment="cell" initialConcentration="0" constant="false"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
-        </listOfSpecies>
-        <listOfParameters>
-            <parameter id="Keq" value="2.5" units="dimensionless" constant="true"/>
-        </listOfParameters>
-        <listOfRules>
-            <assignmentRule variable="S1">
-                <math xmlns="http://www.w3.org/1998/Math/MathML"
-                      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
-                    <apply>
-                        <divide/>
-                        <ci> T </ci>
-                        <apply>
-                            <plus/>
-                            <cn sbml:units="dimensionless"> 1 </cn>
-                            <ci> Keq </ci>
-                        </apply>
-                    </apply>
-                </math>
-            </assignmentRule>
-            <assignmentRule variable="S2">
-                <math xmlns="http://www.w3.org/1998/Math/MathML">
-                    <apply>
-                        <times/>
-                        <ci> Keq </ci>
-                        <ci> S1 </ci>
-                    </apply>
-                </math>
-            </assignmentRule>
-        </listOfRules>
-        <listOfReactions>
-            <reaction id="in" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="X0" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="T" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci> k1 </ci>
-                            <ci> X0 </ci>
-                            <ci> cell </ci>
-                        </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="k1" value="0.1" units="per_second"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-            <reaction id="out" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="T" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="X1" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <listOfModifiers>
-                    <modifierSpeciesReference species="S2"/>
-                </listOfModifiers>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci> k2 </ci>
-                            <ci> S2 </ci>
-                            <ci> cell </ci>
-                        </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="k2" value="0.15" units="per_second"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-        </listOfReactions>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model volumeUnits="litre" substanceUnits="mole" timeUnits="second" extentUnits="mole">
+        <listOfUnitDefinitions>
+            <unitDefinition id="per_second">
+                <listOfUnits>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="cell" size="1" spatialDimensions="3" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="X0" compartment="cell" initialConcentration="1" constant="false"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
+            <species id="X1" compartment="cell" initialConcentration="0" constant="false"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
+            <species id="T"  compartment="cell" initialConcentration="0" constant="false"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
+            <species id="S1" compartment="cell" initialConcentration="0" constant="false"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
+            <species id="S2" compartment="cell" initialConcentration="0" constant="false"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="Keq" value="2.5" units="dimensionless" constant="true"/>
+        </listOfParameters>
+        <listOfRules>
+            <assignmentRule variable="S1">
+                <math xmlns="http://www.w3.org/1998/Math/MathML"
+                      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                    <apply>
+                        <divide/>
+                        <ci> T </ci>
+                        <apply>
+                            <plus/>
+                            <cn sbml:units="dimensionless"> 1 </cn>
+                            <ci> Keq </ci>
+                        </apply>
+                    </apply>
+                </math>
+            </assignmentRule>
+            <assignmentRule variable="S2">
+                <math xmlns="http://www.w3.org/1998/Math/MathML">
+                    <apply>
+                        <times/>
+                        <ci> Keq </ci>
+                        <ci> S1 </ci>
+                    </apply>
+                </math>
+            </assignmentRule>
+        </listOfRules>
+        <listOfReactions>
+            <reaction id="in" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="X0" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="T" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci> k1 </ci>
+                            <ci> X0 </ci>
+                            <ci> cell </ci>
+                        </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="k1" value="0.1" units="per_second"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+            <reaction id="out" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="T" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="X1" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <listOfModifiers>
+                    <modifierSpeciesReference species="S2"/>
+                </listOfModifiers>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci> k2 </ci>
+                            <ci> S2 </ci>
+                            <ci> cell </ci>
+                        </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="k2" value="0.15" units="per_second"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/boundarycondition.xml b/examples/sample-models/from-spec/level-3/boundarycondition.xml
index 8878c9d..9ea5ddd 100644
--- a/examples/sample-models/from-spec/level-3/boundarycondition.xml
+++ b/examples/sample-models/from-spec/level-3/boundarycondition.xml
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model id="BoundaryCondExampleModel" 
-           volumeUnits="litre" substanceUnits="mole" timeUnits="second" extentUnits="mole">
-        <listOfUnitDefinitions>
-           <unitDefinition id="mole_per_litre_per_second">
-              <listOfUnits>
-                  <unit kind="mole" exponent="1" scale="0" multiplier="1"/>
-                  <unit kind="litre" exponent="-1" scale="0" multiplier="1"/>
-                  <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-              </listOfUnits>
-           </unitDefinition>
-           <unitDefinition id="litre_sq_per_mole_sq_per_second">
-              <listOfUnits>
-                  <unit kind="mole" exponent="-2" scale="0" multiplier="1"/>
-                  <unit kind="litre" exponent="2" scale="0" multiplier="1"/>
-                  <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-              </listOfUnits>
-           </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-           <compartment id="compartmentOne" size="1" spatialDimensions="3" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-          <species id="S1" initialConcentration="0" compartment="compartmentOne" constant="false"
-                           hasOnlySubstanceUnits="false" boundaryCondition="true"/>
-          <species id="S2" initialConcentration="1" compartment="compartmentOne" constant="false"
-                           hasOnlySubstanceUnits="false" boundaryCondition="true"/>
-          <species id="S3" initialConcentration="3" compartment="compartmentOne" constant="false"
-                           hasOnlySubstanceUnits="false" boundaryCondition="false"/>
-          <species id="S4" initialConcentration="0" compartment="compartmentOne" constant="false"
-                           hasOnlySubstanceUnits="false" boundaryCondition="false"/>
-        </listOfSpecies>
-        <listOfParameters>
-           <parameter id="k1" value="0.5" units="litre_sq_per_mole_sq_per_second"
-                      constant="true"/>
-           <parameter id="k2" value="0.1" units="mole_per_litre_per_second"
-                      constant="true"/>
-        </listOfParameters>
-        <listOfRules>
-           <rateRule variable="S1">
-               <math xmlns="http://www.w3.org/1998/Math/MathML">
-                   <ci> k2 </ci>
-               </math>
-           </rateRule>
-        </listOfRules>
-        <listOfReactions>
-           <reaction id="reaction_1" reversible="false" fast="false">
-              <listOfReactants>
-                  <speciesReference species="S1" stoichiometry="1" constant="true"/>
-                  <speciesReference species="S2" stoichiometry="1" constant="true"/>
-              </listOfReactants>
-              <listOfProducts>
-                  <speciesReference species="S4" stoichiometry="1" constant="true"/>
-              </listOfProducts>
-              <listOfModifiers>
-                  <modifierSpeciesReference species="S3"/>
-              </listOfModifiers>
-              <kineticLaw>
-                  <math xmlns="http://www.w3.org/1998/Math/MathML">
-                      <apply>
-                          <times/>
-                          <ci> k1 </ci>
-                          <ci> S1 </ci>
-                          <ci> S2 </ci>
-                          <ci> S3 </ci>
-                          <ci> compartmentOne </ci>
-                      </apply>
-                  </math>
-              </kineticLaw>
-          </reaction>
-        </listOfReactions>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="BoundaryCondExampleModel" 
+           volumeUnits="litre" substanceUnits="mole" timeUnits="second" extentUnits="mole">
+        <listOfUnitDefinitions>
+           <unitDefinition id="mole_per_litre_per_second">
+              <listOfUnits>
+                  <unit kind="mole" exponent="1" scale="0" multiplier="1"/>
+                  <unit kind="litre" exponent="-1" scale="0" multiplier="1"/>
+                  <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+              </listOfUnits>
+           </unitDefinition>
+           <unitDefinition id="litre_sq_per_mole_sq_per_second">
+              <listOfUnits>
+                  <unit kind="mole" exponent="-2" scale="0" multiplier="1"/>
+                  <unit kind="litre" exponent="2" scale="0" multiplier="1"/>
+                  <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+              </listOfUnits>
+           </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+           <compartment id="compartmentOne" size="1" spatialDimensions="3" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+          <species id="S1" initialConcentration="0" compartment="compartmentOne" constant="false"
+                           hasOnlySubstanceUnits="false" boundaryCondition="true"/>
+          <species id="S2" initialConcentration="1" compartment="compartmentOne" constant="false"
+                           hasOnlySubstanceUnits="false" boundaryCondition="true"/>
+          <species id="S3" initialConcentration="3" compartment="compartmentOne" constant="false"
+                           hasOnlySubstanceUnits="false" boundaryCondition="false"/>
+          <species id="S4" initialConcentration="0" compartment="compartmentOne" constant="false"
+                           hasOnlySubstanceUnits="false" boundaryCondition="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+           <parameter id="k1" value="0.5" units="litre_sq_per_mole_sq_per_second"
+                      constant="true"/>
+           <parameter id="k2" value="0.1" units="mole_per_litre_per_second"
+                      constant="true"/>
+        </listOfParameters>
+        <listOfRules>
+           <rateRule variable="S1">
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                   <ci> k2 </ci>
+               </math>
+           </rateRule>
+        </listOfRules>
+        <listOfReactions>
+           <reaction id="reaction_1" reversible="false" fast="false">
+              <listOfReactants>
+                  <speciesReference species="S1" stoichiometry="1" constant="true"/>
+                  <speciesReference species="S2" stoichiometry="1" constant="true"/>
+              </listOfReactants>
+              <listOfProducts>
+                  <speciesReference species="S4" stoichiometry="1" constant="true"/>
+              </listOfProducts>
+              <listOfModifiers>
+                  <modifierSpeciesReference species="S3"/>
+              </listOfModifiers>
+              <kineticLaw>
+                  <math xmlns="http://www.w3.org/1998/Math/MathML">
+                      <apply>
+                          <times/>
+                          <ci> k1 </ci>
+                          <ci> S1 </ci>
+                          <ci> S2 </ci>
+                          <ci> S3 </ci>
+                          <ci> compartmentOne </ci>
+                      </apply>
+                  </math>
+              </kineticLaw>
+          </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/delay.xml b/examples/sample-models/from-spec/level-3/delay.xml
index 128b1e9..b24754f 100644
--- a/examples/sample-models/from-spec/level-3/delay.xml
+++ b/examples/sample-models/from-spec/level-3/delay.xml
@@ -1,74 +1,74 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model substanceUnits="mole" volumeUnits="litre" 
-           extentUnits="mole" timeUnits="second">
-        <listOfUnitDefinitions>
-          <unitDefinition id="conc">
-            <listOfUnits>
-              <unit kind="mole" multiplier="1" scale="0" exponent="1"/>
-              <unit kind="litre" multiplier="1" scale="0" exponent="-1"/>             
-            </listOfUnits>
-          </unitDefinition>
-          <unitDefinition id="conc_sq">
-            <listOfUnits>
-              <unit kind="mole" multiplier="1" scale="0" exponent="2"/>
-              <unit kind="litre" multiplier="1" scale="0" exponent="-2"/>             
-            </listOfUnits>
-          </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="cell" size="1" spatialDimensions="3" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="P" compartment="cell" initialConcentration="0"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false"/>
-        </listOfSpecies>
-        <listOfParameters>
-            <parameter id="tau"     value="1"   units="second"        constant="true"/>
-            <parameter id="m"       value="0.5" units="dimensionless" constant="true"/>
-            <parameter id="q"       value="1"   units="dimensionless" constant="true"/>
-            <parameter id="delta_t" value="1"   units="second"        constant="true"/>
-        </listOfParameters>
-        <listOfRules>
-            <rateRule variable="P">
-                <math xmlns="http://www.w3.org/1998/Math/MathML"
-                      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
-                  <apply>
-                    <divide/>
-                    <apply>
-                      <minus/>
-                      <apply>
-                        <divide/>
-                        <cn sbml:units="conc_sq"> 1 </cn>
-                        <apply>
-                          <plus/>
-                          <cn sbml:units="conc"> 1 </cn>
-                          <apply>
-                            <times/>
-                            <ci> m </ci>
-                            <apply>
-                              <power/>
-                              <apply>
-                                <csymbol 
-                                     encoding="text" 
-                                     definitionURL="http://www.sbml.org/sbml/symbols/delay">
-                                    delay
-                                </csymbol>
-                                <ci> P </ci>
-                                <ci> delta_t </ci>
-                              </apply>
-                              <ci> q </ci>
-                            </apply>
-                          </apply>
-                        </apply>
-                      </apply>
-                      <ci> P </ci>
-                    </apply>
-                    <ci> tau </ci>
-                  </apply>
-                </math>
-            </rateRule>
-        </listOfRules>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model substanceUnits="mole" volumeUnits="litre" 
+           extentUnits="mole" timeUnits="second">
+        <listOfUnitDefinitions>
+          <unitDefinition id="conc">
+            <listOfUnits>
+              <unit kind="mole" multiplier="1" scale="0" exponent="1"/>
+              <unit kind="litre" multiplier="1" scale="0" exponent="-1"/>             
+            </listOfUnits>
+          </unitDefinition>
+          <unitDefinition id="conc_sq">
+            <listOfUnits>
+              <unit kind="mole" multiplier="1" scale="0" exponent="2"/>
+              <unit kind="litre" multiplier="1" scale="0" exponent="-2"/>             
+            </listOfUnits>
+          </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="cell" size="1" spatialDimensions="3" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="P" compartment="cell" initialConcentration="0"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="tau"     value="1"   units="second"        constant="true"/>
+            <parameter id="m"       value="0.5" units="dimensionless" constant="true"/>
+            <parameter id="q"       value="1"   units="dimensionless" constant="true"/>
+            <parameter id="delta_t" value="1"   units="second"        constant="true"/>
+        </listOfParameters>
+        <listOfRules>
+            <rateRule variable="P">
+                <math xmlns="http://www.w3.org/1998/Math/MathML"
+                      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                  <apply>
+                    <divide/>
+                    <apply>
+                      <minus/>
+                      <apply>
+                        <divide/>
+                        <cn sbml:units="conc_sq"> 1 </cn>
+                        <apply>
+                          <plus/>
+                          <cn sbml:units="conc"> 1 </cn>
+                          <apply>
+                            <times/>
+                            <ci> m </ci>
+                            <apply>
+                              <power/>
+                              <apply>
+                                <csymbol 
+                                     encoding="text" 
+                                     definitionURL="http://www.sbml.org/sbml/symbols/delay">
+                                    delay
+                                </csymbol>
+                                <ci> P </ci>
+                                <ci> delta_t </ci>
+                              </apply>
+                              <ci> q </ci>
+                            </apply>
+                          </apply>
+                        </apply>
+                      </apply>
+                      <ci> P </ci>
+                    </apply>
+                    <ci> tau </ci>
+                  </apply>
+                </math>
+            </rateRule>
+        </listOfRules>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/dimerization.xml b/examples/sample-models/from-spec/level-3/dimerization.xml
index ae81d3d..ef797fe 100644
--- a/examples/sample-models/from-spec/level-3/dimerization.xml
+++ b/examples/sample-models/from-spec/level-3/dimerization.xml
@@ -1,89 +1,89 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model id="dimerization" substanceUnits="item" timeUnits="second" 
-           volumeUnits="litre" extentUnits="item">
-        <listOfUnitDefinitions>
-            <unitDefinition id="per_second">
-                <listOfUnits>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-            <unitDefinition id="per_item_per_second">
-                <listOfUnits>
-                    <unit kind="item"   exponent="-1" scale="0" multiplier="1"/>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="Cell" size="1e-15" spatialDimensions="3"
-                         constant="true" sboTerm="SBO:0000290"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="P"  compartment="Cell" initialAmount="301"
-                             hasOnlySubstanceUnits="true" boundaryCondition="false"
-                             constant="false" sboTerm="SBO:0000252"/>
-            <species id="P2" compartment="Cell" initialAmount="0"   
-                             hasOnlySubstanceUnits="true" boundaryCondition="false"
-                             constant="false" sboTerm="SBO:0000420"/>
-        </listOfSpecies>
-        <listOfReactions>
-            <reaction id="Dimerization" reversible="false" fast="false" sboTerm="SBO:0000177">
-                <listOfReactants>
-                    <speciesReference species="P" stoichiometry="2" constant="true" 
-                                      sboTerm="SBO:0000010"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="P2" stoichiometry="1" constant="true" 
-                                      sboTerm="SBO:0000011"/>
-                </listOfProducts>
-                <kineticLaw sboTerm="SBO:0000142">
-                    <math xmlns="http://www.w3.org/1998/Math/MathML"
-                          xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
-                        <apply>
-                            <divide/>
-                            <apply>
-                                <times/>
-                                <ci> c1 </ci>
-                                <ci> P </ci>
-                                <apply>
-                                    <minus/>
-                                    <ci> P </ci>
-                                    <cn type="integer" sbml:units="item"> 1 </cn>
-                                </apply>
-                            </apply>
-                            <cn type="integer" sbml:units="dimensionless"> 2 </cn>
-                        </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="c1" value="0.00166" units="per_item_per_second" 
-                                        sboTerm="SBO:0000067"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-            <reaction id="Dissociation" reversible="false" fast="false" sboTerm="SBO:0000180">
-                <listOfReactants>
-                    <speciesReference species="P2" stoichiometry="1" constant="true" 
-                                      sboTerm="SBO:0000010"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="P" stoichiometry="2" constant="true" 
-                                      sboTerm="SBO:0000011"/>
-                </listOfProducts>
-                <kineticLaw sboTerm="SBO:0000141">
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci> c2 </ci>
-                            <ci> P </ci>
-                        </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="c2" value="0.2" units="per_second" 
-                                        sboTerm="SBO:0000066"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-        </listOfReactions>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="dimerization" substanceUnits="item" timeUnits="second" 
+           volumeUnits="litre" extentUnits="item">
+        <listOfUnitDefinitions>
+            <unitDefinition id="per_second">
+                <listOfUnits>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="per_item_per_second">
+                <listOfUnits>
+                    <unit kind="item"   exponent="-1" scale="0" multiplier="1"/>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="Cell" size="1e-15" spatialDimensions="3"
+                         constant="true" sboTerm="SBO:0000290"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="P"  compartment="Cell" initialAmount="301"
+                             hasOnlySubstanceUnits="true" boundaryCondition="false"
+                             constant="false" sboTerm="SBO:0000252"/>
+            <species id="P2" compartment="Cell" initialAmount="0"   
+                             hasOnlySubstanceUnits="true" boundaryCondition="false"
+                             constant="false" sboTerm="SBO:0000420"/>
+        </listOfSpecies>
+        <listOfReactions>
+            <reaction id="Dimerization" reversible="false" fast="false" sboTerm="SBO:0000177">
+                <listOfReactants>
+                    <speciesReference species="P" stoichiometry="2" constant="true" 
+                                      sboTerm="SBO:0000010"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="P2" stoichiometry="1" constant="true" 
+                                      sboTerm="SBO:0000011"/>
+                </listOfProducts>
+                <kineticLaw sboTerm="SBO:0000142">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML"
+                          xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                        <apply>
+                            <divide/>
+                            <apply>
+                                <times/>
+                                <ci> c1 </ci>
+                                <ci> P </ci>
+                                <apply>
+                                    <minus/>
+                                    <ci> P </ci>
+                                    <cn type="integer" sbml:units="item"> 1 </cn>
+                                </apply>
+                            </apply>
+                            <cn type="integer" sbml:units="dimensionless"> 2 </cn>
+                        </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="c1" value="0.00166" units="per_item_per_second" 
+                                        sboTerm="SBO:0000067"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+            <reaction id="Dissociation" reversible="false" fast="false" sboTerm="SBO:0000180">
+                <listOfReactants>
+                    <speciesReference species="P2" stoichiometry="1" constant="true" 
+                                      sboTerm="SBO:0000010"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="P" stoichiometry="2" constant="true" 
+                                      sboTerm="SBO:0000011"/>
+                </listOfProducts>
+                <kineticLaw sboTerm="SBO:0000141">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci> c2 </ci>
+                            <ci> P </ci>
+                        </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="c2" value="0.2" units="per_second" 
+                                        sboTerm="SBO:0000066"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/enzymekinetics.xml b/examples/sample-models/from-spec/level-3/enzymekinetics.xml
index 2ec9897..03e57ee 100644
--- a/examples/sample-models/from-spec/level-3/enzymekinetics.xml
+++ b/examples/sample-models/from-spec/level-3/enzymekinetics.xml
@@ -1,91 +1,91 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core">
-  <model extentUnits="mole" timeUnits="second">
-     <listOfUnitDefinitions>
-       <unitDefinition id="per_second">
-          <listOfUnits>
-             <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-          </listOfUnits>
-       </unitDefinition>
-       <unitDefinition id="litre_per_mole_second">
-          <listOfUnits>
-             <unit kind="mole"   exponent="-1" scale="0" multiplier="1"/>
-             <unit kind="litre"  exponent="1"  scale="0" multiplier="1"/>
-             <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-          </listOfUnits>
-       </unitDefinition>
-     </listOfUnitDefinitions>
-     <listOfCompartments>
-       <compartment id="comp" size="1e-14" spatialDimensions="3" units="litre" constant="true"/>
-     </listOfCompartments>
-     <listOfSpecies>
-       <species compartment="comp" id="E"  initialAmount="5e-21" boundaryCondition="false"
-                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
-       <species compartment="comp" id="S"  initialAmount="1e-20" boundaryCondition="false"
-                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
-       <species compartment="comp" id="P"  initialAmount="0"     boundaryCondition="false"
-                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
-       <species compartment="comp" id="ES" initialAmount="0"     boundaryCondition="false"
-                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
-     </listOfSpecies>
-     <listOfReactions>
-       <reaction id="veq" reversible="true" fast="false">
-         <listOfReactants>
-            <speciesReference species="E"  stoichiometry="1" constant="true"/>
-            <speciesReference species="S"  stoichiometry="1" constant="true"/>
-         </listOfReactants>
-         <listOfProducts>
-            <speciesReference species="ES" stoichiometry="1" constant="true"/>
-         </listOfProducts>
-         <kineticLaw>
-            <math xmlns="http://www.w3.org/1998/Math/MathML">
-              <apply>
-                 <times/>
-                 <ci>comp</ci>
-                 <apply>
-                    <minus/>
-                    <apply>
-                      <times/>
-                      <ci>kon</ci>
-                      <ci>E</ci>
-                      <ci>S</ci>
-                    </apply>
-                    <apply>
-                      <times/>
-                      <ci>koff</ci>
-                      <ci>ES</ci>
-                    </apply>
-                 </apply>
-              </apply>
-            </math>
-            <listOfLocalParameters>
-              <localParameter id="kon"  value="1000000" units="litre_per_mole_second"/>
-              <localParameter id="koff" value="0.2"     units="per_second"/>
-            </listOfLocalParameters>
-         </kineticLaw>
-       </reaction>
-       <reaction id="vcat" reversible="false" fast="false">
-          <listOfReactants>
-             <speciesReference species="ES" stoichiometry="1" constant="true"/>
-          </listOfReactants>
-          <listOfProducts>
-             <speciesReference species="E"  stoichiometry="1" constant="true"/>
-             <speciesReference species="P"  stoichiometry="1" constant="true"/>
-          </listOfProducts>
-          <kineticLaw>
-             <math xmlns="http://www.w3.org/1998/Math/MathML">
-               <apply>
-                  <times/>
-                  <ci>comp</ci>
-                  <ci>kcat</ci>
-                  <ci>ES</ci>
-               </apply>
-             </math>
-             <listOfLocalParameters>
-               <localParameter id="kcat" value="0.1" units="per_second"/>
-             </listOfLocalParameters>
-          </kineticLaw>
-       </reaction>
-     </listOfReactions>
-  </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core">
+  <model extentUnits="mole" timeUnits="second">
+     <listOfUnitDefinitions>
+       <unitDefinition id="per_second">
+          <listOfUnits>
+             <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+          </listOfUnits>
+       </unitDefinition>
+       <unitDefinition id="litre_per_mole_second">
+          <listOfUnits>
+             <unit kind="mole"   exponent="-1" scale="0" multiplier="1"/>
+             <unit kind="litre"  exponent="1"  scale="0" multiplier="1"/>
+             <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+          </listOfUnits>
+       </unitDefinition>
+     </listOfUnitDefinitions>
+     <listOfCompartments>
+       <compartment id="comp" size="1e-14" spatialDimensions="3" units="litre" constant="true"/>
+     </listOfCompartments>
+     <listOfSpecies>
+       <species compartment="comp" id="E"  initialAmount="5e-21" boundaryCondition="false"
+                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
+       <species compartment="comp" id="S"  initialAmount="1e-20" boundaryCondition="false"
+                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
+       <species compartment="comp" id="P"  initialAmount="0"     boundaryCondition="false"
+                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
+       <species compartment="comp" id="ES" initialAmount="0"     boundaryCondition="false"
+                hasOnlySubstanceUnits="false" substanceUnits="mole" constant="false"/>
+     </listOfSpecies>
+     <listOfReactions>
+       <reaction id="veq" reversible="true" fast="false">
+         <listOfReactants>
+            <speciesReference species="E"  stoichiometry="1" constant="true"/>
+            <speciesReference species="S"  stoichiometry="1" constant="true"/>
+         </listOfReactants>
+         <listOfProducts>
+            <speciesReference species="ES" stoichiometry="1" constant="true"/>
+         </listOfProducts>
+         <kineticLaw>
+            <math xmlns="http://www.w3.org/1998/Math/MathML">
+              <apply>
+                 <times/>
+                 <ci>comp</ci>
+                 <apply>
+                    <minus/>
+                    <apply>
+                      <times/>
+                      <ci>kon</ci>
+                      <ci>E</ci>
+                      <ci>S</ci>
+                    </apply>
+                    <apply>
+                      <times/>
+                      <ci>koff</ci>
+                      <ci>ES</ci>
+                    </apply>
+                 </apply>
+              </apply>
+            </math>
+            <listOfLocalParameters>
+              <localParameter id="kon"  value="1000000" units="litre_per_mole_second"/>
+              <localParameter id="koff" value="0.2"     units="per_second"/>
+            </listOfLocalParameters>
+         </kineticLaw>
+       </reaction>
+       <reaction id="vcat" reversible="false" fast="false">
+          <listOfReactants>
+             <speciesReference species="ES" stoichiometry="1" constant="true"/>
+          </listOfReactants>
+          <listOfProducts>
+             <speciesReference species="E"  stoichiometry="1" constant="true"/>
+             <speciesReference species="P"  stoichiometry="1" constant="true"/>
+          </listOfProducts>
+          <kineticLaw>
+             <math xmlns="http://www.w3.org/1998/Math/MathML">
+               <apply>
+                  <times/>
+                  <ci>comp</ci>
+                  <ci>kcat</ci>
+                  <ci>ES</ci>
+               </apply>
+             </math>
+             <listOfLocalParameters>
+               <localParameter id="kcat" value="0.1" units="per_second"/>
+             </listOfLocalParameters>
+          </kineticLaw>
+       </reaction>
+     </listOfReactions>
+  </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/events.xml b/examples/sample-models/from-spec/level-3/events.xml
index 7e775dc..0d6856b 100644
--- a/examples/sample-models/from-spec/level-3/events.xml
+++ b/examples/sample-models/from-spec/level-3/events.xml
@@ -1,105 +1,105 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1"
-      xmlns:math="http://www.w3.org/1998/Math/MathML"
-      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
-    <model substanceUnits="mole" volumeUnits="litre" timeUnits="second" 
-           extentUnits="mole">
-        <listOfUnitDefinitions>
-            <unitDefinition id="per_second">
-                <listOfUnits>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-            <unitDefinition id="concentration">
-                <listOfUnits>
-                    <unit kind="mole"  exponent="1"  scale="0" multiplier="1"/>
-                    <unit kind="litre" exponent="-1" scale="0" multiplier="1"/> 
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="cell" size="1" spatialDimensions="3" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="P1" compartment="cell" initialConcentration="0"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false"/>
-            <species id="P2" compartment="cell" initialConcentration="0"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false"/>
-        </listOfSpecies>
-        <listOfParameters>
-            <parameter id="k1"   value="1"    units="per_second"    constant="true"/>
-            <parameter id="k2"   value="1"    units="per_second"    constant="true"/>
-            <parameter id="tau"  value="0.25" units="concentration" constant="true"/>
-            <parameter id="G1"   value="1"    units="concentration" constant="false"/>
-            <parameter id="G2"   value="0"    units="concentration" constant="false"/>
-        </listOfParameters>
-        <listOfRules>
-            <rateRule variable="P1">
-                <math:math>
-                    <math:apply>
-                        <math:times/>
-                        <math:ci> k1 </math:ci>
-                        <math:apply>
-                            <math:minus/>
-                            <math:ci> G1 </math:ci>
-                            <math:ci> P1 </math:ci>
-                        </math:apply>
-                    </math:apply>
-                </math:math>
-            </rateRule>
-            <rateRule variable="P2">
-                <math:math>
-                    <math:apply>
-                        <math:times/>
-                        <math:ci> k2 </math:ci>
-                        <math:apply>
-                            <math:minus/>
-                            <math:ci> G2 </math:ci>
-                            <math:ci> P2 </math:ci>
-                        </math:apply>
-                    </math:apply>
-                </math:math>
-            </rateRule>
-        </listOfRules>
-        <listOfEvents>
-            <event useValuesFromTriggerTime="true">
-                <trigger persistent="false" initialValue="true">
-                    <math:math>
-                        <math:apply>
-                            <math:gt/>
-                            <math:ci> P1 </math:ci>
-                            <math:ci> tau </math:ci>
-                        </math:apply>
-                    </math:math>
-                </trigger>
-                <listOfEventAssignments>
-                    <eventAssignment variable="G2">
-                        <math:math>
-                            <math:cn sbml:units="concentration"> 1 </math:cn>
-                        </math:math>
-                    </eventAssignment>
-                </listOfEventAssignments>
-            </event>
-            <event useValuesFromTriggerTime="true">
-                <trigger persistent="false" initialValue="true">
-                    <math:math>
-                        <math:apply>
-                            <math:leq/>
-                            <math:ci> P1 </math:ci>
-                            <math:ci> tau </math:ci>
-                        </math:apply>
-                    </math:math>
-                </trigger>
-                <listOfEventAssignments>
-                    <eventAssignment variable="G2">
-                        <math:math>
-                            <math:cn sbml:units="concentration"> 0 </math:cn>
-                        </math:math>
-                    </eventAssignment>
-                </listOfEventAssignments>
-            </event>
-        </listOfEvents>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1"
+      xmlns:math="http://www.w3.org/1998/Math/MathML"
+      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+    <model substanceUnits="mole" volumeUnits="litre" timeUnits="second" 
+           extentUnits="mole">
+        <listOfUnitDefinitions>
+            <unitDefinition id="per_second">
+                <listOfUnits>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="concentration">
+                <listOfUnits>
+                    <unit kind="mole"  exponent="1"  scale="0" multiplier="1"/>
+                    <unit kind="litre" exponent="-1" scale="0" multiplier="1"/> 
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="cell" size="1" spatialDimensions="3" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="P1" compartment="cell" initialConcentration="0"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false"/>
+            <species id="P2" compartment="cell" initialConcentration="0"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="k1"   value="1"    units="per_second"    constant="true"/>
+            <parameter id="k2"   value="1"    units="per_second"    constant="true"/>
+            <parameter id="tau"  value="0.25" units="concentration" constant="true"/>
+            <parameter id="G1"   value="1"    units="concentration" constant="false"/>
+            <parameter id="G2"   value="0"    units="concentration" constant="false"/>
+        </listOfParameters>
+        <listOfRules>
+            <rateRule variable="P1">
+                <math:math>
+                    <math:apply>
+                        <math:times/>
+                        <math:ci> k1 </math:ci>
+                        <math:apply>
+                            <math:minus/>
+                            <math:ci> G1 </math:ci>
+                            <math:ci> P1 </math:ci>
+                        </math:apply>
+                    </math:apply>
+                </math:math>
+            </rateRule>
+            <rateRule variable="P2">
+                <math:math>
+                    <math:apply>
+                        <math:times/>
+                        <math:ci> k2 </math:ci>
+                        <math:apply>
+                            <math:minus/>
+                            <math:ci> G2 </math:ci>
+                            <math:ci> P2 </math:ci>
+                        </math:apply>
+                    </math:apply>
+                </math:math>
+            </rateRule>
+        </listOfRules>
+        <listOfEvents>
+            <event useValuesFromTriggerTime="true">
+                <trigger persistent="false" initialValue="true">
+                    <math:math>
+                        <math:apply>
+                            <math:gt/>
+                            <math:ci> P1 </math:ci>
+                            <math:ci> tau </math:ci>
+                        </math:apply>
+                    </math:math>
+                </trigger>
+                <listOfEventAssignments>
+                    <eventAssignment variable="G2">
+                        <math:math>
+                            <math:cn sbml:units="concentration"> 1 </math:cn>
+                        </math:math>
+                    </eventAssignment>
+                </listOfEventAssignments>
+            </event>
+            <event useValuesFromTriggerTime="true">
+                <trigger persistent="false" initialValue="true">
+                    <math:math>
+                        <math:apply>
+                            <math:leq/>
+                            <math:ci> P1 </math:ci>
+                            <math:ci> tau </math:ci>
+                        </math:apply>
+                    </math:math>
+                </trigger>
+                <listOfEventAssignments>
+                    <eventAssignment variable="G2">
+                        <math:math>
+                            <math:cn sbml:units="concentration"> 0 </math:cn>
+                        </math:math>
+                    </eventAssignment>
+                </listOfEventAssignments>
+            </event>
+        </listOfEvents>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/fullydeterminedevent.xml b/examples/sample-models/from-spec/level-3/fullydeterminedevent.xml
index fde678f..39ed12b 100644
--- a/examples/sample-models/from-spec/level-3/fullydeterminedevent.xml
+++ b/examples/sample-models/from-spec/level-3/fullydeterminedevent.xml
@@ -1,81 +1,81 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model id="example" substanceUnits="mole" volumeUnits="litre" 
-           timeUnits="second" extentUnits="mole">
-        <listOfUnitDefinitions>
-            <unitDefinition id="conc">
-                <listOfUnits>
-                    <unit kind="mole"  multiplier="1" scale="0" exponent="1"/>
-                    <unit kind="litre" multiplier="1" scale="0" exponent="-1"/>             
-                </listOfUnits>
-            </unitDefinition>
-            <unitDefinition id="per_second">
-                <listOfUnits>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="C" size="1" spatialDimensions="3" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="S1" compartment="C" initialConcentration="1" constant="false"
-                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-            <species id="S2" compartment="C" initialConcentration="0" constant="false"
-                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-            <species id="S3" compartment="C" initialConcentration="0" constant="false"
-                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-        </listOfSpecies>
-        <listOfParameters>
-            <parameter id="p1" value="1"   constant="true" units="conc"/>
-            <parameter id="p2" value="1.5" constant="true" units="conc"/>
-        </listOfParameters>
-        <listOfRules>
-            <algebraicRule>
-                <math xmlns="http://www.w3.org/1998/Math/MathML">
-                    <apply> <minus/> <ci> S1 </ci> <ci> S3 </ci> </apply>
-                </math>
-            </algebraicRule>
-        </listOfRules>
-        <listOfReactions>
-            <reaction id="R" reversible="true" fast="false">
-                <listOfReactants>
-                    <speciesReference species="S1" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="S2" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply> <times/> <ci> C </ci> <ci> k1 </ci> <ci> S1 </ci> 
-                        </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="k1" value="0.1" units="per_second"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-        </listOfReactions>
-        <listOfEvents>
-            <event useValuesFromTriggerTime="true">
-                <trigger persistent="false" initialValue="true">
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply> <gt/> <ci> S2 </ci> <ci> p1 </ci> </apply>
-                    </math>              
-                </trigger>
-                <listOfEventAssignments>
-                  <eventAssignment variable="S1">
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <ci> p1 </ci>
-                    </math>                  
-                  </eventAssignment>
-                  <eventAssignment variable="S2">
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <ci> p2 </ci>
-                    </math>                  
-                  </eventAssignment>
-                </listOfEventAssignments>
-            </event>
-        </listOfEvents>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="example" substanceUnits="mole" volumeUnits="litre" 
+           timeUnits="second" extentUnits="mole">
+        <listOfUnitDefinitions>
+            <unitDefinition id="conc">
+                <listOfUnits>
+                    <unit kind="mole"  multiplier="1" scale="0" exponent="1"/>
+                    <unit kind="litre" multiplier="1" scale="0" exponent="-1"/>             
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="per_second">
+                <listOfUnits>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="C" size="1" spatialDimensions="3" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="S1" compartment="C" initialConcentration="1" constant="false"
+                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+            <species id="S2" compartment="C" initialConcentration="0" constant="false"
+                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+            <species id="S3" compartment="C" initialConcentration="0" constant="false"
+                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="p1" value="1"   constant="true" units="conc"/>
+            <parameter id="p2" value="1.5" constant="true" units="conc"/>
+        </listOfParameters>
+        <listOfRules>
+            <algebraicRule>
+                <math xmlns="http://www.w3.org/1998/Math/MathML">
+                    <apply> <minus/> <ci> S1 </ci> <ci> S3 </ci> </apply>
+                </math>
+            </algebraicRule>
+        </listOfRules>
+        <listOfReactions>
+            <reaction id="R" reversible="true" fast="false">
+                <listOfReactants>
+                    <speciesReference species="S1" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="S2" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply> <times/> <ci> C </ci> <ci> k1 </ci> <ci> S1 </ci> 
+                        </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="k1" value="0.1" units="per_second"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+        <listOfEvents>
+            <event useValuesFromTriggerTime="true">
+                <trigger persistent="false" initialValue="true">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply> <gt/> <ci> S2 </ci> <ci> p1 </ci> </apply>
+                    </math>              
+                </trigger>
+                <listOfEventAssignments>
+                  <eventAssignment variable="S1">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <ci> p1 </ci>
+                    </math>                  
+                  </eventAssignment>
+                  <eventAssignment variable="S2">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <ci> p2 </ci>
+                    </math>                  
+                  </eventAssignment>
+                </listOfEventAssignments>
+            </event>
+        </listOfEvents>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/functiondef.xml b/examples/sample-models/from-spec/level-3/functiondef.xml
index 81adbf4..988785c 100644
--- a/examples/sample-models/from-spec/level-3/functiondef.xml
+++ b/examples/sample-models/from-spec/level-3/functiondef.xml
@@ -1,71 +1,71 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model id="Example" substanceUnits="mole" volumeUnits="litre"
-           timeUnits="second" extentUnits="mole">
-        <listOfUnitDefinitions>
-            <unitDefinition id="conc">
-                <listOfUnits>
-                    <unit kind="mole" multiplier="1" scale="0" exponent="1"/>
-                    <unit kind="litre" multiplier="1" scale="0" exponent="-1"/>             
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfFunctionDefinitions>
-            <functionDefinition id="f">
-                <math xmlns="http://www.w3.org/1998/Math/MathML"
-                      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
-                    <lambda>
-                        <bvar>
-                            <ci> x </ci>
-                        </bvar>
-                        <apply>
-                            <times/>
-                            <ci> x </ci>
-                            <cn sbml:units="conc"> 2 </cn>
-                        </apply>
-                    </lambda>
-                </math>
-            </functionDefinition>
-        </listOfFunctionDefinitions>
-        <listOfCompartments>
-            <compartment id="compartmentOne" size="1" spatialDimensions="3" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="S1" initialConcentration="1" compartment="compartmentOne"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false"/>
-            <species id="S2" initialConcentration="0" compartment="compartmentOne"
-                     hasOnlySubstanceUnits="false" boundaryCondition="false"
-                     constant="false"/>
-        </listOfSpecies>
-        <listOfParameters>
-            <parameter id="t" value = "1" constant="true"/>
-        </listOfParameters>
-        <listOfReactions>
-            <reaction id="reaction_1" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="S1" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="S2" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                        <divide/>
-                            <apply>
-                                <times/>
-                                <apply>
-                                    <ci> f </ci>
-                                    <ci> S1 </ci>
-                                </apply>
-                                <ci> compartmentOne </ci>
-                            </apply>
-                            <ci> t</ci>
-                        </apply>
-                    </math>
-                </kineticLaw>
-            </reaction>
-        </listOfReactions>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="Example" substanceUnits="mole" volumeUnits="litre"
+           timeUnits="second" extentUnits="mole">
+        <listOfUnitDefinitions>
+            <unitDefinition id="conc">
+                <listOfUnits>
+                    <unit kind="mole" multiplier="1" scale="0" exponent="1"/>
+                    <unit kind="litre" multiplier="1" scale="0" exponent="-1"/>             
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfFunctionDefinitions>
+            <functionDefinition id="f">
+                <math xmlns="http://www.w3.org/1998/Math/MathML"
+                      xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                    <lambda>
+                        <bvar>
+                            <ci> x </ci>
+                        </bvar>
+                        <apply>
+                            <times/>
+                            <ci> x </ci>
+                            <cn sbml:units="conc"> 2 </cn>
+                        </apply>
+                    </lambda>
+                </math>
+            </functionDefinition>
+        </listOfFunctionDefinitions>
+        <listOfCompartments>
+            <compartment id="compartmentOne" size="1" spatialDimensions="3" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="S1" initialConcentration="1" compartment="compartmentOne"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false"/>
+            <species id="S2" initialConcentration="0" compartment="compartmentOne"
+                     hasOnlySubstanceUnits="false" boundaryCondition="false"
+                     constant="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="t" value = "1" constant="true"/>
+        </listOfParameters>
+        <listOfReactions>
+            <reaction id="reaction_1" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="S1" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="S2" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                        <divide/>
+                            <apply>
+                                <times/>
+                                <apply>
+                                    <ci> f </ci>
+                                    <ci> S1 </ci>
+                                </apply>
+                                <ci> compartmentOne </ci>
+                            </apply>
+                            <ci> t</ci>
+                        </apply>
+                    </math>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/multicomp.xml b/examples/sample-models/from-spec/level-3/multicomp.xml
index 6577ae1..1733e25 100644
--- a/examples/sample-models/from-spec/level-3/multicomp.xml
+++ b/examples/sample-models/from-spec/level-3/multicomp.xml
@@ -1,120 +1,120 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model name="LotkaVolterra_tranport" substanceUnits="mole" volumeUnits="litre"
-           extentUnits="mole" timeUnits="second">
-        <listOfUnitDefinitions>
-            <unitDefinition id="per_second">
-                <listOfUnits>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-            <unitDefinition id="litre_per_mole_per_second">
-                <listOfUnits>
-                    <unit kind="mole"   exponent="-1" scale="0" multiplier="1"/>
-                    <unit kind="litre"  exponent="1"  scale="0" multiplier="1"/>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="cytoplasm" size="5" constant="true"/>
-            <compartment id="nucleus" size="1" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="X"   compartment="nucleus" initialAmount="1" constant="false"
-                              boundaryCondition="true"  hasOnlySubstanceUnits="false"/>
-            <species id="Y1n" compartment="nucleus" initialAmount="1" constant="false"
-                              boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-            <species id="Y1c" compartment="cytoplasm"   initialAmount="0" constant="false"
-                              boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-            <species id="Y2"  compartment="cytoplasm"   initialAmount="1" constant="false"
-                              boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-        </listOfSpecies>
-        <listOfParameters>
-            <parameter id="k1" value="2500"  units="litre_per_mole_per_second" constant="true"/>
-            <parameter id="k2" value="2500"  units="litre_per_mole_per_second" constant="true"/>
-            <parameter id="KT" value="25000" units="per_second"                constant="true"/>
-            <parameter id="k3" value="2500"  units="per_second"                constant="true"/>
-        </listOfParameters>
-        <listOfReactions>
-            <reaction id="production" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="X"   stoichiometry="1" constant="true"/>
-                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
-                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci>nucleus</ci>
-                            <ci>k1</ci>
-                            <ci>X</ci>
-                            <ci>Y1n</ci>
-                        </apply>
-                    </math>
-                </kineticLaw>
-            </reaction>
-            <reaction id="transport" reversible="true" fast="false">
-                <listOfReactants>
-                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="Y1c" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci>cytoplasm</ci>
-                            <ci>KT</ci>
-                            <apply>
-                                <minus/>
-                                <ci>Y1n</ci>
-                                <ci>Y1c</ci>
-                            </apply>
-                        </apply>
-                    </math>
-                </kineticLaw>
-            </reaction>
-            <reaction id="transformation" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="Y1c" stoichiometry="1" constant="true"/>
-                    <speciesReference species="Y2"  stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="Y2"  stoichiometry="2" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci>cytoplasm</ci>
-                            <ci>k2</ci>
-                            <ci>Y1c</ci>
-                            <ci>Y2</ci>
-                        </apply>
-                    </math>
-                </kineticLaw>
-            </reaction>
-            <reaction id="degradation" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="Y2" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply>
-                            <times/>
-                            <ci>cytoplasm</ci>
-                            <ci>k3</ci>
-                            <ci>Y2</ci>
-                        </apply>
-                    </math>
-                </kineticLaw>
-            </reaction>
-        </listOfReactions>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model name="LotkaVolterra_tranport" substanceUnits="mole" volumeUnits="litre"
+           extentUnits="mole" timeUnits="second">
+        <listOfUnitDefinitions>
+            <unitDefinition id="per_second">
+                <listOfUnits>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="litre_per_mole_per_second">
+                <listOfUnits>
+                    <unit kind="mole"   exponent="-1" scale="0" multiplier="1"/>
+                    <unit kind="litre"  exponent="1"  scale="0" multiplier="1"/>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="cytoplasm" size="5" constant="true"/>
+            <compartment id="nucleus" size="1" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="X"   compartment="nucleus" initialAmount="1" constant="false"
+                              boundaryCondition="true"  hasOnlySubstanceUnits="false"/>
+            <species id="Y1n" compartment="nucleus" initialAmount="1" constant="false"
+                              boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+            <species id="Y1c" compartment="cytoplasm"   initialAmount="0" constant="false"
+                              boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+            <species id="Y2"  compartment="cytoplasm"   initialAmount="1" constant="false"
+                              boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="k1" value="2500"  units="litre_per_mole_per_second" constant="true"/>
+            <parameter id="k2" value="2500"  units="litre_per_mole_per_second" constant="true"/>
+            <parameter id="KT" value="25000" units="per_second"                constant="true"/>
+            <parameter id="k3" value="2500"  units="per_second"                constant="true"/>
+        </listOfParameters>
+        <listOfReactions>
+            <reaction id="production" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="X"   stoichiometry="1" constant="true"/>
+                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
+                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci>nucleus</ci>
+                            <ci>k1</ci>
+                            <ci>X</ci>
+                            <ci>Y1n</ci>
+                        </apply>
+                    </math>
+                </kineticLaw>
+            </reaction>
+            <reaction id="transport" reversible="true" fast="false">
+                <listOfReactants>
+                    <speciesReference species="Y1n" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="Y1c" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci>cytoplasm</ci>
+                            <ci>KT</ci>
+                            <apply>
+                                <minus/>
+                                <ci>Y1n</ci>
+                                <ci>Y1c</ci>
+                            </apply>
+                        </apply>
+                    </math>
+                </kineticLaw>
+            </reaction>
+            <reaction id="transformation" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="Y1c" stoichiometry="1" constant="true"/>
+                    <speciesReference species="Y2"  stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="Y2"  stoichiometry="2" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci>cytoplasm</ci>
+                            <ci>k2</ci>
+                            <ci>Y1c</ci>
+                            <ci>Y2</ci>
+                        </apply>
+                    </math>
+                </kineticLaw>
+            </reaction>
+            <reaction id="degradation" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="Y2" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci>cytoplasm</ci>
+                            <ci>k3</ci>
+                            <ci>Y2</ci>
+                        </apply>
+                    </math>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/overdetermined.xml b/examples/sample-models/from-spec/level-3/overdetermined.xml
index bffadd2..7de1e78 100644
--- a/examples/sample-models/from-spec/level-3/overdetermined.xml
+++ b/examples/sample-models/from-spec/level-3/overdetermined.xml
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-    <model id="example" substanceUnits="mole" volumeUnits="litre"
-           timeUnits="second" extentUnits="mole">
-        <listOfUnitDefinitions>
-            <unitDefinition id="per_concent_per_time">
-                <listOfUnits>
-                    <unit kind="litre"  exponent="1"  scale="0" multiplier="1"/>
-                    <unit kind="mole"   exponent="-1" scale="0" multiplier="1"/>
-                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-                </listOfUnits>
-            </unitDefinition>
-        </listOfUnitDefinitions>
-        <listOfCompartments>
-            <compartment id="C" size="1" spatialDimensions="3" constant="true"/>
-        </listOfCompartments>
-        <listOfSpecies>
-            <species id="S1" compartment="C" initialConcentration="1" constant="false"
-                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-            <species id="S2" compartment="C" initialConcentration="0" constant="false"
-                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
-        </listOfSpecies>
-        <listOfRules>
-            <algebraicRule>
-                <math xmlns="http://www.w3.org/1998/Math/MathML">
-                    <apply>
-                        <minus/>
-                        <apply> <plus/> <ci> S1 </ci> <ci> S2 </ci> </apply>
-                        <cn> 5 </cn>
-                    </apply>
-                </math>
-            </algebraicRule>
-        </listOfRules>
-        <listOfReactions>
-            <reaction id="R" reversible="false" fast="false">
-                <listOfReactants>
-                    <speciesReference species="S1" stoichiometry="1" constant="true"/>
-                </listOfReactants>
-                <listOfProducts>
-                    <speciesReference species="S2" stoichiometry="1" constant="true"/>
-                </listOfProducts>
-                <kineticLaw>
-                    <math xmlns="http://www.w3.org/1998/Math/MathML">
-                        <apply> <times/> <ci> C </ci> <ci> k1 </ci> <ci> S1 </ci> </apply>
-                    </math>
-                    <listOfLocalParameters>
-                        <localParameter id="k1" value="0.1" units="per_concent_per_time"/>
-                    </listOfLocalParameters>
-                </kineticLaw>
-            </reaction>
-        </listOfReactions>
-    </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="example" substanceUnits="mole" volumeUnits="litre"
+           timeUnits="second" extentUnits="mole">
+        <listOfUnitDefinitions>
+            <unitDefinition id="per_concent_per_time">
+                <listOfUnits>
+                    <unit kind="litre"  exponent="1"  scale="0" multiplier="1"/>
+                    <unit kind="mole"   exponent="-1" scale="0" multiplier="1"/>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment id="C" size="1" spatialDimensions="3" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="S1" compartment="C" initialConcentration="1" constant="false"
+                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+            <species id="S2" compartment="C" initialConcentration="0" constant="false"
+                             boundaryCondition="false" hasOnlySubstanceUnits="false"/>
+        </listOfSpecies>
+        <listOfRules>
+            <algebraicRule>
+                <math xmlns="http://www.w3.org/1998/Math/MathML">
+                    <apply>
+                        <minus/>
+                        <apply> <plus/> <ci> S1 </ci> <ci> S2 </ci> </apply>
+                        <cn> 5 </cn>
+                    </apply>
+                </math>
+            </algebraicRule>
+        </listOfRules>
+        <listOfReactions>
+            <reaction id="R" reversible="false" fast="false">
+                <listOfReactants>
+                    <speciesReference species="S1" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <listOfProducts>
+                    <speciesReference species="S2" stoichiometry="1" constant="true"/>
+                </listOfProducts>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply> <times/> <ci> C </ci> <ci> k1 </ci> <ci> S1 </ci> </apply>
+                    </math>
+                    <listOfLocalParameters>
+                        <localParameter id="k1" value="0.1" units="per_concent_per_time"/>
+                    </listOfLocalParameters>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/examples/sample-models/from-spec/level-3/twodimensional.xml b/examples/sample-models/from-spec/level-3/twodimensional.xml
index 00006b9..a75a7f3 100644
--- a/examples/sample-models/from-spec/level-3/twodimensional.xml
+++ b/examples/sample-models/from-spec/level-3/twodimensional.xml
@@ -1,265 +1,265 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
-   <model id="facilitated_ca_diffusion" substanceUnits="substance" 
-          areaUnits="area" volumeUnits="litre" timeUnits="second" extentUnits="substance">
-       <listOfUnitDefinitions>
-           <unitDefinition id="substance">
-               <listOfUnits>
-                   <unit kind="mole" exponent="1" scale="-6" multiplier="1"/>
-               </listOfUnits>
-           </unitDefinition>
-           <unitDefinition id="area">
-               <listOfUnits>
-                   <unit kind="metre" exponent="2" scale="-6" multiplier="1"/>
-               </listOfUnits>
-           </unitDefinition>
-           <unitDefinition id="per_second">
-               <listOfUnits>
-                   <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
-               </listOfUnits>
-           </unitDefinition>
-           <unitDefinition id="litre_per_mole_per_second">
-               <listOfUnits>
-                   <unit kind="mole"   exponent="-1" scale="-6" multiplier="1"/>
-                   <unit kind="litre"  exponent="1"  scale="0"  multiplier="1"/>
-                   <unit kind="second" exponent="-1" scale="0"  multiplier="1"/>
-               </listOfUnits>
-           </unitDefinition>
-           <unitDefinition id="subs_per_vol">
-               <listOfUnits>
-                   <unit kind="mole"  exponent="1"  scale="-6" multiplier="1"/>
-                   <unit kind="litre" exponent="-1" scale="0"  multiplier="1"/>
-               </listOfUnits>
-           </unitDefinition>
-       </listOfUnitDefinitions>
-       <listOfCompartments>
-           <compartment id="Extracellular" 
-                        spatialDimensions="3" size="1" constant="true"/>
-           <compartment id="PlasmaMembrane" 
-                        spatialDimensions="2" size="1"
-                        constant="true"/>
-           <compartment id="Cytosol" 
-                        spatialDimensions="3" size="1"
-                        constant="true"/>
-       </listOfCompartments>
-       <listOfSpecies>
-           <species id="CaBPB_C" compartment="Cytosol" initialConcentration="47.17"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-           <species id="B_C" compartment="Cytosol" initialConcentration="396.04"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-           <species id="CaB_C" compartment="Cytosol" initialConcentration="3.96"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-           <species id="Ca_C" name="Ca" compartment="Cytosol" initialConcentration="0.1"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-           <species id="Ca_EC" name="Ca" compartment="Extracellular" 
-                    initialConcentration="1000"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-           <species id="CaCh_PM" compartment="PlasmaMembrane" initialConcentration="1"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-           <species id="CaPump_PM" compartment="PlasmaMembrane" initialConcentration="1"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-           <species id="CaBP_C" compartment="Cytosol" initialConcentration="202.83"
-                    hasOnlySubstanceUnits="false" boundaryCondition="false"
-                    constant="false"/>
-       </listOfSpecies>
-       <listOfReactions>
-           <reaction id="CalciumCalbindin_gt_BoundCytosol" reversible="true" fast="true">
-               <listOfReactants>
-                   <speciesReference species="CaBP_C" stoichiometry="1" constant="true"/>
-                   <speciesReference species="Ca_C"   stoichiometry="1" constant="true"/>
-               </listOfReactants>
-               <listOfProducts>
-                   <speciesReference species="CaBPB_C" stoichiometry="1" constant="true"/>
-               </listOfProducts>
-               <kineticLaw>
-                   <notes>
-                       <p xmlns="http://www.w3.org/1999/xhtml">
-                          (((Kf_CalciumCalbindin_BoundCytosol * CaBP_C) * Ca_C) -
-                             (Kr_CalciumCalbindin_BoundCytosol * CaBPB_C))
-                       </p>
-                   </notes>
-                   <math xmlns="http://www.w3.org/1998/Math/MathML">
-                       <apply>
-                           <times/>
-                           <ci> Cytosol </ci>
-                           <apply>
-                               <minus/>
-                               <apply>
-                                   <times/>
-                                   <ci> Kf_CalciumCalbindin_BoundCytosol </ci>
-                                   <ci> CaBP_C </ci>
-                                   <ci> Ca_C </ci>
-                               </apply>
-                               <apply>
-                                   <times/>
-                                   <ci> Kr_CalciumCalbindin_BoundCytosol </ci>
-                                   <ci> CaBPB_C </ci>
-                               </apply>
-                           </apply>
-                       </apply>
-                   </math>
-                   <listOfLocalParameters>
-                       <localParameter id="Kf_CalciumCalbindin_BoundCytosol" value="20.0" 
-                                  units="litre_per_mole_per_second"/>
-                       <localParameter id="Kr_CalciumCalbindin_BoundCytosol" value="8.6" 
-                                  units="per_second"/>
-                   </listOfLocalParameters>
-               </kineticLaw>
-           </reaction>
-           <reaction id="CalciumBuffer_gt_BoundCytosol" reversible="true" fast="true">
-               <listOfReactants>
-                   <speciesReference species="Ca_C" stoichiometry="1" constant="true"/>
-                   <speciesReference species="B_C"  stoichiometry="1" constant="true"/>
-               </listOfReactants>
-               <listOfProducts>
-                   <speciesReference species="CaB_C" stoichiometry="1" constant="true"/>
-               </listOfProducts>
-               <kineticLaw>
-                   <notes>
-                       <p xmlns="http://www.w3.org/1999/xhtml">
-                       (((Kf_CalciumBuffer_BoundCytosol * Ca_C) * B_C) -
-                           (Kr_CalciumBuffer_BoundCytosol * CaB_C))
-                       </p>
-                   </notes>
-                   <math xmlns="http://www.w3.org/1998/Math/MathML">
-                   <apply>
-                       <times/>
-                       <ci> Cytosol</ci>
-                       <apply>
-                           <minus/>
-                           <apply>
-                               <times/>
-                               <ci> Kf_CalciumBuffer_BoundCytosol </ci>
-                               <ci> Ca_C </ci>
-                               <ci> B_C </ci>
-                           </apply>
-                           <apply>
-                               <times/>
-                               <ci> Kr_CalciumBuffer_BoundCytosol </ci>
-                               <ci> CaB_C </ci>
-                           </apply>
-                       </apply>
-                   </apply>
-                   </math>
-                   <listOfLocalParameters>
-                       <localParameter id="Kf_CalciumBuffer_BoundCytosol" value="0.1" 
-                                  units="litre_per_mole_per_second"/>
-                       <localParameter id="Kr_CalciumBuffer_BoundCytosol" value="1.0" 
-                                  units="per_second"/>
-                   </listOfLocalParameters>
-               </kineticLaw>
-           </reaction>
-           <reaction id="Ca_Pump" reversible="true" fast="false">
-               <listOfReactants>
-                   <speciesReference species="Ca_C" stoichiometry="1" constant="true"/>
-               </listOfReactants>
-               <listOfProducts>
-                   <speciesReference species="Ca_EC" stoichiometry="1" constant="true"/>
-               </listOfProducts>
-               <listOfModifiers>
-                   <modifierSpeciesReference species="CaPump_PM"/>
-               </listOfModifiers>
-               <kineticLaw>
-                   <notes>
-                       <p xmlns="http://www.w3.org/1999/xhtml">
-                       ((Vmax * kP * ((Ca_C - Ca_Rest) / (Ca_C + kP)) / 
-                           (Ca_Rest + kP)) * CaPump_PM)
-                       </p>
-                   </notes>
-                   <math xmlns="http://www.w3.org/1998/Math/MathML">
-                   <apply>
-                       <times/>
-                       <ci> PlasmaMembrane</ci>
-                       <apply>
-                           <divide/>
-                           <apply>
-                               <times/>
-                               <ci> Vmax </ci>
-                               <ci> kP </ci>
-                               <ci> CaPump_PM </ci>
-                               <apply>
-                                   <minus/>
-                                   <ci> Ca_C </ci>
-                                   <ci> Ca_Rest </ci>
-                               </apply>
-                           </apply>
-                           <apply>
-                               <times/>
-                               <apply>
-                                   <plus/>
-                                   <ci> Ca_C </ci>
-                                   <ci> kP </ci>
-                               </apply>
-                               <apply>
-                                   <plus/>
-                                   <ci> Ca_Rest </ci>
-                                   <ci> kP </ci>
-                               </apply>
-                           </apply>
-                       </apply>
-                   </apply>
-                   </math>
-                   <listOfLocalParameters>
-                       <localParameter id="Vmax" value="4000" units="per_second"/>
-                       <localParameter id="kP" value="0.25" units="subs_per_vol"/>
-                       <localParameter id="Ca_Rest" value="0.1" units="subs_per_vol"/>
-                   </listOfLocalParameters>
-               </kineticLaw>
-           </reaction>
-           <reaction id="Ca_channel" reversible="true" fast="false">
-               <listOfReactants>
-                   <speciesReference species="Ca_EC" stoichiometry="1" constant="true"/>
-               </listOfReactants>
-               <listOfProducts>
-                   <speciesReference species="Ca_C" stoichiometry="1" constant="true"/>
-               </listOfProducts>
-               <listOfModifiers>
-                   <modifierSpeciesReference species="CaCh_PM"/>
-               </listOfModifiers>
-               <kineticLaw>
-                   <notes>
-                       <p xmlns="http://www.w3.org/1999/xhtml">
-                           (J0 * Kc * (Ca_EC - Ca_C) / (Kc + Ca_C) * CaCh_PM)
-                       </p>
-                   </notes>
-                   <math xmlns="http://www.w3.org/1998/Math/MathML">
-                   <apply>
-                       <times/>
-                       <ci> PlasmaMembrane </ci>
-                       <apply>
-                           <divide/>
-                           <apply>
-                               <times/>
-                               <ci> CaCh_PM </ci>
-                               <ci> J0 </ci>
-                               <ci> Kc </ci>
-                               <apply>
-                                   <minus/>
-                                   <ci> Ca_EC </ci>
-                                   <ci> Ca_C </ci>
-                               </apply>
-                           </apply>
-                           <apply>
-                               <plus/>
-                               <ci> Kc </ci>
-                               <ci> Ca_C </ci>
-                           </apply>
-                       </apply>
-                   </apply>
-                   </math>
-                   <listOfLocalParameters>
-                       <localParameter id="J0" value="0.014" units="litre_per_mole_per_second"/>
-                       <localParameter id="Kc" value="0.5" units="subs_per_vol"/>
-                   </listOfLocalParameters>
-               </kineticLaw>
-           </reaction>
-       </listOfReactions>
-   </model>
-</sbml>
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+   <model id="facilitated_ca_diffusion" substanceUnits="substance" 
+          areaUnits="area" volumeUnits="litre" timeUnits="second" extentUnits="substance">
+       <listOfUnitDefinitions>
+           <unitDefinition id="substance">
+               <listOfUnits>
+                   <unit kind="mole" exponent="1" scale="-6" multiplier="1"/>
+               </listOfUnits>
+           </unitDefinition>
+           <unitDefinition id="area">
+               <listOfUnits>
+                   <unit kind="metre" exponent="2" scale="-6" multiplier="1"/>
+               </listOfUnits>
+           </unitDefinition>
+           <unitDefinition id="per_second">
+               <listOfUnits>
+                   <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+               </listOfUnits>
+           </unitDefinition>
+           <unitDefinition id="litre_per_mole_per_second">
+               <listOfUnits>
+                   <unit kind="mole"   exponent="-1" scale="-6" multiplier="1"/>
+                   <unit kind="litre"  exponent="1"  scale="0"  multiplier="1"/>
+                   <unit kind="second" exponent="-1" scale="0"  multiplier="1"/>
+               </listOfUnits>
+           </unitDefinition>
+           <unitDefinition id="subs_per_vol">
+               <listOfUnits>
+                   <unit kind="mole"  exponent="1"  scale="-6" multiplier="1"/>
+                   <unit kind="litre" exponent="-1" scale="0"  multiplier="1"/>
+               </listOfUnits>
+           </unitDefinition>
+       </listOfUnitDefinitions>
+       <listOfCompartments>
+           <compartment id="Extracellular" 
+                        spatialDimensions="3" size="1" constant="true"/>
+           <compartment id="PlasmaMembrane" 
+                        spatialDimensions="2" size="1"
+                        constant="true"/>
+           <compartment id="Cytosol" 
+                        spatialDimensions="3" size="1"
+                        constant="true"/>
+       </listOfCompartments>
+       <listOfSpecies>
+           <species id="CaBPB_C" compartment="Cytosol" initialConcentration="47.17"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+           <species id="B_C" compartment="Cytosol" initialConcentration="396.04"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+           <species id="CaB_C" compartment="Cytosol" initialConcentration="3.96"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+           <species id="Ca_C" name="Ca" compartment="Cytosol" initialConcentration="0.1"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+           <species id="Ca_EC" name="Ca" compartment="Extracellular" 
+                    initialConcentration="1000"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+           <species id="CaCh_PM" compartment="PlasmaMembrane" initialConcentration="1"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+           <species id="CaPump_PM" compartment="PlasmaMembrane" initialConcentration="1"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+           <species id="CaBP_C" compartment="Cytosol" initialConcentration="202.83"
+                    hasOnlySubstanceUnits="false" boundaryCondition="false"
+                    constant="false"/>
+       </listOfSpecies>
+       <listOfReactions>
+           <reaction id="CalciumCalbindin_gt_BoundCytosol" reversible="true" fast="true">
+               <listOfReactants>
+                   <speciesReference species="CaBP_C" stoichiometry="1" constant="true"/>
+                   <speciesReference species="Ca_C"   stoichiometry="1" constant="true"/>
+               </listOfReactants>
+               <listOfProducts>
+                   <speciesReference species="CaBPB_C" stoichiometry="1" constant="true"/>
+               </listOfProducts>
+               <kineticLaw>
+                   <notes>
+                       <p xmlns="http://www.w3.org/1999/xhtml">
+                          (((Kf_CalciumCalbindin_BoundCytosol * CaBP_C) * Ca_C) -
+                             (Kr_CalciumCalbindin_BoundCytosol * CaBPB_C))
+                       </p>
+                   </notes>
+                   <math xmlns="http://www.w3.org/1998/Math/MathML">
+                       <apply>
+                           <times/>
+                           <ci> Cytosol </ci>
+                           <apply>
+                               <minus/>
+                               <apply>
+                                   <times/>
+                                   <ci> Kf_CalciumCalbindin_BoundCytosol </ci>
+                                   <ci> CaBP_C </ci>
+                                   <ci> Ca_C </ci>
+                               </apply>
+                               <apply>
+                                   <times/>
+                                   <ci> Kr_CalciumCalbindin_BoundCytosol </ci>
+                                   <ci> CaBPB_C </ci>
+                               </apply>
+                           </apply>
+                       </apply>
+                   </math>
+                   <listOfLocalParameters>
+                       <localParameter id="Kf_CalciumCalbindin_BoundCytosol" value="20.0" 
+                                  units="litre_per_mole_per_second"/>
+                       <localParameter id="Kr_CalciumCalbindin_BoundCytosol" value="8.6" 
+                                  units="per_second"/>
+                   </listOfLocalParameters>
+               </kineticLaw>
+           </reaction>
+           <reaction id="CalciumBuffer_gt_BoundCytosol" reversible="true" fast="true">
+               <listOfReactants>
+                   <speciesReference species="Ca_C" stoichiometry="1" constant="true"/>
+                   <speciesReference species="B_C"  stoichiometry="1" constant="true"/>
+               </listOfReactants>
+               <listOfProducts>
+                   <speciesReference species="CaB_C" stoichiometry="1" constant="true"/>
+               </listOfProducts>
+               <kineticLaw>
+                   <notes>
+                       <p xmlns="http://www.w3.org/1999/xhtml">
+                       (((Kf_CalciumBuffer_BoundCytosol * Ca_C) * B_C) -
+                           (Kr_CalciumBuffer_BoundCytosol * CaB_C))
+                       </p>
+                   </notes>
+                   <math xmlns="http://www.w3.org/1998/Math/MathML">
+                   <apply>
+                       <times/>
+                       <ci> Cytosol</ci>
+                       <apply>
+                           <minus/>
+                           <apply>
+                               <times/>
+                               <ci> Kf_CalciumBuffer_BoundCytosol </ci>
+                               <ci> Ca_C </ci>
+                               <ci> B_C </ci>
+                           </apply>
+                           <apply>
+                               <times/>
+                               <ci> Kr_CalciumBuffer_BoundCytosol </ci>
+                               <ci> CaB_C </ci>
+                           </apply>
+                       </apply>
+                   </apply>
+                   </math>
+                   <listOfLocalParameters>
+                       <localParameter id="Kf_CalciumBuffer_BoundCytosol" value="0.1" 
+                                  units="litre_per_mole_per_second"/>
+                       <localParameter id="Kr_CalciumBuffer_BoundCytosol" value="1.0" 
+                                  units="per_second"/>
+                   </listOfLocalParameters>
+               </kineticLaw>
+           </reaction>
+           <reaction id="Ca_Pump" reversible="true" fast="false">
+               <listOfReactants>
+                   <speciesReference species="Ca_C" stoichiometry="1" constant="true"/>
+               </listOfReactants>
+               <listOfProducts>
+                   <speciesReference species="Ca_EC" stoichiometry="1" constant="true"/>
+               </listOfProducts>
+               <listOfModifiers>
+                   <modifierSpeciesReference species="CaPump_PM"/>
+               </listOfModifiers>
+               <kineticLaw>
+                   <notes>
+                       <p xmlns="http://www.w3.org/1999/xhtml">
+                       ((Vmax * kP * ((Ca_C - Ca_Rest) / (Ca_C + kP)) / 
+                           (Ca_Rest + kP)) * CaPump_PM)
+                       </p>
+                   </notes>
+                   <math xmlns="http://www.w3.org/1998/Math/MathML">
+                   <apply>
+                       <times/>
+                       <ci> PlasmaMembrane</ci>
+                       <apply>
+                           <divide/>
+                           <apply>
+                               <times/>
+                               <ci> Vmax </ci>
+                               <ci> kP </ci>
+                               <ci> CaPump_PM </ci>
+                               <apply>
+                                   <minus/>
+                                   <ci> Ca_C </ci>
+                                   <ci> Ca_Rest </ci>
+                               </apply>
+                           </apply>
+                           <apply>
+                               <times/>
+                               <apply>
+                                   <plus/>
+                                   <ci> Ca_C </ci>
+                                   <ci> kP </ci>
+                               </apply>
+                               <apply>
+                                   <plus/>
+                                   <ci> Ca_Rest </ci>
+                                   <ci> kP </ci>
+                               </apply>
+                           </apply>
+                       </apply>
+                   </apply>
+                   </math>
+                   <listOfLocalParameters>
+                       <localParameter id="Vmax" value="4000" units="per_second"/>
+                       <localParameter id="kP" value="0.25" units="subs_per_vol"/>
+                       <localParameter id="Ca_Rest" value="0.1" units="subs_per_vol"/>
+                   </listOfLocalParameters>
+               </kineticLaw>
+           </reaction>
+           <reaction id="Ca_channel" reversible="true" fast="false">
+               <listOfReactants>
+                   <speciesReference species="Ca_EC" stoichiometry="1" constant="true"/>
+               </listOfReactants>
+               <listOfProducts>
+                   <speciesReference species="Ca_C" stoichiometry="1" constant="true"/>
+               </listOfProducts>
+               <listOfModifiers>
+                   <modifierSpeciesReference species="CaCh_PM"/>
+               </listOfModifiers>
+               <kineticLaw>
+                   <notes>
+                       <p xmlns="http://www.w3.org/1999/xhtml">
+                           (J0 * Kc * (Ca_EC - Ca_C) / (Kc + Ca_C) * CaCh_PM)
+                       </p>
+                   </notes>
+                   <math xmlns="http://www.w3.org/1998/Math/MathML">
+                   <apply>
+                       <times/>
+                       <ci> PlasmaMembrane </ci>
+                       <apply>
+                           <divide/>
+                           <apply>
+                               <times/>
+                               <ci> CaCh_PM </ci>
+                               <ci> J0 </ci>
+                               <ci> Kc </ci>
+                               <apply>
+                                   <minus/>
+                                   <ci> Ca_EC </ci>
+                                   <ci> Ca_C </ci>
+                               </apply>
+                           </apply>
+                           <apply>
+                               <plus/>
+                               <ci> Kc </ci>
+                               <ci> Ca_C </ci>
+                           </apply>
+                       </apply>
+                   </apply>
+                   </math>
+                   <listOfLocalParameters>
+                       <localParameter id="J0" value="0.014" units="litre_per_mole_per_second"/>
+                       <localParameter id="Kc" value="0.5" units="subs_per_vol"/>
+                   </listOfLocalParameters>
+               </kineticLaw>
+           </reaction>
+       </listOfReactions>
+   </model>
+</sbml>
diff --git a/fbc-package.cmake b/fbc-package.cmake
index bda98be..98a794f 100644
--- a/fbc-package.cmake
+++ b/fbc-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -38,9 +38,9 @@ option(ENABLE_FBC
 list(APPEND LIBSBML_PACKAGE_SUMMARY "SBML 'fbc' package     = ${ENABLE_FBC}")
 
 if(ENABLE_FBC)
-    SET(USE_FBC TRUE)
-	set(LIBSBML_PACKAGE_INCLUDES ${LIBSBML_PACKAGE_INCLUDES} "LIBSBML_HAS_PACKAGE_FBC")
-	add_definitions(-DUSE_FBC)
-	list(APPEND SWIG_EXTRA_ARGS -DUSE_FBC)
-	list(APPEND SWIG_SWIGDOCDEFINES --define USE_FBC)
+  SET(USE_FBC TRUE)
+  set(LIBSBML_PACKAGE_INCLUDES ${LIBSBML_PACKAGE_INCLUDES} "LIBSBML_HAS_PACKAGE_FBC")
+  add_definitions(-DUSE_FBC=1)
+  list(APPEND SWIG_EXTRA_ARGS -DUSE_FBC)
+  list(APPEND SWIG_SWIGDOCDEFINES --define USE_FBC)
 endif()
diff --git a/groups-package.cmake b/groups-package.cmake
index 4ab6f7c..83bbf3c 100644
--- a/groups-package.cmake
+++ b/groups-package.cmake
@@ -1,45 +1,45 @@
-###############################################################################
-#
-# @file:   groups-package.cmake
-# Description       : CMake configuration for SBML Level 3 Groups package
-# Original author(s): Frank Bergmann <fbergman at caltech.edu>
-# Organization      : California Institute of Technology
-#
-# This file is part of libSBML.  Please visit http://sbml.org for more
-# information about SBML, and the latest version of libSBML.
-#
-# Copyright (C) 2013-2015 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#     3. University of Heidelberg, Heidelberg, Germany
-#
-# Copyright (C) 2009-2013 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#  
-# Copyright (C) 2006-2008 by the California Institute of Technology,
-#     Pasadena, CA, USA 
-#  
-# Copyright (C) 2002-2005 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. Japan Science and Technology Agency, Japan
-# 
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation.  A copy of the license agreement is provided
-# in the file named "LICENSE.txt" included with this software distribution
-# and also available online as http://sbml.org/software/libsbml/license.html
-#
-###############################################################################
-
-option(ENABLE_GROUPS     "Enable libSBML support for the SBML Level 3 Groups ('groups') package."    OFF )
-
-# provide summary status                                    =
-list(APPEND LIBSBML_PACKAGE_SUMMARY "SBML 'groups' package  = ${ENABLE_GROUPS}")
-
-if(ENABLE_GROUPS)
-	add_definitions(-DUSE_GROUPS)
-	set(LIBSBML_PACKAGE_INCLUDES ${LIBSBML_PACKAGE_INCLUDES} "LIBSBML_HAS_PACKAGE_GROUPS")
-	list(APPEND SWIG_EXTRA_ARGS -DUSE_GROUPS)
-	list(APPEND SWIG_SWIGDOCDEFINES --define USE_GROUPS)
-endif()
+###############################################################################
+#
+# @file:   groups-package.cmake
+# Description       : CMake configuration for SBML Level 3 Groups package
+# Original author(s): Frank Bergmann <fbergman at caltech.edu>
+# Organization      : California Institute of Technology
+#
+# This file is part of libSBML.  Please visit http://sbml.org for more
+# information about SBML, and the latest version of libSBML.
+#
+# Copyright (C) 2013-2016 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#     3. University of Heidelberg, Heidelberg, Germany
+#
+# Copyright (C) 2009-2013 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#  
+# Copyright (C) 2006-2008 by the California Institute of Technology,
+#     Pasadena, CA, USA 
+#  
+# Copyright (C) 2002-2005 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. Japan Science and Technology Agency, Japan
+# 
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation.  A copy of the license agreement is provided
+# in the file named "LICENSE.txt" included with this software distribution
+# and also available online as http://sbml.org/software/libsbml/license.html
+#
+###############################################################################
+
+option(ENABLE_GROUPS     "Enable libSBML support for the SBML Level 3 Groups ('groups') package."    OFF )
+
+# provide summary status                                    =
+list(APPEND LIBSBML_PACKAGE_SUMMARY "SBML 'groups' package  = ${ENABLE_GROUPS}")
+
+if(ENABLE_GROUPS)
+	add_definitions(-DUSE_GROUPS)
+	set(LIBSBML_PACKAGE_INCLUDES ${LIBSBML_PACKAGE_INCLUDES} "LIBSBML_HAS_PACKAGE_GROUPS")
+	list(APPEND SWIG_EXTRA_ARGS -DUSE_GROUPS)
+	list(APPEND SWIG_SWIGDOCDEFINES --define USE_GROUPS)
+endif()
diff --git a/layout-package.cmake b/layout-package.cmake
index 406e28d..686dfb3 100644
--- a/layout-package.cmake
+++ b/layout-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/libsbml.spec.in b/libsbml.spec.in
index c77f70a..7c26f5e 100644
--- a/libsbml.spec.in
+++ b/libsbml.spec.in
@@ -9,7 +9,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/multi-package.cmake b/multi-package.cmake
index ef6bf55..8655319 100644
--- a/multi-package.cmake
+++ b/multi-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/qual-package.cmake b/qual-package.cmake
index e62c588..f464aef 100644
--- a/qual-package.cmake
+++ b/qual-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/render-package.cmake b/render-package.cmake
index a4092ec..9ef7286 100644
--- a/render-package.cmake
+++ b/render-package.cmake
@@ -5,7 +5,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/req-package.cmake b/req-package.cmake
index 4a381fe..a202a2f 100644
--- a/req-package.cmake
+++ b/req-package.cmake
@@ -5,7 +5,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/spatial-package.cmake b/spatial-package.cmake
index 5c65a27..16ee9ef 100644
--- a/spatial-package.cmake
+++ b/spatial-package.cmake
@@ -5,7 +5,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2a8a12d..7992744 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -6,7 +6,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/Makefile.in b/src/Makefile.in
index 7546f39..4b8eb43 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/CMakeLists.txt b/src/bindings/CMakeLists.txt
index 88ce500..d414699 100644
--- a/src/bindings/CMakeLists.txt
+++ b/src/bindings/CMakeLists.txt
@@ -6,7 +6,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/Makefile.in b/src/bindings/Makefile.in
index d99f386..8188a4f 100644
--- a/src/bindings/Makefile.in
+++ b/src/bindings/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/CMakeLists.txt b/src/bindings/csharp/CMakeLists.txt
index d884e24..1c38910 100644
--- a/src/bindings/csharp/CMakeLists.txt
+++ b/src/bindings/csharp/CMakeLists.txt
@@ -6,7 +6,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/Compiler.cs b/src/bindings/csharp/Compiler.cs
index 9f1c38c..ca33c3c 100644
--- a/src/bindings/csharp/Compiler.cs
+++ b/src/bindings/csharp/Compiler.cs
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/Makefile.in b/src/bindings/csharp/Makefile.in
index 076f5fe..86f3716 100644
--- a/src/bindings/csharp/Makefile.in
+++ b/src/bindings/csharp/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -158,6 +158,13 @@ ifdef USE_FBC
                ../../sbml/packages/fbc/validator \
                ../../sbml/packages/fbc/validator/constraints 
 endif
+ifdef USE_GROUPS
+  otherdirs += ../../sbml/packages/groups/common \
+               ../../sbml/packages/groups/extension \
+               ../../sbml/packages/groups/sbml \
+               ../../sbml/packages/groups/validator \
+               ../../sbml/packages/groups/validator/constraints 
+endif
 ifdef USE_LAYOUT
   otherdirs += ../../sbml/packages/layout/common \
                ../../sbml/packages/layout/extension \
@@ -221,6 +228,11 @@ ifdef USE_FBC
   SWIGDOCDEFINES += --define USE_FBC
 endif # USE_FBC  
 
+ifdef USE_GROUPS
+  SWIGFLAGS      += -DUSE_GROUPS
+  SWIGDOCDEFINES += --define USE_GROUPS
+endif # USE_GROUPS  
+
 ifdef USE_LAYOUT
   SWIGFLAGS      += -DUSE_LAYOUT
   SWIGDOCDEFINES += --define USE_LAYOUT
@@ -448,6 +460,18 @@ else
   endef
 endif
 
+ifdef USE_GROUPS
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -z "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+else
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -n "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+endif
+
 ifdef USE_LAYOUT
   define check_layout
     if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
@@ -493,7 +517,7 @@ patch-swig-output:
 # for non-Windows
 libsbml_wrap.cpp $(outpath) : $(swig_sources) $(main_sources) csdoc.i \
   $(shell $(call check_comp)) $(shell $(call check_fbc)) \
-  $(shell $(call check_layout)) $(shell $(call check_qual))
+  $(shell $(call check_layout)) $(shell $(call check_qual)) $(shell $(call check_groups))
 	@top_srcdir@/config/chk_swig_version.sh || exit
 	test -d $(outpath) || mkdir -p $(outpath)
 	"$(SWIG)" $(SWIGFLAGS) $(sort $(default_includes) $(INCLUDES)) \
@@ -503,7 +527,7 @@ libsbml_wrap.cpp $(outpath) : $(swig_sources) $(main_sources) csdoc.i \
 
 # for Windows
 libsbml_wrap-win.cpp $(outpath_win) : $(swig_sources) $(main_sources) csdoc.i \
-  $(shell $(call check_comp)) $(shell $(call check_fbc)) \
+  $(shell $(call check_comp)) $(shell $(call check_fbc)) $(shell $(call check_groups)) \
   $(shell $(call check_layout)) $(shell $(call check_qual))
 	@top_srcdir@/config/chk_swig_version.sh || exit
 	test -d $(outpath_win) || mkdir -p $(outpath_win)
@@ -537,7 +561,7 @@ testsbml_files = $(wildcard $(testsbml_dir)/*.xml)
 
 check: $(check_runner_exe) $(shell $(call check_layout)) \
   $(shell $(call check_comp)) $(shell $(call check_fbc)) \
-  $(shell $(call check_qual))
+  $(shell $(call check_qual)) $(shell $(call check_groups))
 	@echo
 	@echo
 	@echo Running Tests in $(thisdir)
@@ -571,7 +595,7 @@ install_prefix=$(DESTDIR)$(LIBDIR)/mono/$(assembly_name)
 
 install: $(libraries) $(shell $(call check_layout)) \
   $(shell $(call check_comp)) $(shell $(call check_fbc)) \
-  $(shell $(call check_qual))
+  $(shell $(call check_qual)) $(shell $(call check_groups))
 	-$(GACUTIL) -i $(csproxy_lib) -root $(DESTDIR)$(LIBDIR)
 	$(INSTALL_SH) $(csproxy_lib) $(install_prefix)/$(csproxy_lib)
 	$(INSTALL_SH) $(dllimport_lib) $(install_prefix)/$(dllimport_lib)
diff --git a/src/bindings/csharp/TestRW.cs b/src/bindings/csharp/TestRW.cs
index 1ae9135..a23a965 100644
--- a/src/bindings/csharp/TestRW.cs
+++ b/src/bindings/csharp/TestRW.cs
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/TestRunner.cs b/src/bindings/csharp/TestRunner.cs
index 8bb33c6..0aaf2a1 100644
--- a/src/bindings/csharp/TestRunner.cs
+++ b/src/bindings/csharp/TestRunner.cs
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/compile-native-files.cmake b/src/bindings/csharp/compile-native-files.cmake
index 59434f6..adcd873 100644
--- a/src/bindings/csharp/compile-native-files.cmake
+++ b/src/bindings/csharp/compile-native-files.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/csdoc.i b/src/bindings/csharp/csdoc.i
index ebac0f0..be5c0e3 100644
--- a/src/bindings/csharp/csdoc.i
+++ b/src/bindings/csharp/csdoc.i
@@ -4446,9 +4446,9 @@ void example (SBase sb)
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -4701,7 +4701,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -4745,7 +4745,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -4820,7 +4820,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -4860,7 +4860,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -5691,11 +5691,6 @@ newModel.addSpecies(s1);
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -6129,9 +6124,9 @@ newModel.addSpecies(s1);
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -9749,9 +9744,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -11511,7 +11506,7 @@ sp.setId(\'MySpecies\');
 ";
 
 
-%csmethodmodifiers SBMLDocument::checkL1Compatibility "
+%csmethodmodifiers SBMLDocument::checkL1Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 1 and can be converted
@@ -11525,7 +11520,7 @@ sp.setId(\'MySpecies\');
 ";
 
 
-%csmethodmodifiers SBMLDocument::checkL2v1Compatibility "
+%csmethodmodifiers SBMLDocument::checkL2v1Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 2 Version 1 and can
@@ -11539,7 +11534,7 @@ sp.setId(\'MySpecies\');
 ";
 
 
-%csmethodmodifiers SBMLDocument::checkL2v2Compatibility "
+%csmethodmodifiers SBMLDocument::checkL2v2Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 2 Version 2 and can
@@ -11553,7 +11548,7 @@ sp.setId(\'MySpecies\');
 ";
 
 
-%csmethodmodifiers SBMLDocument::checkL2v3Compatibility "
+%csmethodmodifiers SBMLDocument::checkL2v3Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 2 Version 3 and can
@@ -11777,9 +11772,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -12242,11 +12237,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -12653,9 +12643,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -13305,11 +13295,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -14215,9 +14200,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -15045,11 +15030,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -15607,9 +15587,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -16290,11 +16270,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -16626,9 +16601,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -17001,11 +16976,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -17305,9 +17275,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -17972,11 +17942,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -19236,9 +19201,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -19895,11 +19860,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -21145,9 +21105,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -21672,11 +21632,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -22355,9 +22310,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -22852,11 +22807,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -23130,9 +23080,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -23641,11 +23591,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -24049,9 +23994,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -24666,11 +24611,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -25309,9 +25249,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -26994,11 +26934,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -27374,9 +27309,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -27784,11 +27719,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -29155,9 +29085,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -30497,9 +30427,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -31315,11 +31245,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -32506,9 +32431,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -32754,11 +32679,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -33810,9 +33730,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -34314,11 +34234,6 @@ sp.setId(\'MySpecies\');
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -34757,9 +34672,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -35605,9 +35520,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -36270,9 +36185,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -36774,9 +36689,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -37765,6 +37680,11 @@ sp.setId(\'MySpecies\');
 ";
 
 
+%csmethodmodifiers SBO::getParentBranch(unsigned int term) "
+/** */ /* libsbml-internal */ public
+";
+
+
 %csmethodmodifiers SBO::isChildOf(unsigned int term, unsigned int parent) "
 /** */ /* libsbml-internal */ public
 ";
@@ -38653,9 +38573,9 @@ sp.setId(\'MySpecies\');
    *
    *
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -42473,47 +42393,47 @@ if (config != None) {
  * @sbmlpackage{core}
  *
 @htmlinclude pkg-marker-core.html Whole-document SBML Level/Version converter.
- *
- * @htmlinclude libsbml-facility-only-warning.html
- *
- * This SBML converter takes an SBML document having one SBML Level+Version
- * combination, and attempts to convert it to an SBML document having a
- * different Level+Version combination.  This converter
- * (SBMLLevel1Version1Converter) converts models to SBML Level 1
- * Version 1, to the extent possible by the limited features of
- * that Level/Version combination of SBML.
- *
- * @section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
- *
- * SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
- * object with the option @c \'convertToL1V1\', and passing this
- * properties object to SBMLDocument::convert(@if java
- * ConversionProperties at endif).  The target SBML Level and Version
- * combination are determined by the value of the SBML namespace set on the
- * ConversionProperties object (using
- * ConversionProperties::setTargetNamespaces(SBMLNamespaces targetNS)).
- *
- * In addition, this converter offers the following options:
- *
- * @li @c \'changePow\': Mathematical expressions for exponentiation of
- * the form <code>pow(s1, 2)</code> will be converted to the expression
- * <code>s1^2</code>.
- *
- * @li @c \'inlineCompartmentSizes\': Back in the days of SBML Level 1
- * Version 1, many software tools assumed that the \'kinetic laws\' of
- * SBML were written in terms of units of
- * <em>concentration</em>/<em>time</em>.  These tools would not expect (and
- * thus not handle) rate expressions such as
- * <code>CompartmentOfS1 * k * S1</code>.
- * When the option @c \'inlineCompartmentSizes\' is enabled, libSBML will
- * replace the references to compartments (such as @c \'CompartmentOfS1\' in
- * this example) with their initial sizes.  This is not strictly correct in
- * all cases; in particular, if the compartment volume varies during
- * simulation, this conversion will not reflect the expected behavior.
- * However, many models do not have time-varying compartment sizes, so this
- * option makes it easy to get modern SBML rate expressions into a form that
- * old software tools may better understand.
- *
+ *
+ * @htmlinclude libsbml-facility-only-warning.html
+ *
+ * This SBML converter takes an SBML document having one SBML Level+Version
+ * combination, and attempts to convert it to an SBML document having a
+ * different Level+Version combination.  This converter
+ * (SBMLLevel1Version1Converter) converts models to SBML Level 1
+ * Version 1, to the extent possible by the limited features of
+ * that Level/Version combination of SBML.
+ *
+ * @section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
+ *
+ * SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
+ * object with the option @c \'convertToL1V1\', and passing this
+ * properties object to SBMLDocument::convert(@if java
+ * ConversionProperties at endif).  The target SBML Level and Version
+ * combination are determined by the value of the SBML namespace set on the
+ * ConversionProperties object (using
+ * ConversionProperties::setTargetNamespaces(SBMLNamespaces targetNS)).
+ *
+ * In addition, this converter offers the following options:
+ *
+ * @li @c \'changePow\': Mathematical expressions for exponentiation of
+ * the form <code>pow(s1, 2)</code> will be converted to the expression
+ * <code>s1^2</code>.
+ *
+ * @li @c \'inlineCompartmentSizes\': Back in the days of SBML Level 1
+ * Version 1, many software tools assumed that the \'kinetic laws\' of
+ * SBML were written in terms of units of
+ * <em>concentration</em>/<em>time</em>.  These tools would not expect (and
+ * thus not handle) rate expressions such as
+ * <code>CompartmentOfS1 * k * S1</code>.
+ * When the option @c \'inlineCompartmentSizes\' is enabled, libSBML will
+ * replace the references to compartments (such as @c \'CompartmentOfS1\' in
+ * this example) with their initial sizes.  This is not strictly correct in
+ * all cases; in particular, if the compartment volume varies during
+ * simulation, this conversion will not reflect the expected behavior.
+ * However, many models do not have time-varying compartment sizes, so this
+ * option makes it easy to get modern SBML rate expressions into a form that
+ * old software tools may better understand.
+ *
  *
  * @section using-converters General information about the use of SBML converters
  *
@@ -42669,7 +42589,7 @@ if (config != None) {
  *
  * @copydetails doc_list_of_libsbml_converters
  *
- *
+ *
  */
 "
 
@@ -42680,91 +42600,89 @@ if (config != None) {
 
 
 %csmethodmodifiers SBMLLevel1Version1Converter::SBMLLevel1Version1Converter "
-/**
-   * Creates a new SBMLLevel1Version1Converter object.
+/**
+   * Creates a new SBMLLevel1Version1Converter object.
    */ public
 ";
 
 
 %csmethodmodifiers SBMLLevel1Version1Converter::SBMLLevel1Version1Converter(const SBMLLevel1Version1Converter& obj) "
-/**
-   * Copy constructor; creates a copy of an SBMLLevel1Version1Converter
-   * object.
-   *
-   * @param obj the SBMLLevel1Version1Converter object to copy.
+/**
+   * Copy constructor; creates a copy of an SBMLLevel1Version1Converter
+   * object.
+   *
+   * @param obj the SBMLLevel1Version1Converter object to copy.
    */ public
 ";
 
 
 %csmethodmodifiers SBMLLevel1Version1Converter::clone() const "
-/**
-   * Creates and returns a deep copy of this SBMLLevel1Version1Converter
-   * object.
-   *
-   * @return a (deep) copy of this converter.
+/**
+   * Creates and returns a deep copy of this SBMLLevel1Version1Converter
+   * object.
+   *
+   * @return a (deep) copy of this converter.
    */ public new
 ";
 
 
 %csmethodmodifiers SBMLLevel1Version1Converter::matchesProperties(const ConversionProperties &props) const "
-/**
-   * Returns @c true if this converter object\'s properties match the given
-   * properties.
-   *
-   * A typical use of this method involves creating a ConversionProperties
-   * object, setting the options desired, and then calling this method on
-   * an SBMLLevel1Version1Converter object to find out if the object\'s
-   * property values match the given ones.  This method is also used by
-   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
-   * to search across all registered converters for one matching particular
-   * properties.
-   *
-   * @param props the properties to match.
-   *
-   * @return @c true if this converter\'s properties match, @c false
-   * otherwise.
+/**
+   * Returns @c true if this converter object\'s properties match the given
+   * properties.
+   *
+   * A typical use of this method involves creating a ConversionProperties
+   * object, setting the options desired, and then calling this method on
+   * an SBMLLevel1Version1Converter object to find out if the object\'s
+   * property values match the given ones.  This method is also used by
+   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
+   * to search across all registered converters for one matching particular
+   * properties.
+   *
+   * @param props the properties to match.
+   *
+   * @return @c true if this converter\'s properties match, @c false
+   * otherwise.
    */ public new
 ";
 
 
 %csmethodmodifiers SBMLLevel1Version1Converter::convert "
-/**
-   * Perform the conversion.
-   *
-   * This method causes the converter to do the actual conversion work,
-   * that is, to convert the SBMLDocument object set by
-   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
-   * with the configuration options set by
-   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
-   *
+/**
+   * Perform the conversion.
+   *
+   * This method causes the converter to do the actual conversion work,
+   * that is, to convert the SBMLDocument object set by
+   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
+   * with the configuration options set by
+   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
+   *
    *
  * @return integer value indicating success/failure of the
  * function.  @if clike The value is drawn from the
  * enumeration #OperationReturnValues_t. @endif The possible values
  * returned by this function are:
- *
- *
-   * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
-   * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
-   * @li @link libsbml#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
-   * @li @link libsbml#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
-   * @li @link libsbml#LIBSBML_CONV_INVALID_SRC_DOCUMENT LIBSBML_CONV_INVALID_SRC_DOCUMENT at endlink
+ * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
+   * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
+   * @li @link libsbml#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
+   * @li @link libsbml#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
+   * @li @link libsbml#LIBSBML_CONV_INVALID_SRC_DOCUMENT LIBSBML_CONV_INVALID_SRC_DOCUMENT at endlink
    */ public new
 ";
 
 
 %csmethodmodifiers SBMLLevel1Version1Converter::getDefaultProperties() const "
-/**
-   * Returns the default properties of this converter.
-   *
-   * A given converter exposes one or more properties that can be adjusted
-   * in order to influence the behavior of the converter.  This method
-   * returns the @em default property settings for this converter.  It is
-   * meant to be called in order to discover all the settings for the
-   * converter object.
-   *
-   * @return the ConversionProperties object describing the default properties
-   * for this converter.
+/**
+   * Returns the default properties of this converter.
+   *
+   * A given converter exposes one or more properties that can be adjusted
+   * in order to influence the behavior of the converter.  This method
+   * returns the @em default property settings for this converter.  It is
+   * meant to be called in order to discover all the settings for the
+   * converter object.
+   *
+   * @return the ConversionProperties object describing the default properties
+   * for this converter.
    */ public new
 ";
 
@@ -48832,7 +48750,7 @@ output_stream.endElement(\'testElement\')
 "
 
 
-%csmethodmodifiers XMLOutputStream::XMLOutputStream(  std::ostream&       stream , const std::string&  encoding       = "UTF-8" , bool                writeXMLDecl   = true , const std::string&  programName    = "" , const std::string&  programVersion = "") "
+%csmethodmodifiers XMLOutputStream::XMLOutputStream(std::ostream&       stream , const std::string&  encoding       = "UTF-8" , bool                writeXMLDecl   = true , const std::string&  programName    = "" , const std::string&  programVersion = "") "
 /**
    * Creates a new XMLOutputStream that wraps the given @p stream.
    *
@@ -49255,7 +49173,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
 ";
 
 
-%csmethodmodifiers XMLOutputStream::writeComment(const std::string& programName, const std::string& programVersion) "
+%csmethodmodifiers XMLOutputStream::writeComment(const std::string& programName, const std::string& programVersion, bool writeTimestamp = true) "
 /**
    * Writes an XML comment with the name and version of this program.
    *
@@ -49273,6 +49191,9 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    *
    * @param programVersion an optional version identification string to write
    * as a comment in the output stream.
+   *
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
    */ public
 ";
 
@@ -49334,6 +49255,75 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
 ";
 
 
+%csmethodmodifiers XMLOutputStream::getWriteComment "
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   */ public
+";
+
+
+%csmethodmodifiers XMLOutputStream::setWriteComment(bool writeComment) "
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   *
+   * @param writeComment the flag
+   */ public
+";
+
+
+%csmethodmodifiers XMLOutputStream::getWriteTimestamp "
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   */ public
+";
+
+
+%csmethodmodifiers XMLOutputStream::setWriteTimestamp(bool writeTimestamp) "
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   *
+   * @param writeTimestamp the flag
+   */ public
+";
+
+
+%csmethodmodifiers XMLOutputStream::getLibraryName "
+/**
+   * @return the name of the library to be used in comments (\'libSBML\' by default)
+   */ public
+";
+
+
+%csmethodmodifiers XMLOutputStream::setLibraryName(const std::string& libraryName) "
+/**
+   * sets the name of the library writing the XML
+
+   * @param libraryName the name of the library to be used in comments
+   */ public
+";
+
+
+%csmethodmodifiers XMLOutputStream::getLibraryVersion "
+/**
+   * @return a string representing the version of the library writing the output.
+   *         This is the value of getLibSBMLDottedVersion() by default.
+   */ public
+";
+
+
+%csmethodmodifiers XMLOutputStream::setLibraryVersion(const std::string& libraryVersion) "
+/**
+   * sets the name of the library writing the output
+   *
+   * @param libraryVersion the version information as string
+   */ public
+";
+
+
 %csmethodmodifiers XMLOutputStream::XMLOutputStream(const XMLOutputStream& other) "
 /** */ /* libsbml-internal */ public
 ";
@@ -49429,7 +49419,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
 ";
 
 
-%csmethodmodifiers XMLOwningOutputFileStream::XMLOwningOutputFileStream(  const std::string&  filename , const std::string&  encoding     = "UTF-8" , bool                writeXMLDecl = true , const std::string&  programName  = "" , const std::string&  programVersion = "") "
+%csmethodmodifiers XMLOwningOutputFileStream::XMLOwningOutputFileStream(const std::string&  filename , const std::string&  encoding     = "UTF-8" , bool                writeXMLDecl = true , const std::string&  programName  = "" , const std::string&  programVersion = "") "
 /** */ /* libsbml-internal */ public
 ";
 
@@ -60205,7 +60195,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    *
-   * @param type a @if clike #QualifierType_t value at else qualifier type at endif
+   * @param type a @if clike #QualifierType_t value at else qualifier type at endif.
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif
    */ public
@@ -60332,9 +60322,9 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * of this object or @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
    * (the default).
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */ public
 ";
 
@@ -60398,9 +60388,9 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * of this object or @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
    * (the default).
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */ public
 ";
 
@@ -60751,9 +60741,9 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    *
    * @return the XMLAttributes that store the resources of this CVTerm.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::addResource(string resource)
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getQualifierType()
+   * @see addResource(string resource)
+   * @see getResourceURI(unsigned int n)
    */ public
 ";
 
@@ -60804,9 +60794,9 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    *
    * @return the XMLAttributes that store the resources of this CVTerm.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::addResource(string resource)
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getQualifierType()
+   * @see addResource(string resource)
+   * @see getResourceURI(unsigned int n)
    */ public
 ";
 
@@ -60854,8 +60844,8 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * @return the number of resources in the set of XMLAttributes
    * of this CVTerm.
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getResources()
+   * @see getResourceURI(unsigned int n)
    */ public
 ";
 
@@ -60903,8 +60893,8 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * @return the number of resources in the set of XMLAttributes
    * of this CVTerm.
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getResources()
+   * @see getResourceURI(unsigned int n)
    */ public
 ";
 
@@ -60952,13 +60942,13 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * are stored in this CVTerm object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    *
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    *
    * @return string representing the value of the nth resource
    * in the set of XMLAttributes of this CVTerm.
    *
-   * @see CVTerm::getNumResources()
-   * @see CVTerm::getQualifierType()
+   * @see getNumResources()
+   * @see getQualifierType()
    */ public
 ";
 
@@ -61006,13 +60996,13 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * are stored in this CVTerm object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    *
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    *
    * @return string representing the value of the nth resource
    * in the set of XMLAttributes of this CVTerm.
    *
-   * @see CVTerm::getNumResources()
-   * @see CVTerm::getQualifierType()
+   * @see getNumResources()
+   * @see getQualifierType()
    */ public
 ";
 
@@ -61031,7 +61021,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
  * returned by this function are:
  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    *
-   * @see CVTerm::getQualifierType()
+   * @see getQualifierType()
    */ public
 ";
 
@@ -61041,7 +61031,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * of this CVTerm object.
    *
-   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif
+   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif.
    *
    *
  * @return integer value indicating success/failure of the
@@ -61056,8 +61046,8 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
 ";
 
@@ -61083,8 +61073,8 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif
    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
 ";
 
@@ -61094,7 +61084,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * Sets the @if clike #ModelQualifierType_t at else model qualifier
    * type at endif value of this CVTerm object.
    *
-   * @param qualifier the string representing a model qualifier
+   * @param qualifier the string representing a model qualifier.
    *
    *
  * @return integer value indicating success/failure of the
@@ -61109,8 +61099,8 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
 ";
 
@@ -61120,7 +61110,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * Sets the @if clike #BiolQualifierType_t at else biology qualifier
    * type code at endif of this CVTerm object.
    *
-   * @param qualifier the string representing a biology qualifier
+   * @param qualifier the string representing a biology qualifier.
    *
    *
  * @return integer value indicating success/failure of the
@@ -61135,8 +61125,8 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif
    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
 ";
 
@@ -61228,11 +61218,11 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::removeResource(string resource)
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see removeResource(string resource)
+   * @see getQualifierType()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */ public
 ";
 
@@ -61254,7 +61244,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * @li @link libsbml#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE at endlink
    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
    *
-   * @see CVTerm::addResource(string resource)
+   * @see addResource(string resource)
    */ public
 ";
 
@@ -61305,7 +61295,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * Returns the nth CVTerm in the list of CVTerms of this CVTerm
    * object.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return the nth CVTerm in the list of CVTerms for this CVTerm object.
    */ public
@@ -61317,7 +61307,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * Returns the nth CVTerm in the list of CVTerms of this CVTerm
    * object.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return the nth CVTerm in the list of CVTerms for this CVTerm object.
    */ public
@@ -61368,7 +61358,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    * Removes the nth CVTerm in the list of CVTerms of this CVTerm
    * object and returns a pointer to it.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return a pointer to the nth CVTerm in the list of CVTerms for this 
    * CVTerm object.
@@ -61381,6 +61371,106 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
 ";
 
 
+%csmethodmodifiers ModelQualifierType_toString(ModelQualifierType_t type) "
+/**
+ * This method takes a model qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a model qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+ * the string <code>\'isDescribedBy\'</code>.
+ *
+ * @param type The @if clike ModelQualifierType_t at endif value to
+ * translate. @ifnot clike The value should be a libSBML constant whose
+ * name begins with @c BQM_, such as (for example)
+ * @link libsbml#BQM_IS BQM_IS at endlink.@endif
+ *
+ * @return a human readable qualifier name for the given qualifier type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+";
+
+
+%csmethodmodifiers BiolQualifierType_toString(BiolQualifierType_t type) "
+/**
+ * This method takes a biol qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a biol qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+ * the string <code>\'hasVersion\'</code>.
+ *
+ * @param type The @if clike BiolQualifierType_t at endif value to
+ * translate. @ifnot clike The value should be a constant whose name
+ * begins with @c BQB_, such as (for example)
+ * @link libsbml#BQB_IS BQB_IS at endlink.@endif
+ *
+ * @return a human readable qualifier name for the given type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+";
+
+
+%csmethodmodifiers ModelQualifierType_fromString(const char* s) "
+/**
+ * This method takes a a string and returns a model qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a model qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>\'isDescribedBy\'</code> will return the qualifier
+ * <code>BQM_IS_DESCRIBED_BY</code>.
+ *
+ * @param s The string to translate to a @if clike ModelQualifierType_t
+ * value at else libSBML constant value representing a model qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+";
+
+
+%csmethodmodifiers BiolQualifierType_fromString(const char* s) "
+/**
+ * This method takes a a string and returns a biol qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a biol qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>\'hasVersion\'</code> will return the qualifier
+ * <code>BQB_HAS_VERSION</code>.
+ *
+ * @param s The string to translate to a @if clike BiolQualifierType_t
+ * value at else libSBML constant value representing a biological qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+";
+
+
 %typemap(csimports) Date "
  using System;
  using System.Runtime.InteropServices;
@@ -63867,7 +63957,6 @@ ListOfGroups mGroups;
    *
    * @see getPackageName()
    * @see getElementNamespace()
-   * @see SBMLDocument::getSBMLNamespaces()
    * @see getSBMLDocument()
    */ public
 ";
@@ -64667,7 +64756,7 @@ unsigned int GroupsExtension::getDefaultPackageVersion()
  * combination for which the package can be used.  For instance, if a package
  * is only usable in SBML Level 3 Version 1, and the libSBML
  * extension for the package implements version 1 of the package, the
- * necessary method is <code>getXmlnsL3V1V1()</code>.  
+ * necessary method is <code>getXmlnsL3V1V1()</code>.
 @code{.cpp}
 string GroupsExtension::getXmlnsL3V1V1 ()
 {
@@ -69010,6 +69099,11 @@ setValue(value, 0);
 ";
 
 
+%csmethodmodifiers ASTNode::getNumPiece() const "
+/** */ /* libsbml-internal */ public
+";
+
+
 %csmethodmodifiers ASTNode::containsVariable(const std::string id) const "
 /** */ /* libsbml-internal */ public
 ";
@@ -69286,7 +69380,7 @@ setValue(value, 0);
  * @sbmlfunction{parseL3Formula, String} and
  * @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
  * system (i.e., what is provided by @sbmlfunction{formulaToString, String}
- * and @sbmlfunction{parseFormula, ASTNode}) is provided 
+ * and @sbmlfunction{parseFormula, ASTNode}) is provided
  * untouched for backwards compatibility.
  *
  *
@@ -69713,7 +69807,7 @@ setValue(value, 0);
  * @sbmlfunction{parseL3Formula, String} and
  * @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
  * system (i.e., what is provided by @sbmlfunction{formulaToString, String}
- * and @sbmlfunction{parseFormula, ASTNode}) is provided 
+ * and @sbmlfunction{parseFormula, ASTNode}) is provided
  * untouched for backwards compatibility.
  *
  *
@@ -70080,7 +70174,7 @@ setValue(value, 0);
  * @link libsbml#AST_NAME AST_NAME at endlink.
  * @li Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * @li LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
@@ -70465,7 +70559,7 @@ setValue(value, 0);
  * @link libsbml#AST_NAME AST_NAME at endlink.
  * @li Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * @li LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
diff --git a/src/bindings/csharp/csharp-files-win/ASTBase.cs b/src/bindings/csharp/csharp-files-win/ASTBase.cs
index 797eaa9..c2c1934 100644
--- a/src/bindings/csharp/csharp-files-win/ASTBase.cs
+++ b/src/bindings/csharp/csharp-files-win/ASTBase.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/ASTBasePlugin.cs b/src/bindings/csharp/csharp-files-win/ASTBasePlugin.cs
index 199702c..63ac769 100644
--- a/src/bindings/csharp/csharp-files-win/ASTBasePlugin.cs
+++ b/src/bindings/csharp/csharp-files-win/ASTBasePlugin.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/ASTNode.cs b/src/bindings/csharp/csharp-files-win/ASTNode.cs
index a57b31f..1d0920a 100644
--- a/src/bindings/csharp/csharp-files-win/ASTNode.cs
+++ b/src/bindings/csharp/csharp-files-win/ASTNode.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -2394,6 +2394,10 @@ setValue(value, 0);
     return ret;
   }
 
+  
+/** */ /* libsbml-internal */ public
+ long getNumPiece() { return (long)libsbmlPINVOKE.ASTNode_getNumPiece(swigCPtr); }
+
   public ASTNodeList getListOfNodes() {
     IntPtr cPtr = libsbmlPINVOKE.ASTNode_getListOfNodes(swigCPtr);
     ASTNodeList ret = (cPtr == IntPtr.Zero) ? null : new ASTNodeList(cPtr, true);
diff --git a/src/bindings/csharp/csharp-files-win/ASTNodeList.cs b/src/bindings/csharp/csharp-files-win/ASTNodeList.cs
index bbca71b..756e615 100644
--- a/src/bindings/csharp/csharp-files-win/ASTNodeList.cs
+++ b/src/bindings/csharp/csharp-files-win/ASTNodeList.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/AlgebraicRule.cs b/src/bindings/csharp/csharp-files-win/AlgebraicRule.cs
index e5eafe6..c9fe2e7 100644
--- a/src/bindings/csharp/csharp-files-win/AlgebraicRule.cs
+++ b/src/bindings/csharp/csharp-files-win/AlgebraicRule.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/AssignmentRule.cs b/src/bindings/csharp/csharp-files-win/AssignmentRule.cs
index 689814c..3b3eca2 100644
--- a/src/bindings/csharp/csharp-files-win/AssignmentRule.cs
+++ b/src/bindings/csharp/csharp-files-win/AssignmentRule.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/CVTerm.cs b/src/bindings/csharp/csharp-files-win/CVTerm.cs
index 7e5bd6b..8a3fd74 100644
--- a/src/bindings/csharp/csharp-files-win/CVTerm.cs
+++ b/src/bindings/csharp/csharp-files-win/CVTerm.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -330,7 +330,7 @@ public class CVTerm : IDisposable {
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    *
-   * @param type a @if clike #QualifierType_t value at else qualifier type at endif
+   * @param type a @if clike #QualifierType_t value at else qualifier type at endif.
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif
    */ public
@@ -375,7 +375,7 @@ public class CVTerm : IDisposable {
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    *
-   * @param type a @if clike #QualifierType_t value at else qualifier type at endif
+   * @param type a @if clike #QualifierType_t value at else qualifier type at endif.
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif
    */ public
@@ -507,9 +507,9 @@ public class CVTerm : IDisposable {
    * of this object or @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
    * (the default).
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */ public
  int getQualifierType() {
     int ret = libsbmlPINVOKE.CVTerm_getQualifierType__SWIG_0(swigCPtr);
@@ -716,9 +716,9 @@ public class CVTerm : IDisposable {
    *
    * @return the XMLAttributes that store the resources of this CVTerm.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::addResource(string resource)
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getQualifierType()
+   * @see addResource(string resource)
+   * @see getResourceURI(unsigned int n)
    */ public
  XMLAttributes getResources() {
     IntPtr cPtr = libsbmlPINVOKE.CVTerm_getResources__SWIG_0(swigCPtr);
@@ -769,8 +769,8 @@ public class CVTerm : IDisposable {
    * @return the number of resources in the set of XMLAttributes
    * of this CVTerm.
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getResources()
+   * @see getResourceURI(unsigned int n)
    */ public
  long getNumResources() { return (long)libsbmlPINVOKE.CVTerm_getNumResources__SWIG_0(swigCPtr); }
 
@@ -817,13 +817,13 @@ public class CVTerm : IDisposable {
    * are stored in this CVTerm object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    *
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    *
    * @return string representing the value of the nth resource
    * in the set of XMLAttributes of this CVTerm.
    *
-   * @see CVTerm::getNumResources()
-   * @see CVTerm::getQualifierType()
+   * @see getNumResources()
+   * @see getQualifierType()
    */ public
  string getResourceURI(long n) {
     string ret = libsbmlPINVOKE.CVTerm_getResourceURI__SWIG_0(swigCPtr, n);
@@ -844,7 +844,7 @@ public class CVTerm : IDisposable {
  * returned by this function are:
  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    *
-   * @see CVTerm::getQualifierType()
+   * @see getQualifierType()
    */ public
  int setQualifierType(int type) {
     int ret = libsbmlPINVOKE.CVTerm_setQualifierType(swigCPtr, type);
@@ -856,7 +856,7 @@ public class CVTerm : IDisposable {
    * Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * of this CVTerm object.
    *
-   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif
+   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif.
    *
    *
  * @return integer value indicating success/failure of the
@@ -871,8 +871,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setModelQualifierType(int type) {
     int ret = libsbmlPINVOKE.CVTerm_setModelQualifierType__SWIG_0(swigCPtr, type);
@@ -900,8 +900,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif
    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setBiologicalQualifierType(int type) {
     int ret = libsbmlPINVOKE.CVTerm_setBiologicalQualifierType__SWIG_0(swigCPtr, type);
@@ -913,7 +913,7 @@ public class CVTerm : IDisposable {
    * Sets the @if clike #ModelQualifierType_t at else model qualifier
    * type at endif value of this CVTerm object.
    *
-   * @param qualifier the string representing a model qualifier
+   * @param qualifier the string representing a model qualifier.
    *
    *
  * @return integer value indicating success/failure of the
@@ -928,8 +928,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setModelQualifierType(string qualifier) {
     int ret = libsbmlPINVOKE.CVTerm_setModelQualifierType__SWIG_1(swigCPtr, qualifier);
@@ -941,7 +941,7 @@ public class CVTerm : IDisposable {
    * Sets the @if clike #BiolQualifierType_t at else biology qualifier
    * type code at endif of this CVTerm object.
    *
-   * @param qualifier the string representing a biology qualifier
+   * @param qualifier the string representing a biology qualifier.
    *
    *
  * @return integer value indicating success/failure of the
@@ -956,8 +956,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif
    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setBiologicalQualifierType(string qualifier) {
     int ret = libsbmlPINVOKE.CVTerm_setBiologicalQualifierType__SWIG_1(swigCPtr, qualifier);
@@ -1051,11 +1051,11 @@ public class CVTerm : IDisposable {
  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::removeResource(string resource)
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see removeResource(string resource)
+   * @see getQualifierType()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */ public
  int addResource(string resource) {
     int ret = libsbmlPINVOKE.CVTerm_addResource(swigCPtr, resource);
@@ -1079,7 +1079,7 @@ public class CVTerm : IDisposable {
    * @li @link libsbml#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE at endlink
    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
    *
-   * @see CVTerm::addResource(string resource)
+   * @see addResource(string resource)
    */ public
  int removeResource(string resource) {
     int ret = libsbmlPINVOKE.CVTerm_removeResource(swigCPtr, resource);
@@ -1131,7 +1131,7 @@ public class CVTerm : IDisposable {
    * Returns the nth CVTerm in the list of CVTerms of this CVTerm
    * object.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return the nth CVTerm in the list of CVTerms for this CVTerm object.
    */ public
@@ -1180,7 +1180,7 @@ public class CVTerm : IDisposable {
    * Removes the nth CVTerm in the list of CVTerms of this CVTerm
    * object and returns a pointer to it.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return a pointer to the nth CVTerm in the list of CVTerms for this 
    * CVTerm object.
diff --git a/src/bindings/csharp/csharp-files-win/CVTermList.cs b/src/bindings/csharp/csharp-files-win/CVTermList.cs
index b6647a1..b983324 100644
--- a/src/bindings/csharp/csharp-files-win/CVTermList.cs
+++ b/src/bindings/csharp/csharp-files-win/CVTermList.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Compartment.cs b/src/bindings/csharp/csharp-files-win/Compartment.cs
index a8cb6b4..2581bbe 100644
--- a/src/bindings/csharp/csharp-files-win/Compartment.cs
+++ b/src/bindings/csharp/csharp-files-win/Compartment.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1645,9 +1645,9 @@ public class Compartment : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/CompartmentType.cs b/src/bindings/csharp/csharp-files-win/CompartmentType.cs
index cdb015a..39cc48d 100644
--- a/src/bindings/csharp/csharp-files-win/CompartmentType.cs
+++ b/src/bindings/csharp/csharp-files-win/CompartmentType.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -411,9 +411,9 @@ public class CompartmentType : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/Constraint.cs b/src/bindings/csharp/csharp-files-win/Constraint.cs
index 946cffd..3e38698 100644
--- a/src/bindings/csharp/csharp-files-win/Constraint.cs
+++ b/src/bindings/csharp/csharp-files-win/Constraint.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -524,9 +524,9 @@ public class Constraint : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/ConversionOption.cs b/src/bindings/csharp/csharp-files-win/ConversionOption.cs
index b83dba8..f2a36f3 100644
--- a/src/bindings/csharp/csharp-files-win/ConversionOption.cs
+++ b/src/bindings/csharp/csharp-files-win/ConversionOption.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/ConversionProperties.cs b/src/bindings/csharp/csharp-files-win/ConversionProperties.cs
index 295b706..0bb972a 100644
--- a/src/bindings/csharp/csharp-files-win/ConversionProperties.cs
+++ b/src/bindings/csharp/csharp-files-win/ConversionProperties.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Date.cs b/src/bindings/csharp/csharp-files-win/Date.cs
index 882d2ec..9baed6c 100644
--- a/src/bindings/csharp/csharp-files-win/Date.cs
+++ b/src/bindings/csharp/csharp-files-win/Date.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/DateList.cs b/src/bindings/csharp/csharp-files-win/DateList.cs
index a93d82a..4d4502c 100644
--- a/src/bindings/csharp/csharp-files-win/DateList.cs
+++ b/src/bindings/csharp/csharp-files-win/DateList.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Delay.cs b/src/bindings/csharp/csharp-files-win/Delay.cs
index 36bf293..82d6788 100644
--- a/src/bindings/csharp/csharp-files-win/Delay.cs
+++ b/src/bindings/csharp/csharp-files-win/Delay.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -457,9 +457,9 @@ public class Delay : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/ElementFilter.cs b/src/bindings/csharp/csharp-files-win/ElementFilter.cs
index 54843ad..56b6b09 100644
--- a/src/bindings/csharp/csharp-files-win/ElementFilter.cs
+++ b/src/bindings/csharp/csharp-files-win/ElementFilter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Event.cs b/src/bindings/csharp/csharp-files-win/Event.cs
index 2030ff4..8735479 100644
--- a/src/bindings/csharp/csharp-files-win/Event.cs
+++ b/src/bindings/csharp/csharp-files-win/Event.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1270,9 +1270,9 @@ public class Event : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/EventAssignment.cs b/src/bindings/csharp/csharp-files-win/EventAssignment.cs
index 9bb46f5..c42ba1f 100644
--- a/src/bindings/csharp/csharp-files-win/EventAssignment.cs
+++ b/src/bindings/csharp/csharp-files-win/EventAssignment.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -540,9 +540,9 @@ public class EventAssignment : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/FunctionDefinition.cs b/src/bindings/csharp/csharp-files-win/FunctionDefinition.cs
index 2e5f204..220cff9 100644
--- a/src/bindings/csharp/csharp-files-win/FunctionDefinition.cs
+++ b/src/bindings/csharp/csharp-files-win/FunctionDefinition.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -518,9 +518,9 @@ public class FunctionDefinition : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/ISBMLExtensionNamespaces.cs b/src/bindings/csharp/csharp-files-win/ISBMLExtensionNamespaces.cs
index 63fa735..cf26b6d 100644
--- a/src/bindings/csharp/csharp-files-win/ISBMLExtensionNamespaces.cs
+++ b/src/bindings/csharp/csharp-files-win/ISBMLExtensionNamespaces.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/IdList.cs b/src/bindings/csharp/csharp-files-win/IdList.cs
index fbf2672..78d14a6 100644
--- a/src/bindings/csharp/csharp-files-win/IdList.cs
+++ b/src/bindings/csharp/csharp-files-win/IdList.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/IdentifierTransformer.cs b/src/bindings/csharp/csharp-files-win/IdentifierTransformer.cs
index 6c14b92..b06fa50 100644
--- a/src/bindings/csharp/csharp-files-win/IdentifierTransformer.cs
+++ b/src/bindings/csharp/csharp-files-win/IdentifierTransformer.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/InitialAssignment.cs b/src/bindings/csharp/csharp-files-win/InitialAssignment.cs
index 188e7d2..62809fa 100644
--- a/src/bindings/csharp/csharp-files-win/InitialAssignment.cs
+++ b/src/bindings/csharp/csharp-files-win/InitialAssignment.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -522,9 +522,9 @@ public class InitialAssignment : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/KineticLaw.cs b/src/bindings/csharp/csharp-files-win/KineticLaw.cs
index 7256f84..8358ed4 100644
--- a/src/bindings/csharp/csharp-files-win/KineticLaw.cs
+++ b/src/bindings/csharp/csharp-files-win/KineticLaw.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1007,9 +1007,9 @@ public class KineticLaw : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/L3ParserSettings.cs b/src/bindings/csharp/csharp-files-win/L3ParserSettings.cs
index fcd1ac0..8029fa2 100644
--- a/src/bindings/csharp/csharp-files-win/L3ParserSettings.cs
+++ b/src/bindings/csharp/csharp-files-win/L3ParserSettings.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -81,7 +81,7 @@ namespace libsbml {
  * @link libsbml#AST_NAME AST_NAME at endlink.
  * @li Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * @li LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
diff --git a/src/bindings/csharp/csharp-files-win/ListOf.cs b/src/bindings/csharp/csharp-files-win/ListOf.cs
index 94a54fb..fc1c5cc 100644
--- a/src/bindings/csharp/csharp-files-win/ListOf.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOf.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -39,11 +39,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -618,9 +613,9 @@ public class ListOf : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/ListOfCompartmentTypes.cs b/src/bindings/csharp/csharp-files-win/ListOfCompartmentTypes.cs
index 27db58f..7190593 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfCompartmentTypes.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfCompartmentTypes.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfCompartments.cs b/src/bindings/csharp/csharp-files-win/ListOfCompartments.cs
index d799dde..d325466 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfCompartments.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfCompartments.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfConstraints.cs b/src/bindings/csharp/csharp-files-win/ListOfConstraints.cs
index 997c91d..f8d0fd0 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfConstraints.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfConstraints.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfEventAssignments.cs b/src/bindings/csharp/csharp-files-win/ListOfEventAssignments.cs
index 5387208..e6bd76c 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfEventAssignments.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfEventAssignments.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfEvents.cs b/src/bindings/csharp/csharp-files-win/ListOfEvents.cs
index 2d5f7af..2cfcf45 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfEvents.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfEvents.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfFunctionDefinitions.cs b/src/bindings/csharp/csharp-files-win/ListOfFunctionDefinitions.cs
index 8fcd98f..4d27d41 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfFunctionDefinitions.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfFunctionDefinitions.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfInitialAssignments.cs b/src/bindings/csharp/csharp-files-win/ListOfInitialAssignments.cs
index 67ba475..a1e5f8a 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfInitialAssignments.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfInitialAssignments.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfLocalParameters.cs b/src/bindings/csharp/csharp-files-win/ListOfLocalParameters.cs
index 8c2b55c..017a0fa 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfLocalParameters.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfLocalParameters.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfParameters.cs b/src/bindings/csharp/csharp-files-win/ListOfParameters.cs
index 88436fb..cd72acb 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfParameters.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfParameters.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfReactions.cs b/src/bindings/csharp/csharp-files-win/ListOfReactions.cs
index 62cda30..c7825e2 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfReactions.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfReactions.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -270,10 +265,9 @@ public class ListOfReactions : ListOf {
    * @see size()
    */ public new
  Reaction get(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_get__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_get__SWIG_0(swigCPtr, n), false);
+	return ret;
+}
 
   
 /**
@@ -288,10 +282,9 @@ public class ListOfReactions : ListOf {
    * @see size()
    */ public new
  Reaction get(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_get__SWIG_2(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_get__SWIG_2(swigCPtr, sid), false);
+	return ret;
+}
 
   
 /**
@@ -305,10 +298,9 @@ public class ListOfReactions : ListOf {
    * @see size()
    */ public new
  Reaction remove(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_remove__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_remove__SWIG_0(swigCPtr, n), true);
+	return ret;
+}
 
   
 /**
@@ -324,10 +316,9 @@ public class ListOfReactions : ListOf {
    * returned item.
    */ public new
  Reaction remove(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_remove__SWIG_1(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_remove__SWIG_1(swigCPtr, sid), true);
+	return ret;
+}
 
 }
 
diff --git a/src/bindings/csharp/csharp-files-win/ListOfRules.cs b/src/bindings/csharp/csharp-files-win/ListOfRules.cs
index 2390e8d..5224c70 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfRules.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfRules.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfSpecies.cs b/src/bindings/csharp/csharp-files-win/ListOfSpecies.cs
index 28607c9..14e4655 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfSpecies.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfSpecies.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfSpeciesReferences.cs b/src/bindings/csharp/csharp-files-win/ListOfSpeciesReferences.cs
index de80cc8..e6ac557 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfSpeciesReferences.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfSpeciesReferences.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfSpeciesTypes.cs b/src/bindings/csharp/csharp-files-win/ListOfSpeciesTypes.cs
index 3a975f3..b70fede 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfSpeciesTypes.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfSpeciesTypes.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfUnitDefinitions.cs b/src/bindings/csharp/csharp-files-win/ListOfUnitDefinitions.cs
index 5d6fea1..3ed93e8 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfUnitDefinitions.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfUnitDefinitions.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -30,11 +30,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/ListOfUnits.cs b/src/bindings/csharp/csharp-files-win/ListOfUnits.cs
index 4d66c6f..5d76bc0 100644
--- a/src/bindings/csharp/csharp-files-win/ListOfUnits.cs
+++ b/src/bindings/csharp/csharp-files-win/ListOfUnits.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -32,11 +32,6 @@ namespace libsbml {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files-win/LocalParameter.cs b/src/bindings/csharp/csharp-files-win/LocalParameter.cs
index f3b424c..6108f6a 100644
--- a/src/bindings/csharp/csharp-files-win/LocalParameter.cs
+++ b/src/bindings/csharp/csharp-files-win/LocalParameter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -328,9 +328,9 @@ public class LocalParameter : Parameter {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/MathML.cs b/src/bindings/csharp/csharp-files-win/MathML.cs
index e601746..07b65f7 100644
--- a/src/bindings/csharp/csharp-files-win/MathML.cs
+++ b/src/bindings/csharp/csharp-files-win/MathML.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Model.cs b/src/bindings/csharp/csharp-files-win/Model.cs
index dcb34e2..26fe768 100644
--- a/src/bindings/csharp/csharp-files-win/Model.cs
+++ b/src/bindings/csharp/csharp-files-win/Model.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1966,10 +1966,9 @@ public class Model : SBase {
    * @see addReaction(Reaction r)
    */ public
  Reaction createReaction() {
-    IntPtr cPtr = libsbmlPINVOKE.Model_createReaction(swigCPtr);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_createReaction(swigCPtr), false);
+	return ret;
+}
 
   
 /**
@@ -2893,10 +2892,9 @@ public class Model : SBase {
    * @return the nth Reaction of this Model.
    */ public
  Reaction getReaction(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_getReaction__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getReaction__SWIG_0(swigCPtr, n), false);
+	return ret;
+}
 
   
 /**
@@ -2908,10 +2906,9 @@ public class Model : SBase {
    * if no such Reaction exists.
    */ public
  Reaction getReaction(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_getReaction__SWIG_2(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getReaction__SWIG_2(swigCPtr, sid), false);
+	return ret;
+}
 
   
 /**
@@ -3404,9 +3401,9 @@ public class Model : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -3907,10 +3904,9 @@ public class Model : SBase {
    *
    */ public
  Reaction removeReaction(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_removeReaction__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeReaction__SWIG_0(swigCPtr, n), true);
+	return ret;
+}
 
   
 /**
@@ -3926,10 +3922,9 @@ public class Model : SBase {
    *
    */ public
  Reaction removeReaction(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_removeReaction__SWIG_1(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeReaction__SWIG_1(swigCPtr, sid), true);
+	return ret;
+}
 
   
 /**
diff --git a/src/bindings/csharp/csharp-files-win/ModelCreator.cs b/src/bindings/csharp/csharp-files-win/ModelCreator.cs
index ddc4de4..21d2e29 100644
--- a/src/bindings/csharp/csharp-files-win/ModelCreator.cs
+++ b/src/bindings/csharp/csharp-files-win/ModelCreator.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/ModelCreatorList.cs b/src/bindings/csharp/csharp-files-win/ModelCreatorList.cs
index cac8814..ac6abe4 100644
--- a/src/bindings/csharp/csharp-files-win/ModelCreatorList.cs
+++ b/src/bindings/csharp/csharp-files-win/ModelCreatorList.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/ModelHistory.cs b/src/bindings/csharp/csharp-files-win/ModelHistory.cs
index 015c66f..56a6c28 100644
--- a/src/bindings/csharp/csharp-files-win/ModelHistory.cs
+++ b/src/bindings/csharp/csharp-files-win/ModelHistory.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/ModifierSpeciesReference.cs b/src/bindings/csharp/csharp-files-win/ModifierSpeciesReference.cs
index 76c100f..fa97e41 100644
--- a/src/bindings/csharp/csharp-files-win/ModifierSpeciesReference.cs
+++ b/src/bindings/csharp/csharp-files-win/ModifierSpeciesReference.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -205,9 +205,9 @@ public class ModifierSpeciesReference : SimpleSpeciesReference {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/OFStream.cs b/src/bindings/csharp/csharp-files-win/OFStream.cs
index 852eda1..cfcc68b 100644
--- a/src/bindings/csharp/csharp-files-win/OFStream.cs
+++ b/src/bindings/csharp/csharp-files-win/OFStream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/OStream.cs b/src/bindings/csharp/csharp-files-win/OStream.cs
index 2be61be..c206c1b 100644
--- a/src/bindings/csharp/csharp-files-win/OStream.cs
+++ b/src/bindings/csharp/csharp-files-win/OStream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/OStringStream.cs b/src/bindings/csharp/csharp-files-win/OStringStream.cs
index a3bc73f..f861895 100644
--- a/src/bindings/csharp/csharp-files-win/OStringStream.cs
+++ b/src/bindings/csharp/csharp-files-win/OStringStream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Parameter.cs b/src/bindings/csharp/csharp-files-win/Parameter.cs
index 76a9479..2aa929f 100644
--- a/src/bindings/csharp/csharp-files-win/Parameter.cs
+++ b/src/bindings/csharp/csharp-files-win/Parameter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -804,9 +804,9 @@ public class Parameter : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/Priority.cs b/src/bindings/csharp/csharp-files-win/Priority.cs
index 17d100f..41e2447 100644
--- a/src/bindings/csharp/csharp-files-win/Priority.cs
+++ b/src/bindings/csharp/csharp-files-win/Priority.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -380,9 +380,9 @@ public class Priority : SBase {
    * @link libsbml#SBML_PRIORITY SBML_PRIORITY at endlink (default).   *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/RDFAnnotationParser.cs b/src/bindings/csharp/csharp-files-win/RDFAnnotationParser.cs
index 2db54ed..a9d21bf 100644
--- a/src/bindings/csharp/csharp-files-win/RDFAnnotationParser.cs
+++ b/src/bindings/csharp/csharp-files-win/RDFAnnotationParser.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/RateRule.cs b/src/bindings/csharp/csharp-files-win/RateRule.cs
index 9bb06eb..6137905 100644
--- a/src/bindings/csharp/csharp-files-win/RateRule.cs
+++ b/src/bindings/csharp/csharp-files-win/RateRule.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Reaction.cs b/src/bindings/csharp/csharp-files-win/Reaction.cs
index f4859e1..6dbb84e 100644
--- a/src/bindings/csharp/csharp-files-win/Reaction.cs
+++ b/src/bindings/csharp/csharp-files-win/Reaction.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -283,10 +283,9 @@ public class Reaction : SBase {
    * @return the (deep) copy of this Reaction object.
    */ public new
  Reaction clone() {
-    IntPtr cPtr = libsbmlPINVOKE.Reaction_clone(swigCPtr);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Reaction_clone(swigCPtr), true);
+	return ret;
+}
 
   
 /**
@@ -1819,9 +1818,9 @@ public class Reaction : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/Rule.cs b/src/bindings/csharp/csharp-files-win/Rule.cs
index 3186dac..be0e8b3 100644
--- a/src/bindings/csharp/csharp-files-win/Rule.cs
+++ b/src/bindings/csharp/csharp-files-win/Rule.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -803,9 +803,9 @@ public class Rule : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/SBMLConstructorException.cs b/src/bindings/csharp/csharp-files-win/SBMLConstructorException.cs
index 635c324..864b726 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLConstructorException.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLConstructorException.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLConverter.cs
index 4fa57fb..e28b059 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLConverterRegistry.cs b/src/bindings/csharp/csharp-files-win/SBMLConverterRegistry.cs
index 1b1f11c..08a6c51 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLConverterRegistry.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLConverterRegistry.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLDocument.cs b/src/bindings/csharp/csharp-files-win/SBMLDocument.cs
index f875778..5e64356 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLDocument.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLDocument.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1281,7 +1281,33 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL1Compatibility(swigCPtr); }
+ long checkL1Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL1Compatibility__SWIG_0(swigCPtr, inConversion); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 1 and can be converted
+   * to Level 1.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL1Compatibility__SWIG_1(swigCPtr); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 1 and can
+   * be converted to Level 2 Version 1.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v1Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v1Compatibility__SWIG_0(swigCPtr, inConversion); }
 
   
 /**
@@ -1294,7 +1320,7 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL2v1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v1Compatibility(swigCPtr); }
+ long checkL2v1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v1Compatibility__SWIG_1(swigCPtr); }
 
   
 /**
@@ -1307,7 +1333,33 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL2v2Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v2Compatibility(swigCPtr); }
+ long checkL2v2Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v2Compatibility__SWIG_0(swigCPtr, inConversion); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 2 and can
+   * be converted to Level 2 Version 2.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v2Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v2Compatibility__SWIG_1(swigCPtr); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 3 and can
+   * be converted to Level 2 Version 3.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v3Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v3Compatibility__SWIG_0(swigCPtr, inConversion); }
 
   
 /**
@@ -1320,7 +1372,7 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL2v3Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v3Compatibility(swigCPtr); }
+ long checkL2v3Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v3Compatibility__SWIG_1(swigCPtr); }
 
   
 /**
@@ -1572,9 +1624,9 @@ public class SBMLDocument : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/SBMLDocumentPlugin.cs b/src/bindings/csharp/csharp-files-win/SBMLDocumentPlugin.cs
index 8d0c3ae..7c3dcf0 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLDocumentPlugin.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLDocumentPlugin.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLError.cs b/src/bindings/csharp/csharp-files-win/SBMLError.cs
index 4cbcc8b..b9f89e0 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLError.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLError.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLErrorLog.cs b/src/bindings/csharp/csharp-files-win/SBMLErrorLog.cs
index 5a06598..9e1fa4d 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLErrorLog.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLErrorLog.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLExtension.cs b/src/bindings/csharp/csharp-files-win/SBMLExtension.cs
index a6cb672..bd4d2d4 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLExtension.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLExtension.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -80,7 +80,7 @@ unsigned int GroupsExtension::getDefaultPackageVersion()
  * combination for which the package can be used.  For instance, if a package
  * is only usable in SBML Level 3 Version 1, and the libSBML
  * extension for the package implements version 1 of the package, the
- * necessary method is <code>getXmlnsL3V1V1()</code>.  
+ * necessary method is <code>getXmlnsL3V1V1()</code>.
 @code{.cpp}
 string GroupsExtension::getXmlnsL3V1V1 ()
 {
diff --git a/src/bindings/csharp/csharp-files-win/SBMLExtensionException.cs b/src/bindings/csharp/csharp-files-win/SBMLExtensionException.cs
index 68bd3bf..052faba 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLExtensionException.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLExtensionException.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLExtensionRegistry.cs b/src/bindings/csharp/csharp-files-win/SBMLExtensionRegistry.cs
index 46a190f..2a5db49 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLExtensionRegistry.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLExtensionRegistry.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLExternalValidator.cs b/src/bindings/csharp/csharp-files-win/SBMLExternalValidator.cs
index d252c59..85ec5d0 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLExternalValidator.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLExternalValidator.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLFunctionDefinitionConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLFunctionDefinitionConverter.cs
index a0a0fb2..6793db8 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLFunctionDefinitionConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLFunctionDefinitionConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLIdConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLIdConverter.cs
index 6b93440..7f30194 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLIdConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLIdConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLInferUnitsConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLInferUnitsConverter.cs
index 6ba2819..dade68b 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLInferUnitsConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLInferUnitsConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLInitialAssignmentConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLInitialAssignmentConverter.cs
index 7aa3523..339db95 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLInitialAssignmentConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLInitialAssignmentConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLLevel1Version1Converter.cs b/src/bindings/csharp/csharp-files-win/SBMLLevel1Version1Converter.cs
index c54910b..9b19e6b 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLLevel1Version1Converter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLLevel1Version1Converter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -335,9 +335,7 @@ public class SBMLLevel1Version1Converter : SBMLConverter {
  * function.  @if clike The value is drawn from the
  * enumeration #OperationReturnValues_t. @endif The possible values
  * returned by this function are:
- *
- *
-   * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
+ * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
    * @li @link libsbml#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
    * @li @link libsbml#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
diff --git a/src/bindings/csharp/csharp-files-win/SBMLLevelVersionConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLLevelVersionConverter.cs
index 6e4f300..4ab5714 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLLevelVersionConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLLevelVersionConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLLocalParameterConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLLocalParameterConverter.cs
index 3255fba..1e9a2e4 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLLocalParameterConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLLocalParameterConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLNamespaces.cs b/src/bindings/csharp/csharp-files-win/SBMLNamespaces.cs
index 7192f84..5e1bf78 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLNamespaces.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLNamespaces.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLNamespacesList.cs b/src/bindings/csharp/csharp-files-win/SBMLNamespacesList.cs
index 102fbb0..139a424 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLNamespacesList.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLNamespacesList.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLReactionConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLReactionConverter.cs
index 6fe756b..b70dbb5 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLReactionConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLReactionConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLReader.cs b/src/bindings/csharp/csharp-files-win/SBMLReader.cs
index 794f18c..63b7c2a 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLReader.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLReader.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLRuleConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLRuleConverter.cs
index afd0f2c..9496097 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLRuleConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLRuleConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLStripPackageConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLStripPackageConverter.cs
index 8e3f990..8ef03d3 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLStripPackageConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLStripPackageConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLTransforms.cs b/src/bindings/csharp/csharp-files-win/SBMLTransforms.cs
index ea59bf9..80da962 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLTransforms.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLTransforms.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLUnitsConverter.cs b/src/bindings/csharp/csharp-files-win/SBMLUnitsConverter.cs
index ac061f8..d1dc613 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLUnitsConverter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLUnitsConverter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLValidator.cs b/src/bindings/csharp/csharp-files-win/SBMLValidator.cs
index 70869f3..951a4cd 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLValidator.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLValidator.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBMLWriter.cs b/src/bindings/csharp/csharp-files-win/SBMLWriter.cs
index 54c38ea..4d2b053 100644
--- a/src/bindings/csharp/csharp-files-win/SBMLWriter.cs
+++ b/src/bindings/csharp/csharp-files-win/SBMLWriter.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBO.cs b/src/bindings/csharp/csharp-files-win/SBO.cs
index e44d5a6..2f428f4 100644
--- a/src/bindings/csharp/csharp-files-win/SBO.cs
+++ b/src/bindings/csharp/csharp-files-win/SBO.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -920,6 +920,10 @@ public class SBO : IDisposable {
     return ret;
   }
 
+  
+/** */ /* libsbml-internal */ public
+ static long getParentBranch(long term) { return (long)libsbmlPINVOKE.SBO_getParentBranch(term); }
+
   public SBO() : this(libsbmlPINVOKE.new_SBO(), true) {
   }
 
diff --git a/src/bindings/csharp/csharp-files-win/SBase.cs b/src/bindings/csharp/csharp-files-win/SBase.cs
index 59a2bc6..7055d6b 100644
--- a/src/bindings/csharp/csharp-files-win/SBase.cs
+++ b/src/bindings/csharp/csharp-files-win/SBase.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -2905,9 +2905,9 @@ void example (SBase sb)
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -3091,7 +3091,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -3167,7 +3167,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -3206,7 +3206,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -3248,7 +3248,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
diff --git a/src/bindings/csharp/csharp-files-win/SBaseExtensionPoint.cs b/src/bindings/csharp/csharp-files-win/SBaseExtensionPoint.cs
index 6ed21e6..8246f83 100644
--- a/src/bindings/csharp/csharp-files-win/SBaseExtensionPoint.cs
+++ b/src/bindings/csharp/csharp-files-win/SBaseExtensionPoint.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBaseList.cs b/src/bindings/csharp/csharp-files-win/SBaseList.cs
index 34b9659..b643e9d 100644
--- a/src/bindings/csharp/csharp-files-win/SBaseList.cs
+++ b/src/bindings/csharp/csharp-files-win/SBaseList.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SBasePlugin.cs b/src/bindings/csharp/csharp-files-win/SBasePlugin.cs
index d23ed8c..e5d0f37 100644
--- a/src/bindings/csharp/csharp-files-win/SBasePlugin.cs
+++ b/src/bindings/csharp/csharp-files-win/SBasePlugin.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -427,7 +427,6 @@ public class SBasePlugin : IDisposable {
    *
    * @see getPackageName()
    * @see getElementNamespace()
-   * @see SBMLDocument::getSBMLNamespaces()
    * @see getSBMLDocument()
    */ public
  string getURI() {
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ASTFunction.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ASTFunction.cs
index e9aad13..408164f 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ASTFunction.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ASTFunction.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ExpectedAttributes.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ExpectedAttributes.cs
index 7979dd1..c8da55d 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ExpectedAttributes.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_ExpectedAttributes.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_FormulaUnitsData.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_FormulaUnitsData.cs
index 3db3435..b735882 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_FormulaUnitsData.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_FormulaUnitsData.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_List.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_List.cs
index 6ba2fe2..7ed4d1e 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_List.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_List.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_StringBuffer_t.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_StringBuffer_t.cs
index 73a2b17..351d8b4 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_StringBuffer_t.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_StringBuffer_t.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__ostream.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__ostream.cs
index 4f65643..b12dd24 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__ostream.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__ostream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs
index bfc873e..3290fdd 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_std__string_t.cs b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_std__string_t.cs
index 740807f..03ad27a 100644
--- a/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_std__string_t.cs
+++ b/src/bindings/csharp/csharp-files-win/SWIGTYPE_p_std__vectorT_std__string_t.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SimpleSpeciesReference.cs b/src/bindings/csharp/csharp-files-win/SimpleSpeciesReference.cs
index 8685122..ac63e99 100644
--- a/src/bindings/csharp/csharp-files-win/SimpleSpeciesReference.cs
+++ b/src/bindings/csharp/csharp-files-win/SimpleSpeciesReference.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Species.cs b/src/bindings/csharp/csharp-files-win/Species.cs
index 7cf2b45..a2b67a9 100644
--- a/src/bindings/csharp/csharp-files-win/Species.cs
+++ b/src/bindings/csharp/csharp-files-win/Species.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1644,9 +1644,9 @@ public class Species : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/SpeciesReference.cs b/src/bindings/csharp/csharp-files-win/SpeciesReference.cs
index 0d30171..49a7f29 100644
--- a/src/bindings/csharp/csharp-files-win/SpeciesReference.cs
+++ b/src/bindings/csharp/csharp-files-win/SpeciesReference.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/SpeciesType.cs b/src/bindings/csharp/csharp-files-win/SpeciesType.cs
index 4d14037..d50b0cf 100644
--- a/src/bindings/csharp/csharp-files-win/SpeciesType.cs
+++ b/src/bindings/csharp/csharp-files-win/SpeciesType.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -376,9 +376,9 @@ public class SpeciesType : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/StoichiometryMath.cs b/src/bindings/csharp/csharp-files-win/StoichiometryMath.cs
index 3895688..47e917d 100644
--- a/src/bindings/csharp/csharp-files-win/StoichiometryMath.cs
+++ b/src/bindings/csharp/csharp-files-win/StoichiometryMath.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -495,9 +495,9 @@ public class StoichiometryMath : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/SyntaxChecker.cs b/src/bindings/csharp/csharp-files-win/SyntaxChecker.cs
index 295ccfe..bbe0bf8 100644
--- a/src/bindings/csharp/csharp-files-win/SyntaxChecker.cs
+++ b/src/bindings/csharp/csharp-files-win/SyntaxChecker.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/Trigger.cs b/src/bindings/csharp/csharp-files-win/Trigger.cs
index 649fe86..d34da51 100644
--- a/src/bindings/csharp/csharp-files-win/Trigger.cs
+++ b/src/bindings/csharp/csharp-files-win/Trigger.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -493,9 +493,9 @@ public class Trigger : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/Unit.cs b/src/bindings/csharp/csharp-files-win/Unit.cs
index 4d5e5d1..17feee2 100644
--- a/src/bindings/csharp/csharp-files-win/Unit.cs
+++ b/src/bindings/csharp/csharp-files-win/Unit.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1198,9 +1198,9 @@ public class Unit : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/UnitDefinition.cs b/src/bindings/csharp/csharp-files-win/UnitDefinition.cs
index f736657..73445c7 100644
--- a/src/bindings/csharp/csharp-files-win/UnitDefinition.cs
+++ b/src/bindings/csharp/csharp-files-win/UnitDefinition.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -826,9 +826,9 @@ public class UnitDefinition : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files-win/XMLAttributes.cs b/src/bindings/csharp/csharp-files-win/XMLAttributes.cs
index aca3465..5a4d292 100644
--- a/src/bindings/csharp/csharp-files-win/XMLAttributes.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLAttributes.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLConstructorException.cs b/src/bindings/csharp/csharp-files-win/XMLConstructorException.cs
index 23a910c..831b024 100644
--- a/src/bindings/csharp/csharp-files-win/XMLConstructorException.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLConstructorException.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLError.cs b/src/bindings/csharp/csharp-files-win/XMLError.cs
index 912cf3b..c304606 100644
--- a/src/bindings/csharp/csharp-files-win/XMLError.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLError.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLErrorLog.cs b/src/bindings/csharp/csharp-files-win/XMLErrorLog.cs
index 6cf7d18..151d30b 100644
--- a/src/bindings/csharp/csharp-files-win/XMLErrorLog.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLErrorLog.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLInputStream.cs b/src/bindings/csharp/csharp-files-win/XMLInputStream.cs
index e0b8760..fd7c4ae 100644
--- a/src/bindings/csharp/csharp-files-win/XMLInputStream.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLInputStream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLNamespaces.cs b/src/bindings/csharp/csharp-files-win/XMLNamespaces.cs
index 8b32898..8d65160 100644
--- a/src/bindings/csharp/csharp-files-win/XMLNamespaces.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLNamespaces.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLNode.cs b/src/bindings/csharp/csharp-files-win/XMLNode.cs
index 5d9588c..41fa710 100644
--- a/src/bindings/csharp/csharp-files-win/XMLNode.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLNode.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLOutputStream.cs b/src/bindings/csharp/csharp-files-win/XMLOutputStream.cs
index df6525e..3380efe 100644
--- a/src/bindings/csharp/csharp-files-win/XMLOutputStream.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLOutputStream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -877,9 +877,38 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    *
    * @param programVersion an optional version identification string to write
    * as a comment in the output stream.
+   *
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
+   */ public
+ void writeComment(string programName, string programVersion, bool writeTimestamp) {
+    libsbmlPINVOKE.XMLOutputStream_writeComment__SWIG_0(swigCPtr, programName, programVersion, writeTimestamp);
+  }
+
+  
+/**
+   * Writes an XML comment with the name and version of this program.
+   *
+   * The XML comment has the following form:
+   * @verbatim
+<!-- Created by <program name> version <program version>
+on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
+ at endverbatim
+   *
+   * See the class constructor for more information about this program
+   * comment.
+   *
+   * @param programName an optional program name to write as a comment
+   * in the output stream.
+   *
+   * @param programVersion an optional version identification string to write
+   * as a comment in the output stream.
+   *
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
    */ public
  void writeComment(string programName, string programVersion) {
-    libsbmlPINVOKE.XMLOutputStream_writeComment(swigCPtr, programName, programVersion);
+    libsbmlPINVOKE.XMLOutputStream_writeComment__SWIG_1(swigCPtr, programName, programVersion);
   }
 
   
@@ -940,6 +969,87 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
     libsbmlPINVOKE.XMLOutputStream_setSBMLNamespaces(swigCPtr, SBMLNamespaces.getCPtr(sbmlns));
   }
 
+  
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   */ public
+ static bool getWriteComment() {
+    bool ret = libsbmlPINVOKE.XMLOutputStream_getWriteComment();
+    return ret;
+  }
+
+  
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   *
+   * @param writeComment the flag
+   */ public
+ static void setWriteComment(bool writeComment) {
+    libsbmlPINVOKE.XMLOutputStream_setWriteComment(writeComment);
+  }
+
+  
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   */ public
+ static bool getWriteTimestamp() {
+    bool ret = libsbmlPINVOKE.XMLOutputStream_getWriteTimestamp();
+    return ret;
+  }
+
+  
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   *
+   * @param writeTimestamp the flag
+   */ public
+ static void setWriteTimestamp(bool writeTimestamp) {
+    libsbmlPINVOKE.XMLOutputStream_setWriteTimestamp(writeTimestamp);
+  }
+
+  
+/**
+   * @return the name of the library to be used in comments ('libSBML' by default)
+   */ public
+ static string getLibraryName() {
+    string ret = libsbmlPINVOKE.XMLOutputStream_getLibraryName();
+    return ret;
+  }
+
+  
+/**
+   * sets the name of the library writing the XML
+
+   * @param libraryName the name of the library to be used in comments
+   */ public
+ static void setLibraryName(string libraryName) {
+    libsbmlPINVOKE.XMLOutputStream_setLibraryName(libraryName);
+  }
+
+  
+/**
+   * @return a string representing the version of the library writing the output.
+   *         This is the value of getLibSBMLDottedVersion() by default.
+   */ public
+ static string getLibraryVersion() {
+    string ret = libsbmlPINVOKE.XMLOutputStream_getLibraryVersion();
+    return ret;
+  }
+
+  
+/**
+   * sets the name of the library writing the output
+   *
+   * @param libraryVersion the version information as string
+   */ public
+ static void setLibraryVersion(string libraryVersion) {
+    libsbmlPINVOKE.XMLOutputStream_setLibraryVersion(libraryVersion);
+  }
+
 }
 
 }
diff --git a/src/bindings/csharp/csharp-files-win/XMLOwningOutputFileStream.cs b/src/bindings/csharp/csharp-files-win/XMLOwningOutputFileStream.cs
index 5a27bb3..899de4f 100644
--- a/src/bindings/csharp/csharp-files-win/XMLOwningOutputFileStream.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLOwningOutputFileStream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLOwningOutputStringStream.cs b/src/bindings/csharp/csharp-files-win/XMLOwningOutputStringStream.cs
index 611e0ba..c4492d0 100644
--- a/src/bindings/csharp/csharp-files-win/XMLOwningOutputStringStream.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLOwningOutputStringStream.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLToken.cs b/src/bindings/csharp/csharp-files-win/XMLToken.cs
index 1012d84..4f96d3b 100644
--- a/src/bindings/csharp/csharp-files-win/XMLToken.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLToken.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/XMLTriple.cs b/src/bindings/csharp/csharp-files-win/XMLTriple.cs
index 2f876b0..831643b 100644
--- a/src/bindings/csharp/csharp-files-win/XMLTriple.cs
+++ b/src/bindings/csharp/csharp-files-win/XMLTriple.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files-win/libsbml.cs b/src/bindings/csharp/csharp-files-win/libsbml.cs
index 9e437c9..3469c68 100644
--- a/src/bindings/csharp/csharp-files-win/libsbml.cs
+++ b/src/bindings/csharp/csharp-files-win/libsbml.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1096,6 +1096,114 @@ if (doc.getNumErrors() > 0)
   }
 
   
+/**
+ * This method takes a model qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a model qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+ * the string <code>'isDescribedBy'</code>.
+ *
+ * @param type The @if clike ModelQualifierType_t at endif value to
+ * translate. @ifnot clike The value should be a libSBML constant whose
+ * name begins with @c BQM_, such as (for example)
+ * @link libsbml#BQM_IS BQM_IS at endlink.@endif
+ *
+ * @return a human readable qualifier name for the given qualifier type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static string ModelQualifierType_toString(int type) {
+    string ret = libsbmlPINVOKE.ModelQualifierType_toString(type);
+    return ret;
+  }
+
+  
+/**
+ * This method takes a biol qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a biol qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+ * the string <code>'hasVersion'</code>.
+ *
+ * @param type The @if clike BiolQualifierType_t at endif value to
+ * translate. @ifnot clike The value should be a constant whose name
+ * begins with @c BQB_, such as (for example)
+ * @link libsbml#BQB_IS BQB_IS at endlink.@endif
+ *
+ * @return a human readable qualifier name for the given type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static string BiolQualifierType_toString(int type) {
+    string ret = libsbmlPINVOKE.BiolQualifierType_toString(type);
+    return ret;
+  }
+
+  
+/**
+ * This method takes a a string and returns a model qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a model qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>'isDescribedBy'</code> will return the qualifier
+ * <code>BQM_IS_DESCRIBED_BY</code>.
+ *
+ * @param s The string to translate to a @if clike ModelQualifierType_t
+ * value at else libSBML constant value representing a model qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static int ModelQualifierType_fromString(string s) {
+    int ret = libsbmlPINVOKE.ModelQualifierType_fromString(s);
+    return ret;
+  }
+
+  
+/**
+ * This method takes a a string and returns a biol qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a biol qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>'hasVersion'</code> will return the qualifier
+ * <code>BQB_HAS_VERSION</code>.
+ *
+ * @param s The string to translate to a @if clike BiolQualifierType_t
+ * value at else libSBML constant value representing a biological qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static int BiolQualifierType_fromString(string s) {
+    int ret = libsbmlPINVOKE.BiolQualifierType_fromString(s);
+    return ret;
+  }
+
+  
 /** */ /* libsbml-internal */ public
  static bool representsNumber(int type) {
     bool ret = libsbmlPINVOKE.representsNumber(type);
@@ -1366,7 +1474,7 @@ if (doc.getNumErrors() > 0)
  * @sbmlfunction{parseL3Formula, String} and
  * @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
  * system (i.e., what is provided by @sbmlfunction{formulaToString, String}
- * and @sbmlfunction{parseFormula, ASTNode}) is provided 
+ * and @sbmlfunction{parseFormula, ASTNode}) is provided
  * untouched for backwards compatibility.
  *
  *
@@ -1800,7 +1908,7 @@ if (doc.getNumErrors() > 0)
  * @sbmlfunction{parseL3Formula, String} and
  * @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
  * system (i.e., what is provided by @sbmlfunction{formulaToString, String}
- * and @sbmlfunction{parseFormula, ASTNode}) is provided 
+ * and @sbmlfunction{parseFormula, ASTNode}) is provided
  * untouched for backwards compatibility.
  *
  *
@@ -2175,7 +2283,7 @@ if (doc.getNumErrors() > 0)
  * @link libsbml#AST_NAME AST_NAME at endlink.
  * @li Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * @li LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
@@ -2495,9 +2603,9 @@ if (doc.getNumErrors() > 0)
     libsbmlPINVOKE.SBML_deleteL3Parser();
   }
 
-  public const string LIBSBML_DOTTED_VERSION = "5.12.0";
-  public const int LIBSBML_VERSION = 51200;
-  public const string LIBSBML_VERSION_STRING = "51200";
+  public const string LIBSBML_DOTTED_VERSION = "5.13.0";
+  public const int LIBSBML_VERSION = 51300;
+  public const string LIBSBML_VERSION_STRING = "51300";
   // OperationReturnValues_t 
   public const int LIBSBML_OPERATION_SUCCESS = 0;
   public const int LIBSBML_INDEX_EXCEEDS_SIZE = -1;
@@ -2514,6 +2622,7 @@ if (doc.getNumErrors() > 0)
   public const int LIBSBML_ANNOTATION_NAME_NOT_FOUND = -12;
   public const int LIBSBML_ANNOTATION_NS_NOT_FOUND = -13;
   public const int LIBSBML_MISSING_METAID = -14;
+  public const int LIBSBML_DEPRECATED_ATTRIBUTE = -15;
   public const int LIBSBML_PKG_VERSION_MISMATCH = -20;
   public const int LIBSBML_PKG_UNKNOWN = -21;
   public const int LIBSBML_PKG_UNKNOWN_VERSION = -22;
diff --git a/src/bindings/csharp/csharp-files-win/libsbmlPINVOKE.cs b/src/bindings/csharp/csharp-files-win/libsbmlPINVOKE.cs
index db7ee6b..86cc141 100644
--- a/src/bindings/csharp/csharp-files-win/libsbmlPINVOKE.cs
+++ b/src/bindings/csharp/csharp-files-win/libsbmlPINVOKE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1755,17 +1755,29 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkInternalConsistency")]
   public static extern uint SBMLDocument_checkInternalConsistency(HandleRef jarg1);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL1Compatibility")]
-  public static extern uint SBMLDocument_checkL1Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL1Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL1Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v1Compatibility")]
-  public static extern uint SBMLDocument_checkL2v1Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL1Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL1Compatibility__SWIG_1(HandleRef jarg1);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v2Compatibility")]
-  public static extern uint SBMLDocument_checkL2v2Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL2v1Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v3Compatibility")]
-  public static extern uint SBMLDocument_checkL2v3Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL2v1Compatibility__SWIG_1(HandleRef jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL2v2Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL2v2Compatibility__SWIG_1(HandleRef jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL2v3Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL2v3Compatibility__SWIG_1(HandleRef jarg1);
 
   [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v4Compatibility")]
   public static extern uint SBMLDocument_checkL2v4Compatibility(HandleRef jarg1);
@@ -4781,6 +4793,9 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_SBO_checkTerm__SWIG_1")]
   public static extern bool SBO_checkTerm__SWIG_1(int jarg1);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBO_getParentBranch")]
+  public static extern uint SBO_getParentBranch(long jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_new_SBO")]
   public static extern IntPtr new_SBO();
 
@@ -6397,8 +6412,11 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeXMLDecl")]
   public static extern void XMLOutputStream_writeXMLDecl(HandleRef jarg1);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeComment")]
-  public static extern void XMLOutputStream_writeComment(HandleRef jarg1, [MarshalAs(UnmanagedType.LPWStr)]string jarg2, [MarshalAs(UnmanagedType.LPWStr)]string jarg3);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeComment__SWIG_0")]
+  public static extern void XMLOutputStream_writeComment__SWIG_0(HandleRef jarg1, [MarshalAs(UnmanagedType.LPWStr)]string jarg2, [MarshalAs(UnmanagedType.LPWStr)]string jarg3, bool jarg4);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeComment__SWIG_1")]
+  public static extern void XMLOutputStream_writeComment__SWIG_1(HandleRef jarg1, [MarshalAs(UnmanagedType.LPWStr)]string jarg2, [MarshalAs(UnmanagedType.LPWStr)]string jarg3);
 
   [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_downIndent")]
   public static extern void XMLOutputStream_downIndent(HandleRef jarg1);
@@ -6412,6 +6430,32 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setSBMLNamespaces")]
   public static extern void XMLOutputStream_setSBMLNamespaces(HandleRef jarg1, HandleRef jarg2);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getWriteComment")]
+  public static extern bool XMLOutputStream_getWriteComment();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setWriteComment")]
+  public static extern void XMLOutputStream_setWriteComment(bool jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getWriteTimestamp")]
+  public static extern bool XMLOutputStream_getWriteTimestamp();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setWriteTimestamp")]
+  public static extern void XMLOutputStream_setWriteTimestamp(bool jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getLibraryName")]
+  [return: MarshalAs(UnmanagedType.LPWStr)]
+  public static extern string XMLOutputStream_getLibraryName();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setLibraryName")]
+  public static extern void XMLOutputStream_setLibraryName([MarshalAs(UnmanagedType.LPWStr)]string jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getLibraryVersion")]
+  [return: MarshalAs(UnmanagedType.LPWStr)]
+  public static extern string XMLOutputStream_getLibraryVersion();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setLibraryVersion")]
+  public static extern void XMLOutputStream_setLibraryVersion([MarshalAs(UnmanagedType.LPWStr)]string jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_new_XMLOwningOutputStringStream__SWIG_0")]
   public static extern IntPtr new_XMLOwningOutputStringStream__SWIG_0([MarshalAs(UnmanagedType.LPWStr)]string jarg1, bool jarg2, [MarshalAs(UnmanagedType.LPWStr)]string jarg3, [MarshalAs(UnmanagedType.LPWStr)]string jarg4);
 
@@ -6885,6 +6929,20 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_CVTerm_removeNestedCVTerm")]
   public static extern IntPtr CVTerm_removeNestedCVTerm(HandleRef jarg1, long jarg2);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_ModelQualifierType_toString")]
+  [return: MarshalAs(UnmanagedType.LPWStr)]
+  public static extern string ModelQualifierType_toString(int jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_BiolQualifierType_toString")]
+  [return: MarshalAs(UnmanagedType.LPWStr)]
+  public static extern string BiolQualifierType_toString(int jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_ModelQualifierType_fromString")]
+  public static extern int ModelQualifierType_fromString([MarshalAs(UnmanagedType.LPWStr)]string jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_BiolQualifierType_fromString")]
+  public static extern int BiolQualifierType_fromString([MarshalAs(UnmanagedType.LPWStr)]string jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_new_Date__SWIG_0")]
   public static extern IntPtr new_Date__SWIG_0(long jarg1, long jarg2, long jarg3, long jarg4, long jarg5, long jarg6, long jarg7, long jarg8, long jarg9);
 
@@ -8196,6 +8254,9 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_ASTNode_getPlugin__SWIG_2")]
   public static extern IntPtr ASTNode_getPlugin__SWIG_2(HandleRef jarg1, long jarg2);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_ASTNode_getNumPiece")]
+  public static extern uint ASTNode_getNumPiece(HandleRef jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_ASTNode_getListOfNodes")]
   public static extern IntPtr ASTNode_getListOfNodes(HandleRef jarg1);
 
diff --git a/src/bindings/csharp/csharp-files/ASTBase.cs b/src/bindings/csharp/csharp-files/ASTBase.cs
index 02d580a..d9a7afd 100644
--- a/src/bindings/csharp/csharp-files/ASTBase.cs
+++ b/src/bindings/csharp/csharp-files/ASTBase.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/ASTBasePlugin.cs b/src/bindings/csharp/csharp-files/ASTBasePlugin.cs
index 00a5a06..e62f2a6 100644
--- a/src/bindings/csharp/csharp-files/ASTBasePlugin.cs
+++ b/src/bindings/csharp/csharp-files/ASTBasePlugin.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/ASTNode.cs b/src/bindings/csharp/csharp-files/ASTNode.cs
index 0cbd954..a80cec9 100644
--- a/src/bindings/csharp/csharp-files/ASTNode.cs
+++ b/src/bindings/csharp/csharp-files/ASTNode.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -2407,6 +2407,10 @@ setValue(value, 0);
     return ret;
   }
 
+  
+/** */ /* libsbml-internal */ public
+ long getNumPiece() { return (long)libsbmlPINVOKE.ASTNode_getNumPiece(swigCPtr); }
+
   public ASTNodeList getListOfNodes() {
     IntPtr cPtr = libsbmlPINVOKE.ASTNode_getListOfNodes(swigCPtr);
     ASTNodeList ret = (cPtr == IntPtr.Zero) ? null : new ASTNodeList(cPtr, true);
diff --git a/src/bindings/csharp/csharp-files/ASTNodeList.cs b/src/bindings/csharp/csharp-files/ASTNodeList.cs
index ac59b9a..bed0f9f 100644
--- a/src/bindings/csharp/csharp-files/ASTNodeList.cs
+++ b/src/bindings/csharp/csharp-files/ASTNodeList.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/AlgebraicRule.cs b/src/bindings/csharp/csharp-files/AlgebraicRule.cs
index db34e76..b04c4fc 100644
--- a/src/bindings/csharp/csharp-files/AlgebraicRule.cs
+++ b/src/bindings/csharp/csharp-files/AlgebraicRule.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/AssignmentRule.cs b/src/bindings/csharp/csharp-files/AssignmentRule.cs
index faf5d5b..cd04aca 100644
--- a/src/bindings/csharp/csharp-files/AssignmentRule.cs
+++ b/src/bindings/csharp/csharp-files/AssignmentRule.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/CVTerm.cs b/src/bindings/csharp/csharp-files/CVTerm.cs
index f1a6c2b..910866b 100644
--- a/src/bindings/csharp/csharp-files/CVTerm.cs
+++ b/src/bindings/csharp/csharp-files/CVTerm.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -333,7 +333,7 @@ public class CVTerm : IDisposable {
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    *
-   * @param type a @if clike #QualifierType_t value at else qualifier type at endif
+   * @param type a @if clike #QualifierType_t value at else qualifier type at endif.
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif
    */ public
@@ -378,7 +378,7 @@ public class CVTerm : IDisposable {
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    *
-   * @param type a @if clike #QualifierType_t value at else qualifier type at endif
+   * @param type a @if clike #QualifierType_t value at else qualifier type at endif.
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif
    */ public
@@ -510,9 +510,9 @@ public class CVTerm : IDisposable {
    * of this object or @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
    * (the default).
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */ public
  int getQualifierType() {
     int ret = libsbmlPINVOKE.CVTerm_getQualifierType__SWIG_0(swigCPtr);
@@ -719,9 +719,9 @@ public class CVTerm : IDisposable {
    *
    * @return the XMLAttributes that store the resources of this CVTerm.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::addResource(string resource)
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getQualifierType()
+   * @see addResource(string resource)
+   * @see getResourceURI(unsigned int n)
    */ public
  XMLAttributes getResources() {
     IntPtr cPtr = libsbmlPINVOKE.CVTerm_getResources__SWIG_0(swigCPtr);
@@ -772,8 +772,8 @@ public class CVTerm : IDisposable {
    * @return the number of resources in the set of XMLAttributes
    * of this CVTerm.
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getResources()
+   * @see getResourceURI(unsigned int n)
    */ public
  long getNumResources() { return (long)libsbmlPINVOKE.CVTerm_getNumResources__SWIG_0(swigCPtr); }
 
@@ -820,13 +820,13 @@ public class CVTerm : IDisposable {
    * are stored in this CVTerm object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    *
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    *
    * @return string representing the value of the nth resource
    * in the set of XMLAttributes of this CVTerm.
    *
-   * @see CVTerm::getNumResources()
-   * @see CVTerm::getQualifierType()
+   * @see getNumResources()
+   * @see getQualifierType()
    */ public
  string getResourceURI(long n) {
     string ret = libsbmlPINVOKE.CVTerm_getResourceURI__SWIG_0(swigCPtr, n);
@@ -847,7 +847,7 @@ public class CVTerm : IDisposable {
  * returned by this function are:
  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    *
-   * @see CVTerm::getQualifierType()
+   * @see getQualifierType()
    */ public
  int setQualifierType(int type) {
     int ret = libsbmlPINVOKE.CVTerm_setQualifierType(swigCPtr, type);
@@ -859,7 +859,7 @@ public class CVTerm : IDisposable {
    * Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * of this CVTerm object.
    *
-   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif
+   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif.
    *
    *
  * @return integer value indicating success/failure of the
@@ -874,8 +874,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setModelQualifierType(int type) {
     int ret = libsbmlPINVOKE.CVTerm_setModelQualifierType__SWIG_0(swigCPtr, type);
@@ -903,8 +903,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif
    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setBiologicalQualifierType(int type) {
     int ret = libsbmlPINVOKE.CVTerm_setBiologicalQualifierType__SWIG_0(swigCPtr, type);
@@ -916,7 +916,7 @@ public class CVTerm : IDisposable {
    * Sets the @if clike #ModelQualifierType_t at else model qualifier
    * type at endif value of this CVTerm object.
    *
-   * @param qualifier the string representing a model qualifier
+   * @param qualifier the string representing a model qualifier.
    *
    *
  * @return integer value indicating success/failure of the
@@ -931,8 +931,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif
    * will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setModelQualifierType(string qualifier) {
     int ret = libsbmlPINVOKE.CVTerm_setModelQualifierType__SWIG_1(swigCPtr, qualifier);
@@ -945,7 +945,7 @@ public class CVTerm : IDisposable {
    * Sets the @if clike #BiolQualifierType_t at else biology qualifier
    * type code at endif of this CVTerm object.
    *
-   * @param qualifier the string representing a biology qualifier
+   * @param qualifier the string representing a biology qualifier.
    *
    *
  * @return integer value indicating success/failure of the
@@ -960,8 +960,8 @@ public class CVTerm : IDisposable {
    * then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif
    * will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */ public
  int setBiologicalQualifierType(string qualifier) {
     int ret = libsbmlPINVOKE.CVTerm_setBiologicalQualifierType__SWIG_1(swigCPtr, qualifier);
@@ -1056,11 +1056,11 @@ public class CVTerm : IDisposable {
  * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::removeResource(string resource)
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see removeResource(string resource)
+   * @see getQualifierType()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */ public
  int addResource(string resource) {
     int ret = libsbmlPINVOKE.CVTerm_addResource(swigCPtr, resource);
@@ -1085,7 +1085,7 @@ public class CVTerm : IDisposable {
    * @li @link libsbml#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE at endlink
    * @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
    *
-   * @see CVTerm::addResource(string resource)
+   * @see addResource(string resource)
    */ public
  int removeResource(string resource) {
     int ret = libsbmlPINVOKE.CVTerm_removeResource(swigCPtr, resource);
@@ -1138,7 +1138,7 @@ public class CVTerm : IDisposable {
    * Returns the nth CVTerm in the list of CVTerms of this CVTerm
    * object.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return the nth CVTerm in the list of CVTerms for this CVTerm object.
    */ public
@@ -1187,7 +1187,7 @@ public class CVTerm : IDisposable {
    * Removes the nth CVTerm in the list of CVTerms of this CVTerm
    * object and returns a pointer to it.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return a pointer to the nth CVTerm in the list of CVTerms for this 
    * CVTerm object.
diff --git a/src/bindings/csharp/csharp-files/CVTermList.cs b/src/bindings/csharp/csharp-files/CVTermList.cs
index 5d2ee7d..f21262c 100644
--- a/src/bindings/csharp/csharp-files/CVTermList.cs
+++ b/src/bindings/csharp/csharp-files/CVTermList.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Compartment.cs b/src/bindings/csharp/csharp-files/Compartment.cs
index 7e464a2..f29c158 100644
--- a/src/bindings/csharp/csharp-files/Compartment.cs
+++ b/src/bindings/csharp/csharp-files/Compartment.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1655,9 +1655,9 @@ public class Compartment : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/CompartmentType.cs b/src/bindings/csharp/csharp-files/CompartmentType.cs
index 504ce9d..2226f92 100644
--- a/src/bindings/csharp/csharp-files/CompartmentType.cs
+++ b/src/bindings/csharp/csharp-files/CompartmentType.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -416,9 +416,9 @@ public class CompartmentType : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/Constraint.cs b/src/bindings/csharp/csharp-files/Constraint.cs
index 3391356..e3ea9a1 100644
--- a/src/bindings/csharp/csharp-files/Constraint.cs
+++ b/src/bindings/csharp/csharp-files/Constraint.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -532,9 +532,9 @@ public class Constraint : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/ConversionOption.cs b/src/bindings/csharp/csharp-files/ConversionOption.cs
index 71c578b..1b0375e 100644
--- a/src/bindings/csharp/csharp-files/ConversionOption.cs
+++ b/src/bindings/csharp/csharp-files/ConversionOption.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/ConversionProperties.cs b/src/bindings/csharp/csharp-files/ConversionProperties.cs
index fc1bcf2..970d258 100644
--- a/src/bindings/csharp/csharp-files/ConversionProperties.cs
+++ b/src/bindings/csharp/csharp-files/ConversionProperties.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Date.cs b/src/bindings/csharp/csharp-files/Date.cs
index ff69f31..832a94d 100644
--- a/src/bindings/csharp/csharp-files/Date.cs
+++ b/src/bindings/csharp/csharp-files/Date.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/DateList.cs b/src/bindings/csharp/csharp-files/DateList.cs
index 46f3243..c1a6d31 100644
--- a/src/bindings/csharp/csharp-files/DateList.cs
+++ b/src/bindings/csharp/csharp-files/DateList.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Delay.cs b/src/bindings/csharp/csharp-files/Delay.cs
index 0237d6c..42d0276 100644
--- a/src/bindings/csharp/csharp-files/Delay.cs
+++ b/src/bindings/csharp/csharp-files/Delay.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -460,9 +460,9 @@ public class Delay : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/ElementFilter.cs b/src/bindings/csharp/csharp-files/ElementFilter.cs
index af211da..d53bbbe 100644
--- a/src/bindings/csharp/csharp-files/ElementFilter.cs
+++ b/src/bindings/csharp/csharp-files/ElementFilter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Event.cs b/src/bindings/csharp/csharp-files/Event.cs
index 4e2d941..4986558 100644
--- a/src/bindings/csharp/csharp-files/Event.cs
+++ b/src/bindings/csharp/csharp-files/Event.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1281,9 +1281,9 @@ public class Event : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/EventAssignment.cs b/src/bindings/csharp/csharp-files/EventAssignment.cs
index 167fe82..8b9e097 100644
--- a/src/bindings/csharp/csharp-files/EventAssignment.cs
+++ b/src/bindings/csharp/csharp-files/EventAssignment.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -544,9 +544,9 @@ public class EventAssignment : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/FunctionDefinition.cs b/src/bindings/csharp/csharp-files/FunctionDefinition.cs
index 2b603f3..d50d26d 100644
--- a/src/bindings/csharp/csharp-files/FunctionDefinition.cs
+++ b/src/bindings/csharp/csharp-files/FunctionDefinition.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -524,9 +524,9 @@ public class FunctionDefinition : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/ISBMLExtensionNamespaces.cs b/src/bindings/csharp/csharp-files/ISBMLExtensionNamespaces.cs
index 8b0d186..a93899a 100644
--- a/src/bindings/csharp/csharp-files/ISBMLExtensionNamespaces.cs
+++ b/src/bindings/csharp/csharp-files/ISBMLExtensionNamespaces.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/IdList.cs b/src/bindings/csharp/csharp-files/IdList.cs
index f039e5a..5d927b5 100644
--- a/src/bindings/csharp/csharp-files/IdList.cs
+++ b/src/bindings/csharp/csharp-files/IdList.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/IdentifierTransformer.cs b/src/bindings/csharp/csharp-files/IdentifierTransformer.cs
index edde452..c5999ca 100644
--- a/src/bindings/csharp/csharp-files/IdentifierTransformer.cs
+++ b/src/bindings/csharp/csharp-files/IdentifierTransformer.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/InitialAssignment.cs b/src/bindings/csharp/csharp-files/InitialAssignment.cs
index 45f4ed5..87d8fe6 100644
--- a/src/bindings/csharp/csharp-files/InitialAssignment.cs
+++ b/src/bindings/csharp/csharp-files/InitialAssignment.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -526,9 +526,9 @@ public class InitialAssignment : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/KineticLaw.cs b/src/bindings/csharp/csharp-files/KineticLaw.cs
index 3bb6442..920efc5 100644
--- a/src/bindings/csharp/csharp-files/KineticLaw.cs
+++ b/src/bindings/csharp/csharp-files/KineticLaw.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1020,9 +1020,9 @@ public class KineticLaw : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/L3ParserSettings.cs b/src/bindings/csharp/csharp-files/L3ParserSettings.cs
index dcd0bdd..27f1eb5 100644
--- a/src/bindings/csharp/csharp-files/L3ParserSettings.cs
+++ b/src/bindings/csharp/csharp-files/L3ParserSettings.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -84,7 +84,7 @@ namespace libsbmlcs {
  * @link libsbml#AST_NAME AST_NAME at endlink.
  * @li Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * @li LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
diff --git a/src/bindings/csharp/csharp-files/ListOf.cs b/src/bindings/csharp/csharp-files/ListOf.cs
index 80896ab..3453690 100644
--- a/src/bindings/csharp/csharp-files/ListOf.cs
+++ b/src/bindings/csharp/csharp-files/ListOf.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -42,11 +42,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -623,9 +618,9 @@ public class ListOf : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/ListOfCompartmentTypes.cs b/src/bindings/csharp/csharp-files/ListOfCompartmentTypes.cs
index cd5008b..f79e93b 100644
--- a/src/bindings/csharp/csharp-files/ListOfCompartmentTypes.cs
+++ b/src/bindings/csharp/csharp-files/ListOfCompartmentTypes.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfCompartments.cs b/src/bindings/csharp/csharp-files/ListOfCompartments.cs
index 9df01f1..9dcfb15 100644
--- a/src/bindings/csharp/csharp-files/ListOfCompartments.cs
+++ b/src/bindings/csharp/csharp-files/ListOfCompartments.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfConstraints.cs b/src/bindings/csharp/csharp-files/ListOfConstraints.cs
index cf32828..991897f 100644
--- a/src/bindings/csharp/csharp-files/ListOfConstraints.cs
+++ b/src/bindings/csharp/csharp-files/ListOfConstraints.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfEventAssignments.cs b/src/bindings/csharp/csharp-files/ListOfEventAssignments.cs
index 919d562..a010c26 100644
--- a/src/bindings/csharp/csharp-files/ListOfEventAssignments.cs
+++ b/src/bindings/csharp/csharp-files/ListOfEventAssignments.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfEvents.cs b/src/bindings/csharp/csharp-files/ListOfEvents.cs
index 5edc072..4b21984 100644
--- a/src/bindings/csharp/csharp-files/ListOfEvents.cs
+++ b/src/bindings/csharp/csharp-files/ListOfEvents.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfFunctionDefinitions.cs b/src/bindings/csharp/csharp-files/ListOfFunctionDefinitions.cs
index fe5adc3..80679c9 100644
--- a/src/bindings/csharp/csharp-files/ListOfFunctionDefinitions.cs
+++ b/src/bindings/csharp/csharp-files/ListOfFunctionDefinitions.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfInitialAssignments.cs b/src/bindings/csharp/csharp-files/ListOfInitialAssignments.cs
index e9d5c61..2d3dd7a 100644
--- a/src/bindings/csharp/csharp-files/ListOfInitialAssignments.cs
+++ b/src/bindings/csharp/csharp-files/ListOfInitialAssignments.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfLocalParameters.cs b/src/bindings/csharp/csharp-files/ListOfLocalParameters.cs
index 2f16b25..3cf287a 100644
--- a/src/bindings/csharp/csharp-files/ListOfLocalParameters.cs
+++ b/src/bindings/csharp/csharp-files/ListOfLocalParameters.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfParameters.cs b/src/bindings/csharp/csharp-files/ListOfParameters.cs
index ff91b9c..b3f0af5 100644
--- a/src/bindings/csharp/csharp-files/ListOfParameters.cs
+++ b/src/bindings/csharp/csharp-files/ListOfParameters.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfReactions.cs b/src/bindings/csharp/csharp-files/ListOfReactions.cs
index 34c2306..66d657e 100644
--- a/src/bindings/csharp/csharp-files/ListOfReactions.cs
+++ b/src/bindings/csharp/csharp-files/ListOfReactions.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -273,10 +268,9 @@ public class ListOfReactions : ListOf {
    * @see size()
    */ public new
  Reaction get(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_get__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_get__SWIG_0(swigCPtr, n), false);
+	return ret;
+}
 
   
 /**
@@ -291,11 +285,10 @@ public class ListOfReactions : ListOf {
    * @see size()
    */ public new
  Reaction get(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_get__SWIG_2(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_get__SWIG_2(swigCPtr, sid), false);
     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
-    return ret;
-  }
+	return ret;
+}
 
   
 /**
@@ -309,10 +302,9 @@ public class ListOfReactions : ListOf {
    * @see size()
    */ public new
  Reaction remove(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_remove__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_remove__SWIG_0(swigCPtr, n), true);
+	return ret;
+}
 
   
 /**
@@ -328,11 +320,10 @@ public class ListOfReactions : ListOf {
    * returned item.
    */ public new
  Reaction remove(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.ListOfReactions_remove__SWIG_1(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.ListOfReactions_remove__SWIG_1(swigCPtr, sid), true);
     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
-    return ret;
-  }
+	return ret;
+}
 
 }
 
diff --git a/src/bindings/csharp/csharp-files/ListOfRules.cs b/src/bindings/csharp/csharp-files/ListOfRules.cs
index 916a665..255344b 100644
--- a/src/bindings/csharp/csharp-files/ListOfRules.cs
+++ b/src/bindings/csharp/csharp-files/ListOfRules.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfSpecies.cs b/src/bindings/csharp/csharp-files/ListOfSpecies.cs
index f50e420..331a5d0 100644
--- a/src/bindings/csharp/csharp-files/ListOfSpecies.cs
+++ b/src/bindings/csharp/csharp-files/ListOfSpecies.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfSpeciesReferences.cs b/src/bindings/csharp/csharp-files/ListOfSpeciesReferences.cs
index 701a8d9..d1996ac 100644
--- a/src/bindings/csharp/csharp-files/ListOfSpeciesReferences.cs
+++ b/src/bindings/csharp/csharp-files/ListOfSpeciesReferences.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfSpeciesTypes.cs b/src/bindings/csharp/csharp-files/ListOfSpeciesTypes.cs
index 7c0e6c1..bfd6dbb 100644
--- a/src/bindings/csharp/csharp-files/ListOfSpeciesTypes.cs
+++ b/src/bindings/csharp/csharp-files/ListOfSpeciesTypes.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfUnitDefinitions.cs b/src/bindings/csharp/csharp-files/ListOfUnitDefinitions.cs
index ffd1760..9ccfbfc 100644
--- a/src/bindings/csharp/csharp-files/ListOfUnitDefinitions.cs
+++ b/src/bindings/csharp/csharp-files/ListOfUnitDefinitions.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -33,11 +33,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/ListOfUnits.cs b/src/bindings/csharp/csharp-files/ListOfUnits.cs
index c184972..cfabdf1 100644
--- a/src/bindings/csharp/csharp-files/ListOfUnits.cs
+++ b/src/bindings/csharp/csharp-files/ListOfUnits.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -35,11 +35,6 @@ namespace libsbmlcs {
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/csharp/csharp-files/LocalParameter.cs b/src/bindings/csharp/csharp-files/LocalParameter.cs
index 2de8b6e..e32744a 100644
--- a/src/bindings/csharp/csharp-files/LocalParameter.cs
+++ b/src/bindings/csharp/csharp-files/LocalParameter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -331,9 +331,9 @@ public class LocalParameter : Parameter {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/MathML.cs b/src/bindings/csharp/csharp-files/MathML.cs
index 3883740..0ff817f 100644
--- a/src/bindings/csharp/csharp-files/MathML.cs
+++ b/src/bindings/csharp/csharp-files/MathML.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Model.cs b/src/bindings/csharp/csharp-files/Model.cs
index 2858087..69674e7 100644
--- a/src/bindings/csharp/csharp-files/Model.cs
+++ b/src/bindings/csharp/csharp-files/Model.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1980,10 +1980,9 @@ public class Model : SBase {
    * @see addReaction(Reaction r)
    */ public
  Reaction createReaction() {
-    IntPtr cPtr = libsbmlPINVOKE.Model_createReaction(swigCPtr);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_createReaction(swigCPtr), false);
+	return ret;
+}
 
   
 /**
@@ -2924,10 +2923,9 @@ public class Model : SBase {
    * @return the nth Reaction of this Model.
    */ public
  Reaction getReaction(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_getReaction__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getReaction__SWIG_0(swigCPtr, n), false);
+	return ret;
+}
 
   
 /**
@@ -2939,11 +2937,10 @@ public class Model : SBase {
    * if no such Reaction exists.
    */ public
  Reaction getReaction(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_getReaction__SWIG_2(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, false);
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_getReaction__SWIG_2(swigCPtr, sid), false);
     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
-    return ret;
-  }
+	return ret;
+}
 
   
 /**
@@ -3441,9 +3438,9 @@ public class Model : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -3956,10 +3953,9 @@ public class Model : SBase {
    *
    */ public
  Reaction removeReaction(long n) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_removeReaction__SWIG_0(swigCPtr, n);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeReaction__SWIG_0(swigCPtr, n), true);
+	return ret;
+}
 
   
 /**
@@ -3975,11 +3971,10 @@ public class Model : SBase {
    *
    */ public
  Reaction removeReaction(string sid) {
-    IntPtr cPtr = libsbmlPINVOKE.Model_removeReaction__SWIG_1(swigCPtr, sid);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Model_removeReaction__SWIG_1(swigCPtr, sid), true);
     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
-    return ret;
-  }
+	return ret;
+}
 
   
 /**
diff --git a/src/bindings/csharp/csharp-files/ModelCreator.cs b/src/bindings/csharp/csharp-files/ModelCreator.cs
index 0710898..c9728a4 100644
--- a/src/bindings/csharp/csharp-files/ModelCreator.cs
+++ b/src/bindings/csharp/csharp-files/ModelCreator.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/ModelCreatorList.cs b/src/bindings/csharp/csharp-files/ModelCreatorList.cs
index c4ec9d5..a273610 100644
--- a/src/bindings/csharp/csharp-files/ModelCreatorList.cs
+++ b/src/bindings/csharp/csharp-files/ModelCreatorList.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/ModelHistory.cs b/src/bindings/csharp/csharp-files/ModelHistory.cs
index 4c36c5a..42e5d0c 100644
--- a/src/bindings/csharp/csharp-files/ModelHistory.cs
+++ b/src/bindings/csharp/csharp-files/ModelHistory.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/ModifierSpeciesReference.cs b/src/bindings/csharp/csharp-files/ModifierSpeciesReference.cs
index bc803a0..216ee1e 100644
--- a/src/bindings/csharp/csharp-files/ModifierSpeciesReference.cs
+++ b/src/bindings/csharp/csharp-files/ModifierSpeciesReference.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -208,9 +208,9 @@ public class ModifierSpeciesReference : SimpleSpeciesReference {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/OFStream.cs b/src/bindings/csharp/csharp-files/OFStream.cs
index 6830d3b..7acacf4 100644
--- a/src/bindings/csharp/csharp-files/OFStream.cs
+++ b/src/bindings/csharp/csharp-files/OFStream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/OStream.cs b/src/bindings/csharp/csharp-files/OStream.cs
index 0c7cd2e..98a33be 100644
--- a/src/bindings/csharp/csharp-files/OStream.cs
+++ b/src/bindings/csharp/csharp-files/OStream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/OStringStream.cs b/src/bindings/csharp/csharp-files/OStringStream.cs
index 16f4205..68193dc 100644
--- a/src/bindings/csharp/csharp-files/OStringStream.cs
+++ b/src/bindings/csharp/csharp-files/OStringStream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Parameter.cs b/src/bindings/csharp/csharp-files/Parameter.cs
index 0368e11..a7d4144 100644
--- a/src/bindings/csharp/csharp-files/Parameter.cs
+++ b/src/bindings/csharp/csharp-files/Parameter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -810,9 +810,9 @@ public class Parameter : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/Priority.cs b/src/bindings/csharp/csharp-files/Priority.cs
index a911e20..6605551 100644
--- a/src/bindings/csharp/csharp-files/Priority.cs
+++ b/src/bindings/csharp/csharp-files/Priority.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -383,9 +383,9 @@ public class Priority : SBase {
    * @link libsbml#SBML_PRIORITY SBML_PRIORITY at endlink (default).   *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/RDFAnnotationParser.cs b/src/bindings/csharp/csharp-files/RDFAnnotationParser.cs
index 7802b42..90d3fe6 100644
--- a/src/bindings/csharp/csharp-files/RDFAnnotationParser.cs
+++ b/src/bindings/csharp/csharp-files/RDFAnnotationParser.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/RateRule.cs b/src/bindings/csharp/csharp-files/RateRule.cs
index 7d3db7a..d96cefe 100644
--- a/src/bindings/csharp/csharp-files/RateRule.cs
+++ b/src/bindings/csharp/csharp-files/RateRule.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Reaction.cs b/src/bindings/csharp/csharp-files/Reaction.cs
index 701a1a7..b0354a2 100644
--- a/src/bindings/csharp/csharp-files/Reaction.cs
+++ b/src/bindings/csharp/csharp-files/Reaction.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -286,10 +286,9 @@ public class Reaction : SBase {
    * @return the (deep) copy of this Reaction object.
    */ public new
  Reaction clone() {
-    IntPtr cPtr = libsbmlPINVOKE.Reaction_clone(swigCPtr);
-    Reaction ret = (cPtr == IntPtr.Zero) ? null : new Reaction(cPtr, true);
-    return ret;
-  }
+	Reaction ret = (Reaction) libsbml.DowncastSBase(libsbmlPINVOKE.Reaction_clone(swigCPtr), true);
+	return ret;
+}
 
   
 /**
@@ -1840,9 +1839,9 @@ public class Reaction : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/Rule.cs b/src/bindings/csharp/csharp-files/Rule.cs
index f543ca3..e7289ad 100644
--- a/src/bindings/csharp/csharp-files/Rule.cs
+++ b/src/bindings/csharp/csharp-files/Rule.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -809,9 +809,9 @@ public class Rule : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/SBMLConstructorException.cs b/src/bindings/csharp/csharp-files/SBMLConstructorException.cs
index 089713b..917de33 100644
--- a/src/bindings/csharp/csharp-files/SBMLConstructorException.cs
+++ b/src/bindings/csharp/csharp-files/SBMLConstructorException.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLConverter.cs b/src/bindings/csharp/csharp-files/SBMLConverter.cs
index 333bea8..7a35a3c 100644
--- a/src/bindings/csharp/csharp-files/SBMLConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLConverterRegistry.cs b/src/bindings/csharp/csharp-files/SBMLConverterRegistry.cs
index f33b06e..63c8d47 100644
--- a/src/bindings/csharp/csharp-files/SBMLConverterRegistry.cs
+++ b/src/bindings/csharp/csharp-files/SBMLConverterRegistry.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLDocument.cs b/src/bindings/csharp/csharp-files/SBMLDocument.cs
index 846900c..d031e5a 100644
--- a/src/bindings/csharp/csharp-files/SBMLDocument.cs
+++ b/src/bindings/csharp/csharp-files/SBMLDocument.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1289,7 +1289,33 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL1Compatibility(swigCPtr); }
+ long checkL1Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL1Compatibility__SWIG_0(swigCPtr, inConversion); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 1 and can be converted
+   * to Level 1.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL1Compatibility__SWIG_1(swigCPtr); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 1 and can
+   * be converted to Level 2 Version 1.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v1Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v1Compatibility__SWIG_0(swigCPtr, inConversion); }
 
   
 /**
@@ -1302,7 +1328,7 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL2v1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v1Compatibility(swigCPtr); }
+ long checkL2v1Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v1Compatibility__SWIG_1(swigCPtr); }
 
   
 /**
@@ -1315,7 +1341,33 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL2v2Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v2Compatibility(swigCPtr); }
+ long checkL2v2Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v2Compatibility__SWIG_0(swigCPtr, inConversion); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 2 and can
+   * be converted to Level 2 Version 2.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v2Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v2Compatibility__SWIG_1(swigCPtr); }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 3 and can
+   * be converted to Level 2 Version 3.
+   *
+   * Callers should query the results of the consistency check by calling
+   * SBMLDocument::getError(@if java long at endif).
+   *
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v3Compatibility(bool inConversion) { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v3Compatibility__SWIG_0(swigCPtr, inConversion); }
 
   
 /**
@@ -1328,7 +1380,7 @@ public class SBMLDocument : SBase {
    *
    * @return the number of failed checks (errors) encountered.
    */ public
- long checkL2v3Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v3Compatibility(swigCPtr); }
+ long checkL2v3Compatibility() { return (long)libsbmlPINVOKE.SBMLDocument_checkL2v3Compatibility__SWIG_1(swigCPtr); }
 
   
 /**
@@ -1581,9 +1633,9 @@ public class SBMLDocument : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/SBMLDocumentPlugin.cs b/src/bindings/csharp/csharp-files/SBMLDocumentPlugin.cs
index f538a41..22f250e 100644
--- a/src/bindings/csharp/csharp-files/SBMLDocumentPlugin.cs
+++ b/src/bindings/csharp/csharp-files/SBMLDocumentPlugin.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLError.cs b/src/bindings/csharp/csharp-files/SBMLError.cs
index 412fbe7..ddf104e 100644
--- a/src/bindings/csharp/csharp-files/SBMLError.cs
+++ b/src/bindings/csharp/csharp-files/SBMLError.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLErrorLog.cs b/src/bindings/csharp/csharp-files/SBMLErrorLog.cs
index 7b82145..69f2e71 100644
--- a/src/bindings/csharp/csharp-files/SBMLErrorLog.cs
+++ b/src/bindings/csharp/csharp-files/SBMLErrorLog.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLExtension.cs b/src/bindings/csharp/csharp-files/SBMLExtension.cs
index 1424fe6..8324ea7 100644
--- a/src/bindings/csharp/csharp-files/SBMLExtension.cs
+++ b/src/bindings/csharp/csharp-files/SBMLExtension.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -83,7 +83,7 @@ unsigned int GroupsExtension::getDefaultPackageVersion()
  * combination for which the package can be used.  For instance, if a package
  * is only usable in SBML Level 3 Version 1, and the libSBML
  * extension for the package implements version 1 of the package, the
- * necessary method is <code>getXmlnsL3V1V1()</code>.  
+ * necessary method is <code>getXmlnsL3V1V1()</code>.
 @code{.cpp}
 string GroupsExtension::getXmlnsL3V1V1 ()
 {
diff --git a/src/bindings/csharp/csharp-files/SBMLExtensionException.cs b/src/bindings/csharp/csharp-files/SBMLExtensionException.cs
index 2a294d5..9c6daf7 100644
--- a/src/bindings/csharp/csharp-files/SBMLExtensionException.cs
+++ b/src/bindings/csharp/csharp-files/SBMLExtensionException.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLExtensionRegistry.cs b/src/bindings/csharp/csharp-files/SBMLExtensionRegistry.cs
index 52e45ba..c0d8da1 100644
--- a/src/bindings/csharp/csharp-files/SBMLExtensionRegistry.cs
+++ b/src/bindings/csharp/csharp-files/SBMLExtensionRegistry.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLExternalValidator.cs b/src/bindings/csharp/csharp-files/SBMLExternalValidator.cs
index f5ceb1e..aaf5af1 100644
--- a/src/bindings/csharp/csharp-files/SBMLExternalValidator.cs
+++ b/src/bindings/csharp/csharp-files/SBMLExternalValidator.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLFunctionDefinitionConverter.cs b/src/bindings/csharp/csharp-files/SBMLFunctionDefinitionConverter.cs
index 20907c8..7345e6b 100644
--- a/src/bindings/csharp/csharp-files/SBMLFunctionDefinitionConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLFunctionDefinitionConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLIdConverter.cs b/src/bindings/csharp/csharp-files/SBMLIdConverter.cs
index 809f59c..2029490 100644
--- a/src/bindings/csharp/csharp-files/SBMLIdConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLIdConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLInferUnitsConverter.cs b/src/bindings/csharp/csharp-files/SBMLInferUnitsConverter.cs
index 12c957a..21182c4 100644
--- a/src/bindings/csharp/csharp-files/SBMLInferUnitsConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLInferUnitsConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLInitialAssignmentConverter.cs b/src/bindings/csharp/csharp-files/SBMLInitialAssignmentConverter.cs
index e04521c..429b271 100644
--- a/src/bindings/csharp/csharp-files/SBMLInitialAssignmentConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLInitialAssignmentConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLLevel1Version1Converter.cs b/src/bindings/csharp/csharp-files/SBMLLevel1Version1Converter.cs
index ad504b7..40a86d9 100644
--- a/src/bindings/csharp/csharp-files/SBMLLevel1Version1Converter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLLevel1Version1Converter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -338,9 +338,7 @@ public class SBMLLevel1Version1Converter : SBMLConverter {
  * function.  @if clike The value is drawn from the
  * enumeration #OperationReturnValues_t. @endif The possible values
  * returned by this function are:
- *
- *
-   * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
+ * @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
    * @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
    * @li @link libsbml#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
    * @li @link libsbml#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
diff --git a/src/bindings/csharp/csharp-files/SBMLLevelVersionConverter.cs b/src/bindings/csharp/csharp-files/SBMLLevelVersionConverter.cs
index fa7d638..89a0e79 100644
--- a/src/bindings/csharp/csharp-files/SBMLLevelVersionConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLLevelVersionConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLLocalParameterConverter.cs b/src/bindings/csharp/csharp-files/SBMLLocalParameterConverter.cs
index 5c62da7..3e46724 100644
--- a/src/bindings/csharp/csharp-files/SBMLLocalParameterConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLLocalParameterConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLNamespaces.cs b/src/bindings/csharp/csharp-files/SBMLNamespaces.cs
index c4ec907..116dd51 100644
--- a/src/bindings/csharp/csharp-files/SBMLNamespaces.cs
+++ b/src/bindings/csharp/csharp-files/SBMLNamespaces.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLNamespacesList.cs b/src/bindings/csharp/csharp-files/SBMLNamespacesList.cs
index a09444c..7e16466 100644
--- a/src/bindings/csharp/csharp-files/SBMLNamespacesList.cs
+++ b/src/bindings/csharp/csharp-files/SBMLNamespacesList.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLReactionConverter.cs b/src/bindings/csharp/csharp-files/SBMLReactionConverter.cs
index 29ec1da..8600436 100644
--- a/src/bindings/csharp/csharp-files/SBMLReactionConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLReactionConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLReader.cs b/src/bindings/csharp/csharp-files/SBMLReader.cs
index 8e5f261..3e7d1f3 100644
--- a/src/bindings/csharp/csharp-files/SBMLReader.cs
+++ b/src/bindings/csharp/csharp-files/SBMLReader.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLRuleConverter.cs b/src/bindings/csharp/csharp-files/SBMLRuleConverter.cs
index d3d12af..0867133 100644
--- a/src/bindings/csharp/csharp-files/SBMLRuleConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLRuleConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLStripPackageConverter.cs b/src/bindings/csharp/csharp-files/SBMLStripPackageConverter.cs
index 3e9ef5e..03d2fda 100644
--- a/src/bindings/csharp/csharp-files/SBMLStripPackageConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLStripPackageConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLTransforms.cs b/src/bindings/csharp/csharp-files/SBMLTransforms.cs
index 3c92c0f..c26b664 100644
--- a/src/bindings/csharp/csharp-files/SBMLTransforms.cs
+++ b/src/bindings/csharp/csharp-files/SBMLTransforms.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLUnitsConverter.cs b/src/bindings/csharp/csharp-files/SBMLUnitsConverter.cs
index 77367d1..6a26ebb 100644
--- a/src/bindings/csharp/csharp-files/SBMLUnitsConverter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLUnitsConverter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLValidator.cs b/src/bindings/csharp/csharp-files/SBMLValidator.cs
index 5a41e51..d0ab21b 100644
--- a/src/bindings/csharp/csharp-files/SBMLValidator.cs
+++ b/src/bindings/csharp/csharp-files/SBMLValidator.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBMLWriter.cs b/src/bindings/csharp/csharp-files/SBMLWriter.cs
index e4e9a75..43de3d7 100644
--- a/src/bindings/csharp/csharp-files/SBMLWriter.cs
+++ b/src/bindings/csharp/csharp-files/SBMLWriter.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBO.cs b/src/bindings/csharp/csharp-files/SBO.cs
index 794927d..4404b16 100644
--- a/src/bindings/csharp/csharp-files/SBO.cs
+++ b/src/bindings/csharp/csharp-files/SBO.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -925,6 +925,10 @@ public class SBO : IDisposable {
     return ret;
   }
 
+  
+/** */ /* libsbml-internal */ public
+ static long getParentBranch(long term) { return (long)libsbmlPINVOKE.SBO_getParentBranch(term); }
+
   public SBO() : this(libsbmlPINVOKE.new_SBO(), true) {
   }
 
diff --git a/src/bindings/csharp/csharp-files/SBase.cs b/src/bindings/csharp/csharp-files/SBase.cs
index d9bd6de..1241033 100644
--- a/src/bindings/csharp/csharp-files/SBase.cs
+++ b/src/bindings/csharp/csharp-files/SBase.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -2936,9 +2936,9 @@ void example (SBase sb)
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
@@ -3123,7 +3123,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -3199,7 +3199,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -3238,7 +3238,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
@@ -3280,7 +3280,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  *
diff --git a/src/bindings/csharp/csharp-files/SBaseExtensionPoint.cs b/src/bindings/csharp/csharp-files/SBaseExtensionPoint.cs
index b5dda59..b52190d 100644
--- a/src/bindings/csharp/csharp-files/SBaseExtensionPoint.cs
+++ b/src/bindings/csharp/csharp-files/SBaseExtensionPoint.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBaseList.cs b/src/bindings/csharp/csharp-files/SBaseList.cs
index 5ad4215..c151b30 100644
--- a/src/bindings/csharp/csharp-files/SBaseList.cs
+++ b/src/bindings/csharp/csharp-files/SBaseList.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SBasePlugin.cs b/src/bindings/csharp/csharp-files/SBasePlugin.cs
index d9750be..1d01d03 100644
--- a/src/bindings/csharp/csharp-files/SBasePlugin.cs
+++ b/src/bindings/csharp/csharp-files/SBasePlugin.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -434,7 +434,6 @@ public class SBasePlugin : IDisposable {
    *
    * @see getPackageName()
    * @see getElementNamespace()
-   * @see SBMLDocument::getSBMLNamespaces()
    * @see getSBMLDocument()
    */ public
  string getURI() {
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_ASTFunction.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_ASTFunction.cs
index 2e0621b..349780b 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_ASTFunction.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_ASTFunction.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_ExpectedAttributes.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_ExpectedAttributes.cs
index 1aee674..0e427ad 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_ExpectedAttributes.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_ExpectedAttributes.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_FormulaUnitsData.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_FormulaUnitsData.cs
index 28da938..fecbf6d 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_FormulaUnitsData.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_FormulaUnitsData.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_List.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_List.cs
index b98bdaf..e7b84bb 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_List.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_List.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_StringBuffer_t.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_StringBuffer_t.cs
index 2dc52ae..a62ff05 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_StringBuffer_t.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_StringBuffer_t.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__ostream.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__ostream.cs
index 1034863..310dc1e 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__ostream.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__ostream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs
index 3d5ac3d..1930beb 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_XMLError_p_t.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_std__string_t.cs b/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_std__string_t.cs
index 20787c9..af9bb8d 100644
--- a/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_std__string_t.cs
+++ b/src/bindings/csharp/csharp-files/SWIGTYPE_p_std__vectorT_std__string_t.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SimpleSpeciesReference.cs b/src/bindings/csharp/csharp-files/SimpleSpeciesReference.cs
index 9111701..5540855 100644
--- a/src/bindings/csharp/csharp-files/SimpleSpeciesReference.cs
+++ b/src/bindings/csharp/csharp-files/SimpleSpeciesReference.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Species.cs b/src/bindings/csharp/csharp-files/Species.cs
index f567f1b..46791df 100644
--- a/src/bindings/csharp/csharp-files/Species.cs
+++ b/src/bindings/csharp/csharp-files/Species.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1655,9 +1655,9 @@ public class Species : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/SpeciesReference.cs b/src/bindings/csharp/csharp-files/SpeciesReference.cs
index 7502636..9194797 100644
--- a/src/bindings/csharp/csharp-files/SpeciesReference.cs
+++ b/src/bindings/csharp/csharp-files/SpeciesReference.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/SpeciesType.cs b/src/bindings/csharp/csharp-files/SpeciesType.cs
index b0581a0..4dfe29c 100644
--- a/src/bindings/csharp/csharp-files/SpeciesType.cs
+++ b/src/bindings/csharp/csharp-files/SpeciesType.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -381,9 +381,9 @@ public class SpeciesType : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/StoichiometryMath.cs b/src/bindings/csharp/csharp-files/StoichiometryMath.cs
index 6296166..e2bccd7 100644
--- a/src/bindings/csharp/csharp-files/StoichiometryMath.cs
+++ b/src/bindings/csharp/csharp-files/StoichiometryMath.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -498,9 +498,9 @@ public class StoichiometryMath : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/SyntaxChecker.cs b/src/bindings/csharp/csharp-files/SyntaxChecker.cs
index 671a444..1c92de1 100644
--- a/src/bindings/csharp/csharp-files/SyntaxChecker.cs
+++ b/src/bindings/csharp/csharp-files/SyntaxChecker.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/Trigger.cs b/src/bindings/csharp/csharp-files/Trigger.cs
index 159c7b8..7601ca4 100644
--- a/src/bindings/csharp/csharp-files/Trigger.cs
+++ b/src/bindings/csharp/csharp-files/Trigger.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -496,9 +496,9 @@ public class Trigger : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/Unit.cs b/src/bindings/csharp/csharp-files/Unit.cs
index 5f2f01f..7e536db 100644
--- a/src/bindings/csharp/csharp-files/Unit.cs
+++ b/src/bindings/csharp/csharp-files/Unit.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1201,9 +1201,9 @@ public class Unit : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/UnitDefinition.cs b/src/bindings/csharp/csharp-files/UnitDefinition.cs
index 440507f..471325e 100644
--- a/src/bindings/csharp/csharp-files/UnitDefinition.cs
+++ b/src/bindings/csharp/csharp-files/UnitDefinition.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -834,9 +834,9 @@ public class UnitDefinition : SBase {
    *
    *
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  *
    *
diff --git a/src/bindings/csharp/csharp-files/XMLAttributes.cs b/src/bindings/csharp/csharp-files/XMLAttributes.cs
index 38eb96f..9e385bd 100644
--- a/src/bindings/csharp/csharp-files/XMLAttributes.cs
+++ b/src/bindings/csharp/csharp-files/XMLAttributes.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLConstructorException.cs b/src/bindings/csharp/csharp-files/XMLConstructorException.cs
index aade16c..f4752c9 100644
--- a/src/bindings/csharp/csharp-files/XMLConstructorException.cs
+++ b/src/bindings/csharp/csharp-files/XMLConstructorException.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLError.cs b/src/bindings/csharp/csharp-files/XMLError.cs
index 529d0e8..40c1193 100644
--- a/src/bindings/csharp/csharp-files/XMLError.cs
+++ b/src/bindings/csharp/csharp-files/XMLError.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLErrorLog.cs b/src/bindings/csharp/csharp-files/XMLErrorLog.cs
index e061010..eb69e6a 100644
--- a/src/bindings/csharp/csharp-files/XMLErrorLog.cs
+++ b/src/bindings/csharp/csharp-files/XMLErrorLog.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLInputStream.cs b/src/bindings/csharp/csharp-files/XMLInputStream.cs
index f87670e..ccaec55 100644
--- a/src/bindings/csharp/csharp-files/XMLInputStream.cs
+++ b/src/bindings/csharp/csharp-files/XMLInputStream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLNamespaces.cs b/src/bindings/csharp/csharp-files/XMLNamespaces.cs
index 3f71cc8..871f7fd 100644
--- a/src/bindings/csharp/csharp-files/XMLNamespaces.cs
+++ b/src/bindings/csharp/csharp-files/XMLNamespaces.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLNode.cs b/src/bindings/csharp/csharp-files/XMLNode.cs
index 96c347d..e5086de 100644
--- a/src/bindings/csharp/csharp-files/XMLNode.cs
+++ b/src/bindings/csharp/csharp-files/XMLNode.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLOutputStream.cs b/src/bindings/csharp/csharp-files/XMLOutputStream.cs
index 67e7dce..5c274ed 100644
--- a/src/bindings/csharp/csharp-files/XMLOutputStream.cs
+++ b/src/bindings/csharp/csharp-files/XMLOutputStream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -895,9 +895,39 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    *
    * @param programVersion an optional version identification string to write
    * as a comment in the output stream.
+   *
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
+   */ public
+ void writeComment(string programName, string programVersion, bool writeTimestamp) {
+    libsbmlPINVOKE.XMLOutputStream_writeComment__SWIG_0(swigCPtr, programName, programVersion, writeTimestamp);
+    if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
+  }
+
+  
+/**
+   * Writes an XML comment with the name and version of this program.
+   *
+   * The XML comment has the following form:
+   * @verbatim
+<!-- Created by <program name> version <program version>
+on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
+ at endverbatim
+   *
+   * See the class constructor for more information about this program
+   * comment.
+   *
+   * @param programName an optional program name to write as a comment
+   * in the output stream.
+   *
+   * @param programVersion an optional version identification string to write
+   * as a comment in the output stream.
+   *
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
    */ public
  void writeComment(string programName, string programVersion) {
-    libsbmlPINVOKE.XMLOutputStream_writeComment(swigCPtr, programName, programVersion);
+    libsbmlPINVOKE.XMLOutputStream_writeComment__SWIG_1(swigCPtr, programName, programVersion);
     if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
   }
 
@@ -959,6 +989,89 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
     libsbmlPINVOKE.XMLOutputStream_setSBMLNamespaces(swigCPtr, SBMLNamespaces.getCPtr(sbmlns));
   }
 
+  
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   */ public
+ static bool getWriteComment() {
+    bool ret = libsbmlPINVOKE.XMLOutputStream_getWriteComment();
+    return ret;
+  }
+
+  
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   *
+   * @param writeComment the flag
+   */ public
+ static void setWriteComment(bool writeComment) {
+    libsbmlPINVOKE.XMLOutputStream_setWriteComment(writeComment);
+  }
+
+  
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   */ public
+ static bool getWriteTimestamp() {
+    bool ret = libsbmlPINVOKE.XMLOutputStream_getWriteTimestamp();
+    return ret;
+  }
+
+  
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   *
+   * @param writeTimestamp the flag
+   */ public
+ static void setWriteTimestamp(bool writeTimestamp) {
+    libsbmlPINVOKE.XMLOutputStream_setWriteTimestamp(writeTimestamp);
+  }
+
+  
+/**
+   * @return the name of the library to be used in comments ('libSBML' by default)
+   */ public
+ static string getLibraryName() {
+    string ret = libsbmlPINVOKE.XMLOutputStream_getLibraryName();
+    return ret;
+  }
+
+  
+/**
+   * sets the name of the library writing the XML
+
+   * @param libraryName the name of the library to be used in comments
+   */ public
+ static void setLibraryName(string libraryName) {
+    libsbmlPINVOKE.XMLOutputStream_setLibraryName(libraryName);
+    if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
+  }
+
+  
+/**
+   * @return a string representing the version of the library writing the output.
+   *         This is the value of getLibSBMLDottedVersion() by default.
+   */ public
+ static string getLibraryVersion() {
+    string ret = libsbmlPINVOKE.XMLOutputStream_getLibraryVersion();
+    return ret;
+  }
+
+  
+/**
+   * sets the name of the library writing the output
+   *
+   * @param libraryVersion the version information as string
+   */ public
+ static void setLibraryVersion(string libraryVersion) {
+    libsbmlPINVOKE.XMLOutputStream_setLibraryVersion(libraryVersion);
+    if (libsbmlPINVOKE.SWIGPendingException.Pending) throw libsbmlPINVOKE.SWIGPendingException.Retrieve();
+  }
+
 }
 
 }
diff --git a/src/bindings/csharp/csharp-files/XMLOwningOutputFileStream.cs b/src/bindings/csharp/csharp-files/XMLOwningOutputFileStream.cs
index 0f32db6..729c3c2 100644
--- a/src/bindings/csharp/csharp-files/XMLOwningOutputFileStream.cs
+++ b/src/bindings/csharp/csharp-files/XMLOwningOutputFileStream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLOwningOutputStringStream.cs b/src/bindings/csharp/csharp-files/XMLOwningOutputStringStream.cs
index f213447..ef292ba 100644
--- a/src/bindings/csharp/csharp-files/XMLOwningOutputStringStream.cs
+++ b/src/bindings/csharp/csharp-files/XMLOwningOutputStringStream.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLToken.cs b/src/bindings/csharp/csharp-files/XMLToken.cs
index 47c3ab7..d4a22d2 100644
--- a/src/bindings/csharp/csharp-files/XMLToken.cs
+++ b/src/bindings/csharp/csharp-files/XMLToken.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/XMLTriple.cs b/src/bindings/csharp/csharp-files/XMLTriple.cs
index 636ad1c..6814d2e 100644
--- a/src/bindings/csharp/csharp-files/XMLTriple.cs
+++ b/src/bindings/csharp/csharp-files/XMLTriple.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/csharp/csharp-files/libsbml.cs b/src/bindings/csharp/csharp-files/libsbml.cs
index 87f3eb3..b220cc4 100644
--- a/src/bindings/csharp/csharp-files/libsbml.cs
+++ b/src/bindings/csharp/csharp-files/libsbml.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1099,6 +1099,114 @@ if (doc.getNumErrors() > 0)
   }
 
   
+/**
+ * This method takes a model qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a model qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+ * the string <code>'isDescribedBy'</code>.
+ *
+ * @param type The @if clike ModelQualifierType_t at endif value to
+ * translate. @ifnot clike The value should be a libSBML constant whose
+ * name begins with @c BQM_, such as (for example)
+ * @link libsbml#BQM_IS BQM_IS at endlink.@endif
+ *
+ * @return a human readable qualifier name for the given qualifier type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static string ModelQualifierType_toString(int type) {
+    string ret = libsbmlPINVOKE.ModelQualifierType_toString(type);
+    return ret;
+  }
+
+  
+/**
+ * This method takes a biol qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a biol qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+ * the string <code>'hasVersion'</code>.
+ *
+ * @param type The @if clike BiolQualifierType_t at endif value to
+ * translate. @ifnot clike The value should be a constant whose name
+ * begins with @c BQB_, such as (for example)
+ * @link libsbml#BQB_IS BQB_IS at endlink.@endif
+ *
+ * @return a human readable qualifier name for the given type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static string BiolQualifierType_toString(int type) {
+    string ret = libsbmlPINVOKE.BiolQualifierType_toString(type);
+    return ret;
+  }
+
+  
+/**
+ * This method takes a a string and returns a model qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a model qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>'isDescribedBy'</code> will return the qualifier
+ * <code>BQM_IS_DESCRIBED_BY</code>.
+ *
+ * @param s The string to translate to a @if clike ModelQualifierType_t
+ * value at else libSBML constant value representing a model qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static int ModelQualifierType_fromString(string s) {
+    int ret = libsbmlPINVOKE.ModelQualifierType_fromString(s);
+    return ret;
+  }
+
+  
+/**
+ * This method takes a a string and returns a biol qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a biol qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>'hasVersion'</code> will return the qualifier
+ * <code>BQB_HAS_VERSION</code>.
+ *
+ * @param s The string to translate to a @if clike BiolQualifierType_t
+ * value at else libSBML constant value representing a biological qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */ public
+ static int BiolQualifierType_fromString(string s) {
+    int ret = libsbmlPINVOKE.BiolQualifierType_fromString(s);
+    return ret;
+  }
+
+  
 /** */ /* libsbml-internal */ public
  static bool representsNumber(int type) {
     bool ret = libsbmlPINVOKE.representsNumber(type);
@@ -1372,7 +1480,7 @@ if (doc.getNumErrors() > 0)
  * @sbmlfunction{parseL3Formula, String} and
  * @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
  * system (i.e., what is provided by @sbmlfunction{formulaToString, String}
- * and @sbmlfunction{parseFormula, ASTNode}) is provided 
+ * and @sbmlfunction{parseFormula, ASTNode}) is provided
  * untouched for backwards compatibility.
  *
  *
@@ -1806,7 +1914,7 @@ if (doc.getNumErrors() > 0)
  * @sbmlfunction{parseL3Formula, String} and
  * @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
  * system (i.e., what is provided by @sbmlfunction{formulaToString, String}
- * and @sbmlfunction{parseFormula, ASTNode}) is provided 
+ * and @sbmlfunction{parseFormula, ASTNode}) is provided
  * untouched for backwards compatibility.
  *
  *
@@ -2181,7 +2289,7 @@ if (doc.getNumErrors() > 0)
  * @link libsbml#AST_NAME AST_NAME at endlink.
  * @li Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * @li LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
@@ -2501,9 +2609,9 @@ if (doc.getNumErrors() > 0)
     libsbmlPINVOKE.SBML_deleteL3Parser();
   }
 
-  public const string LIBSBML_DOTTED_VERSION = "5.12.0";
-  public const int LIBSBML_VERSION = 51200;
-  public const string LIBSBML_VERSION_STRING = "51200";
+  public const string LIBSBML_DOTTED_VERSION = "5.13.0";
+  public const int LIBSBML_VERSION = 51300;
+  public const string LIBSBML_VERSION_STRING = "51300";
   // OperationReturnValues_t 
   public const int LIBSBML_OPERATION_SUCCESS = 0;
   public const int LIBSBML_INDEX_EXCEEDS_SIZE = -1;
@@ -2520,6 +2628,7 @@ if (doc.getNumErrors() > 0)
   public const int LIBSBML_ANNOTATION_NAME_NOT_FOUND = -12;
   public const int LIBSBML_ANNOTATION_NS_NOT_FOUND = -13;
   public const int LIBSBML_MISSING_METAID = -14;
+  public const int LIBSBML_DEPRECATED_ATTRIBUTE = -15;
   public const int LIBSBML_PKG_VERSION_MISMATCH = -20;
   public const int LIBSBML_PKG_UNKNOWN = -21;
   public const int LIBSBML_PKG_UNKNOWN_VERSION = -22;
diff --git a/src/bindings/csharp/csharp-files/libsbmlPINVOKE.cs b/src/bindings/csharp/csharp-files/libsbmlPINVOKE.cs
index de8b778..9bf1185 100644
--- a/src/bindings/csharp/csharp-files/libsbmlPINVOKE.cs
+++ b/src/bindings/csharp/csharp-files/libsbmlPINVOKE.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
  
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1722,17 +1722,29 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkInternalConsistency")]
   public static extern uint SBMLDocument_checkInternalConsistency(HandleRef jarg1);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL1Compatibility")]
-  public static extern uint SBMLDocument_checkL1Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL1Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL1Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v1Compatibility")]
-  public static extern uint SBMLDocument_checkL2v1Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL1Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL1Compatibility__SWIG_1(HandleRef jarg1);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v2Compatibility")]
-  public static extern uint SBMLDocument_checkL2v2Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL2v1Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v3Compatibility")]
-  public static extern uint SBMLDocument_checkL2v3Compatibility(HandleRef jarg1);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL2v1Compatibility__SWIG_1(HandleRef jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL2v2Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL2v2Compatibility__SWIG_1(HandleRef jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_0")]
+  public static extern uint SBMLDocument_checkL2v3Compatibility__SWIG_0(HandleRef jarg1, bool jarg2);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_1")]
+  public static extern uint SBMLDocument_checkL2v3Compatibility__SWIG_1(HandleRef jarg1);
 
   [DllImport("libsbmlcs", EntryPoint="CSharp_SBMLDocument_checkL2v4Compatibility")]
   public static extern uint SBMLDocument_checkL2v4Compatibility(HandleRef jarg1);
@@ -4659,6 +4671,9 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_SBO_checkTerm__SWIG_1")]
   public static extern bool SBO_checkTerm__SWIG_1(int jarg1);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_SBO_getParentBranch")]
+  public static extern uint SBO_getParentBranch(long jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_new_SBO")]
   public static extern IntPtr new_SBO();
 
@@ -6222,8 +6237,11 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeXMLDecl")]
   public static extern void XMLOutputStream_writeXMLDecl(HandleRef jarg1);
 
-  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeComment")]
-  public static extern void XMLOutputStream_writeComment(HandleRef jarg1, string jarg2, string jarg3);
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeComment__SWIG_0")]
+  public static extern void XMLOutputStream_writeComment__SWIG_0(HandleRef jarg1, string jarg2, string jarg3, bool jarg4);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_writeComment__SWIG_1")]
+  public static extern void XMLOutputStream_writeComment__SWIG_1(HandleRef jarg1, string jarg2, string jarg3);
 
   [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_downIndent")]
   public static extern void XMLOutputStream_downIndent(HandleRef jarg1);
@@ -6237,6 +6255,30 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setSBMLNamespaces")]
   public static extern void XMLOutputStream_setSBMLNamespaces(HandleRef jarg1, HandleRef jarg2);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getWriteComment")]
+  public static extern bool XMLOutputStream_getWriteComment();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setWriteComment")]
+  public static extern void XMLOutputStream_setWriteComment(bool jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getWriteTimestamp")]
+  public static extern bool XMLOutputStream_getWriteTimestamp();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setWriteTimestamp")]
+  public static extern void XMLOutputStream_setWriteTimestamp(bool jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getLibraryName")]
+  public static extern string XMLOutputStream_getLibraryName();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setLibraryName")]
+  public static extern void XMLOutputStream_setLibraryName(string jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_getLibraryVersion")]
+  public static extern string XMLOutputStream_getLibraryVersion();
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_XMLOutputStream_setLibraryVersion")]
+  public static extern void XMLOutputStream_setLibraryVersion(string jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_new_XMLOwningOutputStringStream__SWIG_0")]
   public static extern IntPtr new_XMLOwningOutputStringStream__SWIG_0(string jarg1, bool jarg2, string jarg3, string jarg4);
 
@@ -6699,6 +6741,18 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_CVTerm_removeNestedCVTerm")]
   public static extern IntPtr CVTerm_removeNestedCVTerm(HandleRef jarg1, long jarg2);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_ModelQualifierType_toString")]
+  public static extern string ModelQualifierType_toString(int jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_BiolQualifierType_toString")]
+  public static extern string BiolQualifierType_toString(int jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_ModelQualifierType_fromString")]
+  public static extern int ModelQualifierType_fromString(string jarg1);
+
+  [DllImport("libsbmlcs", EntryPoint="CSharp_BiolQualifierType_fromString")]
+  public static extern int BiolQualifierType_fromString(string jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_new_Date__SWIG_0")]
   public static extern IntPtr new_Date__SWIG_0(long jarg1, long jarg2, long jarg3, long jarg4, long jarg5, long jarg6, long jarg7, long jarg8, long jarg9);
 
@@ -7974,6 +8028,9 @@ class libsbmlPINVOKE {
   [DllImport("libsbmlcs", EntryPoint="CSharp_ASTNode_getPlugin__SWIG_2")]
   public static extern IntPtr ASTNode_getPlugin__SWIG_2(HandleRef jarg1, long jarg2);
 
+  [DllImport("libsbmlcs", EntryPoint="CSharp_ASTNode_getNumPiece")]
+  public static extern uint ASTNode_getNumPiece(HandleRef jarg1);
+
   [DllImport("libsbmlcs", EntryPoint="CSharp_ASTNode_getListOfNodes")]
   public static extern IntPtr ASTNode_getListOfNodes(HandleRef jarg1);
 
diff --git a/src/bindings/csharp/libsbml.i b/src/bindings/csharp/libsbml.i
index 07b8eb1..350f06b 100644
--- a/src/bindings/csharp/libsbml.i
+++ b/src/bindings/csharp/libsbml.i
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/libsbml_wrap-win.cpp b/src/bindings/csharp/libsbml_wrap-win.cpp
index 1e5d4ff..42cbc96 100644
--- a/src/bindings/csharp/libsbml_wrap-win.cpp
+++ b/src/bindings/csharp/libsbml_wrap-win.cpp
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -8382,7 +8382,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkInternalConsistency
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL1Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -8394,7 +8408,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility(voi
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v1Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -8406,7 +8434,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility(v
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v2Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -8418,7 +8460,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility(v
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v3Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -23979,6 +24035,20 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_checkTerm__SWIG_1(int jarg1) {
 }
 
 
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_getParentBranch(long long jarg1) {
+  unsigned int jresult ;
+  unsigned int arg1 ;
+  unsigned int result;
+  
+  {
+    arg1 = (unsigned int)jarg1;  
+  }
+  result = (unsigned int)SBO::getParentBranch(arg1);
+  jresult = result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBO() {
   void * jresult ;
   SBO *result = 0 ;
@@ -33288,7 +33358,37 @@ SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeXMLDecl(void * jarg1) {
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment__SWIG_0(void * jarg1, wchar_t* jarg2, wchar_t* jarg3, unsigned int jarg4) {
+  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
+  std::string *arg2 = 0 ;
+  std::string *arg3 = 0 ;
+  bool arg4 ;
+  std::string arg_str2 ;
+  std::string arg_str3 ;
+  
+  arg1 = (XMLOutputStream *)jarg1; 
+  {
+    char*  mbstr = convertUnicodeToUTF8(jarg2);
+    if (!mbstr) return ;
+    
+    arg_str2.assign(mbstr);
+    arg2 = &arg_str2;
+    delete[] mbstr;
+  }
+  {
+    char*  mbstr = convertUnicodeToUTF8(jarg3);
+    if (!mbstr) return ;
+    
+    arg_str3.assign(mbstr);
+    arg3 = &arg_str3;
+    delete[] mbstr;
+  }
+  arg4 = jarg4 ? true : false; 
+  (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3,arg4);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment__SWIG_1(void * jarg1, wchar_t* jarg2, wchar_t* jarg3) {
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -33354,6 +33454,104 @@ SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setSBMLNamespaces(void * jarg
 }
 
 
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLOutputStream_getWriteComment() {
+  unsigned int jresult ;
+  bool result;
+  
+  result = (bool)XMLOutputStream::getWriteComment();
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setWriteComment(unsigned int jarg1) {
+  bool arg1 ;
+  
+  arg1 = jarg1 ? true : false; 
+  XMLOutputStream::setWriteComment(arg1);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLOutputStream_getWriteTimestamp() {
+  unsigned int jresult ;
+  bool result;
+  
+  result = (bool)XMLOutputStream::getWriteTimestamp();
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setWriteTimestamp(unsigned int jarg1) {
+  bool arg1 ;
+  
+  arg1 = jarg1 ? true : false; 
+  XMLOutputStream::setWriteTimestamp(arg1);
+}
+
+
+SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLOutputStream_getLibraryName() {
+  wchar_t* jresult ;
+  std::string result;
+  
+  result = XMLOutputStream::getLibraryName();
+  {
+    jresult = convertUTF8ToUnicode( (&result)->c_str() );
+    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
+    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
+    delete[] unistr;
+  }
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setLibraryName(wchar_t* jarg1) {
+  std::string *arg1 = 0 ;
+  std::string arg_str1 ;
+  
+  {
+    char*  mbstr = convertUnicodeToUTF8(jarg1);
+    if (!mbstr) return ;
+    
+    arg_str1.assign(mbstr);
+    arg1 = &arg_str1;
+    delete[] mbstr;
+  }
+  XMLOutputStream::setLibraryName((std::string const &)*arg1);
+}
+
+
+SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_XMLOutputStream_getLibraryVersion() {
+  wchar_t* jresult ;
+  std::string result;
+  
+  result = XMLOutputStream::getLibraryVersion();
+  {
+    jresult = convertUTF8ToUnicode( (&result)->c_str() );
+    wchar_t* unistr = convertUTF8ToUnicode( (&result)->c_str() );
+    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
+    delete[] unistr;
+  }
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setLibraryVersion(wchar_t* jarg1) {
+  std::string *arg1 = 0 ;
+  std::string arg_str1 ;
+  
+  {
+    char*  mbstr = convertUnicodeToUTF8(jarg1);
+    if (!mbstr) return ;
+    
+    arg_str1.assign(mbstr);
+    arg1 = &arg_str1;
+    delete[] mbstr;
+  }
+  XMLOutputStream::setLibraryVersion((std::string const &)*arg1);
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputStringStream__SWIG_0(wchar_t* jarg1, unsigned int jarg2, wchar_t* jarg3, wchar_t* jarg4) {
   void * jresult ;
   std::string *arg1 = 0 ;
@@ -36421,6 +36619,82 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_CVTerm_removeNestedCVTerm(void * jarg1, lon
 }
 
 
+SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_ModelQualifierType_toString(int jarg1) {
+  wchar_t* jresult ;
+  ModelQualifierType_t arg1 ;
+  char *result = 0 ;
+  
+  arg1 = (ModelQualifierType_t)jarg1; 
+  result = (char *)ModelQualifierType_toString(arg1);
+  {
+    jresult = convertUTF8ToUnicode( result );
+    wchar_t* unistr = convertUTF8ToUnicode( result );
+    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
+    delete[] unistr;
+  }
+  return jresult;
+}
+
+
+SWIGEXPORT wchar_t* SWIGSTDCALL CSharp_BiolQualifierType_toString(int jarg1) {
+  wchar_t* jresult ;
+  BiolQualifierType_t arg1 ;
+  char *result = 0 ;
+  
+  arg1 = (BiolQualifierType_t)jarg1; 
+  result = (char *)BiolQualifierType_toString(arg1);
+  {
+    jresult = convertUTF8ToUnicode( result );
+    wchar_t* unistr = convertUTF8ToUnicode( result );
+    jresult = (wchar_t*) SWIG_csharp_wstring_callback((const wchar_t*)unistr);
+    delete[] unistr;
+  }
+  return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_ModelQualifierType_fromString(wchar_t* jarg1) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  ModelQualifierType_t result;
+  
+  {
+    if (jarg1)
+    {
+      arg1 = convertUnicodeToUTF8(jarg1);
+      if (!arg1) return 0;
+    }
+  }
+  result = (ModelQualifierType_t)ModelQualifierType_fromString((char const *)arg1);
+  jresult = result; 
+  {
+    delete[] arg1;
+  }
+  return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_BiolQualifierType_fromString(wchar_t* jarg1) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  BiolQualifierType_t result;
+  
+  {
+    if (jarg1)
+    {
+      arg1 = convertUnicodeToUTF8(jarg1);
+      if (!arg1) return 0;
+    }
+  }
+  result = (BiolQualifierType_t)BiolQualifierType_fromString((char const *)arg1);
+  jresult = result; 
+  {
+    delete[] arg1;
+  }
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_0(long long jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, long long jarg7, long long jarg8, long long jarg9) {
   void * jresult ;
   unsigned int arg1 ;
@@ -42838,6 +43112,18 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getPlugin__SWIG_2(void * jarg1, lon
 }
 
 
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_getNumPiece(void * jarg1) {
+  unsigned int jresult ;
+  ASTNode *arg1 = (ASTNode *) 0 ;
+  unsigned int result;
+  
+  arg1 = (ASTNode *)jarg1; 
+  result = (unsigned int)((ASTNode const *)arg1)->getNumPiece();
+  jresult = result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getListOfNodes(void * jarg1) {
   void * jresult ;
   ASTNode *arg1 = (ASTNode *) 0 ;
diff --git a/src/bindings/csharp/libsbml_wrap.cpp b/src/bindings/csharp/libsbml_wrap.cpp
index 7fec141..90cbf9b 100644
--- a/src/bindings/csharp/libsbml_wrap.cpp
+++ b/src/bindings/csharp/libsbml_wrap.cpp
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -7802,7 +7802,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkInternalConsistency
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL1Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -7814,7 +7828,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL1Compatibility(voi
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v1Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -7826,7 +7854,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v1Compatibility(v
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v2Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -7838,7 +7880,21 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v2Compatibility(v
 }
 
 
-SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility(void * jarg1) {
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_0(void * jarg1, unsigned int jarg2) {
+  unsigned int jresult ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  arg1 = (SBMLDocument *)jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v3Compatibility(arg2);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBMLDocument_checkL2v3Compatibility__SWIG_1(void * jarg1) {
   unsigned int jresult ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -22336,6 +22392,20 @@ SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_checkTerm__SWIG_1(int jarg1) {
 }
 
 
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SBO_getParentBranch(long long jarg1) {
+  unsigned int jresult ;
+  unsigned int arg1 ;
+  unsigned int result;
+  
+  {
+    arg1 = (unsigned int)jarg1;  
+  }
+  result = (unsigned int)SBO::getParentBranch(arg1);
+  jresult = result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_SBO() {
   void * jresult ;
   SBO *result = 0 ;
@@ -30795,7 +30865,31 @@ SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeXMLDecl(void * jarg1) {
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment(void * jarg1, char * jarg2, char * jarg3) {
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment__SWIG_0(void * jarg1, char * jarg2, char * jarg3, unsigned int jarg4) {
+  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
+  std::string *arg2 = 0 ;
+  std::string *arg3 = 0 ;
+  bool arg4 ;
+  
+  arg1 = (XMLOutputStream *)jarg1; 
+  if (!jarg2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0);
+    return ;
+  }
+  std::string arg2_str(jarg2);
+  arg2 = &arg2_str; 
+  if (!jarg3) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0);
+    return ;
+  }
+  std::string arg3_str(jarg3);
+  arg3 = &arg3_str; 
+  arg4 = jarg4 ? true : false; 
+  (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3,arg4);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_writeComment__SWIG_1(void * jarg1, char * jarg2, char * jarg3) {
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -30855,6 +30949,88 @@ SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setSBMLNamespaces(void * jarg
 }
 
 
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLOutputStream_getWriteComment() {
+  unsigned int jresult ;
+  bool result;
+  
+  result = (bool)XMLOutputStream::getWriteComment();
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setWriteComment(unsigned int jarg1) {
+  bool arg1 ;
+  
+  arg1 = jarg1 ? true : false; 
+  XMLOutputStream::setWriteComment(arg1);
+}
+
+
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_XMLOutputStream_getWriteTimestamp() {
+  unsigned int jresult ;
+  bool result;
+  
+  result = (bool)XMLOutputStream::getWriteTimestamp();
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setWriteTimestamp(unsigned int jarg1) {
+  bool arg1 ;
+  
+  arg1 = jarg1 ? true : false; 
+  XMLOutputStream::setWriteTimestamp(arg1);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_XMLOutputStream_getLibraryName() {
+  char * jresult ;
+  std::string result;
+  
+  result = XMLOutputStream::getLibraryName();
+  jresult = SWIG_csharp_string_callback((&result)->c_str()); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setLibraryName(char * jarg1) {
+  std::string *arg1 = 0 ;
+  
+  if (!jarg1) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0);
+    return ;
+  }
+  std::string arg1_str(jarg1);
+  arg1 = &arg1_str; 
+  XMLOutputStream::setLibraryName((std::string const &)*arg1);
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_XMLOutputStream_getLibraryVersion() {
+  char * jresult ;
+  std::string result;
+  
+  result = XMLOutputStream::getLibraryVersion();
+  jresult = SWIG_csharp_string_callback((&result)->c_str()); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_XMLOutputStream_setLibraryVersion(char * jarg1) {
+  std::string *arg1 = 0 ;
+  
+  if (!jarg1) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "null string", 0);
+    return ;
+  }
+  std::string arg1_str(jarg1);
+  arg1 = &arg1_str; 
+  XMLOutputStream::setLibraryVersion((std::string const &)*arg1);
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_XMLOwningOutputStringStream__SWIG_0(char * jarg1, unsigned int jarg2, char * jarg3, char * jarg4) {
   void * jresult ;
   std::string *arg1 = 0 ;
@@ -33648,6 +33824,54 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_CVTerm_removeNestedCVTerm(void * jarg1, lon
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_ModelQualifierType_toString(int jarg1) {
+  char * jresult ;
+  ModelQualifierType_t arg1 ;
+  char *result = 0 ;
+  
+  arg1 = (ModelQualifierType_t)jarg1; 
+  result = (char *)ModelQualifierType_toString(arg1);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_BiolQualifierType_toString(int jarg1) {
+  char * jresult ;
+  BiolQualifierType_t arg1 ;
+  char *result = 0 ;
+  
+  arg1 = (BiolQualifierType_t)jarg1; 
+  result = (char *)BiolQualifierType_toString(arg1);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_ModelQualifierType_fromString(char * jarg1) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  ModelQualifierType_t result;
+  
+  arg1 = (char *)jarg1; 
+  result = (ModelQualifierType_t)ModelQualifierType_fromString((char const *)arg1);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_BiolQualifierType_fromString(char * jarg1) {
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  BiolQualifierType_t result;
+  
+  arg1 = (char *)jarg1; 
+  result = (BiolQualifierType_t)BiolQualifierType_fromString((char const *)arg1);
+  jresult = result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_Date__SWIG_0(long long jarg1, long long jarg2, long long jarg3, long long jarg4, long long jarg5, long long jarg6, long long jarg7, long long jarg8, long long jarg9) {
   void * jresult ;
   unsigned int arg1 ;
@@ -39633,6 +39857,18 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getPlugin__SWIG_2(void * jarg1, lon
 }
 
 
+SWIGEXPORT unsigned int SWIGSTDCALL CSharp_ASTNode_getNumPiece(void * jarg1) {
+  unsigned int jresult ;
+  ASTNode *arg1 = (ASTNode *) 0 ;
+  unsigned int result;
+  
+  arg1 = (ASTNode *)jarg1; 
+  result = (unsigned int)((ASTNode const *)arg1)->getNumPiece();
+  jresult = result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_ASTNode_getListOfNodes(void * jarg1) {
   void * jresult ;
   ASTNode *arg1 = (ASTNode *) 0 ;
diff --git a/src/bindings/csharp/libsbml_wrap.h b/src/bindings/csharp/libsbml_wrap.h
index de5368b..108f161 100644
--- a/src/bindings/csharp/libsbml_wrap.h
+++ b/src/bindings/csharp/libsbml_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
diff --git a/src/bindings/csharp/local-downcast-converters-comp.i b/src/bindings/csharp/local-downcast-converters-comp.i
index 4614951..e4baf37 100644
--- a/src/bindings/csharp/local-downcast-converters-comp.i
+++ b/src/bindings/csharp/local-downcast-converters-comp.i
@@ -1,11 +1,11 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_COMP
-%pragma(csharp) modulecode =
-%{
-	if (conName == "SBML Comp Flattening Converter")
-		return new CompFlatteningConverter(cPtr, owner);
-%}
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_COMP
+%pragma(csharp) modulecode =
+%{
+	if (conName == "SBML Comp Flattening Converter")
+		return new CompFlatteningConverter(cPtr, owner);
+%}
 #endif /* USE_COMP */
\ No newline at end of file
diff --git a/src/bindings/csharp/local-downcast-converters-fbc.i b/src/bindings/csharp/local-downcast-converters-fbc.i
index f609dc4..01cc092 100644
--- a/src/bindings/csharp/local-downcast-converters-fbc.i
+++ b/src/bindings/csharp/local-downcast-converters-fbc.i
@@ -1,13 +1,13 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_FBC
-%pragma(csharp) modulecode =
-%{
-	if (conName == "SBML FBC to COBRA Converter")
-		return new FbcToCobraConverter(cPtr, owner);
-	if (conName == "SBML COBRA to FBC Converter")
-		return new CobraToFbcConverter(cPtr, owner);
-%}
-#endif /* USE_FBC*/
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_FBC
+%pragma(csharp) modulecode =
+%{
+	if (conName == "SBML FBC to COBRA Converter")
+		return new FbcToCobraConverter(cPtr, owner);
+	if (conName == "SBML COBRA to FBC Converter")
+		return new CobraToFbcConverter(cPtr, owner);
+%}
+#endif /* USE_FBC*/
diff --git a/src/bindings/csharp/local-downcast-converters-layout.i b/src/bindings/csharp/local-downcast-converters-layout.i
index f2d918e..f6b34bc 100644
--- a/src/bindings/csharp/local-downcast-converters-layout.i
+++ b/src/bindings/csharp/local-downcast-converters-layout.i
@@ -1,10 +1,10 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_LAYOUT
-%pragma(csharp) modulecode =
-%{
-	// layout converters here
-%}
-#endif /* USE_LAYOUT */
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_LAYOUT
+%pragma(csharp) modulecode =
+%{
+	// layout converters here
+%}
+#endif /* USE_LAYOUT */
diff --git a/src/bindings/csharp/local-downcast-converters-qual.i b/src/bindings/csharp/local-downcast-converters-qual.i
index bb41ba5..80e3430 100644
--- a/src/bindings/csharp/local-downcast-converters-qual.i
+++ b/src/bindings/csharp/local-downcast-converters-qual.i
@@ -1,10 +1,10 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_QUAL
-%pragma(csharp) modulecode =
-%{
-	// qual converters here
-%}
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_QUAL
+%pragma(csharp) modulecode =
+%{
+	// qual converters here
+%}
 #endif /* USE_QUAL*/
\ No newline at end of file
diff --git a/src/bindings/csharp/local-downcast-converters.i.in b/src/bindings/csharp/local-downcast-converters.i.in
index 6344255..496f336 100644
--- a/src/bindings/csharp/local-downcast-converters.i.in
+++ b/src/bindings/csharp/local-downcast-converters.i.in
@@ -1,14 +1,14 @@
-// @configure_input@
-
-#ifdef USE_COMP
-%include "local-downcast-converters-comp.i"
-#endif
-#ifdef USE_FBC
-%include "local-downcast-converters-fbc.i"
-#endif
-#ifdef USE_LAYOUT
-%include "local-downcast-converters-layout.i"
-#endif
-#ifdef USE_QUAL
-%include "local-downcast-converters-qual.i"
-#endif
+// @configure_input@
+
+#ifdef USE_COMP
+%include "local-downcast-converters-comp.i"
+#endif
+#ifdef USE_FBC
+%include "local-downcast-converters-fbc.i"
+#endif
+#ifdef USE_LAYOUT
+%include "local-downcast-converters-layout.i"
+#endif
+#ifdef USE_QUAL
+%include "local-downcast-converters-qual.i"
+#endif
diff --git a/src/bindings/csharp/local-packages-comp.i b/src/bindings/csharp/local-packages-comp.i
index 4bc45d4..9cba68f 100644
--- a/src/bindings/csharp/local-packages-comp.i
+++ b/src/bindings/csharp/local-packages-comp.i
@@ -14,7 +14,7 @@
  *This file is part of libSBML.  Please visit http://sbml.org for more
  *information about SBML, and the latest version of libSBML.
  *
- *Copyright (C) 2013-2015 jointly by the following organizations:
+ *Copyright (C) 2013-2016 jointly by the following organizations:
  *    1. California Institute of Technology, Pasadena, CA, USA
  *    2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *    3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local-packages-dyn.i b/src/bindings/csharp/local-packages-dyn.i
index d333d53..ca94215 100644
--- a/src/bindings/csharp/local-packages-dyn.i
+++ b/src/bindings/csharp/local-packages-dyn.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local-packages-fbc.i b/src/bindings/csharp/local-packages-fbc.i
index c317bc6..ccea8f7 100644
--- a/src/bindings/csharp/local-packages-fbc.i
+++ b/src/bindings/csharp/local-packages-fbc.i
@@ -1,13 +1,13 @@
 /**
- * @file:   local-packages-fbc.i
- * @brief:  Implementation of the fbc class
- * @author: SBMLTeam
+ * @file   local-packages-fbc.i
+ * @brief  Implementation of the fbc class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local-packages-groups.i b/src/bindings/csharp/local-packages-groups.i
index 5ce4f56..5e378df 100644
--- a/src/bindings/csharp/local-packages-groups.i
+++ b/src/bindings/csharp/local-packages-groups.i
@@ -63,62 +63,45 @@
 		SBase sb = new SBase(cPtr, false);
 		switch( sb.getTypeCode() )
 		{
-			case (int) libsbml.SBML_LIST_OF:
-			     string name = sb.getElementName();
-		             if(name =="listOfMembers")
-			     {
-		               return new ListOfMembers(cPtr, owner);
-                             }
-				else if (name == "listOfMemberConstraints")
-				{
-					return new ListOfMemberConstraints(cPtr, owner);
-				}
-		             else if(name =="listOfGroups")
-			     {
-		               return new ListOfGroups(cPtr, owner);
-                             }
-		       
-		             return new ListOf(cPtr, owner);
-				
-			case (int) libsbml.SBML_GROUPS_MEMBER:
-				return new Member(cPtr, owner);
+      case (int) libsbml.SBML_LIST_OF:
+        string name = sb.getElementName();
+        if (name == "listOfGroups")
+        {
+          return new ListOfGroups(cPtr, owner);
+        }
+        else if (name == "listOfMembers")
+        {
+          return new ListOfMembers(cPtr, owner);
+        }
 
-			case (int) libsbml.SBML_GROUPS_MEMBER_CONSTRAINT:
-				return new MemberConstraint(cPtr, owner);
+        return new ListOf(cPtr, owner);
 
-			case (int) libsbml.SBML_GROUPS_GROUP:
-				return new Group(cPtr, owner);
-				
-			default:
-				return new SBase(cPtr, owner);
+      case (int) libsbml.SBML_GROUPS_GROUP:
+        return new Group(cPtr, owner);
+
+      case (int) libsbml.SBML_GROUPS_MEMBER:
+        return new Member(cPtr, owner);
+
+      default:
+        return new SBase(cPtr, owner);
 		}
 	}
 %}
 
 COVARIANT_RTYPE_CLONE(GroupsExtension)
-COVARIANT_RTYPE_CLONE(Member)
-COVARIANT_RTYPE_CLONE(MemberConstraint)
 COVARIANT_RTYPE_CLONE(Group)
-COVARIANT_RTYPE_CLONE(ListOfMembers)
-COVARIANT_RTYPE_CLONE(ListOfMemberConstraints)
+COVARIANT_RTYPE_CLONE(Member)
 COVARIANT_RTYPE_CLONE(ListOfGroups)
+COVARIANT_RTYPE_CLONE(ListOfMembers)
 
-COVARIANT_RTYPE_LISTOF_GET_REMOVE(Member)
-COVARIANT_RTYPE_LISTOF_GET_REMOVE(MemberConstraint)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(Group)
+COVARIANT_RTYPE_LISTOF_GET_REMOVE(Member)
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
-
-COVARIANT_METHOD_NAME(ListOfMemberConstraints,unsetId)
-COVARIANT_METHOD_NAME(ListOfMemberConstraints,isSetName)
-COVARIANT_METHOD_NAME(ListOfMemberConstraints,setName)
-COVARIANT_METHOD_NAME(ListOfMemberConstraints,unsetName)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
 
 #endif  /* USE_GROUPS */
 
diff --git a/src/bindings/csharp/local-packages-layout.i b/src/bindings/csharp/local-packages-layout.i
index c1b7d1c..85e55f9 100755
--- a/src/bindings/csharp/local-packages-layout.i
+++ b/src/bindings/csharp/local-packages-layout.i
@@ -12,7 +12,7 @@
  *This file is part of libSBML.  Please visit http://sbml.org for more
  *information about SBML, and the latest version of libSBML.
  *
- *Copyright (C) 2013-2015 jointly by the following organizations:
+ *Copyright (C) 2013-2016 jointly by the following organizations:
  *    1. California Institute of Technology, Pasadena, CA, USA
  *    2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *    3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local-packages-multi.i b/src/bindings/csharp/local-packages-multi.i
index 4ea09ec..598b299 100644
--- a/src/bindings/csharp/local-packages-multi.i
+++ b/src/bindings/csharp/local-packages-multi.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -43,6 +43,9 @@
     SBasePlugin sbp = new SBasePlugin(cPtr, false);
     SBase sb = sbp.getParentSBMLObject();
 
+    if (sb.getElementName() == "listOfReactions")
+      return new MultiListOfReactionsPlugin(cPtr, owner);
+
     switch( sb.getTypeCode() )
     {
       case (int) libsbml.SBML_MODEL:
@@ -94,10 +97,6 @@
         {
           return new ListOfInSpeciesTypeBonds(cPtr, owner);
         }
-        else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-        {
-          return new ListOfDenotedSpeciesTypeComponentIndexes(cPtr, owner);
-        }
         else if (name == "listOfOutwardBindingSites")
         {
           return new ListOfOutwardBindingSites(cPtr, owner);
@@ -144,9 +143,6 @@
       case (int) libsbml.SBML_MULTI_IN_SPECIES_TYPE_BOND:
         return new InSpeciesTypeBond(cPtr, owner);
 
-      case (int) libsbml.SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-        return new DenotedSpeciesTypeComponentIndex(cPtr, owner);
-
       case (int) libsbml.SBML_MULTI_OUTWARD_BINDING_SITE:
         return new OutwardBindingSite(cPtr, owner);
 
@@ -187,7 +183,6 @@ COVARIANT_RTYPE_CLONE(SpeciesFeatureValue)
 COVARIANT_RTYPE_CLONE(CompartmentReference)
 COVARIANT_RTYPE_CLONE(SpeciesTypeInstance)
 COVARIANT_RTYPE_CLONE(InSpeciesTypeBond)
-COVARIANT_RTYPE_CLONE(DenotedSpeciesTypeComponentIndex)
 COVARIANT_RTYPE_CLONE(OutwardBindingSite)
 COVARIANT_RTYPE_CLONE(SpeciesFeatureChange)
 COVARIANT_RTYPE_CLONE(SpeciesFeatureType)
@@ -202,7 +197,6 @@ COVARIANT_RTYPE_CLONE(ListOfSpeciesFeatureValues)
 COVARIANT_RTYPE_CLONE(ListOfCompartmentReferences)
 COVARIANT_RTYPE_CLONE(ListOfSpeciesTypeInstances)
 COVARIANT_RTYPE_CLONE(ListOfInSpeciesTypeBonds)
-COVARIANT_RTYPE_CLONE(ListOfDenotedSpeciesTypeComponentIndexes)
 COVARIANT_RTYPE_CLONE(ListOfOutwardBindingSites)
 COVARIANT_RTYPE_CLONE(ListOfSpeciesFeatureChanges)
 COVARIANT_RTYPE_CLONE(ListOfSpeciesFeatureTypes)
@@ -216,7 +210,6 @@ COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesFeatureValue)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(CompartmentReference)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesTypeInstance)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(InSpeciesTypeBond)
-COVARIANT_RTYPE_LISTOF_GET_REMOVE(DenotedSpeciesTypeComponentIndex)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(OutwardBindingSite)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesFeatureChange)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesFeatureType)
@@ -231,7 +224,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -246,7 +238,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/csharp/local-packages-qual.i b/src/bindings/csharp/local-packages-qual.i
index 4f1d9f5..841e96f 100644
--- a/src/bindings/csharp/local-packages-qual.i
+++ b/src/bindings/csharp/local-packages-qual.i
@@ -14,7 +14,7 @@
  *This file is part of libSBML.  Please visit http://sbml.org for more
  *information about SBML, and the latest version of libSBML.
  *
- *Copyright (C) 2013-2015 jointly by the following organizations:
+ *Copyright (C) 2013-2016 jointly by the following organizations:
  *    1. California Institute of Technology, Pasadena, CA, USA
  *    2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *    3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local-packages-req.i b/src/bindings/csharp/local-packages-req.i
index 3286073..8008b42 100644
--- a/src/bindings/csharp/local-packages-req.i
+++ b/src/bindings/csharp/local-packages-req.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. Unversity of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local-packages-spatial.i b/src/bindings/csharp/local-packages-spatial.i
index 73f6060..b23793c 100644
--- a/src/bindings/csharp/local-packages-spatial.i
+++ b/src/bindings/csharp/local-packages-spatial.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local-packages.i.in b/src/bindings/csharp/local-packages.i.in
index 89c458e..b168b6e 100644
--- a/src/bindings/csharp/local-packages.i.in
+++ b/src/bindings/csharp/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-packages-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-packages-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-packages-layout.i"
 #endif
diff --git a/src/bindings/csharp/local.cpp b/src/bindings/csharp/local.cpp
index 60f89ac..68bca8b 100644
--- a/src/bindings/csharp/local.cpp
+++ b/src/bindings/csharp/local.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/csharp/local.i b/src/bindings/csharp/local.i
index 458fc21..b58c722 100644
--- a/src/bindings/csharp/local.i
+++ b/src/bindings/csharp/local.i
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -81,7 +81,9 @@
 %define SWIGCSHARP_IMTYPE_WSTRING(TYPENAME)
 %typemap(imtype, 
          inattributes="[MarshalAs(UnmanagedType.LPWStr)]", 
-         outattributes="[return: MarshalAs(UnmanagedType.LPWStr)]" 
+         outattributes="[return: MarshalAs(UnmanagedType.LPWStr)]",
+         directorinattributes="[MarshalAs(UnmanagedType.LPWStr)]", 
+         directoroutattributes="[return: MarshalAs(UnmanagedType.LPWStr)]"
         ) TYPENAME "string"
 %enddef
 
@@ -628,6 +630,15 @@ SWIGEXPORT void SWIGSTDCALL SWIGRegisterWStringCallback_$module(SWIG_CSharpWStri
 }
 
 /**
+ * Convert SBase objects into the most specific object possible.
+ */
+%typemap("csout", excode=SWIGEXCODE) Reaction*
+{
+	Reaction ret = (Reaction) libsbml.DowncastSBase($imcall, $owner);$excode
+	return ret;
+}
+
+/**
  * Convert Rule objects into the most specific object possible.
  */
 %typemap("csout", excode=SWIGEXCODE) Rule*
@@ -1253,7 +1264,6 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
 %typemap(ctype) char*              "wchar_t*"
 %typemap(ctype) const char*        "wchar_t*"
 
-
 //
 // Unicode -> UTF8 (std::string&, const std::string&)
 // (argument variable)
@@ -1356,6 +1366,11 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
     delete[] mbstr;
 }
 
+%typemap("directorin") std::string const &uri, const std::string& baseUri{
+  $input = convertUTF8ToUnicode( $1.c_str());
+  if (!$input) return $null;
+}
+
 
 //
 // Unicode -> ANSI CP (for const char* filename)
diff --git a/src/bindings/csharp/swig-binding.cmake.in b/src/bindings/csharp/swig-binding.cmake.in
index 837432b..0b8b202 100644
--- a/src/bindings/csharp/swig-binding.cmake.in
+++ b/src/bindings/csharp/swig-binding.cmake.in
@@ -1,91 +1,91 @@
-###############################################################################
-#
-# Description       : CMake build script for swigging the C# library
-# Original author(s): Frank Bergmann <fbergman at caltech.edu>
-# Organization      : California Institute of Technology
-#
-# This file is part of libSBML.  Please visit http://sbml.org for more
-# information about SBML, and the latest version of libSBML.
-#
-# Copyright (C) 2013-2015 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#     3. University of Heidelberg, Heidelberg, Germany
-#
-# Copyright (C) 2009-2013 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#  
-# Copyright (C) 2006-2008 by the California Institute of Technology,
-#     Pasadena, CA, USA 
-#  
-# Copyright (C) 2002-2005 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. Japan Science and Technology Agency, Japan
-# 
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation.  A copy of the license agreement is provided
-# in the file named "LICENSE.txt" included with this software distribution
-# and also available online as http://sbml.org/software/libsbml/license.html
-#
-###############################################################################
-
-message("Swig: C# Bindings")
-
-file(TO_NATIVE_PATH ${CUR_BIN_DIRECTORY}/csharp-files LIBSBML_CS_FILES)
-
-# delete previously generated swig files
-if (EXISTS ${LIBSBML_CS_FILES})
- execute_process(
-     COMMAND "${CMAKE_COMMAND}"
-     -E remove_directory "${LIBSBML_CS_FILES}"
- )
-endif()
-
-# generate documentation if needed
-if (WITH_DOXYGEN)
-  # separate munged arguments
-  separate_arguments(SWIG_SWIGDOCDEFINES)
-
-  message("Creating csdoc.i")
-  execute_process(
-    COMMAND "${PYTHON_EXECUTABLE}"
-            "${CUR_SRC_DIRECTORY}/../swig/swigdoc.py"
-            --language csharp
-            --top "${SRC_DIRECTORY}"
-            --master "${CUR_SRC_DIRECTORY}/../swig/libsbml.i"
-            --output "${CUR_BIN_DIRECTORY}/csdoc.i"
-            ${SWIG_SWIGDOCDEFINES}
-  )
-else()
-  file(WRITE ${CUR_BIN_DIRECTORY}/csdoc.i "/* documentation not generated */")
-endif()
-
-# create csharp-files directory
-if (NOT EXISTS ${LIBSBML_CS_FILES})
-  message("Creating ${LIBSBML_CS_FILES}")
-  file(MAKE_DIRECTORY ${LIBSBML_CS_FILES})
-endif()
-
-# separate munged arguments
-separate_arguments(SWIG_ARGS)
-
-# execute swig
-execute_process(
-    COMMAND "${SWIG_EXECUTABLE}"
-         -I${CUR_SRC_DIRECTORY}/../swig/
-         -I${BIN_DIRECTORY}/src
-         -I${SRC_DIRECTORY}/src
-         -I${SRC_DIRECTORY}/include
-         -I${CUR_SRC_DIRECTORY}
-         -c++
-         -csharp
-         -namespace libsbmlcs
-         -dllimport ${LIB_NAME}
-         ${SWIG_ARGS} 
-         -outdir ${LIBSBML_CS_FILES}
-         -o ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
-         ${CUR_SRC_DIRECTORY}/../swig/libsbml.i
-    WORKING_DIRECTORY "${CUR_BIN_DIRECTORY}"
-)
+###############################################################################
+#
+# Description       : CMake build script for swigging the C# library
+# Original author(s): Frank Bergmann <fbergman at caltech.edu>
+# Organization      : California Institute of Technology
+#
+# This file is part of libSBML.  Please visit http://sbml.org for more
+# information about SBML, and the latest version of libSBML.
+#
+# Copyright (C) 2013-2016 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#     3. University of Heidelberg, Heidelberg, Germany
+#
+# Copyright (C) 2009-2013 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#  
+# Copyright (C) 2006-2008 by the California Institute of Technology,
+#     Pasadena, CA, USA 
+#  
+# Copyright (C) 2002-2005 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. Japan Science and Technology Agency, Japan
+# 
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation.  A copy of the license agreement is provided
+# in the file named "LICENSE.txt" included with this software distribution
+# and also available online as http://sbml.org/software/libsbml/license.html
+#
+###############################################################################
+
+message("Swig: C# Bindings")
+
+file(TO_NATIVE_PATH ${CUR_BIN_DIRECTORY}/csharp-files LIBSBML_CS_FILES)
+
+# delete previously generated swig files
+if (EXISTS ${LIBSBML_CS_FILES})
+ execute_process(
+     COMMAND "${CMAKE_COMMAND}"
+     -E remove_directory "${LIBSBML_CS_FILES}"
+ )
+endif()
+
+# generate documentation if needed
+if (WITH_DOXYGEN)
+  # separate munged arguments
+  separate_arguments(SWIG_SWIGDOCDEFINES)
+
+  message("Creating csdoc.i")
+  execute_process(
+    COMMAND "${PYTHON_EXECUTABLE}"
+            "${CUR_SRC_DIRECTORY}/../swig/swigdoc.py"
+            --language csharp
+            --top "${SRC_DIRECTORY}"
+            --master "${CUR_SRC_DIRECTORY}/../swig/libsbml.i"
+            --output "${CUR_BIN_DIRECTORY}/csdoc.i"
+            ${SWIG_SWIGDOCDEFINES}
+  )
+else()
+  file(WRITE ${CUR_BIN_DIRECTORY}/csdoc.i "/* documentation not generated */")
+endif()
+
+# create csharp-files directory
+if (NOT EXISTS ${LIBSBML_CS_FILES})
+  message("Creating ${LIBSBML_CS_FILES}")
+  file(MAKE_DIRECTORY ${LIBSBML_CS_FILES})
+endif()
+
+# separate munged arguments
+separate_arguments(SWIG_ARGS)
+
+# execute swig
+execute_process(
+    COMMAND "${SWIG_EXECUTABLE}"
+         -I${CUR_SRC_DIRECTORY}/../swig/
+         -I${BIN_DIRECTORY}/src
+         -I${SRC_DIRECTORY}/src
+         -I${SRC_DIRECTORY}/include
+         -I${CUR_SRC_DIRECTORY}
+         -c++
+         -csharp
+         -namespace libsbmlcs
+         -dllimport ${LIB_NAME}
+         ${SWIG_ARGS} 
+         -outdir ${LIBSBML_CS_FILES}
+         -o ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
+         ${CUR_SRC_DIRECTORY}/../swig/libsbml.i
+    WORKING_DIRECTORY "${CUR_BIN_DIRECTORY}"
+)
diff --git a/src/bindings/java/AutoTestRunner.java b/src/bindings/java/AutoTestRunner.java
index caa6fdd..bef3b19 100644
--- a/src/bindings/java/AutoTestRunner.java
+++ b/src/bindings/java/AutoTestRunner.java
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/CMakeLists.txt b/src/bindings/java/CMakeLists.txt
index 5671277..2d3923c 100644
--- a/src/bindings/java/CMakeLists.txt
+++ b/src/bindings/java/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/Makefile.in b/src/bindings/java/Makefile.in
index d2c45ed..5fb824d 100644
--- a/src/bindings/java/Makefile.in
+++ b/src/bindings/java/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -119,6 +119,11 @@ ifdef USE_FBC
   SWIGDOCDEFINES += --define USE_FBC
 endif # USE_FBC  
 
+ifdef USE_GROUPS
+  SWIGFLAGS      += -DUSE_GROUPS
+  SWIGDOCDEFINES += --define USE_GROUPS
+endif # USE_GROUPS  
+
 ifdef USE_LAYOUT
   SWIGFLAGS      += -DUSE_LAYOUT
   SWIGDOCDEFINES += --define USE_LAYOUT
@@ -190,6 +195,13 @@ ifdef USE_FBC
                ../../sbml/packages/fbc/validator \
                ../../sbml/packages/fbc/validator/constraints 
 endif
+ifdef USE_GROUPS
+  otherdirs += ../../sbml/packages/groups/common \
+               ../../sbml/packages/groups/extension \
+               ../../sbml/packages/groups/sbml \
+               ../../sbml/packages/groups/validator \
+               ../../sbml/packages/groups/validator/constraints 
+endif
 ifdef USE_LAYOUT
   otherdirs += ../../sbml/packages/layout/common \
                ../../sbml/packages/layout/extension \
@@ -344,6 +356,18 @@ else
   endef
 endif
 
+ifdef USE_GROUPS
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -z "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+else
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -n "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+endif
+
 ifdef USE_LAYOUT
   define check_layout
     if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
@@ -385,7 +409,8 @@ javadoc.i: $(main_sources) $(swig_sources) ../swig/swigdoc.py $(wildcard ../swig
 
 libsbml_wrap.cpp $(outpath): javadoc.i $(swig_sources) $(main_sources) \
     $(shell $(call check_comp)) $(shell $(call check_fbc)) \
-    $(shell $(call check_layout)) $(shell $(call check_qual))
+    $(shell $(call check_layout)) $(shell $(call check_qual)) \
+    $(shell $(call check_groups))
 	@top_srcdir@/config/chk_swig_version.sh || exit
 ifneq "$(MAKEFLAGS)" ""
 	$(MAKE) -$(MAKEFLAGS) clean-swigfiles
@@ -456,7 +481,7 @@ endif
 
 check: $(check_classes) $(shell $(call check_layout)) \
   $(shell $(call check_comp))  $(shell $(call check_fbc)) \
-  $(shell $(call check_qual))
+  $(shell $(call check_qual)) $(shell $(call check_groups))
 	@echo
 	@echo
 	@echo Running Tests in $(thisdir)
@@ -491,7 +516,7 @@ JAR_INSTPATH=$(DESTDIR)$(DATADIR)/java/$(jarfile)
 
 install: $(libraries) $(shell $(call check_layout)) \
   $(shell $(call check_comp)) $(shell $(call check_fbc)) \
-  $(shell $(call check_qual))
+  $(shell $(call check_qual)) $(shell $(call check_groups))
 	$(INSTALL_SH) $(jnifile) $(JNI_INSTPATH)
 	$(INSTALL_SH) $(jarfile) $(JAR_INSTPATH)
 
diff --git a/src/bindings/java/compile-native-files.cmake b/src/bindings/java/compile-native-files.cmake
index 02e0d5a..31c8bda 100644
--- a/src/bindings/java/compile-native-files.cmake
+++ b/src/bindings/java/compile-native-files.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ASTBase.java b/src/bindings/java/java-files/org/sbml/libsbml/ASTBase.java
index ad76a55..34019a1 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ASTBase.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ASTBase.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ASTBasePlugin.java b/src/bindings/java/java-files/org/sbml/libsbml/ASTBasePlugin.java
index 8c11b72..1ab0c75 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ASTBasePlugin.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ASTBasePlugin.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ASTNode.java b/src/bindings/java/java-files/org/sbml/libsbml/ASTNode.java
index 9425831..0d4b38d 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ASTNode.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ASTNode.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -110,7 +110,7 @@ defined in SBML.
  * mathematical functions that are permitted in SBML. The values are shown
  * in the following table:
  <p>
- * <table border="0" class="centered text-table borderless code">
+ * <table border="0" class="centered text-table align-bottom borderless code">
 <tr><td>AST_CONSTANT_E</td><td>         AST_FUNCTION_COT</td><td>       AST_LOGICAL_NOT</td></tr>
 <tr><td>AST_CONSTANT_FALSE</td><td>     AST_FUNCTION_COTH</td><td>      AST_LOGICAL_OR</td></tr>
 <tr><td>AST_CONSTANT_PI</td><td>        AST_FUNCTION_CSC</td><td>       AST_LOGICAL_XOR</td></tr>
@@ -2414,6 +2414,12 @@ used to define a number with value <code>10</code> and unit of measurement
   }
 
   
+/** * @internal */ public
+ long getNumPiece() {
+    return libsbmlJNI.ASTNode_getNumPiece(swigCPtr, this);
+  }
+
+  
   /**
    * Returns an {@link ASTNodeList} of all {@link ASTNode} objects.
    * 
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ASTNodeList.java b/src/bindings/java/java-files/org/sbml/libsbml/ASTNodeList.java
index a05853d..8939a03 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ASTNodeList.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ASTNodeList.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -12,12 +12,12 @@ public class ASTNodeList {
   private long swigCPtr;
   protected boolean swigCMemOwn;
 
-  public ASTNodeList(long cPtr, boolean cMemoryOwn) {
+  protected ASTNodeList(long cPtr, boolean cMemoryOwn) {
     swigCMemOwn = cMemoryOwn;
     swigCPtr = cPtr;
   }
 
-  public static long getCPtr(ASTNodeList obj) {
+  protected static long getCPtr(ASTNodeList obj) {
     return (obj == null) ? 0 : obj.swigCPtr;
   }
 
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/AlgebraicRule.java b/src/bindings/java/java-files/org/sbml/libsbml/AlgebraicRule.java
index 1feacac..a5bcb58 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/AlgebraicRule.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/AlgebraicRule.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/AssignmentRule.java b/src/bindings/java/java-files/org/sbml/libsbml/AssignmentRule.java
index e77dcad..cf10136 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/AssignmentRule.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/AssignmentRule.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/CVTerm.java b/src/bindings/java/java-files/org/sbml/libsbml/CVTerm.java
index a413b20..580ea6e 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/CVTerm.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/CVTerm.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -338,7 +338,7 @@ public class CVTerm {
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    <p>
-   * @param type a qualifier type
+   * @param type a qualifier type.
    <p>
    * 
 </dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
@@ -394,7 +394,7 @@ appears in the documentation.
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    <p>
-   * @param type a qualifier type
+   * @param type a qualifier type.
    <p>
    * 
 </dl><dl class="docnote"><dt><b>Documentation note:</b></dt><dd>
@@ -536,9 +536,9 @@ appears in the documentation.
    * of this object or {@link libsbmlConstants#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER}
    * (the default).
    <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#getModelQualifierType()
-   * @see CVTerm#getBiologicalQualifierType()
+   * @see #getResources()
+   * @see #getModelQualifierType()
+   * @see #getBiologicalQualifierType()
    */ public
  int getQualifierType() {
     return libsbmlJNI.CVTerm_getQualifierType__SWIG_0(swigCPtr, this);
@@ -740,9 +740,9 @@ appears in the documentation.
    <p>
    * @return the {@link XMLAttributes} that store the resources of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#addResource(String resource)
-   * @see CVTerm#getResourceURI(long n)
+   * @see #getQualifierType()
+   * @see #addResource(String resource)
+   * @see #getResourceURI(long n)
    */ public
  XMLAttributes getResources() {
     long cPtr = libsbmlJNI.CVTerm_getResources__SWIG_0(swigCPtr, this);
@@ -790,8 +790,8 @@ appears in the documentation.
    * @return the number of resources in the set of {@link XMLAttributes}
    * of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#getResourceURI(long n)
+   * @see #getResources()
+   * @see #getResourceURI(long n)
    */ public
  long getNumResources() {
     return libsbmlJNI.CVTerm_getNumResources__SWIG_0(swigCPtr, this);
@@ -838,13 +838,13 @@ appears in the documentation.
    * are stored in this {@link CVTerm} object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    <p>
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    <p>
    * @return string representing the value of the nth resource
    * in the set of {@link XMLAttributes} of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getNumResources()
-   * @see CVTerm#getQualifierType()
+   * @see #getNumResources()
+   * @see #getQualifierType()
    */ public
  String getResourceURI(long n) {
     return libsbmlJNI.CVTerm_getResourceURI__SWIG_0(swigCPtr, this, n);
@@ -865,7 +865,7 @@ appears in the documentation.
    * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
    *
    * </ul> <p>
-   * @see CVTerm#getQualifierType()
+   * @see #getQualifierType()
    */ public
  int setQualifierType(int type) {
     return libsbmlJNI.CVTerm_setQualifierType(swigCPtr, this, type);
@@ -876,7 +876,7 @@ appears in the documentation.
    * Sets the model qualifier type
    * of this {@link CVTerm} object.
    <p>
-   * @param type the model qualifier type
+   * @param type the model qualifier type.
    <p>
    * <p>
  * @return integer value indicating success/failure of the
@@ -892,8 +892,8 @@ appears in the documentation.
    * then the model qualifier type
    * will default to {@link libsbmlConstants#BQM_UNKNOWN BQM_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
  int setModelQualifierType(int type) {
     return libsbmlJNI.CVTerm_setModelQualifierType__SWIG_0(swigCPtr, this, type);
@@ -921,8 +921,8 @@ appears in the documentation.
    * then the biology qualifier type
    * will default to {@link libsbmlConstants#BQB_UNKNOWN BQB_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
  int setBiologicalQualifierType(int type) {
     return libsbmlJNI.CVTerm_setBiologicalQualifierType__SWIG_0(swigCPtr, this, type);
@@ -933,7 +933,7 @@ appears in the documentation.
    * Sets the model qualifier
    * type value of this {@link CVTerm} object.
    <p>
-   * @param qualifier the string representing a model qualifier
+   * @param qualifier the string representing a model qualifier.
    <p>
    * <p>
  * @return integer value indicating success/failure of the
@@ -949,8 +949,8 @@ appears in the documentation.
    * then the model qualifier type
    * will default to {@link libsbmlConstants#BQM_UNKNOWN BQM_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
  int setModelQualifierType(String qualifier) {
     return libsbmlJNI.CVTerm_setModelQualifierType__SWIG_1(swigCPtr, this, qualifier);
@@ -961,7 +961,7 @@ appears in the documentation.
    * Sets the biology qualifier
    * type code of this {@link CVTerm} object.
    <p>
-   * @param qualifier the string representing a biology qualifier
+   * @param qualifier the string representing a biology qualifier.
    <p>
    * <p>
  * @return integer value indicating success/failure of the
@@ -977,8 +977,8 @@ appears in the documentation.
    * then the biology qualifier type code
    * will default to {@link libsbmlConstants#BQB_UNKNOWN BQB_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
  int setBiologicalQualifierType(String qualifier) {
     return libsbmlJNI.CVTerm_setBiologicalQualifierType__SWIG_1(swigCPtr, this, qualifier);
@@ -1069,11 +1069,11 @@ appears in the documentation.
    * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
    *
    * </ul> <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#removeResource(String resource)
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#getModelQualifierType()
-   * @see CVTerm#getBiologicalQualifierType()
+   * @see #getResources()
+   * @see #removeResource(String resource)
+   * @see #getQualifierType()
+   * @see #getModelQualifierType()
+   * @see #getBiologicalQualifierType()
    */ public
  int addResource(String resource) {
     return libsbmlJNI.CVTerm_addResource(swigCPtr, this, resource);
@@ -1097,7 +1097,7 @@ appears in the documentation.
    * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
    *
    * </ul> <p>
-   * @see CVTerm#addResource(String resource)
+   * @see #addResource(String resource)
    */ public
  int removeResource(String resource) {
     return libsbmlJNI.CVTerm_removeResource(swigCPtr, this, resource);
@@ -1150,7 +1150,7 @@ appears in the documentation.
    * Returns the nth {@link CVTerm} in the list of CVTerms of this {@link CVTerm}
    * object.
    <p>
-   * @param n long the index of the {@link CVTerm} to retrieve
+   * @param n long the index of the {@link CVTerm} to retrieve.
    <p>
    * @return the nth {@link CVTerm} in the list of CVTerms for this {@link CVTerm} object.
    */ public
@@ -1197,7 +1197,7 @@ appears in the documentation.
    * Removes the nth {@link CVTerm} in the list of CVTerms of this {@link CVTerm}
    * object and returns a pointer to it.
    <p>
-   * @param n long the index of the {@link CVTerm} to retrieve
+   * @param n long the index of the {@link CVTerm} to retrieve.
    <p>
    * @return a pointer to the nth {@link CVTerm} in the list of CVTerms for this 
    * {@link CVTerm} object.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/CVTermList.java b/src/bindings/java/java-files/org/sbml/libsbml/CVTermList.java
index 1ee1d7a..a1102e2 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/CVTermList.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/CVTermList.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -12,12 +12,12 @@ public class CVTermList {
   private long swigCPtr;
   protected boolean swigCMemOwn;
 
-  public CVTermList(long cPtr, boolean cMemoryOwn) {
+  protected CVTermList(long cPtr, boolean cMemoryOwn) {
     swigCMemOwn = cMemoryOwn;
     swigCPtr = cPtr;
   }
 
-  public static long getCPtr(CVTermList obj) {
+  protected static long getCPtr(CVTermList obj) {
     return (obj == null) ? 0 : obj.swigCPtr;
   }
 
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Compartment.java b/src/bindings/java/java-files/org/sbml/libsbml/Compartment.java
index ee9313a..11275c2 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Compartment.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Compartment.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1551,9 +1551,9 @@ public class Compartment extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/CompartmentType.java b/src/bindings/java/java-files/org/sbml/libsbml/CompartmentType.java
index 43fecec..e539525 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/CompartmentType.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/CompartmentType.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -369,9 +369,9 @@ public class CompartmentType extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Constraint.java b/src/bindings/java/java-files/org/sbml/libsbml/Constraint.java
index 5a365c8..64ebd30 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Constraint.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Constraint.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -473,9 +473,9 @@ public class Constraint extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ConversionOption.java b/src/bindings/java/java-files/org/sbml/libsbml/ConversionOption.java
index 67506ef..270fcaa 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ConversionOption.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ConversionOption.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ConversionProperties.java b/src/bindings/java/java-files/org/sbml/libsbml/ConversionProperties.java
index 515f46c..2b38756 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ConversionProperties.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ConversionProperties.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -112,25 +112,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  <p>
  * @see ConversionOption
  * @see SBMLNamespaces
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Date.java b/src/bindings/java/java-files/org/sbml/libsbml/Date.java
index 5f4c765..3804d14 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Date.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Date.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/DateList.java b/src/bindings/java/java-files/org/sbml/libsbml/DateList.java
index 9e545fa..1c59cf2 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/DateList.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/DateList.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -12,12 +12,12 @@ public class DateList {
   private long swigCPtr;
   protected boolean swigCMemOwn;
 
-  public DateList(long cPtr, boolean cMemoryOwn) {
+  protected DateList(long cPtr, boolean cMemoryOwn) {
     swigCMemOwn = cMemoryOwn;
     swigCPtr = cPtr;
   }
 
-  public static long getCPtr(DateList obj) {
+  protected static long getCPtr(DateList obj) {
     return (obj == null) ? 0 : obj.swigCPtr;
   }
 
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Delay.java b/src/bindings/java/java-files/org/sbml/libsbml/Delay.java
index 0789cb6..3d7c4e3 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Delay.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Delay.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -412,9 +412,9 @@ public class Delay extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ElementFilter.java b/src/bindings/java/java-files/org/sbml/libsbml/ElementFilter.java
index 72000a9..6da4754 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ElementFilter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ElementFilter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Event.java b/src/bindings/java/java-files/org/sbml/libsbml/Event.java
index 22d7187..6180db5 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Event.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Event.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1194,9 +1194,9 @@ public class Event extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/EventAssignment.java b/src/bindings/java/java-files/org/sbml/libsbml/EventAssignment.java
index 1b69781..5ff0159 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/EventAssignment.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/EventAssignment.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -490,9 +490,9 @@ public class EventAssignment extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/FunctionDefinition.java b/src/bindings/java/java-files/org/sbml/libsbml/FunctionDefinition.java
index 8733434..5908775 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/FunctionDefinition.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/FunctionDefinition.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -472,9 +472,9 @@ public class FunctionDefinition extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ISBMLExtensionNamespaces.java b/src/bindings/java/java-files/org/sbml/libsbml/ISBMLExtensionNamespaces.java
index 55ca799..7162540 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ISBMLExtensionNamespaces.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ISBMLExtensionNamespaces.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/IdList.java b/src/bindings/java/java-files/org/sbml/libsbml/IdList.java
index a0c4510..8022173 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/IdList.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/IdList.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/IdentifierTransformer.java b/src/bindings/java/java-files/org/sbml/libsbml/IdentifierTransformer.java
index 6877128..91e9fb5 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/IdentifierTransformer.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/IdentifierTransformer.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/InitialAssignment.java b/src/bindings/java/java-files/org/sbml/libsbml/InitialAssignment.java
index 1ddb808..47c6b67 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/InitialAssignment.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/InitialAssignment.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -475,9 +475,9 @@ public class InitialAssignment extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/KineticLaw.java b/src/bindings/java/java-files/org/sbml/libsbml/KineticLaw.java
index f1ebfe7..6cf893d 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/KineticLaw.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/KineticLaw.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -961,9 +961,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/L3ParserSettings.java b/src/bindings/java/java-files/org/sbml/libsbml/L3ParserSettings.java
index 6642cdd..af17776 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/L3ParserSettings.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/L3ParserSettings.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -83,7 +83,7 @@ defined in SBML.
  * {@link libsbmlConstants#AST_NAME AST_NAME}.
  * <li> Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * <li> LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOf.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOf.java
index fc9430e..0608e49 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOf.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOf.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -39,14 +39,6 @@ defined in SBML.
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -645,9 +637,9 @@ appears in the documentation.
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getItemTypeCode()
    * @see #getElementName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartmentTypes.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartmentTypes.java
index a6200df..5e08c91 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartmentTypes.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartmentTypes.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartments.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartments.java
index a5d55af..bc4e4f8 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartments.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfCompartments.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfConstraints.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfConstraints.java
index 0f0df32..9439d55 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfConstraints.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfConstraints.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfEventAssignments.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfEventAssignments.java
index 4b04b65..1ddda31 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfEventAssignments.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfEventAssignments.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfEvents.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfEvents.java
index 889e733..a96bdbb 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfEvents.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfEvents.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfFunctionDefinitions.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfFunctionDefinitions.java
index 0cef2cb..f5ab3c3 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfFunctionDefinitions.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfFunctionDefinitions.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfInitialAssignments.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfInitialAssignments.java
index 463460b..c77ec24 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfInitialAssignments.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfInitialAssignments.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfLocalParameters.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfLocalParameters.java
index 6bb2c79..2708b78 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfLocalParameters.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfLocalParameters.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfParameters.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfParameters.java
index b20b485..73d9b5f 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfParameters.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfParameters.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfReactions.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfReactions.java
index 47d5e31..18d1046 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfReactions.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfReactions.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -229,9 +221,8 @@ public class ListOfReactions extends ListOf {
    * @see #size()
    */ public
  Reaction get(long n) {
-    long cPtr = libsbmlJNI.ListOfReactions_get__SWIG_0(swigCPtr, this, n);
-    return (cPtr == 0) ? null : new Reaction(cPtr, false);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.ListOfReactions_get__SWIG_0(swigCPtr, this, n), false);
+}
 
   
 /**
@@ -246,9 +237,8 @@ public class ListOfReactions extends ListOf {
    * @see #size()
    */ public
  Reaction get(String sid) {
-    long cPtr = libsbmlJNI.ListOfReactions_get__SWIG_2(swigCPtr, this, sid);
-    return (cPtr == 0) ? null : new Reaction(cPtr, false);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.ListOfReactions_get__SWIG_2(swigCPtr, this, sid), false);
+}
 
   
 /**
@@ -262,9 +252,8 @@ public class ListOfReactions extends ListOf {
    * @see #size()
    */ public
  Reaction remove(long n) {
-    long cPtr = libsbmlJNI.ListOfReactions_remove__SWIG_0(swigCPtr, this, n);
-    return (cPtr == 0) ? null : new Reaction(cPtr, true);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.ListOfReactions_remove__SWIG_0(swigCPtr, this, n), true);
+}
 
   
 /**
@@ -280,8 +269,7 @@ public class ListOfReactions extends ListOf {
    * returned item.
    */ public
  Reaction remove(String sid) {
-    long cPtr = libsbmlJNI.ListOfReactions_remove__SWIG_1(swigCPtr, this, sid);
-    return (cPtr == 0) ? null : new Reaction(cPtr, true);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.ListOfReactions_remove__SWIG_1(swigCPtr, this, sid), true);
+}
 
 }
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfRules.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfRules.java
index 007d0be..cdb0d15 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfRules.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfRules.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpecies.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpecies.java
index 34bf0a6..2f3de49 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpecies.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpecies.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesReferences.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesReferences.java
index e4454c2..8e96054 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesReferences.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesReferences.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesTypes.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesTypes.java
index 4689b75..5c14162 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesTypes.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfSpeciesTypes.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnitDefinitions.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnitDefinitions.java
index 8140274..30d83a4 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnitDefinitions.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnitDefinitions.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -24,14 +24,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnits.java b/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnits.java
index 151fe13..c54facf 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnits.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ListOfUnits.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -26,14 +26,6 @@ package org.sbml.libsbml;
  * defined by the SBML specification, such as 'metaid' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type="image/svg+xml" data="listof-illustration.svg" class="centered"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/LocalParameter.java b/src/bindings/java/java-files/org/sbml/libsbml/LocalParameter.java
index 3b6c177..1b92558 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/LocalParameter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/LocalParameter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -290,9 +290,9 @@ public class LocalParameter extends Parameter {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/MathML.java b/src/bindings/java/java-files/org/sbml/libsbml/MathML.java
index e0e8a08..2eeef33 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/MathML.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/MathML.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Model.java b/src/bindings/java/java-files/org/sbml/libsbml/Model.java
index 9816af5..d946eb2 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Model.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Model.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -17,7 +17,7 @@ package org.sbml.libsbml;
  * within the model, the list must not be empty; that is, it must have
  * length one or more.  The following are the components and lists
  * permitted in different Levels and Versions of SBML in
- * version 5.12.0
+ * version 5.13.0
  * of libSBML:
  * <ul>
  * <li> In SBML Level 1, the components are: {@link UnitDefinition}, {@link Compartment},
@@ -126,7 +126,7 @@ sp.setId("BestSpeciesEver");
  * <h2>Consistency and adherence to SBML specifications</h2>
  <p>
  * To make it easier for applications to do whatever they need,
- * libSBML version 5.12.0
+ * libSBML version 5.13.0
  * is relatively lax when it comes to enforcing correctness and
  * completeness of models <em>during</em> model construction and editing.
  * Essentially, libSBML <em>will</em> <em>not</em> in most cases check automatically
@@ -1792,9 +1792,8 @@ public class Model extends SBase {
    * @see #addReaction(Reaction r)
    */ public
  Reaction createReaction() {
-    long cPtr = libsbmlJNI.Model_createReaction(swigCPtr, this);
-    return (cPtr == 0) ? null : new Reaction(cPtr, false);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.Model_createReaction(swigCPtr, this), false);
+}
 
   
 /**
@@ -2651,9 +2650,8 @@ public class Model extends SBase {
    * @return the nth {@link Reaction} of this {@link Model}.
    */ public
  Reaction getReaction(long n) {
-    long cPtr = libsbmlJNI.Model_getReaction__SWIG_0(swigCPtr, this, n);
-    return (cPtr == 0) ? null : new Reaction(cPtr, false);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.Model_getReaction__SWIG_0(swigCPtr, this, n), false);
+}
 
   
 /**
@@ -2665,9 +2663,8 @@ public class Model extends SBase {
    * if no such {@link Reaction} exists.
    */ public
  Reaction getReaction(String sid) {
-    long cPtr = libsbmlJNI.Model_getReaction__SWIG_2(swigCPtr, this, sid);
-    return (cPtr == 0) ? null : new Reaction(cPtr, false);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.Model_getReaction__SWIG_2(swigCPtr, this, sid), false);
+}
 
   
 /**
@@ -3157,9 +3154,9 @@ public class Model extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -3619,9 +3616,8 @@ public class Model extends SBase {
    * out of range.
    */ public
  Reaction removeReaction(long n) {
-    long cPtr = libsbmlJNI.Model_removeReaction__SWIG_0(swigCPtr, this, n);
-    return (cPtr == 0) ? null : new Reaction(cPtr, true);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.Model_removeReaction__SWIG_0(swigCPtr, this, n), true);
+}
 
   
 /**
@@ -3636,9 +3632,8 @@ public class Model extends SBase {
    * with the identifier exists in this {@link Model} object.
    */ public
  Reaction removeReaction(String sid) {
-    long cPtr = libsbmlJNI.Model_removeReaction__SWIG_1(swigCPtr, this, sid);
-    return (cPtr == 0) ? null : new Reaction(cPtr, true);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.Model_removeReaction__SWIG_1(swigCPtr, this, sid), true);
+}
 
   
 /**
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ModelCreator.java b/src/bindings/java/java-files/org/sbml/libsbml/ModelCreator.java
index 7aafdc1..342d677 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ModelCreator.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ModelCreator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ModelCreatorList.java b/src/bindings/java/java-files/org/sbml/libsbml/ModelCreatorList.java
index 35148c9..6ed2db5 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ModelCreatorList.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ModelCreatorList.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -12,12 +12,12 @@ public class ModelCreatorList {
   private long swigCPtr;
   protected boolean swigCMemOwn;
 
-  public ModelCreatorList(long cPtr, boolean cMemoryOwn) {
+  protected ModelCreatorList(long cPtr, boolean cMemoryOwn) {
     swigCMemOwn = cMemoryOwn;
     swigCPtr = cPtr;
   }
 
-  public static long getCPtr(ModelCreatorList obj) {
+  protected static long getCPtr(ModelCreatorList obj) {
     return (obj == null) ? 0 : obj.swigCPtr;
   }
 
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ModelHistory.java b/src/bindings/java/java-files/org/sbml/libsbml/ModelHistory.java
index 96397ea..86e3645 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ModelHistory.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ModelHistory.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/ModifierSpeciesReference.java b/src/bindings/java/java-files/org/sbml/libsbml/ModifierSpeciesReference.java
index 57380de..02a21d7 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/ModifierSpeciesReference.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/ModifierSpeciesReference.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -175,9 +175,9 @@ public class ModifierSpeciesReference extends SimpleSpeciesReference {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/OFStream.java b/src/bindings/java/java-files/org/sbml/libsbml/OFStream.java
index cc2dd73..68a6e42 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/OFStream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/OFStream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/OStream.java b/src/bindings/java/java-files/org/sbml/libsbml/OStream.java
index 75b37ca..474592f 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/OStream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/OStream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/OStringStream.java b/src/bindings/java/java-files/org/sbml/libsbml/OStringStream.java
index f828441..8473ce0 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/OStringStream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/OStringStream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Parameter.java b/src/bindings/java/java-files/org/sbml/libsbml/Parameter.java
index 1b9fbee..7ef2aa1 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Parameter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Parameter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -748,9 +748,9 @@ public class Parameter extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Priority.java b/src/bindings/java/java-files/org/sbml/libsbml/Priority.java
index 5240b72..f6e4127 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Priority.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Priority.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -343,9 +343,9 @@ public class Priority extends SBase {
    * {@link libsbmlConstants#SBML_PRIORITY SBML_PRIORITY} (default).   <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/RDFAnnotationParser.java b/src/bindings/java/java-files/org/sbml/libsbml/RDFAnnotationParser.java
index 4504d27..1b0fa97 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/RDFAnnotationParser.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/RDFAnnotationParser.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/RateRule.java b/src/bindings/java/java-files/org/sbml/libsbml/RateRule.java
index 4aec473..ebf2976 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/RateRule.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/RateRule.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Reaction.java b/src/bindings/java/java-files/org/sbml/libsbml/Reaction.java
index 321e0ba..69b4689 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Reaction.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Reaction.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -261,9 +261,8 @@ public class Reaction extends SBase {
    * @return the (deep) copy of this {@link Reaction} object.
    */ public
  Reaction cloneObject() {
-    long cPtr = libsbmlJNI.Reaction_cloneObject(swigCPtr, this);
-    return (cPtr == 0) ? null : new Reaction(cPtr, true);
-  }
+  return (Reaction) libsbml.DowncastSBase(libsbmlJNI.Reaction_cloneObject(swigCPtr, this), true);
+}
 
   
 /**
@@ -1719,9 +1718,9 @@ public class Reaction extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Rule.java b/src/bindings/java/java-files/org/sbml/libsbml/Rule.java
index 1939638..e8f783d 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Rule.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Rule.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -753,9 +753,9 @@ public class Rule extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -788,7 +788,7 @@ public class Rule extends SBase {
    <p>
    * The returned value can be any of a number of different strings,
    * depending on the SBML Level in use and the kind of {@link Rule} object this
-   * is.  The rules as of libSBML version 5.12.0
+   * is.  The rules as of libSBML version 5.13.0
    * are the following:
    * <ul>
    * <li> (Level 2 and 3) RateRule: returns <code>'rateRule'</code>
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLConstructorException.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLConstructorException.java
index 9c0b933..6454449 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLConstructorException.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLConstructorException.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverter.java
index e31644b..b846931 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -106,25 +106,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverterRegistry.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverterRegistry.java
index 2d329a0..ec1af6d 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverterRegistry.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLConverterRegistry.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocument.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocument.java
index 2adee99..9782859 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocument.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocument.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -240,7 +240,7 @@ public class SBMLDocument extends SBase {
    <p>
    * <p>
  * This 'default Level' corresponds to the most recent SBML specification
- * Level available at the time libSBML version 5.12.0 was released.  The default Level is used by
+ * Level available at the time libSBML version 5.13.0 was released.  The default Level is used by
  * {@link SBMLDocument} if no Level is explicitly specified at the time of the
  * construction of an {@link SBMLDocument} instance.
    <p>
@@ -261,7 +261,7 @@ public class SBMLDocument extends SBase {
    * <p>
  * This 'default Version' corresponds to the most recent Version within the
  * most recent Level of SBML available at the time libSBML version
- * 5.12.0 was released.  The default Version is
+ * 5.13.0 was released.  The default Version is
  * used by {@link SBMLDocument} if no Version is explicitly specified at the time of
  * the construction of an {@link SBMLDocument} instance. 
    <p>
@@ -1283,8 +1283,38 @@ appears in the documentation.
    <p>
    * @return the number of failed checks (errors) encountered.
    */ public
+ long checkL1Compatibility(boolean inConversion) {
+    return libsbmlJNI.SBMLDocument_checkL1Compatibility__SWIG_0(swigCPtr, this, inConversion);
+  }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 1 and can be converted
+   * to Level 1.
+   <p>
+   * Callers should query the results of the consistency check by calling
+   * {@link SBMLDocument#getError(long)}.
+   <p>
+   * @return the number of failed checks (errors) encountered.
+   */ public
  long checkL1Compatibility() {
-    return libsbmlJNI.SBMLDocument_checkL1Compatibility(swigCPtr, this);
+    return libsbmlJNI.SBMLDocument_checkL1Compatibility__SWIG_1(swigCPtr, this);
+  }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 1 and can
+   * be converted to Level 2 Version 1.
+   <p>
+   * Callers should query the results of the consistency check by calling
+   * {@link SBMLDocument#getError(long)}.
+   <p>
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v1Compatibility(boolean inConversion) {
+    return libsbmlJNI.SBMLDocument_checkL2v1Compatibility__SWIG_0(swigCPtr, this, inConversion);
   }
 
   
@@ -1299,7 +1329,22 @@ appears in the documentation.
    * @return the number of failed checks (errors) encountered.
    */ public
  long checkL2v1Compatibility() {
-    return libsbmlJNI.SBMLDocument_checkL2v1Compatibility(swigCPtr, this);
+    return libsbmlJNI.SBMLDocument_checkL2v1Compatibility__SWIG_1(swigCPtr, this);
+  }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 2 and can
+   * be converted to Level 2 Version 2.
+   <p>
+   * Callers should query the results of the consistency check by calling
+   * {@link SBMLDocument#getError(long)}.
+   <p>
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v2Compatibility(boolean inConversion) {
+    return libsbmlJNI.SBMLDocument_checkL2v2Compatibility__SWIG_0(swigCPtr, this, inConversion);
   }
 
   
@@ -1314,7 +1359,22 @@ appears in the documentation.
    * @return the number of failed checks (errors) encountered.
    */ public
  long checkL2v2Compatibility() {
-    return libsbmlJNI.SBMLDocument_checkL2v2Compatibility(swigCPtr, this);
+    return libsbmlJNI.SBMLDocument_checkL2v2Compatibility__SWIG_1(swigCPtr, this);
+  }
+
+  
+/**
+   * Performs a set of consistency checks on the document to establish
+   * whether it is compatible with SBML Level 2 Version 3 and can
+   * be converted to Level 2 Version 3.
+   <p>
+   * Callers should query the results of the consistency check by calling
+   * {@link SBMLDocument#getError(long)}.
+   <p>
+   * @return the number of failed checks (errors) encountered.
+   */ public
+ long checkL2v3Compatibility(boolean inConversion) {
+    return libsbmlJNI.SBMLDocument_checkL2v3Compatibility__SWIG_0(swigCPtr, this, inConversion);
   }
 
   
@@ -1329,7 +1389,7 @@ appears in the documentation.
    * @return the number of failed checks (errors) encountered.
    */ public
  long checkL2v3Compatibility() {
-    return libsbmlJNI.SBMLDocument_checkL2v3Compatibility(swigCPtr, this);
+    return libsbmlJNI.SBMLDocument_checkL2v3Compatibility__SWIG_1(swigCPtr, this);
   }
 
   
@@ -1599,9 +1659,9 @@ appears in the documentation.
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see SBMLDocument#getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocumentPlugin.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocumentPlugin.java
index 60264d6..9c4dfba 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocumentPlugin.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLDocumentPlugin.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLError.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLError.java
index 1b5fadf..bad8266 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLError.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLError.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -8483,7 +8483,7 @@ defined in SBML.
  * name='SBMLErrorSeverity_t'>Severity codes associated with {@link SBMLError}
  * objects</h3>
  <p>
- * In libSBML version 5.12.0
+ * In libSBML version 5.13.0
  * there are no additional severity codes beyond those defined by {@link XMLError}.
  * They are implemented as static integer constants defined in the interface
  * class <code><a href='libsbmlConstants.html'>libsbmlConstants</a></code>,
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLErrorLog.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLErrorLog.java
index cceb83d..020b8a9 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLErrorLog.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLErrorLog.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtension.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtension.java
index c8e4130..cbaa188 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtension.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtension.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionException.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionException.java
index ce687d1..ee9de7b 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionException.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionException.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionRegistry.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionRegistry.java
index df8b16c..19ca4e9 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionRegistry.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExtensionRegistry.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExternalValidator.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExternalValidator.java
index 8989926..dde5bea 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLExternalValidator.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLExternalValidator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLFunctionDefinitionConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLFunctionDefinitionConverter.java
index bf1f775..65c5251 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLFunctionDefinitionConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLFunctionDefinitionConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -133,25 +133,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLFunctionDefinitionConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLIdConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLIdConverter.java
index ec2de0e..725533b 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLIdConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLIdConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -133,25 +133,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLIdConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLInferUnitsConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLInferUnitsConverter.java
index 3f66188..e3b0a4f 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLInferUnitsConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLInferUnitsConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -110,25 +110,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLInferUnitsConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLInitialAssignmentConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLInitialAssignmentConverter.java
index 6758162..4eab4f5 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLInitialAssignmentConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLInitialAssignmentConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -141,25 +141,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLInitialAssignmentConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevel1Version1Converter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevel1Version1Converter.java
index cd5d07e..46c6803 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevel1Version1Converter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevel1Version1Converter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -137,25 +137,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLLevel1Version1Converter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevelVersionConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevelVersionConverter.java
index e03245d..11dc5c7 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevelVersionConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLLevelVersionConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -139,25 +139,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLLevelVersionConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLLocalParameterConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLLocalParameterConverter.java
index 984bb38..45a3f93 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLLocalParameterConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLLocalParameterConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -117,25 +117,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLLocalParameterConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespaces.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespaces.java
index f26927a..863bafc 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespaces.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespaces.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespacesList.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespacesList.java
index 9ea010e..46a84d8 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespacesList.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLNamespacesList.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -12,12 +12,12 @@ public class SBMLNamespacesList {
   private long swigCPtr;
   protected boolean swigCMemOwn;
 
-  public SBMLNamespacesList(long cPtr, boolean cMemoryOwn) {
+  protected SBMLNamespacesList(long cPtr, boolean cMemoryOwn) {
     swigCMemOwn = cMemoryOwn;
     swigCPtr = cPtr;
   }
 
-  public static long getCPtr(SBMLNamespacesList obj) {
+  protected static long getCPtr(SBMLNamespacesList obj) {
     return (obj == null) ? 0 : obj.swigCPtr;
   }
 
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLReactionConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLReactionConverter.java
index a99bc0f..3a7ae90 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLReactionConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLReactionConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -112,25 +112,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLReactionConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLReader.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLReader.java
index 4e47b57..eb77d68 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLReader.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLReader.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLRuleConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLRuleConverter.java
index 9d7735a..976bd05 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLRuleConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLRuleConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -140,25 +140,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLRuleConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLStripPackageConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLStripPackageConverter.java
index 097a77c..7738f91 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLStripPackageConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLStripPackageConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -129,25 +129,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLStripPackageConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLTransforms.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLTransforms.java
index 5d54998..b992824 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLTransforms.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLTransforms.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLUnitsConverter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLUnitsConverter.java
index 2534dc2..825d2b2 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLUnitsConverter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLUnitsConverter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -126,25 +126,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 
 public class SBMLUnitsConverter extends SBMLConverter {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLValidator.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLValidator.java
index b8f20f5..6024c27 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLValidator.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLValidator.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBMLWriter.java b/src/bindings/java/java-files/org/sbml/libsbml/SBMLWriter.java
index 5bded3f..49b7e48 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBMLWriter.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBMLWriter.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBO.java b/src/bindings/java/java-files/org/sbml/libsbml/SBO.java
index ff79dc3..e7d7807 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBO.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBO.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -597,6 +597,12 @@ public class SBO {
     return libsbmlJNI.SBO_checkTerm__SWIG_1(sboTerm);
   }
 
+  
+/** * @internal */ public
+ static long getParentBranch(long term) {
+    return libsbmlJNI.SBO_getParentBranch(term);
+  }
+
   public SBO() {
     this(libsbmlJNI.new_SBO(), true);
   }
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBase.java b/src/bindings/java/java-files/org/sbml/libsbml/SBase.java
index bb969f8..cdb2813 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBase.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBase.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -2652,9 +2652,9 @@ void example (SBase sb)
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getPackageName()
    * @see #getElementName()
@@ -2819,7 +2819,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @param n the index of the disabled plug-in to return
@@ -2887,7 +2887,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @return the number of disabled plug-in objects (extension interfaces) 
@@ -2921,7 +2921,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @param recursive if <code>true</code>, the disabled information will be deleted
@@ -2957,7 +2957,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @param recursive if <code>true</code>, the disabled information will be deleted
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBaseExtensionPoint.java b/src/bindings/java/java-files/org/sbml/libsbml/SBaseExtensionPoint.java
index 388e729..ca54453 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBaseExtensionPoint.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBaseExtensionPoint.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBaseList.java b/src/bindings/java/java-files/org/sbml/libsbml/SBaseList.java
index 3bf6a32..c1a9b00 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBaseList.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBaseList.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -12,12 +12,12 @@ public class SBaseList {
   private long swigCPtr;
   protected boolean swigCMemOwn;
 
-  public SBaseList(long cPtr, boolean cMemoryOwn) {
+  protected SBaseList(long cPtr, boolean cMemoryOwn) {
     swigCMemOwn = cMemoryOwn;
     swigCPtr = cPtr;
   }
 
-  public static long getCPtr(SBaseList obj) {
+  protected static long getCPtr(SBaseList obj) {
     return (obj == null) ? 0 : obj.swigCPtr;
   }
 
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SBasePlugin.java b/src/bindings/java/java-files/org/sbml/libsbml/SBasePlugin.java
index 8bbc3c3..61b1818 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SBasePlugin.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SBasePlugin.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -254,7 +254,6 @@ public class SBasePlugin {
    <p>
    * @see #getPackageName()
    * @see #getElementNamespace()
-   * @see SBMLDocument#getSBMLNamespaces()
    * @see #getSBMLDocument()
    */ public
  String getURI() {
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ASTFunction.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ASTFunction.java
index 0ca032f..e754783 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ASTFunction.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ASTFunction.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ExpectedAttributes.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ExpectedAttributes.java
index 1a081bf..d3fa303 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ExpectedAttributes.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_ExpectedAttributes.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_FormulaUnitsData.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_FormulaUnitsData.java
index bd5a802..9a346f4 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_FormulaUnitsData.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_FormulaUnitsData.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_List.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_List.java
index 729fdb4..0275b22 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_List.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_List.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_StringBuffer_t.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_StringBuffer_t.java
index 061e4e2..4eda75a 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_StringBuffer_t.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_StringBuffer_t.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__ostream.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__ostream.java
index 5f282e2..1bb2e10 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__ostream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__ostream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_XMLError_p_t.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_XMLError_p_t.java
index 6bd0010..0a805d4 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_XMLError_p_t.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_XMLError_p_t.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_std__string_t.java b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_std__string_t.java
index cd9da1f..2aaf6e6 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_std__string_t.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SWIGTYPE_p_std__vectorT_std__string_t.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SimpleSpeciesReference.java b/src/bindings/java/java-files/org/sbml/libsbml/SimpleSpeciesReference.java
index a931546..b6ba479 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SimpleSpeciesReference.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SimpleSpeciesReference.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Species.java b/src/bindings/java/java-files/org/sbml/libsbml/Species.java
index 2cd7d38..d5bf8fb 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Species.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Species.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1615,9 +1615,9 @@ public class Species extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SpeciesReference.java b/src/bindings/java/java-files/org/sbml/libsbml/SpeciesReference.java
index deb1bca..be4133f 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SpeciesReference.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SpeciesReference.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SpeciesType.java b/src/bindings/java/java-files/org/sbml/libsbml/SpeciesType.java
index 113bf88..87b3d77 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SpeciesType.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SpeciesType.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -335,9 +335,9 @@ public class SpeciesType extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/StoichiometryMath.java b/src/bindings/java/java-files/org/sbml/libsbml/StoichiometryMath.java
index 264ab7c..dccec9e 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/StoichiometryMath.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/StoichiometryMath.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -454,9 +454,9 @@ public class StoichiometryMath extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/SyntaxChecker.java b/src/bindings/java/java-files/org/sbml/libsbml/SyntaxChecker.java
index e6d4250..d9729e7 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/SyntaxChecker.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/SyntaxChecker.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Trigger.java b/src/bindings/java/java-files/org/sbml/libsbml/Trigger.java
index c73eb63..de0cbfb 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Trigger.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Trigger.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -454,9 +454,9 @@ public class Trigger extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/Unit.java b/src/bindings/java/java-files/org/sbml/libsbml/Unit.java
index 6ea9614..b87d99d 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/Unit.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/Unit.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -1111,9 +1111,9 @@ public class Unit extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getPackageName()
    * @see #getElementName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/UnitDefinition.java b/src/bindings/java/java-files/org/sbml/libsbml/UnitDefinition.java
index 71d399f..ce0aa77 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/UnitDefinition.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/UnitDefinition.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -779,9 +779,9 @@ public class UnitDefinition extends SBase {
    <p>
    * <p>
  * @warning <span class='warning'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getPackageName()
    * @see #getElementName()
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLAttributes.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLAttributes.java
index 92762e2..b149b94 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLAttributes.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLAttributes.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLConstructorException.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLConstructorException.java
index 78a2921..a1fc728 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLConstructorException.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLConstructorException.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLError.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLError.java
index 0f81c18..d470b4a 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLError.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLError.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLErrorLog.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLErrorLog.java
index 19a15c2..9c92684 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLErrorLog.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLErrorLog.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLInputStream.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLInputStream.java
index 4b77257..0ba80b6 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLInputStream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLInputStream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLNamespaces.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLNamespaces.java
index b3de5b8..c8ce696 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLNamespaces.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLNamespaces.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLNode.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLNode.java
index b6d020c..0d835c2 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLNode.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLNode.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLOutputStream.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLOutputStream.java
index d2281d3..0d44bb3 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLOutputStream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLOutputStream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -938,9 +938,38 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    <p>
    * @param programVersion an optional version identification string to write
    * as a comment in the output stream.
+   <p>
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
+   */ public
+ void writeComment(String programName, String programVersion, boolean writeTimestamp) {
+    libsbmlJNI.XMLOutputStream_writeComment__SWIG_0(swigCPtr, this, programName, programVersion, writeTimestamp);
+  }
+
+  
+/**
+   * Writes an XML comment with the name and version of this program.
+   <p>
+   * The XML comment has the following form:
+   * <pre class='fragment'>
+<!-- Created by <program name> version <program version>
+on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
+</pre>
+   <p>
+   * See the class constructor for more information about this program
+   * comment.
+   <p>
+   * @param programName an optional program name to write as a comment
+   * in the output stream.
+   <p>
+   * @param programVersion an optional version identification string to write
+   * as a comment in the output stream.
+   <p>
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
    */ public
  void writeComment(String programName, String programVersion) {
-    libsbmlJNI.XMLOutputStream_writeComment(swigCPtr, this, programName, programVersion);
+    libsbmlJNI.XMLOutputStream_writeComment__SWIG_1(swigCPtr, this, programName, programVersion);
   }
 
   
@@ -999,4 +1028,81 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
     libsbmlJNI.XMLOutputStream_setSBMLNamespaces(swigCPtr, this, SBMLNamespaces.getCPtr(sbmlns), sbmlns);
   }
 
+  
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   */ public
+ static boolean getWriteComment() {
+    return libsbmlJNI.XMLOutputStream_getWriteComment();
+  }
+
+  
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   <p>
+   * @param writeComment the flag
+   */ public
+ static void setWriteComment(boolean writeComment) {
+    libsbmlJNI.XMLOutputStream_setWriteComment(writeComment);
+  }
+
+  
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   */ public
+ static boolean getWriteTimestamp() {
+    return libsbmlJNI.XMLOutputStream_getWriteTimestamp();
+  }
+
+  
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   <p>
+   * @param writeTimestamp the flag
+   */ public
+ static void setWriteTimestamp(boolean writeTimestamp) {
+    libsbmlJNI.XMLOutputStream_setWriteTimestamp(writeTimestamp);
+  }
+
+  
+/**
+   * @return the name of the library to be used in comments ('libSBML' by default)
+   */ public
+ static String getLibraryName() {
+    return libsbmlJNI.XMLOutputStream_getLibraryName();
+  }
+
+  
+/**
+   * sets the name of the library writing the XML
+<p>
+   * @param libraryName the name of the library to be used in comments
+   */ public
+ static void setLibraryName(String libraryName) {
+    libsbmlJNI.XMLOutputStream_setLibraryName(libraryName);
+  }
+
+  
+/**
+   * @return a string representing the version of the library writing the output.
+   *         This is the value of getLibSBMLDottedVersion() by default.
+   */ public
+ static String getLibraryVersion() {
+    return libsbmlJNI.XMLOutputStream_getLibraryVersion();
+  }
+
+  
+/**
+   * sets the name of the library writing the output
+   <p>
+   * @param libraryVersion the version information as string
+   */ public
+ static void setLibraryVersion(String libraryVersion) {
+    libsbmlJNI.XMLOutputStream_setLibraryVersion(libraryVersion);
+  }
+
 }
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputFileStream.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputFileStream.java
index 8bb5e40..0262421 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputFileStream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputFileStream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputStringStream.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputStringStream.java
index 29606f5..e965567 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputStringStream.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLOwningOutputStringStream.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLToken.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLToken.java
index 276c27c..b85cbc7 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLToken.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLToken.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/XMLTriple.java b/src/bindings/java/java-files/org/sbml/libsbml/XMLTriple.java
index 083594c..41076bd 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/XMLTriple.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/XMLTriple.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/libsbml.java b/src/bindings/java/java-files/org/sbml/libsbml/libsbml.java
index 0b9eb3a..97a4d6e 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/libsbml.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/libsbml.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -981,6 +981,92 @@ Similarly, the filename in the archive will be
   }
 
   
+/**
+ * This method takes a model qualifier type code and returns a string
+ * representing the code.
+ <p>
+ * This method takes a model qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+ * the string <code>'isDescribedBy'</code>.
+ <p>
+ * @param type The  value to
+ * translate. The value should be a libSBML constant whose
+ * name begins with <code>BQM_</code>, such as (for example)
+ * {@link libsbmlConstants#BQM_IS BQM_IS}.
+ <p>
+ * @return a human readable qualifier name for the given qualifier type.
+ <p>
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ */ public
+ static String ModelQualifierType_toString(int type) {
+    return libsbmlJNI.ModelQualifierType_toString(type);
+  }
+
+  
+/**
+ * This method takes a biol qualifier type code and returns a string
+ * representing the code.
+ <p>
+ * This method takes a biol qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+ * the string <code>'hasVersion'</code>.
+ <p>
+ * @param type The  value to
+ * translate. The value should be a constant whose name
+ * begins with <code>BQB_</code>, such as (for example)
+ * {@link libsbmlConstants#BQB_IS BQB_IS}.
+ <p>
+ * @return a human readable qualifier name for the given type.
+ <p>
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ */ public
+ static String BiolQualifierType_toString(int type) {
+    return libsbmlJNI.BiolQualifierType_toString(type);
+  }
+
+  
+/**
+ * This method takes a a string and returns a model qualifier
+ * representing the string.
+ <p>
+ * This method takes a string as argument and returns a model qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>'isDescribedBy'</code> will return the qualifier
+ * <code>BQM_IS_DESCRIBED_BY</code>.
+ <p>
+ * @param s The string to translate to a libSBML constant value representing a model qualifier.
+ <p>
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ */ public
+ static int ModelQualifierType_fromString(String s) {
+    return libsbmlJNI.ModelQualifierType_fromString(s);
+  }
+
+  
+/**
+ * This method takes a a string and returns a biol qualifier
+ * representing the string.
+ <p>
+ * This method takes a string as argument and returns a biol qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>'hasVersion'</code> will return the qualifier
+ * <code>BQB_HAS_VERSION</code>.
+ <p>
+ * @param s The string to translate to a libSBML constant value representing a biological qualifier.
+ <p>
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ */ public
+ static int BiolQualifierType_fromString(String s) {
+    return libsbmlJNI.BiolQualifierType_fromString(s);
+  }
+
+  
 /** * @internal */ public
  static boolean representsNumber(int type) {
     return libsbmlJNI.representsNumber(type);
@@ -1260,7 +1346,7 @@ Level 1 Version 2 text-string formula syntax.</caption>
  * <a href='libsbml.html#parseL3Formula(java.lang.String)'><code>libsbml.parseL3Formula(String)</code></a> and
  * <a href='libsbml.html#formulaToL3String(org.sbml.libsbml.ASTNode)'><code>libsbml.formulaToL3String(ASTNode)</code></a>.  The Level 1-oriented
  * system (i.e., what is provided by <a href='libsbml.html#formulaToString(java.lang.String)'><code>libsbml.formulaToString(String)</code></a>
- * and <a href='libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided 
+ * and <a href='libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided
  * untouched for backwards compatibility.
  <p>
  * <p>
@@ -2110,7 +2196,7 @@ Level 1 Version 2 text-string formula syntax.</caption>
  * <a href='libsbml.html#parseL3Formula(java.lang.String)'><code>libsbml.parseL3Formula(String)</code></a> and
  * <a href='libsbml.html#formulaToL3String(org.sbml.libsbml.ASTNode)'><code>libsbml.formulaToL3String(ASTNode)</code></a>.  The Level 1-oriented
  * system (i.e., what is provided by <a href='libsbml.html#formulaToString(java.lang.String)'><code>libsbml.formulaToString(String)</code></a>
- * and <a href='libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided 
+ * and <a href='libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided
  * untouched for backwards compatibility.
  <p>
  * <p>
@@ -2858,7 +2944,7 @@ in the "Level 3" text-string formula syntax.
  * {@link libsbmlConstants#AST_NAME AST_NAME}.
  * <li> Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * <li> LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/libsbmlConstants.java b/src/bindings/java/java-files/org/sbml/libsbml/libsbmlConstants.java
index 6db6f13..e927202 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/libsbmlConstants.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/libsbmlConstants.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -9,9 +9,9 @@
 package org.sbml.libsbml;
 
 public interface libsbmlConstants {
-  public final static String LIBSBML_DOTTED_VERSION = "5.12.0";
-  public final static int LIBSBML_VERSION = 51200;
-  public final static String LIBSBML_VERSION_STRING = "51200";
+  public final static String LIBSBML_DOTTED_VERSION = "5.13.0";
+  public final static int LIBSBML_VERSION = 51300;
+  public final static String LIBSBML_VERSION_STRING = "51300";
   // OperationReturnValues_t 
   public final static int LIBSBML_OPERATION_SUCCESS = 0;
   public final static int LIBSBML_INDEX_EXCEEDS_SIZE = -1;
@@ -28,6 +28,7 @@ public interface libsbmlConstants {
   public final static int LIBSBML_ANNOTATION_NAME_NOT_FOUND = -12;
   public final static int LIBSBML_ANNOTATION_NS_NOT_FOUND = -13;
   public final static int LIBSBML_MISSING_METAID = -14;
+  public final static int LIBSBML_DEPRECATED_ATTRIBUTE = -15;
   public final static int LIBSBML_PKG_VERSION_MISMATCH = -20;
   public final static int LIBSBML_PKG_UNKNOWN = -21;
   public final static int LIBSBML_PKG_UNKNOWN_VERSION = -22;
diff --git a/src/bindings/java/java-files/org/sbml/libsbml/libsbmlJNI.java b/src/bindings/java/java-files/org/sbml/libsbml/libsbmlJNI.java
index 95f6b2d..57d78f4 100644
--- a/src/bindings/java/java-files/org/sbml/libsbml/libsbmlJNI.java
+++ b/src/bindings/java/java-files/org/sbml/libsbml/libsbmlJNI.java
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -504,10 +504,14 @@ public class libsbmlJNI {
   public final static native long SBMLDocument_checkConsistencyWithStrictUnits(long jarg1, SBMLDocument jarg1_);
   public final static native long SBMLDocument_validateSBML(long jarg1, SBMLDocument jarg1_);
   public final static native long SBMLDocument_checkInternalConsistency(long jarg1, SBMLDocument jarg1_);
-  public final static native long SBMLDocument_checkL1Compatibility(long jarg1, SBMLDocument jarg1_);
-  public final static native long SBMLDocument_checkL2v1Compatibility(long jarg1, SBMLDocument jarg1_);
-  public final static native long SBMLDocument_checkL2v2Compatibility(long jarg1, SBMLDocument jarg1_);
-  public final static native long SBMLDocument_checkL2v3Compatibility(long jarg1, SBMLDocument jarg1_);
+  public final static native long SBMLDocument_checkL1Compatibility__SWIG_0(long jarg1, SBMLDocument jarg1_, boolean jarg2);
+  public final static native long SBMLDocument_checkL1Compatibility__SWIG_1(long jarg1, SBMLDocument jarg1_);
+  public final static native long SBMLDocument_checkL2v1Compatibility__SWIG_0(long jarg1, SBMLDocument jarg1_, boolean jarg2);
+  public final static native long SBMLDocument_checkL2v1Compatibility__SWIG_1(long jarg1, SBMLDocument jarg1_);
+  public final static native long SBMLDocument_checkL2v2Compatibility__SWIG_0(long jarg1, SBMLDocument jarg1_, boolean jarg2);
+  public final static native long SBMLDocument_checkL2v2Compatibility__SWIG_1(long jarg1, SBMLDocument jarg1_);
+  public final static native long SBMLDocument_checkL2v3Compatibility__SWIG_0(long jarg1, SBMLDocument jarg1_, boolean jarg2);
+  public final static native long SBMLDocument_checkL2v3Compatibility__SWIG_1(long jarg1, SBMLDocument jarg1_);
   public final static native long SBMLDocument_checkL2v4Compatibility(long jarg1, SBMLDocument jarg1_);
   public final static native long SBMLDocument_checkL3v1Compatibility(long jarg1, SBMLDocument jarg1_);
   public final static native long SBMLDocument_getError(long jarg1, SBMLDocument jarg1_, long jarg2);
@@ -1483,6 +1487,7 @@ public class libsbmlJNI {
   public final static native int SBO_stringToInt(String jarg1);
   public final static native boolean SBO_checkTerm__SWIG_0(String jarg1);
   public final static native boolean SBO_checkTerm__SWIG_1(int jarg1);
+  public final static native long SBO_getParentBranch(long jarg1);
   public final static native long new_SBO();
   public final static native void delete_SBO(long jarg1);
   public final static native boolean SyntaxChecker_isValidSBMLSId(String jarg1);
@@ -2006,11 +2011,20 @@ public class libsbmlJNI {
   public final static native void XMLOutputStream_writeAttribute__SWIG_14(long jarg1, XMLOutputStream jarg1_, long jarg2, XMLTriple jarg2_, int jarg3);
   public final static native void XMLOutputStream_writeAttribute__SWIG_18(long jarg1, XMLOutputStream jarg1_, String jarg2, String jarg3, long jarg4);
   public final static native void XMLOutputStream_writeXMLDecl(long jarg1, XMLOutputStream jarg1_);
-  public final static native void XMLOutputStream_writeComment(long jarg1, XMLOutputStream jarg1_, String jarg2, String jarg3);
+  public final static native void XMLOutputStream_writeComment__SWIG_0(long jarg1, XMLOutputStream jarg1_, String jarg2, String jarg3, boolean jarg4);
+  public final static native void XMLOutputStream_writeComment__SWIG_1(long jarg1, XMLOutputStream jarg1_, String jarg2, String jarg3);
   public final static native void XMLOutputStream_downIndent(long jarg1, XMLOutputStream jarg1_);
   public final static native void XMLOutputStream_upIndent(long jarg1, XMLOutputStream jarg1_);
   public final static native long XMLOutputStream_getSBMLNamespaces(long jarg1, XMLOutputStream jarg1_);
   public final static native void XMLOutputStream_setSBMLNamespaces(long jarg1, XMLOutputStream jarg1_, long jarg2, SBMLNamespaces jarg2_);
+  public final static native boolean XMLOutputStream_getWriteComment();
+  public final static native void XMLOutputStream_setWriteComment(boolean jarg1);
+  public final static native boolean XMLOutputStream_getWriteTimestamp();
+  public final static native void XMLOutputStream_setWriteTimestamp(boolean jarg1);
+  public final static native String XMLOutputStream_getLibraryName();
+  public final static native void XMLOutputStream_setLibraryName(String jarg1);
+  public final static native String XMLOutputStream_getLibraryVersion();
+  public final static native void XMLOutputStream_setLibraryVersion(String jarg1);
   public final static native long new_XMLOwningOutputStringStream__SWIG_0(String jarg1, boolean jarg2, String jarg3, String jarg4);
   public final static native long new_XMLOwningOutputStringStream__SWIG_1(String jarg1, boolean jarg2, String jarg3);
   public final static native long new_XMLOwningOutputStringStream__SWIG_2(String jarg1, boolean jarg2);
@@ -2165,6 +2179,10 @@ public class libsbmlJNI {
   public final static native long CVTerm_getListNestedCVTerms__SWIG_0(long jarg1, CVTerm jarg1_);
   public final static native int CVTerm_addNestedCVTerm(long jarg1, CVTerm jarg1_, long jarg2, CVTerm jarg2_);
   public final static native long CVTerm_removeNestedCVTerm(long jarg1, CVTerm jarg1_, long jarg2);
+  public final static native String ModelQualifierType_toString(int jarg1);
+  public final static native String BiolQualifierType_toString(int jarg1);
+  public final static native int ModelQualifierType_fromString(String jarg1);
+  public final static native int BiolQualifierType_fromString(String jarg1);
   public final static native long new_Date__SWIG_0(long jarg1, long jarg2, long jarg3, long jarg4, long jarg5, long jarg6, long jarg7, long jarg8, long jarg9);
   public final static native long new_Date__SWIG_1(long jarg1, long jarg2, long jarg3, long jarg4, long jarg5, long jarg6, long jarg7, long jarg8);
   public final static native long new_Date__SWIG_2(long jarg1, long jarg2, long jarg3, long jarg4, long jarg5, long jarg6, long jarg7);
@@ -2590,6 +2608,7 @@ public class libsbmlJNI {
   public final static native String ASTNode_getPackageName(long jarg1, ASTNode jarg1_);
   public final static native long ASTNode_getPlugin__SWIG_0(long jarg1, ASTNode jarg1_, String jarg2);
   public final static native long ASTNode_getPlugin__SWIG_2(long jarg1, ASTNode jarg1_, long jarg2);
+  public final static native long ASTNode_getNumPiece(long jarg1, ASTNode jarg1_);
   public final static native long ASTNode_getListOfNodes(long jarg1, ASTNode jarg1_);
   public final static native long new_MathML__SWIG_0(long jarg1, SBMLNamespaces jarg1_);
   public final static native long new_MathML__SWIG_1();
diff --git a/src/bindings/java/javadoc.i b/src/bindings/java/javadoc.i
index 3dd30fb..5f1731b 100644
--- a/src/bindings/java/javadoc.i
+++ b/src/bindings/java/javadoc.i
@@ -3838,9 +3838,9 @@ void example (SBase sb)
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getPackageName()
    * @see #getElementName()
@@ -4075,7 +4075,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @param n the index of the disabled plug-in to return
@@ -4113,7 +4113,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @param n the index of the disabled plug-in to return
@@ -4179,7 +4179,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @return the number of disabled plug-in objects (extension interfaces) 
@@ -4212,7 +4212,7 @@ void example (SBase sb)
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
    <p>
    * @param recursive if <code>true</code>, the disabled information will be deleted
@@ -4938,14 +4938,6 @@ defined in SBML.
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -5380,9 +5372,9 @@ appears in the documentation.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getItemTypeCode()
    * @see #getElementName()
@@ -5470,7 +5462,7 @@ appears in the documentation.
  * within the model, the list must not be empty; that is, it must have
  * length one or more.  The following are the components and lists
  * permitted in different Levels and Versions of SBML in
- * version 5.12.0
+ * version 5.13.0
  * of libSBML:
  * <ul>
  * <li> In SBML Level 1, the components are: {@link UnitDefinition}, {@link Compartment},
@@ -5579,7 +5571,7 @@ sp.setId("BestSpeciesEver");
  * <h2>Consistency and adherence to SBML specifications</h2>
  <p>
  * To make it easier for applications to do whatever they need,
- * libSBML version 5.12.0
+ * libSBML version 5.13.0
  * is relatively lax when it comes to enforcing correctness and
  * completeness of models <em>during</em> model construction and editing.
  * Essentially, libSBML <em>will</em> <em>not</em> in most cases check automatically
@@ -8841,9 +8833,9 @@ sp.setId("BestSpeciesEver");
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -9810,7 +9802,7 @@ sp.setId("BestSpeciesEver");
    <p>
    * <p>
  * This \'default Level\' corresponds to the most recent SBML specification
- * Level available at the time libSBML version 5.12.0 was released.  The default Level is used by
+ * Level available at the time libSBML version 5.13.0 was released.  The default Level is used by
  * {@link SBMLDocument} if no Level is explicitly specified at the time of the
  * construction of an {@link SBMLDocument} instance.
    <p>
@@ -9830,7 +9822,7 @@ sp.setId("BestSpeciesEver");
    * <p>
  * This \'default Version\' corresponds to the most recent Version within the
  * most recent Level of SBML available at the time libSBML version
- * 5.12.0 was released.  The default Version is
+ * 5.13.0 was released.  The default Version is
  * used by {@link SBMLDocument} if no Version is explicitly specified at the time of
  * the construction of an {@link SBMLDocument} instance. 
    <p>
@@ -10527,7 +10519,7 @@ appears in the documentation.
 ";
 
 
-%javamethodmodifiers SBMLDocument::checkL1Compatibility "
+%javamethodmodifiers SBMLDocument::checkL1Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 1 and can be converted
@@ -10541,7 +10533,7 @@ appears in the documentation.
 ";
 
 
-%javamethodmodifiers SBMLDocument::checkL2v1Compatibility "
+%javamethodmodifiers SBMLDocument::checkL2v1Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 2 Version 1 and can
@@ -10555,7 +10547,7 @@ appears in the documentation.
 ";
 
 
-%javamethodmodifiers SBMLDocument::checkL2v2Compatibility "
+%javamethodmodifiers SBMLDocument::checkL2v2Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 2 Version 2 and can
@@ -10569,7 +10561,7 @@ appears in the documentation.
 ";
 
 
-%javamethodmodifiers SBMLDocument::checkL2v3Compatibility "
+%javamethodmodifiers SBMLDocument::checkL2v3Compatibility(bool inConversion = false) "
 /**
    * Performs a set of consistency checks on the document to establish
    * whether it is compatible with SBML Level 2 Version 3 and can
@@ -10795,9 +10787,9 @@ appears in the documentation.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see SBMLDocument#getElementName()
    * @see #getPackageName()
@@ -11251,14 +11243,6 @@ appears in the documentation.
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -11631,9 +11615,9 @@ appears in the documentation.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -12238,14 +12222,6 @@ to indicate an invalid or unset unit.</td></tr>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -13105,9 +13081,9 @@ to indicate an invalid or unset unit.</td></tr>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getPackageName()
    * @see #getElementName()
@@ -13848,14 +13824,6 @@ to indicate an invalid or unset unit.</td></tr>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -14376,9 +14344,9 @@ to indicate an invalid or unset unit.</td></tr>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getPackageName()
    * @see #getElementName()
@@ -14955,14 +14923,6 @@ to indicate an invalid or unset unit.</td></tr>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -15259,9 +15219,9 @@ to indicate an invalid or unset unit.</td></tr>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -15601,14 +15561,6 @@ to indicate an invalid or unset unit.</td></tr>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -15873,9 +15825,9 @@ to indicate an invalid or unset unit.</td></tr>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -16503,14 +16455,6 @@ to indicate an invalid or unset unit.</td></tr>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -17711,9 +17655,9 @@ to indicate an invalid or unset unit.</td></tr>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -18381,14 +18325,6 @@ attributes.</caption>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -19616,9 +19552,9 @@ attributes.</caption>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -20098,14 +20034,6 @@ attributes.</caption>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -20748,9 +20676,9 @@ attributes.</caption>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -21208,14 +21136,6 @@ attributes.</caption>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -21450,9 +21370,9 @@ attributes.</caption>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -21927,14 +21847,6 @@ attributes.</caption>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -22294,9 +22206,9 @@ attributes.</caption>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -22869,14 +22781,6 @@ attributes.</caption>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -23483,9 +23387,9 @@ attributes.</caption>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -23516,7 +23420,7 @@ attributes.</caption>
    <p>
    * The returned value can be any of a number of different strings,
    * depending on the SBML Level in use and the kind of {@link Rule} object this
-   * is.  The rules as of libSBML version 5.12.0
+   * is.  The rules as of libSBML version 5.13.0
    * are the following:
    * <ul>
    * <li> (Level 2 and 3) RateRule: returns <code>\'rateRule\'</code>
@@ -25065,14 +24969,6 @@ attributes.</caption>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -25406,9 +25302,9 @@ attributes.</caption>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -25782,14 +25678,6 @@ attributes.</caption>
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -27114,9 +27002,9 @@ attributes.</caption>
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -28415,9 +28303,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -29198,14 +29086,6 @@ AST mechanisms.
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -30327,9 +30207,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -30559,14 +30439,6 @@ AST mechanisms.
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -31580,9 +31452,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -32052,14 +31924,6 @@ AST mechanisms.
  * defined by the SBML specification, such as \'metaid\' attributes and
  * annotations.
  <p>
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- <p>
- * <figure>
-  <object type=\"image/svg+xml\" data=\"listof-illustration.svg\" class=\"centered\"></object>
-</figure>
-
- <p>
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -32448,9 +32312,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -33243,9 +33107,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -33855,9 +33719,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -34319,9 +34183,9 @@ AST mechanisms.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -35012,6 +34876,11 @@ defined in SBML.
 ";
 
 
+%javamethodmodifiers SBO::getParentBranch(unsigned int term) "
+/** * @internal */ public
+";
+
+
 %javamethodmodifiers SBO::isChildOf(unsigned int term, unsigned int parent) "
 /** * @internal */ public
 ";
@@ -35866,9 +35735,9 @@ appears in the documentation.
    <p>
    * <p>
  * @warning <span class=\'warning\'>The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
    <p>
    * @see #getElementName()
    * @see #getPackageName()
@@ -37151,25 +37020,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  <p>
  * @see ConversionOption
  * @see SBMLNamespaces
@@ -37700,25 +37553,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -38180,25 +38017,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -38427,25 +38248,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -38647,25 +38452,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -38902,25 +38691,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -39149,25 +38922,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -39339,45 +39096,45 @@ This class of objects is defined by libSBML only and has no direct
 equivalent in terms of SBML components.  It is a class used in
 the implementation of extra functionality provided by libSBML.
 </p>
-
+
  <p>
- * This SBML converter takes an SBML document having one SBML Level+Version
- * combination, and attempts to convert it to an SBML document having a
- * different Level+Version combination.  This converter
- * (SBMLLevel1Version1Converter) converts models to SBML Level 1
- * Version 1, to the extent possible by the limited features of
- * that Level/Version combination of SBML.
+ * This SBML converter takes an SBML document having one SBML Level+Version
+ * combination, and attempts to convert it to an SBML document having a
+ * different Level+Version combination.  This converter
+ * (SBMLLevel1Version1Converter) converts models to SBML Level 1
+ * Version 1, to the extent possible by the limited features of
+ * that Level/Version combination of SBML.
  <p>
- * <h2>Configuration and use of {@link SBMLLevel1Version1Converter}
</h2>
+ * <h2>Configuration and use of {@link SBMLLevel1Version1Converter}</h2>
  <p>
- * {@link SBMLLevel1Version1Converter} is enabled by creating a {@link ConversionProperties}
- * object with the option <code>\'convertToL1V1\'</code>, and passing this
- * properties object to {@link SBMLDocument#convert(ConversionProperties)}.  The target SBML Level and Version
- * combination are determined by the value of the SBML namespace set on the
- * {@link ConversionProperties} object (using
- * {@link ConversionProperties#setTargetNamespaces(SBMLNamespaces targetNS)}).
+ * {@link SBMLLevel1Version1Converter} is enabled by creating a {@link ConversionProperties}
+ * object with the option <code>\'convertToL1V1\'</code>, and passing this
+ * properties object to {@link SBMLDocument#convert(ConversionProperties)}.  The target SBML Level and Version
+ * combination are determined by the value of the SBML namespace set on the
+ * {@link ConversionProperties} object (using
+ * {@link ConversionProperties#setTargetNamespaces(SBMLNamespaces targetNS)}).
  <p>
- * In addition, this converter offers the following options:
+ * In addition, this converter offers the following options:
  <p>
  * <ul>
- * <li> <code>\'changePow\':</code> Mathematical expressions for exponentiation of
- * the form <code>pow(s1, 2)</code> will be converted to the expression
- * <code>s1^2</code>.
- <p>
- * <li> <code>\'inlineCompartmentSizes\':</code> Back in the days of SBML Level 1
- * Version 1, many software tools assumed that the \'kinetic laws\' of
- * SBML were written in terms of units of
- * <em>concentration</em>/<em>time</em>.  These tools would not expect (and
- * thus not handle) rate expressions such as
- * <code>CompartmentOfS1 * k * S1</code>.
- * When the option <code>\'inlineCompartmentSizes\'</code> is enabled, libSBML will
- * replace the references to compartments (such as <code>\'CompartmentOfS1\'</code> in
- * this example) with their initial sizes.  This is not strictly correct in
- * all cases; in particular, if the compartment volume varies during
- * simulation, this conversion will not reflect the expected behavior.
- * However, many models do not have time-varying compartment sizes, so this
- * option makes it easy to get modern SBML rate expressions into a form that
- * old software tools may better understand.
+ * <li> <code>\'changePow\':</code> Mathematical expressions for exponentiation of
+ * the form <code>pow(s1, 2)</code> will be converted to the expression
+ * <code>s1^2</code>.
+ <p>
+ * <li> <code>\'inlineCompartmentSizes\':</code> Back in the days of SBML Level 1
+ * Version 1, many software tools assumed that the \'kinetic laws\' of
+ * SBML were written in terms of units of
+ * <em>concentration</em>/<em>time</em>.  These tools would not expect (and
+ * thus not handle) rate expressions such as
+ * <code>CompartmentOfS1 * k * S1</code>.
+ * When the option <code>\'inlineCompartmentSizes\'</code> is enabled, libSBML will
+ * replace the references to compartments (such as <code>\'CompartmentOfS1\'</code> in
+ * this example) with their initial sizes.  This is not strictly correct in
+ * all cases; in particular, if the compartment volume varies during
+ * simulation, this conversion will not reflect the expected behavior.
+ * However, many models do not have time-varying compartment sizes, so this
+ * option makes it easy to get modern SBML rate expressions into a form that
+ * old software tools may better understand.
  *
  * </ul> <p>
  * <p>
@@ -39460,25 +39217,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -39489,90 +39230,90 @@ if (config != None) {
 
 
 %javamethodmodifiers SBMLLevel1Version1Converter::SBMLLevel1Version1Converter "
-/**
-   * Creates a new {@link SBMLLevel1Version1Converter} object.
+/**
+   * Creates a new {@link SBMLLevel1Version1Converter} object.
    */ public
 ";
 
 
 %javamethodmodifiers SBMLLevel1Version1Converter::SBMLLevel1Version1Converter(const SBMLLevel1Version1Converter& obj) "
-/**
-   * Copy constructor; creates a copy of an {@link SBMLLevel1Version1Converter}
-   * object.
+/**
+   * Copy constructor; creates a copy of an {@link SBMLLevel1Version1Converter}
+   * object.
    <p>
-   * @param obj the {@link SBMLLevel1Version1Converter} object to copy.
+   * @param obj the {@link SBMLLevel1Version1Converter} object to copy.
    */ public
 ";
 
 
 %javamethodmodifiers SBMLLevel1Version1Converter::clone() const "
-/**
-   * Creates and returns a deep copy of this {@link SBMLLevel1Version1Converter}
-   * object.
+/**
+   * Creates and returns a deep copy of this {@link SBMLLevel1Version1Converter}
+   * object.
    <p>
-   * @return a (deep) copy of this converter.
+   * @return a (deep) copy of this converter.
    */ public
 ";
 
 
 %javamethodmodifiers SBMLLevel1Version1Converter::matchesProperties(const ConversionProperties &props) const "
-/**
-   * Returns <code>true</code> if this converter object\'s properties match the given
-   * properties.
+/**
+   * Returns <code>true</code> if this converter object\'s properties match the given
+   * properties.
    <p>
-   * A typical use of this method involves creating a {@link ConversionProperties}
-   * object, setting the options desired, and then calling this method on
-   * an {@link SBMLLevel1Version1Converter} object to find out if the object\'s
-   * property values match the given ones.  This method is also used by
-   * {@link SBMLConverterRegistry#getConverterFor(ConversionProperties)}
-   * to search across all registered converters for one matching particular
-   * properties.
+   * A typical use of this method involves creating a {@link ConversionProperties}
+   * object, setting the options desired, and then calling this method on
+   * an {@link SBMLLevel1Version1Converter} object to find out if the object\'s
+   * property values match the given ones.  This method is also used by
+   * {@link SBMLConverterRegistry#getConverterFor(ConversionProperties)}
+   * to search across all registered converters for one matching particular
+   * properties.
    <p>
-   * @param props the properties to match.
+   * @param props the properties to match.
    <p>
-   * @return <code>true</code> if this converter\'s properties match, <code>false
</code>
-   * otherwise.
+   * @return <code>true</code> if this converter\'s properties match, <code>false</code>
+   * otherwise.
    */ public
 ";
 
 
 %javamethodmodifiers SBMLLevel1Version1Converter::convert "
-/**
-   * Perform the conversion.
+/**
+   * Perform the conversion.
    <p>
-   * This method causes the converter to do the actual conversion work,
-   * that is, to convert the {@link SBMLDocument} object set by
-   * {@link SBMLConverter#setDocument(SBMLDocument)} and
-   * with the configuration options set by
-   * {@link SBMLConverter#setProperties(ConversionProperties)}.
+   * This method causes the converter to do the actual conversion work,
+   * that is, to convert the {@link SBMLDocument} object set by
+   * {@link SBMLConverter#setDocument(SBMLDocument)} and
+   * with the configuration options set by
+   * {@link SBMLConverter#setProperties(ConversionProperties)}.
    <p>
    * <p>
  * @return integer value indicating success/failure of the
  * function.   The possible values
- * returned by this function are:
+ * returned by this function are:
    * <ul>
-   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
-   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
-   * <li> {@link libsbmlConstants#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE}
-   * <li> {@link libsbmlConstants#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE}
+   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
+   * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
+   * <li> {@link libsbmlConstants#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE}
+   * <li> {@link libsbmlConstants#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE}
    * <li> {@link libsbmlConstants#LIBSBML_CONV_INVALID_SRC_DOCUMENT LIBSBML_CONV_INVALID_SRC_DOCUMENT}
-   * </ul>
+   * </ul>
    */ public
 ";
 
 
 %javamethodmodifiers SBMLLevel1Version1Converter::getDefaultProperties() const "
-/**
-   * Returns the default properties of this converter.
+/**
+   * Returns the default properties of this converter.
    <p>
-   * A given converter exposes one or more properties that can be adjusted
-   * in order to influence the behavior of the converter.  This method
-   * returns the <em>default</em> property settings for this converter.  It is
-   * meant to be called in order to discover all the settings for the
-   * converter object.
+   * A given converter exposes one or more properties that can be adjusted
+   * in order to influence the behavior of the converter.  This method
+   * returns the <em>default</em> property settings for this converter.  It is
+   * meant to be called in order to discover all the settings for the
+   * converter object.
    <p>
-   * @return the {@link ConversionProperties} object describing the default properties
-   * for this converter.
+   * @return the {@link ConversionProperties} object describing the default properties
+   * for this converter.
    */ public
 ";
 
@@ -39697,25 +39438,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -39917,25 +39642,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -40230,25 +39939,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -40467,25 +40160,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -40721,25 +40398,9 @@ if (config != None) {
  <p>
  * LibSBML provides a number of built-in converters; by convention, their
  * names end in <em>Converter</em>. The following are the built-in converters
- * provided by libSBML 5.12.0:
+ * provided by libSBML 5.13.0:
  <p>
- * <p>
- * <ul>
- * <li> CobraToFbcConverter
- * <li> CompFlatteningConverter
- * <li> FbcToCobraConverter
- * <li> {@link SBMLFunctionDefinitionConverter}
- * <li> {@link SBMLIdConverter}
- * <li> {@link SBMLInferUnitsConverter}
- * <li> {@link SBMLInitialAssignmentConverter}
- * <li> {@link SBMLLevelVersionConverter}
- * <li> {@link SBMLLocalParameterConverter}
- * <li> {@link SBMLReactionConverter}
- * <li> {@link SBMLRuleConverter}
- * <li> {@link SBMLStripPackageConverter}
- * <li> {@link SBMLUnitsConverter}
- *
- * </ul>
+ * @copydetails doc_list_of_libsbml_converters
  */
 "
 
@@ -45602,7 +45263,7 @@ public class test
 "
 
 
-%javamethodmodifiers XMLOutputStream::XMLOutputStream(  std::ostream&       stream , const std::string&  encoding       = "UTF-8" , bool                writeXMLDecl   = true , const std::string&  programName    = "" , const std::string&  programVersion = "") "
+%javamethodmodifiers XMLOutputStream::XMLOutputStream(std::ostream&       stream , const std::string&  encoding       = "UTF-8" , bool                writeXMLDecl   = true , const std::string&  programName    = "" , const std::string&  programVersion = "") "
 /**
    * Creates a new {@link XMLOutputStream} that wraps the given <code>stream</code>.
    <p>
@@ -46068,7 +45729,7 @@ appears in the documentation.
 ";
 
 
-%javamethodmodifiers XMLOutputStream::writeComment(const std::string& programName, const std::string& programVersion) "
+%javamethodmodifiers XMLOutputStream::writeComment(const std::string& programName, const std::string& programVersion, bool writeTimestamp = true) "
 /**
    * Writes an XML comment with the name and version of this program.
    <p>
@@ -46086,6 +45747,9 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    <p>
    * @param programVersion an optional version identification string to write
    * as a comment in the output stream.
+   <p>
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
    */ public
 ";
 
@@ -46147,6 +45811,75 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
 ";
 
 
+%javamethodmodifiers XMLOutputStream::getWriteComment "
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   */ public
+";
+
+
+%javamethodmodifiers XMLOutputStream::setWriteComment(bool writeComment) "
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   <p>
+   * @param writeComment the flag
+   */ public
+";
+
+
+%javamethodmodifiers XMLOutputStream::getWriteTimestamp "
+/**
+   * @return a boolean, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   */ public
+";
+
+
+%javamethodmodifiers XMLOutputStream::setWriteTimestamp(bool writeTimestamp) "
+/**
+   * sets a flag, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   <p>
+   * @param writeTimestamp the flag
+   */ public
+";
+
+
+%javamethodmodifiers XMLOutputStream::getLibraryName "
+/**
+   * @return the name of the library to be used in comments (\'libSBML\' by default)
+   */ public
+";
+
+
+%javamethodmodifiers XMLOutputStream::setLibraryName(const std::string& libraryName) "
+/**
+   * sets the name of the library writing the XML
+<p>
+   * @param libraryName the name of the library to be used in comments
+   */ public
+";
+
+
+%javamethodmodifiers XMLOutputStream::getLibraryVersion "
+/**
+   * @return a string representing the version of the library writing the output.
+   *         This is the value of getLibSBMLDottedVersion() by default.
+   */ public
+";
+
+
+%javamethodmodifiers XMLOutputStream::setLibraryVersion(const std::string& libraryVersion) "
+/**
+   * sets the name of the library writing the output
+   <p>
+   * @param libraryVersion the version information as string
+   */ public
+";
+
+
 %javamethodmodifiers XMLOutputStream::XMLOutputStream(const XMLOutputStream& other) "
 /** * @internal */ public
 ";
@@ -46242,7 +45975,7 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
 ";
 
 
-%javamethodmodifiers XMLOwningOutputFileStream::XMLOwningOutputFileStream(  const std::string&  filename , const std::string&  encoding     = "UTF-8" , bool                writeXMLDecl = true , const std::string&  programName  = "" , const std::string&  programVersion = "") "
+%javamethodmodifiers XMLOwningOutputFileStream::XMLOwningOutputFileStream(const std::string&  filename , const std::string&  encoding     = "UTF-8" , bool                writeXMLDecl = true , const std::string&  programName  = "" , const std::string&  programVersion = "") "
 /** * @internal */ public
 ";
 
@@ -56424,7 +56157,7 @@ defined in SBML.
  * name=\'SBMLErrorSeverity_t\'>Severity codes associated with {@link SBMLError}
  * objects</h3>
  <p>
- * In libSBML version 5.12.0
+ * In libSBML version 5.13.0
  * there are no additional severity codes beyond those defined by {@link XMLError}.
  * They are implemented as static integer constants defined in the interface
  * class <code><a href=\'libsbmlConstants.html\'>libsbmlConstants</a></code>,
@@ -56787,7 +56520,7 @@ defined in SBML.
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    <p>
-   * @param type a qualifier type
+   * @param type a qualifier type.
    <p>
    * 
 </dl><dl class=\"docnote\"><dt><b>Documentation note:</b></dt><dd>
@@ -56924,9 +56657,9 @@ appears in the documentation.
    * of this object or {@link libsbmlConstants#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER}
    * (the default).
    <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#getModelQualifierType()
-   * @see CVTerm#getBiologicalQualifierType()
+   * @see #getResources()
+   * @see #getModelQualifierType()
+   * @see #getBiologicalQualifierType()
    */ public
 ";
 
@@ -56990,9 +56723,9 @@ appears in the documentation.
    * of this object or {@link libsbmlConstants#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER}
    * (the default).
    <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#getModelQualifierType()
-   * @see CVTerm#getBiologicalQualifierType()
+   * @see #getResources()
+   * @see #getModelQualifierType()
+   * @see #getBiologicalQualifierType()
    */ public
 ";
 
@@ -57341,9 +57074,9 @@ appears in the documentation.
    <p>
    * @return the {@link XMLAttributes} that store the resources of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#addResource(String resource)
-   * @see CVTerm#getResourceURI(long n)
+   * @see #getQualifierType()
+   * @see #addResource(String resource)
+   * @see #getResourceURI(long n)
    */ public
 ";
 
@@ -57392,9 +57125,9 @@ appears in the documentation.
    <p>
    * @return the {@link XMLAttributes} that store the resources of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#addResource(String resource)
-   * @see CVTerm#getResourceURI(long n)
+   * @see #getQualifierType()
+   * @see #addResource(String resource)
+   * @see #getResourceURI(long n)
    */ public
 ";
 
@@ -57440,8 +57173,8 @@ appears in the documentation.
    * @return the number of resources in the set of {@link XMLAttributes}
    * of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#getResourceURI(long n)
+   * @see #getResources()
+   * @see #getResourceURI(long n)
    */ public
 ";
 
@@ -57487,8 +57220,8 @@ appears in the documentation.
    * @return the number of resources in the set of {@link XMLAttributes}
    * of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#getResourceURI(long n)
+   * @see #getResources()
+   * @see #getResourceURI(long n)
    */ public
 ";
 
@@ -57534,13 +57267,13 @@ appears in the documentation.
    * are stored in this {@link CVTerm} object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    <p>
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    <p>
    * @return string representing the value of the nth resource
    * in the set of {@link XMLAttributes} of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getNumResources()
-   * @see CVTerm#getQualifierType()
+   * @see #getNumResources()
+   * @see #getQualifierType()
    */ public
 ";
 
@@ -57586,13 +57319,13 @@ appears in the documentation.
    * are stored in this {@link CVTerm} object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    <p>
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    <p>
    * @return string representing the value of the nth resource
    * in the set of {@link XMLAttributes} of this {@link CVTerm}.
    <p>
-   * @see CVTerm#getNumResources()
-   * @see CVTerm#getQualifierType()
+   * @see #getNumResources()
+   * @see #getQualifierType()
    */ public
 ";
 
@@ -57612,7 +57345,7 @@ appears in the documentation.
    * <li> {@link libsbmlConstants#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS}
    *
    * </ul> <p>
-   * @see CVTerm#getQualifierType()
+   * @see #getQualifierType()
    */ public
 ";
 
@@ -57622,7 +57355,7 @@ appears in the documentation.
    * Sets the model qualifier type
    * of this {@link CVTerm} object.
    <p>
-   * @param type the model qualifier type
+   * @param type the model qualifier type.
    <p>
    * <p>
  * @return integer value indicating success/failure of the
@@ -57638,8 +57371,8 @@ appears in the documentation.
    * then the model qualifier type
    * will default to {@link libsbmlConstants#BQM_UNKNOWN BQM_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
 ";
 
@@ -57666,8 +57399,8 @@ appears in the documentation.
    * then the biology qualifier type
    * will default to {@link libsbmlConstants#BQB_UNKNOWN BQB_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
 ";
 
@@ -57677,7 +57410,7 @@ appears in the documentation.
    * Sets the model qualifier
    * type value of this {@link CVTerm} object.
    <p>
-   * @param qualifier the string representing a model qualifier
+   * @param qualifier the string representing a model qualifier.
    <p>
    * <p>
  * @return integer value indicating success/failure of the
@@ -57693,8 +57426,8 @@ appears in the documentation.
    * then the model qualifier type
    * will default to {@link libsbmlConstants#BQM_UNKNOWN BQM_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
 ";
 
@@ -57704,7 +57437,7 @@ appears in the documentation.
    * Sets the biology qualifier
    * type code of this {@link CVTerm} object.
    <p>
-   * @param qualifier the string representing a biology qualifier
+   * @param qualifier the string representing a biology qualifier.
    <p>
    * <p>
  * @return integer value indicating success/failure of the
@@ -57720,8 +57453,8 @@ appears in the documentation.
    * then the biology qualifier type code
    * will default to {@link libsbmlConstants#BQB_UNKNOWN BQB_UNKNOWN}.
    <p>
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#setQualifierType(int)
+   * @see #getQualifierType()
+   * @see #setQualifierType(int)
    */ public
 ";
 
@@ -57811,11 +57544,11 @@ appears in the documentation.
    * <li> {@link libsbmlConstants#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED}
    *
    * </ul> <p>
-   * @see CVTerm#getResources()
-   * @see CVTerm#removeResource(String resource)
-   * @see CVTerm#getQualifierType()
-   * @see CVTerm#getModelQualifierType()
-   * @see CVTerm#getBiologicalQualifierType()
+   * @see #getResources()
+   * @see #removeResource(String resource)
+   * @see #getQualifierType()
+   * @see #getModelQualifierType()
+   * @see #getBiologicalQualifierType()
    */ public
 ";
 
@@ -57838,7 +57571,7 @@ appears in the documentation.
    * <li> {@link libsbmlConstants#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE}
    *
    * </ul> <p>
-   * @see CVTerm#addResource(String resource)
+   * @see #addResource(String resource)
    */ public
 ";
 
@@ -57891,7 +57624,7 @@ appears in the documentation.
    * Returns the nth {@link CVTerm} in the list of CVTerms of this {@link CVTerm}
    * object.
    <p>
-   * @param n long the index of the {@link CVTerm} to retrieve
+   * @param n long the index of the {@link CVTerm} to retrieve.
    <p>
    * @return the nth {@link CVTerm} in the list of CVTerms for this {@link CVTerm} object.
    */ public
@@ -57903,7 +57636,7 @@ appears in the documentation.
    * Returns the nth {@link CVTerm} in the list of CVTerms of this {@link CVTerm}
    * object.
    <p>
-   * @param n long the index of the {@link CVTerm} to retrieve
+   * @param n long the index of the {@link CVTerm} to retrieve.
    <p>
    * @return the nth {@link CVTerm} in the list of CVTerms for this {@link CVTerm} object.
    */ public
@@ -57955,7 +57688,7 @@ appears in the documentation.
    * Removes the nth {@link CVTerm} in the list of CVTerms of this {@link CVTerm}
    * object and returns a pointer to it.
    <p>
-   * @param n long the index of the {@link CVTerm} to retrieve
+   * @param n long the index of the {@link CVTerm} to retrieve.
    <p>
    * @return a pointer to the nth {@link CVTerm} in the list of CVTerms for this 
    * {@link CVTerm} object.
@@ -57968,6 +57701,88 @@ appears in the documentation.
 ";
 
 
+%javamethodmodifiers ModelQualifierType_toString(ModelQualifierType_t type) "
+/**
+ * This method takes a model qualifier type code and returns a string
+ * representing the code.
+ <p>
+ * This method takes a model qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+ * the string <code>\'isDescribedBy\'</code>.
+ <p>
+ * @param type The  value to
+ * translate. The value should be a libSBML constant whose
+ * name begins with <code>BQM_</code>, such as (for example)
+ * {@link libsbmlConstants#BQM_IS BQM_IS}.
+ <p>
+ * @return a human readable qualifier name for the given qualifier type.
+ <p>
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ */ public
+";
+
+
+%javamethodmodifiers BiolQualifierType_toString(BiolQualifierType_t type) "
+/**
+ * This method takes a biol qualifier type code and returns a string
+ * representing the code.
+ <p>
+ * This method takes a biol qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+ * the string <code>\'hasVersion\'</code>.
+ <p>
+ * @param type The  value to
+ * translate. The value should be a constant whose name
+ * begins with <code>BQB_</code>, such as (for example)
+ * {@link libsbmlConstants#BQB_IS BQB_IS}.
+ <p>
+ * @return a human readable qualifier name for the given type.
+ <p>
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ */ public
+";
+
+
+%javamethodmodifiers ModelQualifierType_fromString(const char* s) "
+/**
+ * This method takes a a string and returns a model qualifier
+ * representing the string.
+ <p>
+ * This method takes a string as argument and returns a model qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>\'isDescribedBy\'</code> will return the qualifier
+ * <code>BQM_IS_DESCRIBED_BY</code>.
+ <p>
+ * @param s The string to translate to a libSBML constant value representing a model qualifier.
+ <p>
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ */ public
+";
+
+
+%javamethodmodifiers BiolQualifierType_fromString(const char* s) "
+/**
+ * This method takes a a string and returns a biol qualifier
+ * representing the string.
+ <p>
+ * This method takes a string as argument and returns a biol qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>\'hasVersion\'</code> will return the qualifier
+ * <code>BQB_HAS_VERSION</code>.
+ <p>
+ * @param s The string to translate to a libSBML constant value representing a biological qualifier.
+ <p>
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ */ public
+";
+
+
 %typemap(javaimports) Date "
 /** 
  *  A MIRIAM-compliant date representation.
@@ -60196,7 +60011,6 @@ defined in SBML.
    <p>
    * @see #getPackageName()
    * @see #getElementNamespace()
-   * @see SBMLDocument#getSBMLNamespaces()
    * @see #getSBMLDocument()
    */ public
 ";
@@ -62360,7 +62174,7 @@ defined in SBML.
  * mathematical functions that are permitted in SBML. The values are shown
  * in the following table:
  <p>
- * <table border=\"0\" class=\"centered text-table borderless code\">
+ * <table border=\"0\" class=\"centered text-table align-bottom borderless code\">
 <tr><td>AST_CONSTANT_E</td><td>         AST_FUNCTION_COT</td><td>       AST_LOGICAL_NOT</td></tr>
 <tr><td>AST_CONSTANT_FALSE</td><td>     AST_FUNCTION_COTH</td><td>      AST_LOGICAL_OR</td></tr>
 <tr><td>AST_CONSTANT_PI</td><td>        AST_FUNCTION_CSC</td><td>       AST_LOGICAL_XOR</td></tr>
@@ -64580,6 +64394,11 @@ used to define a number with value <code>10</code> and unit of measurement
 ";
 
 
+%javamethodmodifiers ASTNode::getNumPiece() const "
+/** * @internal */ public
+";
+
+
 %javamethodmodifiers ASTNode::containsVariable(const std::string id) const "
 /** * @internal */ public
 ";
@@ -64884,7 +64703,7 @@ Level 1 Version 2 text-string formula syntax.</caption>
  * <a href=\'libsbml.html#parseL3Formula(java.lang.String)\'><code>libsbml.parseL3Formula(String)</code></a> and
  * <a href=\'libsbml.html#formulaToL3String(org.sbml.libsbml.ASTNode)\'><code>libsbml.formulaToL3String(ASTNode)</code></a>.  The Level 1-oriented
  * system (i.e., what is provided by <a href=\'libsbml.html#formulaToString(java.lang.String)\'><code>libsbml.formulaToString(String)</code></a>
- * and <a href=\'libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)\'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided 
+ * and <a href=\'libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)\'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided
  * untouched for backwards compatibility.
  <p>
  * <p>
@@ -65730,7 +65549,7 @@ Level 1 Version 2 text-string formula syntax.</caption>
  * <a href=\'libsbml.html#parseL3Formula(java.lang.String)\'><code>libsbml.parseL3Formula(String)</code></a> and
  * <a href=\'libsbml.html#formulaToL3String(org.sbml.libsbml.ASTNode)\'><code>libsbml.formulaToL3String(ASTNode)</code></a>.  The Level 1-oriented
  * system (i.e., what is provided by <a href=\'libsbml.html#formulaToString(java.lang.String)\'><code>libsbml.formulaToString(String)</code></a>
- * and <a href=\'libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)\'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided 
+ * and <a href=\'libsbml.html#parseFormula(org.sbml.libsbml.ASTNode)\'><code>libsbml.parseFormula(ASTNode)</code></a>) is provided
  * untouched for backwards compatibility.
  <p>
  * <p>
@@ -66473,7 +66292,7 @@ in the \"Level 3\" text-string formula syntax.
  * {@link libsbmlConstants#AST_NAME AST_NAME}.
  * <li> Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * <li> LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
@@ -67229,7 +67048,7 @@ defined in SBML.
  * {@link libsbmlConstants#AST_NAME AST_NAME}.
  * <li> Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * <li> LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
diff --git a/src/bindings/java/libsbml.i b/src/bindings/java/libsbml.i
index 03ac95b..c9f3f59 100644
--- a/src/bindings/java/libsbml.i
+++ b/src/bindings/java/libsbml.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/libsbml_wrap.cpp b/src/bindings/java/libsbml_wrap.cpp
index bdf3cc3..0c4e253 100644
--- a/src/bindings/java/libsbml_wrap.cpp
+++ b/src/bindings/java/libsbml_wrap.cpp
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -325,21 +325,29 @@ namespace Swig {
     class JNIEnvWrapper {
       const Director *director_;
       JNIEnv *jenv_;
+      int env_status;
     public:
-      JNIEnvWrapper(const Director *director) : director_(director), jenv_(0) {
+      JNIEnvWrapper(const Director *director) : director_(director), jenv_(0), env_status(0) {
+#if defined(__ANDROID__)
+        JNIEnv **jenv = &jenv_;
+#else
+        void **jenv = (void **)&jenv_;
+#endif
+        env_status = director_->swig_jvm_->GetEnv((void **)&jenv_, JNI_VERSION_1_2);
 #if defined(SWIG_JAVA_ATTACH_CURRENT_THREAD_AS_DAEMON)
         // Attach a daemon thread to the JVM. Useful when the JVM should not wait for 
         // the thread to exit upon shutdown. Only for jdk-1.4 and later.
-        director_->swig_jvm_->AttachCurrentThreadAsDaemon((void **) &jenv_, NULL);
+        director_->swig_jvm_->AttachCurrentThreadAsDaemon(jenv, NULL);
 #else
-        director_->swig_jvm_->AttachCurrentThread((void **) &jenv_, NULL);
+        director_->swig_jvm_->AttachCurrentThread(jenv, NULL);
 #endif
       }
       ~JNIEnvWrapper() {
 #if !defined(SWIG_JAVA_NO_DETACH_CURRENT_THREAD)
         // Some JVMs, eg jdk-1.4.2 and lower on Solaris have a bug and crash with the DetachCurrentThread call.
         // However, without this call, the JVM hangs on exit when the thread was not created by the JVM and creates a memory leak.
-        director_->swig_jvm_->DetachCurrentThread();
+        if (env_status == JNI_EDETACHED)
+          director_->swig_jvm_->DetachCurrentThread();
 #endif
       }
       JNIEnv *getJNIEnv() const {
@@ -10222,7 +10230,24 @@ SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkInt
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL1Compatibility(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL1Compatibility_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+  jlong jresult = 0 ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  (void)jenv;
+  (void)jcls;
+  (void)jarg1_;
+  arg1 = *(SBMLDocument **)&jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL1Compatibility(arg2);
+  jresult = (jlong)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL1Compatibility_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
   jlong jresult = 0 ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -10237,7 +10262,24 @@ SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL1C
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v1Compatibility(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v1Compatibility_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+  jlong jresult = 0 ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  (void)jenv;
+  (void)jcls;
+  (void)jarg1_;
+  arg1 = *(SBMLDocument **)&jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v1Compatibility(arg2);
+  jresult = (jlong)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v1Compatibility_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
   jlong jresult = 0 ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -10252,7 +10294,24 @@ SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v2Compatibility(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v2Compatibility_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+  jlong jresult = 0 ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  (void)jenv;
+  (void)jcls;
+  (void)jarg1_;
+  arg1 = *(SBMLDocument **)&jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v2Compatibility(arg2);
+  jresult = (jlong)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v2Compatibility_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
   jlong jresult = 0 ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -10267,7 +10326,24 @@ SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v
 }
 
 
-SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v3Compatibility(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v3Compatibility_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jboolean jarg2) {
+  jlong jresult = 0 ;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  unsigned int result;
+  
+  (void)jenv;
+  (void)jcls;
+  (void)jarg1_;
+  arg1 = *(SBMLDocument **)&jarg1; 
+  arg2 = jarg2 ? true : false; 
+  result = (unsigned int)(arg1)->checkL2v3Compatibility(arg2);
+  jresult = (jlong)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBMLDocument_1checkL2v3Compatibility_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
   jlong jresult = 0 ;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   unsigned int result;
@@ -28700,6 +28776,20 @@ SWIGEXPORT jboolean JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBO_1checkTerm_1_1S
 }
 
 
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_SBO_1getParentBranch(JNIEnv *jenv, jclass jcls, jlong jarg1) {
+  jlong jresult = 0 ;
+  unsigned int arg1 ;
+  unsigned int result;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = (unsigned int)jarg1; 
+  result = (unsigned int)SBO::getParentBranch(arg1);
+  jresult = (jlong)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_new_1SBO(JNIEnv *jenv, jclass jcls) {
   jlong jresult = 0 ;
   SBO *result = 0 ;
@@ -39513,7 +39603,40 @@ SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1writeX
 }
 
 
-SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1writeComment(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
+SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1writeComment_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3, jboolean jarg4) {
+  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
+  std::string *arg2 = 0 ;
+  std::string *arg3 = 0 ;
+  bool arg4 ;
+  
+  (void)jenv;
+  (void)jcls;
+  (void)jarg1_;
+  arg1 = *(XMLOutputStream **)&jarg1; 
+  if(!jarg2) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
+    return ;
+  }
+  const char *arg2_pstr = (const char *)jenv->GetStringUTFChars(jarg2, 0); 
+  if (!arg2_pstr) return ;
+  std::string arg2_str(arg2_pstr);
+  arg2 = &arg2_str;
+  jenv->ReleaseStringUTFChars(jarg2, arg2_pstr); 
+  if(!jarg3) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
+    return ;
+  }
+  const char *arg3_pstr = (const char *)jenv->GetStringUTFChars(jarg3, 0); 
+  if (!arg3_pstr) return ;
+  std::string arg3_str(arg3_pstr);
+  arg3 = &arg3_str;
+  jenv->ReleaseStringUTFChars(jarg3, arg3_pstr); 
+  arg4 = jarg4 ? true : false; 
+  (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3,arg4);
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1writeComment_1_1SWIG_11(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) {
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -39595,6 +39718,110 @@ SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1setSBM
 }
 
 
+SWIGEXPORT jboolean JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1getWriteComment(JNIEnv *jenv, jclass jcls) {
+  jboolean jresult = 0 ;
+  bool result;
+  
+  (void)jenv;
+  (void)jcls;
+  result = (bool)XMLOutputStream::getWriteComment();
+  jresult = (jboolean)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1setWriteComment(JNIEnv *jenv, jclass jcls, jboolean jarg1) {
+  bool arg1 ;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = jarg1 ? true : false; 
+  XMLOutputStream::setWriteComment(arg1);
+}
+
+
+SWIGEXPORT jboolean JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1getWriteTimestamp(JNIEnv *jenv, jclass jcls) {
+  jboolean jresult = 0 ;
+  bool result;
+  
+  (void)jenv;
+  (void)jcls;
+  result = (bool)XMLOutputStream::getWriteTimestamp();
+  jresult = (jboolean)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1setWriteTimestamp(JNIEnv *jenv, jclass jcls, jboolean jarg1) {
+  bool arg1 ;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = jarg1 ? true : false; 
+  XMLOutputStream::setWriteTimestamp(arg1);
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1getLibraryName(JNIEnv *jenv, jclass jcls) {
+  jstring jresult = 0 ;
+  std::string result;
+  
+  (void)jenv;
+  (void)jcls;
+  result = XMLOutputStream::getLibraryName();
+  jresult = jenv->NewStringUTF((&result)->c_str()); 
+  return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1setLibraryName(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+  std::string *arg1 = 0 ;
+  
+  (void)jenv;
+  (void)jcls;
+  if(!jarg1) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
+    return ;
+  }
+  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
+  if (!arg1_pstr) return ;
+  std::string arg1_str(arg1_pstr);
+  arg1 = &arg1_str;
+  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
+  XMLOutputStream::setLibraryName((std::string const &)*arg1);
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1getLibraryVersion(JNIEnv *jenv, jclass jcls) {
+  jstring jresult = 0 ;
+  std::string result;
+  
+  (void)jenv;
+  (void)jcls;
+  result = XMLOutputStream::getLibraryVersion();
+  jresult = jenv->NewStringUTF((&result)->c_str()); 
+  return jresult;
+}
+
+
+SWIGEXPORT void JNICALL Java_org_sbml_libsbml_libsbmlJNI_XMLOutputStream_1setLibraryVersion(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+  std::string *arg1 = 0 ;
+  
+  (void)jenv;
+  (void)jcls;
+  if(!jarg1) {
+    SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null std::string");
+    return ;
+  }
+  const char *arg1_pstr = (const char *)jenv->GetStringUTFChars(jarg1, 0); 
+  if (!arg1_pstr) return ;
+  std::string arg1_str(arg1_pstr);
+  arg1 = &arg1_str;
+  jenv->ReleaseStringUTFChars(jarg1, arg1_pstr); 
+  XMLOutputStream::setLibraryVersion((std::string const &)*arg1);
+}
+
+
 SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_new_1XMLOwningOutputStringStream_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jstring jarg1, jboolean jarg2, jstring jarg3, jstring jarg4) {
   jlong jresult = 0 ;
   std::string *arg1 = 0 ;
@@ -42864,6 +43091,72 @@ SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_CVTerm_1removeNestedCV
 }
 
 
+SWIGEXPORT jstring JNICALL Java_org_sbml_libsbml_libsbmlJNI_ModelQualifierType_1toString(JNIEnv *jenv, jclass jcls, jint jarg1) {
+  jstring jresult = 0 ;
+  ModelQualifierType_t arg1 ;
+  char *result = 0 ;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = (ModelQualifierType_t)jarg1; 
+  result = (char *)ModelQualifierType_toString(arg1);
+  if (result) jresult = jenv->NewStringUTF((const char *)result);
+  return jresult;
+}
+
+
+SWIGEXPORT jstring JNICALL Java_org_sbml_libsbml_libsbmlJNI_BiolQualifierType_1toString(JNIEnv *jenv, jclass jcls, jint jarg1) {
+  jstring jresult = 0 ;
+  BiolQualifierType_t arg1 ;
+  char *result = 0 ;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = (BiolQualifierType_t)jarg1; 
+  result = (char *)BiolQualifierType_toString(arg1);
+  if (result) jresult = jenv->NewStringUTF((const char *)result);
+  return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sbml_libsbml_libsbmlJNI_ModelQualifierType_1fromString(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+  jint jresult = 0 ;
+  char *arg1 = (char *) 0 ;
+  ModelQualifierType_t result;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = 0;
+  if (jarg1) {
+    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
+    if (!arg1) return 0;
+  }
+  result = (ModelQualifierType_t)ModelQualifierType_fromString((char const *)arg1);
+  jresult = (jint)result; 
+  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+  return jresult;
+}
+
+
+SWIGEXPORT jint JNICALL Java_org_sbml_libsbml_libsbmlJNI_BiolQualifierType_1fromString(JNIEnv *jenv, jclass jcls, jstring jarg1) {
+  jint jresult = 0 ;
+  char *arg1 = (char *) 0 ;
+  BiolQualifierType_t result;
+  
+  (void)jenv;
+  (void)jcls;
+  arg1 = 0;
+  if (jarg1) {
+    arg1 = (char *)jenv->GetStringUTFChars(jarg1, 0);
+    if (!arg1) return 0;
+  }
+  result = (BiolQualifierType_t)BiolQualifierType_fromString((char const *)arg1);
+  jresult = (jint)result; 
+  if (arg1) jenv->ReleaseStringUTFChars(jarg1, (const char *)arg1);
+  return jresult;
+}
+
+
 SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_new_1Date_1_1SWIG_10(JNIEnv *jenv, jclass jcls, jlong jarg1, jlong jarg2, jlong jarg3, jlong jarg4, jlong jarg5, jlong jarg6, jlong jarg7, jlong jarg8, jlong jarg9) {
   jlong jresult = 0 ;
   unsigned int arg1 ;
@@ -50201,6 +50494,21 @@ SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_ASTNode_1getPlugin_1_1
 }
 
 
+SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_ASTNode_1getNumPiece(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
+  jlong jresult = 0 ;
+  ASTNode *arg1 = (ASTNode *) 0 ;
+  unsigned int result;
+  
+  (void)jenv;
+  (void)jcls;
+  (void)jarg1_;
+  arg1 = *(ASTNode **)&jarg1; 
+  result = (unsigned int)((ASTNode const *)arg1)->getNumPiece();
+  jresult = (jlong)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT jlong JNICALL Java_org_sbml_libsbml_libsbmlJNI_ASTNode_1getListOfNodes(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
   jlong jresult = 0 ;
   ASTNode *arg1 = (ASTNode *) 0 ;
diff --git a/src/bindings/java/libsbml_wrap.h b/src/bindings/java/libsbml_wrap.h
index bcdcc6a..2156d4b 100644
--- a/src/bindings/java/libsbml_wrap.h
+++ b/src/bindings/java/libsbml_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
diff --git a/src/bindings/java/local-downcast-converters-comp.i b/src/bindings/java/local-downcast-converters-comp.i
index 46dd67d..dfc82e1 100644
--- a/src/bindings/java/local-downcast-converters-comp.i
+++ b/src/bindings/java/local-downcast-converters-comp.i
@@ -1,11 +1,11 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_COMP
-%pragma(java) modulecode =
-%{
-	if (conName.equals("SBML Comp Flattening Converter"))
-		return new CompFlatteningConverter(cPtr, owner);
-%}
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_COMP
+%pragma(java) modulecode =
+%{
+	if (conName.equals("SBML Comp Flattening Converter"))
+		return new CompFlatteningConverter(cPtr, owner);
+%}
 #endif /* USE_COMP */
\ No newline at end of file
diff --git a/src/bindings/java/local-downcast-converters-fbc.i b/src/bindings/java/local-downcast-converters-fbc.i
index f650163..abf26a6 100644
--- a/src/bindings/java/local-downcast-converters-fbc.i
+++ b/src/bindings/java/local-downcast-converters-fbc.i
@@ -1,13 +1,13 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_FBC
-%pragma(java) modulecode =
-%{
-	if (conName.equals("SBML FBC to COBRA Converter"))
-		return new FbcToCobraConverter(cPtr, owner);
-	if (conName.equals("SBML COBRA to FBC Converter"))
-		return new CobraToFbcConverter(cPtr, owner);
-%}
-#endif /* USE_FBC*/
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_FBC
+%pragma(java) modulecode =
+%{
+	if (conName.equals("SBML FBC to COBRA Converter"))
+		return new FbcToCobraConverter(cPtr, owner);
+	if (conName.equals("SBML COBRA to FBC Converter"))
+		return new CobraToFbcConverter(cPtr, owner);
+%}
+#endif /* USE_FBC*/
diff --git a/src/bindings/java/local-downcast-converters-layout.i b/src/bindings/java/local-downcast-converters-layout.i
index 602a3f8..4d3dca2 100644
--- a/src/bindings/java/local-downcast-converters-layout.i
+++ b/src/bindings/java/local-downcast-converters-layout.i
@@ -1,10 +1,10 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_LAYOUT
-%pragma(java) modulecode =
-%{
-	// layout converters here
-%}
-#endif /* USE_LAYOUT */
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_LAYOUT
+%pragma(java) modulecode =
+%{
+	// layout converters here
+%}
+#endif /* USE_LAYOUT */
diff --git a/src/bindings/java/local-downcast-converters-qual.i b/src/bindings/java/local-downcast-converters-qual.i
index 9fc0871..1047cd5 100644
--- a/src/bindings/java/local-downcast-converters-qual.i
+++ b/src/bindings/java/local-downcast-converters-qual.i
@@ -1,10 +1,10 @@
-/**
- * casting to most specific SBMLConverter object
- */
- 
-#ifdef USE_QUAL
-%pragma(java) modulecode =
-%{
-	// qual converters here
-%}
+/**
+ * casting to most specific SBMLConverter object
+ */
+ 
+#ifdef USE_QUAL
+%pragma(java) modulecode =
+%{
+	// qual converters here
+%}
 #endif /* USE_QUAL*/
\ No newline at end of file
diff --git a/src/bindings/java/local-downcast-converters.i.in b/src/bindings/java/local-downcast-converters.i.in
index 6344255..496f336 100644
--- a/src/bindings/java/local-downcast-converters.i.in
+++ b/src/bindings/java/local-downcast-converters.i.in
@@ -1,14 +1,14 @@
-// @configure_input@
-
-#ifdef USE_COMP
-%include "local-downcast-converters-comp.i"
-#endif
-#ifdef USE_FBC
-%include "local-downcast-converters-fbc.i"
-#endif
-#ifdef USE_LAYOUT
-%include "local-downcast-converters-layout.i"
-#endif
-#ifdef USE_QUAL
-%include "local-downcast-converters-qual.i"
-#endif
+// @configure_input@
+
+#ifdef USE_COMP
+%include "local-downcast-converters-comp.i"
+#endif
+#ifdef USE_FBC
+%include "local-downcast-converters-fbc.i"
+#endif
+#ifdef USE_LAYOUT
+%include "local-downcast-converters-layout.i"
+#endif
+#ifdef USE_QUAL
+%include "local-downcast-converters-qual.i"
+#endif
diff --git a/src/bindings/java/local-packages-dyn.i b/src/bindings/java/local-packages-dyn.i
index a88c330..70c3170 100644
--- a/src/bindings/java/local-packages-dyn.i
+++ b/src/bindings/java/local-packages-dyn.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/local-packages-fbc.i b/src/bindings/java/local-packages-fbc.i
index 1d78082..79df659 100644
--- a/src/bindings/java/local-packages-fbc.i
+++ b/src/bindings/java/local-packages-fbc.i
@@ -1,13 +1,13 @@
 /**
- * @file:   local-packages-fbc.i
- * @brief:  Implementation of the fbc class
- * @author: SBMLTeam
+ * @file   local-packages-fbc.i
+ * @brief  Implementation of the fbc class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/local-packages-groups.i b/src/bindings/java/local-packages-groups.i
index e6fc317..90cf40d 100644
--- a/src/bindings/java/local-packages-groups.i
+++ b/src/bindings/java/local-packages-groups.i
@@ -48,60 +48,53 @@
 		}
 	}
 	
-	public SBase DowncastSBase(long cPtr, boolean owner)
-	{
-		if (cPtr == 0) return null;
-		
-		SBase sb = new SBase(cPtr, false);
-		switch( sb.getTypeCode() )
-		{
-			case (int) libsbml.SBML_LIST_OF:
-				String name = sb.getElementName();
-				if(name =="listOfMembers")
-				{
-					return new ListOfMembers(cPtr, owner);
-				}
-				else if(name =="listOfGroups")
-				{
-					return new ListOfGroups(cPtr, owner);
-				}
-				
-				return new ListOf(cPtr, owner);
-				
-			case (int) libsbml.SBML_GROUPS_MEMBER:
-				return new Member(cPtr, owner);
+  public SBase DowncastSBase(long cPtr, boolean owner)
+  {
+    if (cPtr == 0) return null;
 
-			case (int) libsbml.SBML_GROUPS_MEMBER_CONSTRAINT:
-				return new MemberConstraint(cPtr, owner);
+    SBase sb = new SBase(cPtr, false);
+    switch ( sb.getTypeCode() )
+    {
+      case (int) libsbml.SBML_LIST_OF:
+        String name = sb.getElementName();
+        if (name.equals("listOfGroups"))
+        {
+          return new ListOfGroups(cPtr, owner);
+        }
+        else if (name.equals("listOfMembers"))
+        {
+          return new ListOfMembers(cPtr, owner);
+        }
+
+        return new ListOf(cPtr, owner);
+
+      case (int) libsbml.SBML_GROUPS_GROUP:
+        return new Group(cPtr, owner);
+
+      case (int) libsbml.SBML_GROUPS_MEMBER:
+        return new Member(cPtr, owner);
+
+      default:
+        return new SBase(cPtr, owner);
+    }
+  }
 
-			case (int) libsbml.SBML_GROUPS_GROUP:
-				return new Group(cPtr, owner);
-				
-			default:
-				return new SBase(cPtr, owner);
-		}
-	}
-	
 	%}
 
 COVARIANT_RTYPE_CLONE(GroupsExtension)
-COVARIANT_RTYPE_CLONE(Member)
-COVARIANT_RTYPE_CLONE(MemberConstraint)
 COVARIANT_RTYPE_CLONE(Group)
-COVARIANT_RTYPE_CLONE(ListOfMembers)
-COVARIANT_RTYPE_CLONE(ListOfMemberConstraints)
+COVARIANT_RTYPE_CLONE(Member)
 COVARIANT_RTYPE_CLONE(ListOfGroups)
+COVARIANT_RTYPE_CLONE(ListOfMembers)
 
-COVARIANT_RTYPE_LISTOF_GET_REMOVE(Member)
-COVARIANT_RTYPE_LISTOF_GET_REMOVE(MemberConstraint)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(Group)
+COVARIANT_RTYPE_LISTOF_GET_REMOVE(Member)
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
+
 
 #endif  /* USE_GROUPS */
diff --git a/src/bindings/java/local-packages-multi.i b/src/bindings/java/local-packages-multi.i
index 0ce0f69..7d6f110 100644
--- a/src/bindings/java/local-packages-multi.i
+++ b/src/bindings/java/local-packages-multi.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -43,6 +43,9 @@
     SBasePlugin sbp = new SBasePlugin(cPtr, false);
     SBase sb = sbp.getParentSBMLObject();
 
+    if (sb.getElementName().equals("listOfReactions"))
+        return new MultiListOfReactionsPlugin(cPtr, owner);
+
     switch( sb.getTypeCode() )
     {
       case (int) libsbml.SBML_MODEL:
@@ -74,55 +77,51 @@
     {
       case (int) libsbml.SBML_LIST_OF:
         String name = sb.getElementName();
-        if (name == "listOfPossibleSpeciesFeatureValues")
+        if (name.equals("listOfPossibleSpeciesFeatureValues"))
         {
           return new ListOfPossibleSpeciesFeatureValues(cPtr, owner);
         }
-        else if (name == "listOfSpeciesFeatureValues")
+        else if (name.equals("listOfSpeciesFeatureValues"))
         {
           return new ListOfSpeciesFeatureValues(cPtr, owner);
         }
-        else if (name == "listOfCompartmentReferences")
+        else if (name.equals("listOfCompartmentReferences"))
         {
           return new ListOfCompartmentReferences(cPtr, owner);
         }
-        else if (name == "listOfSpeciesTypeInstances")
+        else if (name.equals("listOfSpeciesTypeInstances"))
         {
           return new ListOfSpeciesTypeInstances(cPtr, owner);
         }
-        else if (name == "listOfInSpeciesTypeBonds")
+        else if (name.equals("listOfInSpeciesTypeBonds"))
         {
           return new ListOfInSpeciesTypeBonds(cPtr, owner);
         }
-        else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-        {
-          return new ListOfDenotedSpeciesTypeComponentIndexes(cPtr, owner);
-        }
-        else if (name == "listOfOutwardBindingSites")
+        else if (name.equals("listOfOutwardBindingSites"))
         {
           return new ListOfOutwardBindingSites(cPtr, owner);
         }
-        else if (name == "listOfSpeciesFeatureChanges")
+        else if (name.equals("listOfSpeciesFeatureChanges"))
         {
           return new ListOfSpeciesFeatureChanges(cPtr, owner);
         }
-        else if (name == "listOfSpeciesFeatureTypes")
+        else if (name.equals("listOfSpeciesFeatureTypes"))
         {
           return new ListOfSpeciesFeatureTypes(cPtr, owner);
         }
-        else if (name == "listOfSpeciesTypeComponentIndexes")
+        else if (name.equals("listOfSpeciesTypeComponentIndexes"))
         {
           return new ListOfSpeciesTypeComponentIndexes(cPtr, owner);
         }
-        else if (name == "listOfSpeciesFeatures")
+        else if (name.equals("listOfSpeciesFeatures"))
         {
           return new ListOfSpeciesFeatures(cPtr, owner);
         }
-        else if (name == "listOfSpeciesTypeComponentMapInProducts")
+        else if (name.equals("listOfSpeciesTypeComponentMapInProducts"))
         {
           return new ListOfSpeciesTypeComponentMapInProducts(cPtr, owner);
         }
-        else if (name == "listOfMultiSpeciesTypes")
+        else if (name.equals("listOfMultiSpeciesTypes"))
         {
           return new ListOfMultiSpeciesTypes(cPtr, owner);
         }
@@ -144,9 +143,6 @@
       case (int) libsbml.SBML_MULTI_IN_SPECIES_TYPE_BOND:
         return new InSpeciesTypeBond(cPtr, owner);
 
-      case (int) libsbml.SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-        return new DenotedSpeciesTypeComponentIndex(cPtr, owner);
-
       case (int) libsbml.SBML_MULTI_OUTWARD_BINDING_SITE:
         return new OutwardBindingSite(cPtr, owner);
 
@@ -187,7 +183,6 @@ COVARIANT_RTYPE_CLONE(SpeciesFeatureValue)
 COVARIANT_RTYPE_CLONE(CompartmentReference)
 COVARIANT_RTYPE_CLONE(SpeciesTypeInstance)
 COVARIANT_RTYPE_CLONE(InSpeciesTypeBond)
-COVARIANT_RTYPE_CLONE(DenotedSpeciesTypeComponentIndex)
 COVARIANT_RTYPE_CLONE(OutwardBindingSite)
 COVARIANT_RTYPE_CLONE(SpeciesFeatureChange)
 COVARIANT_RTYPE_CLONE(SpeciesFeatureType)
@@ -202,7 +197,6 @@ COVARIANT_RTYPE_CLONE(ListOfSpeciesFeatureValues)
 COVARIANT_RTYPE_CLONE(ListOfCompartmentReferences)
 COVARIANT_RTYPE_CLONE(ListOfSpeciesTypeInstances)
 COVARIANT_RTYPE_CLONE(ListOfInSpeciesTypeBonds)
-COVARIANT_RTYPE_CLONE(ListOfDenotedSpeciesTypeComponentIndexes)
 COVARIANT_RTYPE_CLONE(ListOfOutwardBindingSites)
 COVARIANT_RTYPE_CLONE(ListOfSpeciesFeatureChanges)
 COVARIANT_RTYPE_CLONE(ListOfSpeciesFeatureTypes)
@@ -216,7 +210,6 @@ COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesFeatureValue)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(CompartmentReference)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesTypeInstance)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(InSpeciesTypeBond)
-COVARIANT_RTYPE_LISTOF_GET_REMOVE(DenotedSpeciesTypeComponentIndex)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(OutwardBindingSite)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesFeatureChange)
 COVARIANT_RTYPE_LISTOF_GET_REMOVE(SpeciesFeatureType)
@@ -231,7 +224,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -246,7 +238,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/java/local-packages-req.i b/src/bindings/java/local-packages-req.i
index 29b8ef8..ec967a6 100644
--- a/src/bindings/java/local-packages-req.i
+++ b/src/bindings/java/local-packages-req.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. Unversity of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/local-packages-spatial.i b/src/bindings/java/local-packages-spatial.i
index 9e0018f..03430b8 100644
--- a/src/bindings/java/local-packages-spatial.i
+++ b/src/bindings/java/local-packages-spatial.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/local-packages.i.in b/src/bindings/java/local-packages.i.in
index 89c458e..b168b6e 100644
--- a/src/bindings/java/local-packages.i.in
+++ b/src/bindings/java/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-packages-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-packages-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-packages-layout.i"
 #endif
diff --git a/src/bindings/java/local.cpp b/src/bindings/java/local.cpp
index 4ac0899..ad84739 100644
--- a/src/bindings/java/local.cpp
+++ b/src/bindings/java/local.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/java/local.i b/src/bindings/java/local.i
index dcf833f..6631e41 100644
--- a/src/bindings/java/local.i
+++ b/src/bindings/java/local.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -853,6 +853,14 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
 }
 
 /**
+ * Convert SBase objects into the most specific object possible.
+ */
+%typemap("javaout") Reaction*
+{
+  return (Reaction) libsbml.DowncastSBase($jnicall, $owner);
+}
+
+/**
  * Convert Rule objects into the most specific object possible.
  */
 %typemap("javaout") Rule*
diff --git a/src/bindings/java/swig-binding.cmake.in b/src/bindings/java/swig-binding.cmake.in
index 49c4141..e3d4cf4 100644
--- a/src/bindings/java/swig-binding.cmake.in
+++ b/src/bindings/java/swig-binding.cmake.in
@@ -1,102 +1,102 @@
-###############################################################################
-#
-# Description       : CMake build script for swigging the java bindings
-# Original author(s): Frank Bergmann <fbergman at caltech.edu>
-# Organization      : California Institute of Technology
-#
-# This file is part of libSBML.  Please visit http://sbml.org for more
-# information about SBML, and the latest version of libSBML.
-#
-# Copyright (C) 2013-2015 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#     3. University of Heidelberg, Heidelberg, Germany
-#
-# Copyright (C) 2009-2013 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#  
-# Copyright (C) 2006-2008 by the California Institute of Technology,
-#     Pasadena, CA, USA 
-#  
-# Copyright (C) 2002-2005 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. Japan Science and Technology Agency, Japan
-# 
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation.  A copy of the license agreement is provided
-# in the file named "LICENSE.txt" included with this software distribution
-# and also available online as http://sbml.org/software/libsbml/license.html
-#
-###############################################################################
-
-message("Swig: Java Bindings")
-
-if(NOT EXISTS ${CUR_BIN_DIRECTORY}/java-files/org/sbml/libsbml)
- file(MAKE_DIRECTORY ${CUR_BIN_DIRECTORY}/java-files/org/sbml/libsbml)
-endif()
-
-# generate documentation if needed
-if (WITH_DOXYGEN)
-  # separate munged arguments
-  separate_arguments(SWIG_SWIGDOCDEFINES)
-
-  message("Creating class-list.txt")
-  execute_process(
-    COMMAND "${PYTHON_EXECUTABLE}"
-  
-      "${CUR_BIN_DIRECTORY}/generate-class-name-list.py"
-      "${SRC_DIRECTORY}/src"
-
-      OUTPUT_FILE "${CUR_BIN_DIRECTORY}/class-list.txt"
-  )
-
-  message("Creating libsbml-converters.txt")
-  execute_process(
-    COMMAND "${PYTHON_EXECUTABLE}"
-
-      "${CUR_BIN_DIRECTORY}/generate-converters-list.py"
-      "${CUR_BIN_DIRECTORY}/class-list.txt"
-    
-    OUTPUT_FILE 
-      "${CUR_BIN_DIRECTORY}/libsbml-converters.txt"
-  )
-
-  message("Creating javadoc.i")
-  execute_process(
-    COMMAND "${PYTHON_EXECUTABLE}"
-            "${CUR_SRC_DIRECTORY}/../swig/swigdoc.py"
-            --top "${SRC_DIRECTORY}"
-            --master "${CUR_SRC_DIRECTORY}/../swig/libsbml.i"
-            --extra "${CUR_BIN_DIRECTORY}/libsbml-converters.txt"
-            --output "${CUR_BIN_DIRECTORY}/javadoc.i"
-            ${SWIG_SWIGDOCDEFINES}
-            --language java
-  )
-else()
-  file(WRITE ${CUR_BIN_DIRECTORY}/javadoc.i "/* documentation not generated */")
-endif()
-
-# separate munged arguments
-separate_arguments(SWIG_ARGS)
-
-# execute swig
-execute_process(
-
-    COMMAND "${SWIG_EXECUTABLE}"
-         -I${CUR_SRC_DIRECTORY}/../swig/
-         -I${BIN_DIRECTORY}/src
-         -I${SRC_DIRECTORY}/src
-         -I${SRC_DIRECTORY}/include
-         -I${CUR_SRC_DIRECTORY}
-         -c++
-         -java
-         -package org.sbml.libsbml
-         ${SWIG_ARGS}
-         -outdir ${CUR_BIN_DIRECTORY}/java-files/org/sbml/libsbml
-         -o ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
-         ${CUR_SRC_DIRECTORY}/../swig/libsbml.i
-
-    WORKING_DIRECTORY "${CUR_BIN_DIRECTORY}"
-)
+###############################################################################
+#
+# Description       : CMake build script for swigging the java bindings
+# Original author(s): Frank Bergmann <fbergman at caltech.edu>
+# Organization      : California Institute of Technology
+#
+# This file is part of libSBML.  Please visit http://sbml.org for more
+# information about SBML, and the latest version of libSBML.
+#
+# Copyright (C) 2013-2016 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#     3. University of Heidelberg, Heidelberg, Germany
+#
+# Copyright (C) 2009-2013 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#  
+# Copyright (C) 2006-2008 by the California Institute of Technology,
+#     Pasadena, CA, USA 
+#  
+# Copyright (C) 2002-2005 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. Japan Science and Technology Agency, Japan
+# 
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation.  A copy of the license agreement is provided
+# in the file named "LICENSE.txt" included with this software distribution
+# and also available online as http://sbml.org/software/libsbml/license.html
+#
+###############################################################################
+
+message("Swig: Java Bindings")
+
+if(NOT EXISTS ${CUR_BIN_DIRECTORY}/java-files/org/sbml/libsbml)
+ file(MAKE_DIRECTORY ${CUR_BIN_DIRECTORY}/java-files/org/sbml/libsbml)
+endif()
+
+# generate documentation if needed
+if (WITH_DOXYGEN)
+  # separate munged arguments
+  separate_arguments(SWIG_SWIGDOCDEFINES)
+
+  message("Creating class-list.txt")
+  execute_process(
+    COMMAND "${PYTHON_EXECUTABLE}"
+  
+      "${CUR_BIN_DIRECTORY}/generate-class-name-list.py"
+      "${SRC_DIRECTORY}/src"
+
+      OUTPUT_FILE "${CUR_BIN_DIRECTORY}/class-list.txt"
+  )
+
+  message("Creating libsbml-converters.txt")
+  execute_process(
+    COMMAND "${PYTHON_EXECUTABLE}"
+
+      "${CUR_BIN_DIRECTORY}/generate-converters-list.py"
+      "${CUR_BIN_DIRECTORY}/class-list.txt"
+    
+    OUTPUT_FILE 
+      "${CUR_BIN_DIRECTORY}/libsbml-converters.txt"
+  )
+
+  message("Creating javadoc.i")
+  execute_process(
+    COMMAND "${PYTHON_EXECUTABLE}"
+            "${CUR_SRC_DIRECTORY}/../swig/swigdoc.py"
+            --top "${SRC_DIRECTORY}"
+            --master "${CUR_SRC_DIRECTORY}/../swig/libsbml.i"
+            --extra "${CUR_BIN_DIRECTORY}/libsbml-converters.txt"
+            --output "${CUR_BIN_DIRECTORY}/javadoc.i"
+            ${SWIG_SWIGDOCDEFINES}
+            --language java
+  )
+else()
+  file(WRITE ${CUR_BIN_DIRECTORY}/javadoc.i "/* documentation not generated */")
+endif()
+
+# separate munged arguments
+separate_arguments(SWIG_ARGS)
+
+# execute swig
+execute_process(
+
+    COMMAND "${SWIG_EXECUTABLE}"
+         -I${CUR_SRC_DIRECTORY}/../swig/
+         -I${BIN_DIRECTORY}/src
+         -I${SRC_DIRECTORY}/src
+         -I${SRC_DIRECTORY}/include
+         -I${CUR_SRC_DIRECTORY}
+         -c++
+         -java
+         -package org.sbml.libsbml
+         ${SWIG_ARGS}
+         -outdir ${CUR_BIN_DIRECTORY}/java-files/org/sbml/libsbml
+         -o ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
+         ${CUR_SRC_DIRECTORY}/../swig/libsbml.i
+
+    WORKING_DIRECTORY "${CUR_BIN_DIRECTORY}"
+)
diff --git a/src/bindings/javascript/CMakeLists.txt b/src/bindings/javascript/CMakeLists.txt
index 30b675c..891cb04 100644
--- a/src/bindings/javascript/CMakeLists.txt
+++ b/src/bindings/javascript/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/javascript/compile-native-files.cmake b/src/bindings/javascript/compile-native-files.cmake
index afc665d..d5b593f 100644
--- a/src/bindings/javascript/compile-native-files.cmake
+++ b/src/bindings/javascript/compile-native-files.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/javascript/libsbml.i b/src/bindings/javascript/libsbml.i
index 50e1860..11423b5 100644
--- a/src/bindings/javascript/libsbml.i
+++ b/src/bindings/javascript/libsbml.i
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/javascript/local-downcast-converters.cpp.in b/src/bindings/javascript/local-downcast-converters.cpp.in
index 40bcd52..7ad7ab9 100644
--- a/src/bindings/javascript/local-downcast-converters.cpp.in
+++ b/src/bindings/javascript/local-downcast-converters.cpp.in
@@ -1,17 +1,17 @@
-// This file is autogenerated and will be overwritten by the configuration process
-
-#ifdef USE_COMP
-#include "local-downcast-converters-comp.cpp"
-#endif
-#ifdef USE_FBC
-#include "local-downcast-converters-fbc.cpp"
-#endif
-#ifdef USE_LAYOUT
-#include "local-downcast-converters-layout.cpp"
-#endif
-#ifdef USE_QUAL
-#include "local-downcast-converters-qual.cpp"
-#endif
-
-
-
+// This file is autogenerated and will be overwritten by the configuration process
+
+#ifdef USE_COMP
+#include "local-downcast-converters-comp.cpp"
+#endif
+#ifdef USE_FBC
+#include "local-downcast-converters-fbc.cpp"
+#endif
+#ifdef USE_LAYOUT
+#include "local-downcast-converters-layout.cpp"
+#endif
+#ifdef USE_QUAL
+#include "local-downcast-converters-qual.cpp"
+#endif
+
+
+
diff --git a/src/bindings/javascript/local-downcast-packages-groups.cpp b/src/bindings/javascript/local-downcast-packages-groups.cpp
index f69e10f..aa3a4e5 100644
--- a/src/bindings/javascript/local-downcast-packages-groups.cpp
+++ b/src/bindings/javascript/local-downcast-packages-groups.cpp
@@ -2,34 +2,30 @@
 #ifdef USE_GROUPS
 else if (pkgName == "groups")
 {
-	switch (sb->getTypeCode())
-	{
-		case SBML_LIST_OF:
-			name = sb->getElementName();
-			if(name == "listOfMembers"){
-				return SWIGTYPE_p_ListOfMembers;
-			}
-			else if (name == "listOfMemberConstraints")
-			{
-				return SWIGTYPE_p_ListOfMemberConstraints;
-			}
-			else if(name == "listOfGroups"){
-				return SWIGTYPE_p_ListOfGroups;
-			}
-			return SWIGTYPE_p_ListOf;				  
-			
-		case SBML_GROUPS_MEMBER:
-			return SWIGTYPE_p_Member;
+  switch ( sb->getTypeCode() )
+  {
+    case SBML_LIST_OF:
+      name = sb->getElementName();
+      if (name == "listOfGroups")
+      {
+        return SWIGTYPE_p_ListOfGroups;
+      }
+      else if (name == "listOfMembers")
+      {
+        return SWIGTYPE_p_ListOfMembers;
+      }
 
-		case SBML_GROUPS_MEMBER_CONSTRAINT:
-			return SWIGTYPE_p_MemberConstraint;
+      return SWIGTYPE_p_ListOf;
 
-		case SBML_GROUPS_GROUP:
-			return SWIGTYPE_p_Group;
+    case SBML_GROUPS_GROUP:
+      return SWIGTYPE_p_Group;
 
-		default:
-			return SWIGTYPE_p_SBase;
-	}
+    case SBML_GROUPS_MEMBER:
+      return SWIGTYPE_p_Member;
+
+    default:
+      return SWIGTYPE_p_SBase;
+    }
 }
 #endif // USE_GROUPS				  
 
diff --git a/src/bindings/javascript/local-downcast-packages-multi.cpp b/src/bindings/javascript/local-downcast-packages-multi.cpp
index 4b845a5..2b88667 100644
--- a/src/bindings/javascript/local-downcast-packages-multi.cpp
+++ b/src/bindings/javascript/local-downcast-packages-multi.cpp
@@ -25,10 +25,6 @@ else if (pkgName == "multi")
       {
         return SWIGTYPE_p_ListOfInSpeciesTypeBonds;
       }
-      else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-      {
-        return SWIGTYPE_p_ListOfDenotedSpeciesTypeComponentIndexes;
-      }
       else if (name == "listOfOutwardBindingSites")
       {
         return SWIGTYPE_p_ListOfOutwardBindingSites;
@@ -75,9 +71,6 @@ else if (pkgName == "multi")
     case SBML_MULTI_IN_SPECIES_TYPE_BOND:
       return SWIGTYPE_p_InSpeciesTypeBond;
 
-    case SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-      return SWIGTYPE_p_DenotedSpeciesTypeComponentIndex;
-
     case SBML_MULTI_OUTWARD_BINDING_SITE:
       return SWIGTYPE_p_OutwardBindingSite;
 
diff --git a/src/bindings/javascript/local-downcast-plugins-multi.cpp b/src/bindings/javascript/local-downcast-plugins-multi.cpp
index e3f77ff..cee4db7 100644
--- a/src/bindings/javascript/local-downcast-plugins-multi.cpp
+++ b/src/bindings/javascript/local-downcast-plugins-multi.cpp
@@ -21,6 +21,10 @@ if (pkgName == "multi")
   {
     return SWIGTYPE_p_MultiSpeciesReferencePlugin;
   }
+  else if (sb->getElementName() == "listOfReactions")
+  {
+    return SWIGTYPE_p_MultiListOfReactionsPlugin;
+  }
 }
 
 #endif // USE_MULTI 
diff --git a/src/bindings/javascript/local-fbc.i b/src/bindings/javascript/local-fbc.i
index c17a677..46dec38 100644
--- a/src/bindings/javascript/local-fbc.i
+++ b/src/bindings/javascript/local-fbc.i
@@ -1,34 +1,34 @@
-#ifdef USE_FBC
-
-SBMLCONSTRUCTOR_EXCEPTION(Association)
-SBMLCONSTRUCTOR_EXCEPTION(FbcPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(FluxBound)
-SBMLCONSTRUCTOR_EXCEPTION(FluxObjective)
-SBMLCONSTRUCTOR_EXCEPTION(GeneAssociation)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxBounds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxObjectives)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneAssociations)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfObjectives)
-SBMLCONSTRUCTOR_EXCEPTION(Objective)
-
-SBMLCONSTRUCTOR_EXCEPTION(FbcAssociation)
-SBMLCONSTRUCTOR_EXCEPTION(GeneProductAssociation)
-
-SBMLCONSTRUCTOR_EXCEPTION(GeneProduct)
-SBMLCONSTRUCTOR_EXCEPTION(GeneProductRef)
-SBMLCONSTRUCTOR_EXCEPTION(FbcAnd)
-SBMLCONSTRUCTOR_EXCEPTION(FbcOr)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfFbcAssociations)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneProducts)
-
-/**
- * Convert FbcAssociation objects into the most specific object possible.
- */
-%typemap(out) FbcAssociation*
-{
-	$result = SWIG_NewPointerObj($1, GetDowncastSwigTypeForPackage($1, "fbc"), $owner | %newpointer_flags);
-}
-
-
-#endif // USE_FBC 
-
+#ifdef USE_FBC
+
+SBMLCONSTRUCTOR_EXCEPTION(Association)
+SBMLCONSTRUCTOR_EXCEPTION(FbcPkgNamespaces)
+SBMLCONSTRUCTOR_EXCEPTION(FluxBound)
+SBMLCONSTRUCTOR_EXCEPTION(FluxObjective)
+SBMLCONSTRUCTOR_EXCEPTION(GeneAssociation)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxBounds)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxObjectives)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneAssociations)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfObjectives)
+SBMLCONSTRUCTOR_EXCEPTION(Objective)
+
+SBMLCONSTRUCTOR_EXCEPTION(FbcAssociation)
+SBMLCONSTRUCTOR_EXCEPTION(GeneProductAssociation)
+
+SBMLCONSTRUCTOR_EXCEPTION(GeneProduct)
+SBMLCONSTRUCTOR_EXCEPTION(GeneProductRef)
+SBMLCONSTRUCTOR_EXCEPTION(FbcAnd)
+SBMLCONSTRUCTOR_EXCEPTION(FbcOr)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfFbcAssociations)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneProducts)
+
+/**
+ * Convert FbcAssociation objects into the most specific object possible.
+ */
+%typemap(out) FbcAssociation*
+{
+	$result = SWIG_NewPointerObj($1, GetDowncastSwigTypeForPackage($1, "fbc"), $owner | %newpointer_flags);
+}
+
+
+#endif // USE_FBC 
+
diff --git a/src/bindings/javascript/local-groups.i b/src/bindings/javascript/local-groups.i
index 4300394..e973723 100644
--- a/src/bindings/javascript/local-groups.i
+++ b/src/bindings/javascript/local-groups.i
@@ -8,12 +8,11 @@
 #ifdef USE_GROUPS
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
+
 
-#endif // USE_GROUPS 
+#endif // USE_GROUPS
 
diff --git a/src/bindings/javascript/local-multi.i b/src/bindings/javascript/local-multi.i
index bc10578..7f7703e 100644
--- a/src/bindings/javascript/local-multi.i
+++ b/src/bindings/javascript/local-multi.i
@@ -6,7 +6,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -21,7 +20,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/javascript/local-packages.i.in b/src/bindings/javascript/local-packages.i.in
index 84217c2..aca50cb 100644
--- a/src/bindings/javascript/local-packages.i.in
+++ b/src/bindings/javascript/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-layout.i"
 #endif
diff --git a/src/bindings/javascript/local.cpp b/src/bindings/javascript/local.cpp
index bb8327a..57ecb3e 100644
--- a/src/bindings/javascript/local.cpp
+++ b/src/bindings/javascript/local.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/javascript/local.i b/src/bindings/javascript/local.i
index b2f9759..c7ca935 100644
--- a/src/bindings/javascript/local.i
+++ b/src/bindings/javascript/local.i
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -180,7 +180,7 @@ namespace std
 /**
  * Convert SBase, SimpleSpeciesReference, and Rule objects into the most specific type possible.
  */
-%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*
+%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*, Reaction*
 {
   $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), GetDowncastSwigType($1), $owner | %newpointer_flags);
 }
@@ -382,17 +382,25 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
                                SWIG_POINTER_OWN |  0 );
 }
 
-%typemap(out) List* SBase::getCVTerms
+%define LIST_WRAPPER(_FNAME_,_TYPENAME_)
+%typemap(out) List* _FNAME_
 {
-  ListWrapper<CVTerm> *listw = ($1 != 0)? new ListWrapper<CVTerm>($1) : 0;
+  ListWrapper<_TYPENAME_> *listw = ($1 != 0)? new ListWrapper<_TYPENAME_>($1) : 0;
   $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), 
 #if SWIG_VERSION > 0x010333
-                               SWIGTYPE_p_ListWrapperT_CVTerm_t, 
+                               SWIGTYPE_p_ListWrapperT_ ## _TYPENAME_ ## _t, 
 #else
-                               SWIGTYPE_p_ListWrapperTCVTerm_t, 
+                               SWIGTYPE_p_ListWrapperT ## _TYPENAME_ ## _t, 
 #endif
                                SWIG_POINTER_OWN |  0 );
 }
 
+%enddef
+
+LIST_WRAPPER(SBase::getCVTerms,CVTerm)
+LIST_WRAPPER(SBase::getListOfAllElements,SBase)
+LIST_WRAPPER(SBasePlugin::getListOfAllElements,SBase)
+LIST_WRAPPER(SBase::getListOfAllElementsFromPlugins,SBase)
+
 %include "local-packages.i"
 
diff --git a/src/bindings/matlab/CMakeLists.txt b/src/bindings/matlab/CMakeLists.txt
index 4ac9969..c5c0fb8 100644
--- a/src/bindings/matlab/CMakeLists.txt
+++ b/src/bindings/matlab/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/CheckAndConvert.m b/src/bindings/matlab/CheckAndConvert.m
index ee87730..51982fa 100644
--- a/src/bindings/matlab/CheckAndConvert.m
+++ b/src/bindings/matlab/CheckAndConvert.m
@@ -10,7 +10,7 @@ function Formula = CheckAndConvert(Input)
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/Contents.m b/src/bindings/matlab/Contents.m
index f31b082..8f1a6a6 100644
--- a/src/bindings/matlab/Contents.m
+++ b/src/bindings/matlab/Contents.m
@@ -54,7 +54,7 @@
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/ConvertFormulaToMathML.m b/src/bindings/matlab/ConvertFormulaToMathML.m
index 7b9e595..af9c70c 100644
--- a/src/bindings/matlab/ConvertFormulaToMathML.m
+++ b/src/bindings/matlab/ConvertFormulaToMathML.m
@@ -6,7 +6,7 @@ function Formula = ConvertFormulaToMathML(Input)
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/Makefile.in b/src/bindings/matlab/Makefile.in
index 4ba8dd4..789d916 100644
--- a/src/bindings/matlab/Makefile.in
+++ b/src/bindings/matlab/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/OutputSBML.cpp b/src/bindings/matlab/OutputSBML.cpp
index 17c7466..e0da26c 100644
--- a/src/bindings/matlab/OutputSBML.cpp
+++ b/src/bindings/matlab/OutputSBML.cpp
@@ -7,7 +7,7 @@
  * This file is part of SBMLToolbox.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of SBMLToolbox.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -52,6 +52,8 @@
 #include <sbml/packages/fbc/sbml/FluxObjective.h>
 #include <sbml/packages/fbc/sbml/Objective.h>
 
+#include <sbml/packages/fbc/common/FbcExtensionTypes.h>
+
 #endif
 mxArray * mxModel[2];
 
@@ -186,6 +188,7 @@ static char * delaySymbol = NULL;
 static char * avoSymbol = NULL;
 
 int fbcPresent;
+unsigned int fbcVersion = 0;
 
 /* function declarations */
 void LookForCSymbolTime(ASTNode_t *);
@@ -233,7 +236,10 @@ void GetParameterFromKineticLaw ( mxArray *, unsigned int, unsigned int, Kinetic
 
 void  GetFluxBound         ( mxArray *, unsigned int, unsigned int, unsigned int, Model_t * );
 void  GetObjective         ( mxArray *, unsigned int, unsigned int, unsigned int, Model_t * );
+void  GetGeneProduct         ( mxArray *, unsigned int, unsigned int, unsigned int, Model_t * );
 void  GetFluxObjective         ( mxArray *, unsigned int, unsigned int, unsigned int, Objective_t * );
+void  GetGeneProductAssociation         ( mxArray *, unsigned int, unsigned int, unsigned int, Reaction_t * );
+void  GetGeneAssociation         ( mxArray *, unsigned int, unsigned int, unsigned int, GeneProductAssociation_t *, Reaction_t*);
 
 #endif
 
@@ -280,20 +286,19 @@ char * ReadString(mxArray* mxParent, const char * name,
                   size_t total)
 {
   mxArray * mxField;
-  char * value;
-  size_t nBuflen = 0;
-  int nStatus;
+  char * value = NULL;
+  int nStatus = 1;
 
   /* get field */
   mxField = mxGetField(mxParent, index, name);
   if (mxField != NULL)
   {
-    nBuflen = (mxGetM(mxField)*mxGetN(mxField)+1);
-    value = (char *)mxCalloc(nBuflen, sizeof(char));
-    nStatus = mxGetString(mxField, value, (mwSize)(nBuflen));
+    value = mxArrayToString(mxField);
+    if (value != NULL)
+    {
+      nStatus = 0;
+    }
   }
-  else
-    nStatus = 1;
 
   if (nStatus != 0)
   {
@@ -342,8 +347,8 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
   Model_t *sbmlModel;
 
 
-  mxArray * mxLevel, * mxVersion, * mxAnnotations, * mxFBCVersion;
-  mxArray * mxName, *mxNamespaces, *mxMetaid, *mxTimeSymbol, *mxId;
+  mxArray * mxLevel, * mxVersion, * mxFBCVersion;
+  mxArray *mxNamespaces, *mxTimeSymbol, *mxId;
   mxArray * mxSubstanceUnits, * mxTimeUnits, *mxLengthUnits, *mxAreaUnits;
   mxArray * mxVolumeUnits, * mxExtentUnits, *mxConversionFactor;
   mxArray * mxDelaySymbol, *mxAvoSymbol, *mxActiveObjective;
@@ -353,12 +358,13 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
   char * pacSubstanceUnits, * pacTimeUnits, *pacLengthUnits, *pacAreaUnits;
   char * pacVolumeUnits, * pacExtentUnits, *pacConversionFactor, *pacActiveObjective;
   int nSBOTerm;
+  int nFbcStrict = 0;
 
   mxArray * mxParameters, * mxCompartments, * mxFunctionDefinitions;
   mxArray * mxUnitDefinitions, *mxSBOTerm;
   mxArray * mxSpecies, * mxRules, * mxReactions, * mxEvents, * mxConstraints;
   mxArray * mxSpeciesTypes, * mxCompartmentTypes, * mxInitialAssignments;
-  mxArray * mxFluxBounds, *mxObjectives;
+  mxArray * mxFluxBounds, *mxObjectives, *mxGeneProducts, *mxStrict;
   unsigned int usingOctave = 0;
   mxArray * mxOctave[1];
   int inInstaller = 0;
@@ -563,6 +569,7 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     SBMLDocument_setPkgRequired(sbmlDocument, "fbc", 0);
     mxFBCVersion = mxGetField(mxModel[0], 0, "fbc_version");
     nFBCVersion = (unsigned int) mxGetScalar(mxFBCVersion);
+    fbcVersion = nFBCVersion;
   }
 
   /* create a model within the document */
@@ -573,16 +580,7 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
   SBase_setNotesString((SBase_t *)(sbmlModel), pacNotes); 
 
   /* get name */
-  mxName = mxGetField(mxModel[0], 0, "name");
-  nBuflen = (mxGetM(mxName)*mxGetN(mxName)+1);
-  pacName = (char *)mxCalloc(nBuflen, sizeof(char));
-  nStatus = mxGetString(mxName, pacName, (mwSize)(nBuflen));
-
-  if (nStatus != 0)
-  {
-    reportError("OutputSBML:Model", "Cannot copy name");
-  }
-
+  pacName = ReadString(mxModel[0], "name", "Model", 0, 0);
   Model_setName(sbmlModel, pacName);
 
   mxUnitDefinitions = mxGetField(mxModel[0], 0, "unitDefinition");
@@ -600,8 +598,8 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
   mxRules = mxGetField(mxModel[0], 0, "rule");
   GetRule(mxRules, nLevel, nVersion, sbmlModel);
 
-  mxReactions = mxGetField(mxModel[0], 0, "reaction");
-  GetReaction(mxReactions, nLevel, nVersion, sbmlModel);
+  //mxReactions = mxGetField(mxModel[0], 0, "reaction");
+  //GetReaction(mxReactions, nLevel, nVersion, sbmlModel);
 
   /* level 2 and 3 only */
   if (nLevel > 1)
@@ -620,16 +618,7 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     Model_setId(sbmlModel, pacId);
 
     /* get metaid */
-    mxMetaid = mxGetField(mxModel[0], 0, "metaid");
-    nBuflen = (mxGetM(mxMetaid)*mxGetN(mxMetaid)+1);
-    pacMetaid = (char *)mxCalloc(nBuflen, sizeof(char));
-    nStatus = mxGetString(mxMetaid, pacMetaid, (mwSize)(nBuflen));
-
-    if (nStatus != 0)
-    {
-      reportError("OutputSBML:Model", "Cannot copy metaid");
-    }
-
+    pacMetaid = ReadString(mxModel[0], "metaid", "Model", 0, 0);
     SBase_setMetaId((SBase_t *) (sbmlModel), pacMetaid);
 
     mxFunctionDefinitions = mxGetField(mxModel[0], 0, "functionDefinition");
@@ -774,24 +763,29 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
 
 
   /* get annotations  */
-  mxAnnotations = mxGetField(mxModel[0], 0, "annotation");
-  nBuflen = (mxGetM(mxAnnotations)*mxGetN(mxAnnotations)+1);
-  pacAnnotations = (char *)mxCalloc(nBuflen, sizeof(char));
-
-  nStatus = mxGetString(mxAnnotations, pacAnnotations, (mwSize)(nBuflen));
-
-  if (nStatus != 0)
-  {
-    reportError("OutputSBML:Model", "Cannot copy annotations");
-  }
-
+  pacAnnotations = ReadString(mxModel[0], "annotation", "Model", 0, 0);
   SBase_setAnnotationString((SBase_t *) (sbmlModel), pacAnnotations); 
 
   if (fbcPresent == 1)
   {
 #ifdef USE_FBC
-    mxFluxBounds = mxGetField(mxModel[0], 0, "fbc_fluxBound");
-    GetFluxBound(mxFluxBounds, nLevel, nVersion, nFBCVersion, sbmlModel);
+    if (nFBCVersion == 1)
+    {
+      mxFluxBounds = mxGetField(mxModel[0], 0, "fbc_fluxBound");
+      GetFluxBound(mxFluxBounds, nLevel, nVersion, nFBCVersion, sbmlModel);
+    }
+    else
+    {
+      mxGeneProducts = mxGetField(mxModel[0], 0, "fbc_geneProduct");
+      GetGeneProduct(mxGeneProducts, nLevel, nVersion, nFBCVersion, sbmlModel);
+
+      /* get sboTerm */
+      mxStrict = mxGetField(mxModel[0], 0, "fbc_strict");
+      nFbcStrict = (int)mxGetScalar(mxStrict);
+
+      FbcModelPlugin_setStrict(SBase_getPlugin((SBase_t *)(sbmlModel), "fbc"),
+        nFbcStrict);
+    }
 
     mxObjectives = mxGetField(mxModel[0], 0, "fbc_objective");
     GetObjective(mxObjectives, nLevel, nVersion, nFBCVersion, sbmlModel);
@@ -812,6 +806,9 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
 #endif
   }
 
+  mxReactions = mxGetField(mxModel[0], 0, "reaction");
+  GetReaction(mxReactions, nLevel, nVersion, sbmlModel);
+
 
   /************************************************************************************************************
   * output the resulting model to specified file
@@ -2396,6 +2393,8 @@ GetUnit ( mxArray * mxUnits,
 	char * pacAnnotations;
 	char * pacName;
   char * pacCompartment;
+  char * pacLowerFluxBound;
+  char * pacUpperFluxBound;
 	int nReversible;
 	int nFast;
 	char * pacId;
@@ -2409,9 +2408,11 @@ GetUnit ( mxArray * mxUnits,
 
 	mxArray * mxModifiers;
 	mxArray * mxReversible, * mxFast, * mxIsSetFast, *mxReactants, * mxProducts;
-  mxArray * mxSBOTerm, * mxKineticLaw;
+  mxArray * mxSBOTerm, * mxKineticLaw, *mxGeneProductAssociation;
 
 	Reaction_t *pReaction;
+  
+  SBasePlugin_t *plugin;
 
 	for (i = 0; i < nNoReaction; i++) 
 	{
@@ -2551,6 +2552,24 @@ GetUnit ( mxArray * mxUnits,
       pacCompartment = ReadString(mxReaction, "compartment", "reaction", i, nNoReaction);
 		  Reaction_setCompartment(pReaction, pacCompartment);
 
+     if (fbcPresent == 1 && fbcVersion == 2)
+     {
+#ifdef USE_FBC
+       plugin = SBase_getPlugin((SBase_t *)(pReaction), "fbc");
+
+        /* getLowerFluxBound */
+       pacLowerFluxBound = ReadString(mxReaction, "fbc_lowerFluxBound", "reaction", i, nNoReaction);
+       FbcReactionPlugin_setLowerFluxBound(plugin, pacLowerFluxBound);
+
+       /* getUpperFluxBound */
+       pacUpperFluxBound = ReadString(mxReaction, "fbc_upperFluxBound", "reaction", i, nNoReaction);
+       FbcReactionPlugin_setUpperFluxBound(plugin, pacUpperFluxBound);
+
+       mxGeneProductAssociation = mxGetField(mxReaction, i, "fbc_geneProductAssociation");
+       GetGeneProductAssociation(mxGeneProductAssociation, unSBMLLevel, unSBMLVersion, fbcVersion, pReaction);
+
+#endif
+     }
     }
 
 		/* get annotations */
@@ -4583,4 +4602,274 @@ GetFluxObjective ( mxArray * mxFluxObjective,
     Objective_addFluxObjective(pObjective, pFluxObjective);
 	}
 }
+
+/**
+ * NAME:    GetGeneProduct
+ *
+ * PARAMETERS:  mxArray of Objective structures
+ *              unSBMLLevel
+ *              unSBMLVersion - included for possible expansion needs
+ *				      Pointer to the model
+ *
+ * RETURNS:    void
+ *
+ * FUNCTION:  gets data from the Objective mxArray structure
+ *        and adds each Objective to the model
+ */
+void
+GetGeneProduct ( mxArray * mxGeneProduct,
+               unsigned int unSBMLLevel,
+               unsigned int unSBMLVersion, 
+               unsigned int unFBCVersion, 
+               Model_t * sbmlModel )
+{
+  if (unFBCVersion != 2)
+  {
+    return;
+  }
+
+  size_t nNoGeneProducts = mxGetNumberOfElements(mxGeneProduct);
+
+  /* values */
+  char * pacNotes;
+  char * pacAnnotations;
+  int nSBOTerm;
+  char * pacMetaid;
+  char * pacId;
+  char * pacName;
+  char * pacLabel;
+  char * pacAssociatedSpecies;
+
+  mxArray * mxSBOTerm;
+
+  GeneProduct_t *pGeneProduct;
+  size_t i;
+
+  SBasePlugin_t *plugin = SBase_getPlugin((SBase_t *)(sbmlModel), "fbc");
+
+  for (i = 0; i < nNoGeneProducts; i++) 
+  {
+    pGeneProduct = GeneProduct_create(unSBMLLevel, unSBMLVersion,
+      unFBCVersion);
+
+    /* get notes */
+    pacNotes = ReadString(mxGeneProduct, "notes", "fbc_geneProduct", i, nNoGeneProducts);
+    SBase_setNotesString((SBase_t *) (pGeneProduct), pacNotes);
+
+
+    /* get metaid */
+    pacMetaid = ReadString(mxGeneProduct, "metaid", "fbc_geneProduct", i, nNoGeneProducts);
+    SBase_setMetaId((SBase_t *) (pGeneProduct), pacMetaid);
+
+
+    /* get annotations */
+    pacAnnotations = ReadString(mxGeneProduct, "annotation", "fbc_geneProduct", i, nNoGeneProducts);
+    SBase_setAnnotationString((SBase_t *) (pGeneProduct), pacAnnotations); 
+
+
+    /* get sboTerm */
+    mxSBOTerm = mxGetField(mxGeneProduct, i, "sboTerm");
+    nSBOTerm = (int)mxGetScalar(mxSBOTerm);
+
+    SBase_setSBOTerm((SBase_t *) (pGeneProduct), nSBOTerm);
+
+    /* get id */
+    pacId = ReadString(mxGeneProduct, "fbc_id", "fbc_geneProduct", i, nNoGeneProducts);
+    GeneProduct_setId(pGeneProduct, pacId);
+
+    /* get Name */
+    pacName = ReadString(mxGeneProduct, "fbc_name", "fbc_geneProduct", i, nNoGeneProducts);
+    GeneProduct_setName(pGeneProduct, pacName);
+
+    /* get Label */
+    pacLabel = ReadString(mxGeneProduct, "fbc_label", "fbc_geneProduct", i, nNoGeneProducts);
+    GeneProduct_setLabel(pGeneProduct, pacLabel);
+
+    /* get Name */
+    pacAssociatedSpecies = ReadString(mxGeneProduct, "fbc_associatedSpecies", "fbc_geneProduct", i, nNoGeneProducts);
+    GeneProduct_setAssociatedSpecies(pGeneProduct, pacAssociatedSpecies);
+
+
+
+    /* free any memory allocated */
+    mxFree(pacNotes);
+    mxFree(pacAnnotations);
+    mxFree(pacMetaid);
+    mxFree(pacId);
+    mxFree(pacName);
+    mxFree(pacLabel);
+    mxFree(pacAssociatedSpecies);
+
+    /* add this flux bound to the model */
+    FbcModelPlugin_addGeneProduct(plugin, pGeneProduct);
+  }
+}
+
+/**
+ * NAME:    void  GetGeneProductAssociation 
+
+ *
+ * PARAMETERS:  mxArray of Objective structures
+ *              unSBMLLevel
+ *              unSBMLVersion - included for possible expansion needs
+ *				      Pointer to the model
+ *
+ * RETURNS:    void
+ *
+ * FUNCTION:  gets data from the Objective mxArray structure
+ *        and adds each Objective to the model
+ */
+void
+GetGeneProductAssociation  ( mxArray * mxGeneProductAssociation,
+               unsigned int unSBMLLevel,
+               unsigned int unSBMLVersion, 
+               unsigned int unFBCVersion, 
+               Reaction_t * reaction )
+{
+  if (unFBCVersion != 2)
+  {
+    return;
+  }
+
+  /* values */
+  char * pacNotes;
+  char * pacAnnotations;
+  int nSBOTerm;
+  char * pacMetaid;
+  char * pacId;
+  char * pacName;
+
+  mxArray * mxSBOTerm, *mxGeneAssociation;
+
+  GeneProductAssociation_t *pGeneProductAssociation;
+
+  SBasePlugin_t *plugin = SBase_getPlugin((SBase_t *)(reaction), "fbc");
+
+  pGeneProductAssociation = GeneProductAssociation_create(unSBMLLevel, unSBMLVersion, fbcVersion);
+
+  /* get notes */
+  pacNotes = ReadString(mxGeneProductAssociation, "notes", "fbc_geneProductAssociation", 0, 0);
+  SBase_setNotesString((SBase_t *) (pGeneProductAssociation), pacNotes);
+
+
+  /* get metaid */
+  pacMetaid = ReadString(mxGeneProductAssociation, "metaid", "fbc_geneProductAssociation", 0, 0);
+  SBase_setMetaId((SBase_t *) (pGeneProductAssociation), pacMetaid);
+
+
+  /* get annotations */
+  pacAnnotations = ReadString(mxGeneProductAssociation, "annotation", "fbc_geneProductAssociation", 0, 0);
+  SBase_setAnnotationString((SBase_t *) (pGeneProductAssociation), pacAnnotations); 
+
+
+  /* get sboTerm */
+  mxSBOTerm = mxGetField(mxGeneProductAssociation, 0, "sboTerm");
+  nSBOTerm = (int)mxGetScalar(mxSBOTerm);
+
+  SBase_setSBOTerm((SBase_t *) (pGeneProductAssociation), nSBOTerm);
+
+  /* get id */
+  pacId = ReadString(mxGeneProductAssociation, "fbc_id", "fbc_geneProductAssociation", 0, 0);
+  GeneProductAssociation_setId(pGeneProductAssociation, pacId);
+
+  /* get Name */
+  pacName = ReadString(mxGeneProductAssociation, "fbc_name", "fbc_geneProductAssociation", 0, 0);
+  GeneProductAssociation_setName(pGeneProductAssociation, pacName);
+
+  mxGeneAssociation = mxGetField(mxGeneProductAssociation, 0, "fbc_association");
+  GetGeneAssociation(mxGeneAssociation, unSBMLLevel, unSBMLVersion, fbcVersion, pGeneProductAssociation, reaction);
+
+
+  /* free any memory allocated */
+  mxFree(pacNotes);
+  mxFree(pacAnnotations);
+  mxFree(pacMetaid);
+  mxFree(pacId);
+  mxFree(pacName);
+
+  /* add this flux bound to the model */
+  FbcReactionPlugin_setGeneProductAssociation(plugin, pGeneProductAssociation);
+}
+
+/**
+ * NAME:    void  GetGeneAssociation 
+
+ *
+ * PARAMETERS:  mxArray of Objective structures
+ *              unSBMLLevel
+ *              unSBMLVersion - included for possible expansion needs
+ *				      Pointer to the model
+ *
+ * RETURNS:    void
+ *
+ * FUNCTION:  gets data from the Objective mxArray structure
+ *        and adds each Objective to the model
+ */
+void
+GetGeneAssociation  ( mxArray * mxGeneAssociation,
+               unsigned int unSBMLLevel,
+               unsigned int unSBMLVersion, 
+               unsigned int unFBCVersion, 
+               GeneProductAssociation_t * gpa,
+               Reaction_t* reaction)
+{
+  if (unFBCVersion != 2)
+  {
+    return;
+  }
+
+  /* values */
+  char * pacNotes;
+  char * pacAnnotations;
+  int nSBOTerm;
+  char * pacMetaid;
+  char * pacAssociation;
+
+  mxArray * mxSBOTerm;
+
+  FbcAssociation_t *pAssociation;
+
+  pacAssociation = ReadString(mxGeneAssociation, "fbc_association", "fbc_association", 0, 0);
+
+  SBase * m = reaction->getAncestorOfType(SBML_MODEL);
+  if (m == NULL)
+    return;
+  FbcModelPlugin* plugin = static_cast<FbcModelPlugin*>(m->getPlugin("fbc"));
+  if (plugin == NULL)
+    return;
+
+  pAssociation = FbcAssociation::parseFbcInfixAssociation(pacAssociation, plugin);
+
+  /* get notes */
+  pacNotes = ReadString(mxGeneAssociation, "notes", "fbc_association", 0, 0);
+  SBase_setNotesString((SBase_t *) (pAssociation), pacNotes);
+
+
+  /* get metaid */
+  pacMetaid = ReadString(mxGeneAssociation, "metaid", "fbc_association", 0, 0);
+  SBase_setMetaId((SBase_t *) (pAssociation), pacMetaid);
+
+
+  /* get annotations */
+  pacAnnotations = ReadString(mxGeneAssociation, "annotation", "fbc_association", 0, 0);
+  SBase_setAnnotationString((SBase_t *) (pAssociation), pacAnnotations); 
+
+
+  /* get sboTerm */
+  mxSBOTerm = mxGetField(mxGeneAssociation, 0, "sboTerm");
+  nSBOTerm = (int)mxGetScalar(mxSBOTerm);
+
+  SBase_setSBOTerm((SBase_t *) (pAssociation), nSBOTerm);
+
+
+
+  /* free any memory allocated */
+  mxFree(pacNotes);
+  mxFree(pacAnnotations);
+  mxFree(pacMetaid);
+
+  /* add this flux bound to the model */
+  GeneProductAssociation_setAssociation(gpa, pAssociation);
+}
+
 #endif
diff --git a/src/bindings/matlab/OutputSBML.m b/src/bindings/matlab/OutputSBML.m
index 08bc9cc..e65c9b2 100644
--- a/src/bindings/matlab/OutputSBML.m
+++ b/src/bindings/matlab/OutputSBML.m
@@ -31,7 +31,7 @@
 % This file is part of SBMLToolbox.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of SBMLToolbox.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/TranslateSBML.cpp b/src/bindings/matlab/TranslateSBML.cpp
index 3f42472..01f77cd 100644
--- a/src/bindings/matlab/TranslateSBML.cpp
+++ b/src/bindings/matlab/TranslateSBML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -51,6 +51,7 @@
 #include <sbml/packages/fbc/extension/FbcExtension.h>
 #include <sbml/packages/fbc/extension/FbcModelPlugin.h>
 #include <sbml/packages/fbc/extension/FbcSpeciesPlugin.h>
+#include <sbml/packages/fbc/extension/FbcReactionPlugin.h>
 #include <sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.h>
 
 #include <sbml/conversion/ConversionProperties.h>
@@ -58,6 +59,7 @@
 #include <sbml/packages/fbc/sbml/FluxBound.h>
 #include <sbml/packages/fbc/sbml/FluxObjective.h>
 #include <sbml/packages/fbc/sbml/Objective.h>
+#include <sbml/packages/fbc/common/FbcExtensionTypes.h>
 
 #endif
 
@@ -138,24 +140,38 @@ int fbcPresent = 0;
 void GetFluxBound          (Model_t *, unsigned int, unsigned int);
 void GetObjective          (Model_t *, unsigned int, unsigned int);
 void GetFluxObjective   (Objective_t *, unsigned int, unsigned int, unsigned int);
-
+void GetGeneProduct          (Model_t *, unsigned int, unsigned int);
+void GetGeneProductAssociation (Reaction_t *, unsigned int, unsigned int);
+void GetGeneAssociation (GeneProductAssociation_t *, unsigned int, unsigned int, 
+                         unsigned int);
 #endif
 
 static mxArray * mxFluxBoundReturn           = NULL;
 static mxArray * mxObjectiveReturn           = NULL;
 static mxArray * mxFluxObjectiveReturn       = NULL;
+static mxArray * mxGeneProductReturn         = NULL;
+static mxArray * mxGeneProductAssociationReturn = NULL;
+static mxArray * mxGeneAssociationReturn = NULL;
+
 
 const char *    pacActiveObj              = NULL;
+int fbcStrict = 0;
 
 #ifndef USE_FBC
 
 typedef enum
 {
-  SBML_FBC_ASSOCIATION      = 800
-  ,SBML_FBC_FLUXBOUND        = 801
-  ,SBML_FBC_FLUXOBJECTIVE    = 802
-  ,SBML_FBC_GENEASSOCIATION  = 803
-  ,SBML_FBC_OBJECTIVE        = 804
+    SBML_FBC_V1ASSOCIATION          = 800 /*!< Association (only used in Version 1; replaced in Version 2 with FbcAssociation) */
+	, SBML_FBC_FLUXBOUND              = 801 /*!< FluxBound */
+	, SBML_FBC_FLUXOBJECTIVE          = 802 /*!< FluxObjective */
+	, SBML_FBC_GENEASSOCIATION        = 803 /*!< GeneAssociation (only used in Version 1; replaced in Version 2 with GeneProductAssociation)*/
+	, SBML_FBC_OBJECTIVE              = 804 /*!< Objective */
+	, SBML_FBC_ASSOCIATION            = 805 /*!< FbcAssociation */
+	, SBML_FBC_GENEPRODUCTASSOCIATION = 806 /*!< GeneProductAssociation */
+	, SBML_FBC_GENEPRODUCT            = 807 /*!< GeneProduct */
+	, SBML_FBC_GENEPRODUCTREF         = 808 /*!< GeneProductRef */
+	, SBML_FBC_AND                    = 809 /*!< FbcAnd */
+	, SBML_FBC_OR                     = 810 /*!< FbcOr */
 } SBMLFbcTypeCode_t;
 
 #endif
@@ -404,6 +420,7 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
   int nNoFields_l2v4 = 24;
   int nNoFields_l3v1 = 30;
   int nNoFields_l3v1_fbc = 34;
+  int nNoFields_l3v1_fbc_v2 = 35;
 
   const char *error_struct[] =
   {
@@ -609,6 +626,45 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     "namespaces"
   };
 
+  const char *field_names_l3v1_fbcv2[] =
+  {
+    "typecode",
+    "metaid",
+    "notes",
+    "annotation",
+    "SBML_level",
+    "SBML_version",
+    "fbc_version",
+    "name",
+    "id",
+    "timeUnits",
+    "substanceUnits",
+    "volumeUnits",
+    "areaUnits",
+    "lengthUnits",
+    "extentUnits",
+    "conversionFactor",
+    "sboTerm",
+    "functionDefinition",
+    "unitDefinition",
+    "compartment",
+    "species",
+    "parameter",
+    "initialAssignment",
+    "rule",
+    "constraint",
+    "reaction",
+    "event",
+    "fbc_geneProduct",
+    "fbc_objective",
+    "fbc_activeObjective",
+    "fbc_strict",
+    "time_symbol",
+    "delay_symbol",
+    "avogadro_symbol",
+    "namespaces"
+  };
+
   mwSize dims[2] = {1, 1};
   mwSize errordims[2];
 
@@ -897,32 +953,32 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
   sbmlDocument = readSBML(pacFilename); 
 #endif
 
-#ifdef USE_FBC
+//#ifdef USE_FBC
   
-  const FbcSBMLDocumentPlugin* plug = 
-    dynamic_cast<const FbcSBMLDocumentPlugin*>(sbmlDocument->getPlugin("fbc"));
-  if (plug != NULL)
-  {
-  
-    if (plug->getPackageVersion() == 2)
-    {
-      ConversionProperties props;
-
-      /* add an option that we want to strip a given package */
-      props.addOption("convert fbc v2 to fbc v1", true,
-                      "convert fbc v2 to fbc v1");
-
-      /* perform the conversion */
-      int result = sbmlDocument->convert(props);
-      if (result != LIBSBML_OPERATION_SUCCESS)
-      {
-        reportError("TranslateSBML:Fbc:read", 
-          "Fbc Version is as yet unsupported. The attempt to convert to fbc V1 failed.");
-      }
-    }
-  }
-
-#endif
+  //const FbcSBMLDocumentPlugin* plug = 
+  //  dynamic_cast<const FbcSBMLDocumentPlugin*>(sbmlDocument->getPlugin("fbc"));
+  //if (plug != NULL)
+  //{
+  //
+  //  if (plug->getPackageVersion() == 2)
+  //  {
+  //    ConversionProperties props;
+
+  //    /* add an option that we want to strip a given package */
+  //    props.addOption("convert fbc v2 to fbc v1", true,
+  //                    "convert fbc v2 to fbc v1");
+
+  //    /* perform the conversion */
+  //    int result = sbmlDocument->convert(props);
+  //    if (result != LIBSBML_OPERATION_SUCCESS)
+  //    {
+  //      reportError("TranslateSBML:Fbc:read", 
+  //        "Fbc Version is as yet unsupported. The attempt to convert to fbc V1 failed.");
+  //    }
+  //  }
+  //}
+
+//#endif
   
   /*mxFree(pacFilename);*/
 
@@ -1284,7 +1340,15 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
       if (fbcPresent == 1)
       {
 #ifdef USE_FBC
-        GetFluxBound (sbmlModel, unSBMLLevel, unSBMLVersion);
+        if (unFBCVersion == 1)
+        {
+          GetFluxBound (sbmlModel, unSBMLLevel, unSBMLVersion);
+        }
+        else
+        {
+          GetGeneProduct(sbmlModel, unSBMLLevel, unSBMLVersion);
+          fbcStrict = FbcModelPlugin_getStrict(sbmlModel->getPlugin("fbc"));
+        }
         GetObjective (sbmlModel, unSBMLLevel, unSBMLVersion);
 #endif
       }
@@ -1354,10 +1418,14 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
       {
         plhs[0] = mxCreateStructArray(2, dims, nNoFields_l3v1, field_names_l3v1);
       }
-      else
+      else if (unFBCVersion == 1)
       {
         plhs[0] = mxCreateStructArray(2, dims, nNoFields_l3v1_fbc, field_names_l3v1_fbc);
       }
+      else
+      {
+        plhs[0] = mxCreateStructArray(2, dims, nNoFields_l3v1_fbc_v2, field_names_l3v1_fbcv2);
+      }
     }
 
 
@@ -1446,7 +1514,15 @@ mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
     }
     if (unSBMLLevel > 2 && fbcPresent == 1)
     {
-      mxSetField(plhs[0], 0, "fbc_fluxBound", mxFluxBoundReturn);
+      if (unFBCVersion == 1)
+      {
+        mxSetField(plhs[0], 0, "fbc_fluxBound", mxFluxBoundReturn);
+      }
+      else
+      {
+        mxSetField(plhs[0], 0, "fbc_geneProduct", mxGeneProductReturn);
+        mxSetField(plhs[0], 0, "fbc_strict", CreateIntScalar(fbcStrict));
+      }
       mxSetField(plhs[0], 0, "fbc_objective", mxObjectiveReturn);
       mxSetField(plhs[0], 0, "fbc_activeObjective", mxCreateString(pacActiveObj));
     }
@@ -1695,6 +1771,26 @@ GetNamespaces(SBMLDocument_t * document)
     pacTypecode = "SBML_FBC_OBJECTIVE";
     break;
 
+  case SBML_FBC_GENEPRODUCTASSOCIATION:
+    pacTypecode = "SBML_FBC_GENE_PRODUCT_ASSOCIATION";
+    break;
+
+  case SBML_FBC_GENEPRODUCT:
+    pacTypecode = "SBML_FBC_GENE_PRODUCT";
+    break;
+  
+  case SBML_FBC_GENEPRODUCTREF:
+    pacTypecode = "SBML_FBC_GENE_PRODUCT_REF";
+    break;
+  
+  case SBML_FBC_AND:
+    pacTypecode = "SBML_FBC_AND";
+    break;
+  
+  case SBML_FBC_OR:
+    pacTypecode = "SBML_FBC_OR";
+    break;
+
   default:
     pacTypecode = "ERROR";
     break;
@@ -3195,6 +3291,31 @@ GetReaction ( Model_t      *pModel,
     "level",
     "version"
   };
+  const int nNoFields_l3v1_fbc = 21;
+  const char *field_names_l3v1_fbc[] = {	
+    "typecode", 
+    "metaid",
+    "notes", 
+    "annotation",
+    "sboTerm",
+    "name", 
+    "id", 
+    "reactant",
+    "product", 
+    "modifier", 
+    "kineticLaw",
+    "reversible", 
+    "fast",
+    "compartment",
+    "isSetFast",
+    "fbc_lowerFluxBound",
+    "fbc_upperFluxBound",
+    "fbc_geneProductAssociation",
+    "level",
+    "version",
+    "fbc_version"
+  };
+
 
   const char * pacTypecode;
   const char * pacMetaid = NULL;
@@ -3203,12 +3324,23 @@ GetReaction ( Model_t      *pModel,
   const char * pacName;
   const char * pacId = NULL;
   const char * pacCompartment = NULL;
+  const char * pacLowerFluxBound = NULL;
+  const char * pacUpperFluxBound = NULL;
   int nSBO = -1;
 
   int nReversible;
   int nFast;
 
   unsigned int unIsSetFast = 1;
+  unsigned int unFBCVersion = 0;
+
+#ifdef USE_FBC
+  unFBCVersion = SBasePlugin_getPackageVersion(SBase_getPlugin((SBase_t *)(pModel), "fbc"));
+#else
+  unFBCVersion = 0;
+#endif
+
+
   Reaction_t *pReaction;
 
   int i;
@@ -3237,7 +3369,18 @@ GetReaction ( Model_t      *pModel,
   {
     if (unSBMLVersion == 1)
     {
-      mxReactionReturn = mxCreateStructArray(2, dims, nNoFields_l3v1, field_names_l3v1);
+      if (fbcPresent == 0)
+      {
+        mxReactionReturn = mxCreateStructArray(2, dims, nNoFields_l3v1, field_names_l3v1);
+      }
+      else if (unFBCVersion < 2)
+      {
+        mxReactionReturn = mxCreateStructArray(2, dims, nNoFields_l3v1, field_names_l3v1);
+      }
+      else
+      {
+        mxReactionReturn = mxCreateStructArray(2, dims, nNoFields_l3v1_fbc, field_names_l3v1_fbc);
+      }
     }
   }
 
@@ -3318,6 +3461,14 @@ GetReaction ( Model_t      *pModel,
       {
         nSBO = -1;
       }
+#ifdef USE_FBC
+      if (fbcPresent && unFBCVersion > 1)
+      {
+        pacUpperFluxBound = FbcReactionPlugin_getUpperFluxBound(SBase_getPlugin((SBase_t *)(pReaction), "fbc"));
+        pacLowerFluxBound = FbcReactionPlugin_getLowerFluxBound(SBase_getPlugin((SBase_t *)(pReaction), "fbc"));
+        GetGeneProductAssociation(pReaction, unSBMLLevel, unSBMLVersion);
+      }
+#endif
     }
 
     /* record any unset values as not specified */
@@ -3349,6 +3500,12 @@ GetReaction ( Model_t      *pModel,
     if (pacCompartment == NULL) {
       pacCompartment = "";
     }
+    if (pacUpperFluxBound == NULL) {
+      pacUpperFluxBound = "";
+    }
+    if (pacLowerFluxBound == NULL) {
+      pacLowerFluxBound = "";
+    }
 
     /* put into structure */
     mxSetField( mxReactionReturn, i, "level"      , CreateIntScalar(unSBMLLevel)   ); 
@@ -3397,12 +3554,20 @@ GetReaction ( Model_t      *pModel,
     {
       mxSetField(mxReactionReturn,i,"compartment",mxCreateString(pacCompartment)); 
       mxSetField(mxReactionReturn,i,"isSetFast",CreateIntScalar(unIsSetFast)); 
+      if (fbcPresent == 1 && unFBCVersion > 1)
+      {
+        mxSetField(mxReactionReturn,i,"fbc_upperFluxBound",mxCreateString(pacUpperFluxBound)); 
+        mxSetField(mxReactionReturn,i,"fbc_lowerFluxBound",mxCreateString(pacLowerFluxBound)); 
+        mxSetField(mxReactionReturn, i, "fbc_version"    , CreateIntScalar(unFBCVersion) );
+        mxSetField(mxReactionReturn, i, "fbc_geneProductAssociation", mxGeneProductAssociationReturn);
+      }
     }
 
     mxReactantReturn   = NULL;
     mxProductReturn    = NULL;
     mxKineticLawReturn = NULL;
     mxModifierReturn   = NULL;
+    mxGeneProductAssociationReturn = NULL;
   }
 }
 
@@ -7697,6 +7862,10 @@ GetFluxBound ( Model_t      *pModel,
     unIsSetValue    = FluxBound_isSetValue(pFluxBound);
 
     unFBCVersion = SBasePlugin_getPackageVersion(plugin);
+    if (SBase_isSetSBOTerm((SBase_t*) pFluxBound)) 
+    {
+      nSBO = SBase_getSBOTerm((SBase_t*) pFluxBound);
+    }
 
 
 
@@ -7848,6 +8017,10 @@ GetObjective ( Model_t      *pModel,
     pacType         = Objective_getType(pObjective);
 
     unFBCVersion = SBasePlugin_getPackageVersion(plugin);
+    if (SBase_isSetSBOTerm((SBase_t*) pObjective)) 
+    {
+      nSBO = SBase_getSBOTerm((SBase_t*) pObjective);
+    }
 
     GetFluxObjective(pObjective, unSBMLLevel, unSBMLVersion, unFBCVersion);
 
@@ -7985,6 +8158,10 @@ GetFluxObjective ( Objective_t      *pObjective,
     pacReaction        = FluxObjective_getReaction(pFluxObjective);
     dCoefficient       = FluxObjective_getCoefficient(pFluxObjective);
     unIsSetCoefficient = FluxObjective_isSetCoefficient(pFluxObjective);
+    if (SBase_isSetSBOTerm((SBase_t*) pFluxObjective)) 
+    {
+      nSBO = SBase_getSBOTerm((SBase_t*) pFluxObjective);
+    }
 
 
     /**        
@@ -8038,4 +8215,420 @@ GetFluxObjective ( Objective_t      *pObjective,
   }
 }
 
+/**
+ * NAME:    GetGeneProduct
+ *
+ * PARAMETERS:  Pointer to a Model
+ *              unSBMLLevel
+ *              unSBMLVersion - included for possible expansion needs
+ *
+ * RETURNS:    void
+ *
+ * FUNCTION:  creates the GeneProduct mxArray structure
+ *            populates the structure with all the GeneProduct in the Model
+ */
+void
+GetGeneProduct ( Model_t      *pModel,
+               unsigned int unSBMLLevel,
+               unsigned int unSBMLVersion )
+{
+  SBasePlugin_t *plugin =  SBase_getPlugin((SBase_t *)(pModel), "fbc");
+  int n = FbcModelPlugin_getNumGeneProducts(plugin);
+  mwSize dims[2] = {1, n};
+
+  /* fields within a FluxBound structure */
+  const int nNoFields_l3v1_fbc = 12;
+  const char * field_names_l3v1_fbc[] = {	
+    "typecode", 
+    "metaid",
+    "notes", 
+    "annotation",
+    "sboTerm",
+    "fbc_id",
+    "fbc_name",
+    "fbc_label",
+    "fbc_associatedSpecies",
+    "level",
+    "version",
+    "fbc_version"
+  };
+
+  /* determine the values */
+  const char * pacTypecode = NULL;
+  const char * pacMetaid = NULL;
+  const char * pacNotes = NULL;
+  const char * pacAnnotations = NULL;
+  const char * pacId = NULL;
+  int nSBO = -1;
+  const char * pacName = NULL;
+  const char * pacLabel = NULL;
+  const char * pacAssociatedSpecies = NULL;
+
+  unsigned int unFBCVersion;
+
+  GeneProduct_t *pGeneProduct;
+  int i;
+  /* create the structure array */
+  if (unSBMLLevel == 1) 
+  {
+    mxGeneProductReturn = NULL;
+  }
+  else if (unSBMLLevel == 2) 
+  {
+    mxGeneProductReturn = NULL;
+  }
+  else if (unSBMLLevel == 3) 
+  {
+    if (unSBMLVersion == 1)
+    {
+      mxGeneProductReturn = 
+        mxCreateStructArray(2, dims, nNoFields_l3v1_fbc, field_names_l3v1_fbc);
+    }
+  }
+
+  for (i = 0; i < n; i++) {
+    pGeneProduct = FbcModelPlugin_getGeneProduct(plugin, i);
+
+    /* determine the values */
+    pacTypecode     = TypecodeToChar(SBase_getTypeCode((SBase_t *) pGeneProduct));
+
+    pacNotes        = SBase_getNotesString((SBase_t *) pGeneProduct);
+    pacAnnotations  = SBase_getAnnotationString((SBase_t *) pGeneProduct);
+    pacMetaid = SBase_getMetaId((SBase_t*)pGeneProduct);
+
+    pacId           = GeneProduct_getId(pGeneProduct);
+    pacName         = GeneProduct_getName(pGeneProduct);
+    pacLabel        = GeneProduct_getLabel(pGeneProduct);
+    pacAssociatedSpecies = GeneProduct_getAssociatedSpecies(pGeneProduct);
+
+    if (SBase_isSetSBOTerm((SBase_t*) pGeneProduct)) 
+    {
+      nSBO = SBase_getSBOTerm((SBase_t*) pGeneProduct);
+    }
+    unFBCVersion = SBasePlugin_getPackageVersion(plugin);
+
+
+
+    /**        
+    * check for NULL strings - Matlab doesnt like creating 
+    * a string that is NULL
+    */
+    if (pacNotes == NULL) {
+      pacNotes = "";
+    }
+    if (pacMetaid == NULL)
+    {
+      pacMetaid = "";
+    }
+    if (pacAnnotations == NULL) {
+      pacAnnotations = "";
+    }
+    if (pacId == NULL) {
+      pacId = "";
+    }
+    if (pacName == NULL) {
+      pacName = "";
+    }
+    if (pacLabel == NULL) {
+      pacLabel = "";
+    }
+    if (pacAssociatedSpecies == NULL) {
+      pacAssociatedSpecies = "";
+    }
+    /* put into structure */
+    mxSetField( mxGeneProductReturn, i, "level"      , CreateIntScalar(unSBMLLevel)   ); 
+    mxSetField( mxGeneProductReturn, i, "version"    , CreateIntScalar(unSBMLVersion) );
+    mxSetField( mxGeneProductReturn, i, "fbc_version"    , CreateIntScalar(unFBCVersion) );
+
+    mxSetField(mxGeneProductReturn,i,"typecode",mxCreateString(pacTypecode)); 
+    mxSetField(mxGeneProductReturn, i, "metaid", mxCreateString(pacMetaid));
+    mxSetField(mxGeneProductReturn, i, "notes",mxCreateString(pacNotes));
+    mxSetField(mxGeneProductReturn, i, "annotation",mxCreateString(pacAnnotations));
+
+
+    if (strcmp(pacAnnotations, "") != 0)
+    {
+      util_free((char*)pacAnnotations);
+    }
+    if (strcmp(pacNotes, "") != 0)
+    {
+      util_free((char*)pacNotes);
+    }
+
+    mxSetField(mxGeneProductReturn,i,"sboTerm",CreateIntScalar(nSBO)); 
+    mxSetField(mxGeneProductReturn,i,"fbc_id",mxCreateString(pacId)); 
+    mxSetField(mxGeneProductReturn,i,"fbc_name",mxCreateString(pacName)); 
+    mxSetField(mxGeneProductReturn,i,"fbc_label",mxCreateString(pacLabel)); 
+    mxSetField(mxGeneProductReturn,i,"fbc_associatedSpecies",mxCreateString(pacAssociatedSpecies)); 
+  }
+}
+
+/**
+ * NAME:    GetGeneProductAssociation
+ *
+ * PARAMETERS:  Pointer to a Model
+ *              unSBMLLevel
+ *              unSBMLVersion - included for possible expansion needs
+ *
+ * RETURNS:    void
+ *
+ * FUNCTION:  creates the GeneProduct mxArray structure
+ *            populates the structure with all the GeneProduct in the Model
+ */
+void
+GetGeneProductAssociation ( Reaction_t * pReaction,
+               unsigned int unSBMLLevel,
+               unsigned int unSBMLVersion )
+{
+  SBasePlugin_t *plugin =  SBase_getPlugin((SBase_t *)(pReaction), "fbc");
+  int n = FbcReactionPlugin_isSetGeneProductAssociation(plugin) ? 1 : 0;
+  mwSize dims[2] = {1, n};
+
+  /* fields within a GeneProductAssociation structure */
+  const int nNoFields_l3v1_fbc = 11;
+  const char * field_names_l3v1_fbc[] = {	
+    "typecode", 
+    "metaid",
+    "notes", 
+    "annotation",
+    "sboTerm",
+    "fbc_id",
+    "fbc_name",
+    "fbc_association",
+    "level",
+    "version",
+    "fbc_version"
+  };
+
+  /* determine the values */
+  const char * pacTypecode = NULL;
+  const char * pacMetaid = NULL;
+  const char * pacNotes = NULL;
+  const char * pacAnnotations = NULL;
+  const char * pacId = NULL;
+  int nSBO = -1;
+  const char * pacName = NULL;
+
+  unsigned int unFBCVersion = SBasePlugin_getPackageVersion(plugin);
+
+  /* create the structure array */
+  if (unSBMLLevel == 1) 
+  {
+    mxGeneProductAssociationReturn = NULL;
+  }
+  else if (unSBMLLevel == 2) 
+  {
+    mxGeneProductAssociationReturn = NULL;
+  }
+  else if (unSBMLLevel == 3) 
+  {
+    if (unSBMLVersion == 1 && unFBCVersion == 2)
+    {
+      mxGeneProductAssociationReturn = 
+        mxCreateStructArray(2, dims, nNoFields_l3v1_fbc, field_names_l3v1_fbc);
+    }
+    else
+    {
+      mxGeneProductAssociationReturn = NULL;
+    }
+  }
+
+  if (n == 1) 
+  {
+    GeneProductAssociation_t *pGeneProductAssociation = FbcReactionPlugin_getGeneProductAssociation(plugin);
+
+    /* determine the values */
+    pacTypecode     = TypecodeToChar(SBase_getTypeCode((SBase_t *) pGeneProductAssociation));
+
+    pacNotes        = SBase_getNotesString((SBase_t *) pGeneProductAssociation);
+    pacAnnotations  = SBase_getAnnotationString((SBase_t *) pGeneProductAssociation);
+    pacMetaid = SBase_getMetaId((SBase_t*)pGeneProductAssociation);
+
+    pacId           = GeneProductAssociation_getId(pGeneProductAssociation);
+    pacName         = GeneProductAssociation_getName(pGeneProductAssociation);
+
+    if (SBase_isSetSBOTerm((SBase_t*) pGeneProductAssociation)) 
+    {
+      nSBO = SBase_getSBOTerm((SBase_t*) pGeneProductAssociation);
+    }
+    GetGeneAssociation(pGeneProductAssociation, unSBMLLevel, unSBMLVersion, unFBCVersion);
+
+    /**        
+    * check for NULL strings - Matlab doesnt like creating 
+    * a string that is NULL
+    */
+    if (pacNotes == NULL) {
+      pacNotes = "";
+    }
+    if (pacMetaid == NULL)
+    {
+      pacMetaid = "";
+    }
+    if (pacAnnotations == NULL) {
+      pacAnnotations = "";
+    }
+    if (pacId == NULL) {
+      pacId = "";
+    }
+    if (pacName == NULL) {
+      pacName = "";
+    }
+    /* put into structure */
+    mxSetField( mxGeneProductAssociationReturn, 0, "level"      , CreateIntScalar(unSBMLLevel)   ); 
+    mxSetField( mxGeneProductAssociationReturn, 0, "version"    , CreateIntScalar(unSBMLVersion) );
+    mxSetField( mxGeneProductAssociationReturn, 0, "fbc_version"    , CreateIntScalar(unFBCVersion) );
+
+    mxSetField(mxGeneProductAssociationReturn, 0, "typecode",mxCreateString(pacTypecode)); 
+    mxSetField(mxGeneProductAssociationReturn, 0, "metaid", mxCreateString(pacMetaid));
+    mxSetField(mxGeneProductAssociationReturn, 0, "notes",mxCreateString(pacNotes));
+    mxSetField(mxGeneProductAssociationReturn, 0, "annotation",mxCreateString(pacAnnotations));
+
+
+    if (strcmp(pacAnnotations, "") != 0)
+    {
+      util_free((char*)pacAnnotations);
+    }
+    if (strcmp(pacNotes, "") != 0)
+    {
+      util_free((char*)pacNotes);
+    }
+
+    mxSetField(mxGeneProductAssociationReturn, 0, "sboTerm", CreateIntScalar(nSBO)); 
+    mxSetField(mxGeneProductAssociationReturn, 0, "fbc_id", mxCreateString(pacId)); 
+    mxSetField(mxGeneProductAssociationReturn, 0, "fbc_name", mxCreateString(pacName)); 
+    mxSetField(mxGeneProductAssociationReturn, 0, "fbc_association", mxGeneAssociationReturn); 
+    mxGeneAssociationReturn = NULL;
+
+  }
+}
+
+/**
+ * NAME:    GetGeneAssociation
+ *
+ * PARAMETERS:  Pointer to a Model
+ *              unSBMLLevel
+ *              unSBMLVersion - included for possible expansion needs
+ *
+ * RETURNS:    void
+ *
+ * FUNCTION:  creates the GeneProduct mxArray structure
+ *            populates the structure with all the GeneProduct in the Model
+ */
+void 
+GetGeneAssociation ( GeneProductAssociation_t * pGeneProductAssociation,
+               unsigned int unSBMLLevel,
+               unsigned int unSBMLVersion,
+               unsigned int unFBCVersion)
+{
+  //if (!GeneProductAssociation_isSetAssociation(pGeneProductAssociation))
+  //{
+  //  mxGeneAssociationReturn = NULL;
+  //  return;
+  //}
+  FbcAssociation_t * pAssociation = GeneProductAssociation_getAssociation(pGeneProductAssociation);
+  mwSize dims[2] = {1, 1};
+  const int nNoFields_l3v1_fbc = 9;
+  const char * field_names_l3v1_fbc[] = {	
+    "typecode", 
+    "metaid",
+    "notes", 
+    "annotation",
+    "sboTerm",
+    "fbc_association",
+    "level",
+    "version",
+    "fbc_version"
+  };
+
+  const char * pacTypecode = NULL;
+  const char * pacMetaid = NULL;
+  const char * pacNotes = NULL;
+  const char * pacAnnotations = NULL;
+  const char * pacAssociation = NULL;
+  int nSBO = -1;
+
+  /* create the structure array */
+  if (unSBMLLevel == 1) 
+  {
+    mxGeneAssociationReturn = NULL;
+  }
+  else if (unSBMLLevel == 2) 
+  {
+    mxGeneAssociationReturn = NULL;
+  }
+  else if (unSBMLLevel == 3) 
+  {
+    if (unSBMLVersion == 1 && unFBCVersion == 2)
+    {
+      mxGeneAssociationReturn = mxCreateStructArray(2, dims, nNoFields_l3v1_fbc, field_names_l3v1_fbc);
+    /* determine the values */
+      pacTypecode     = TypecodeToChar(SBase_getTypeCode((SBase_t *) pAssociation));
+
+      pacNotes        = SBase_getNotesString((SBase_t *) pAssociation);
+      pacAnnotations  = SBase_getAnnotationString((SBase_t *) pAssociation);
+      pacMetaid = SBase_getMetaId((SBase_t*)pAssociation);
+
+      if (SBase_isSetSBOTerm((SBase_t*) pAssociation)) 
+      {
+        nSBO = SBase_getSBOTerm((SBase_t*) pAssociation);
+      }
+      pacAssociation = FbcAssociation_toInfix(pAssociation);
+
+      /**        
+      * check for NULL strings - Matlab doesnt like creating 
+      * a string that is NULL
+      */
+      if (pacNotes == NULL) {
+        pacNotes = "";
+      }
+      if (pacMetaid == NULL)
+      {
+        pacMetaid = "";
+      }
+      if (pacAnnotations == NULL) {
+        pacAnnotations = "";
+      }
+      if (pacAssociation == NULL) {
+        pacAssociation = "";
+      }
+
+      ///* put into structure */
+      mxSetField( mxGeneAssociationReturn, 0, "level"      , CreateIntScalar(unSBMLLevel)   ); 
+      mxSetField( mxGeneAssociationReturn, 0, "version"    , CreateIntScalar(unSBMLVersion) );
+      mxSetField( mxGeneAssociationReturn, 0, "fbc_version"    , CreateIntScalar(unFBCVersion) );
+
+      mxSetField(mxGeneAssociationReturn, 0, "typecode",mxCreateString(pacTypecode)); 
+      mxSetField(mxGeneAssociationReturn, 0, "metaid", mxCreateString(pacMetaid));
+      mxSetField(mxGeneAssociationReturn, 0, "notes",mxCreateString(pacNotes));
+      mxSetField(mxGeneAssociationReturn, 0, "annotation",mxCreateString(pacAnnotations));
+
+
+      if (strcmp(pacAnnotations, "") != 0)
+      {
+        util_free((char*)pacAnnotations);
+      }
+      if (strcmp(pacNotes, "") != 0)
+      {
+        util_free((char*)pacNotes);
+      }
+
+      mxSetField(mxGeneAssociationReturn, 0, "sboTerm", CreateIntScalar(nSBO)); 
+      mxSetField(mxGeneAssociationReturn, 0, "fbc_association", mxCreateString(pacAssociation)); 
+
+      if (strcmp(pacAssociation, "") != 0)
+      {
+        util_free((char*)pacAssociation);
+      }
+    }
+    else
+    {
+      mxGeneAssociationReturn = NULL;
+    }
+  }
+
+  
+}
+
+
+
 #endif 
diff --git a/src/bindings/matlab/TranslateSBML.m b/src/bindings/matlab/TranslateSBML.m
index 87f7759..2b5b47d 100644
--- a/src/bindings/matlab/TranslateSBML.m
+++ b/src/bindings/matlab/TranslateSBML.m
@@ -40,7 +40,7 @@
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/buildSBML.m b/src/bindings/matlab/buildSBML.m
index 7f69296..ca63245 100644
--- a/src/bindings/matlab/buildSBML.m
+++ b/src/bindings/matlab/buildSBML.m
@@ -32,7 +32,7 @@ function buildSBML(varargin)
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/installSBML.m b/src/bindings/matlab/installSBML.m
index 1541db3..5311f7c 100644
--- a/src/bindings/matlab/installSBML.m
+++ b/src/bindings/matlab/installSBML.m
@@ -20,7 +20,7 @@ function installSBML(varargin)
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/isFbcEnabled.m b/src/bindings/matlab/isFbcEnabled.m
index 578f8a1..26608b4 100644
--- a/src/bindings/matlab/isFbcEnabled.m
+++ b/src/bindings/matlab/isFbcEnabled.m
@@ -11,7 +11,7 @@ function fbcEnabled = isFbcEnabled()
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/isSBML_Model.m b/src/bindings/matlab/isSBML_Model.m
index 8bcbea0..d448f33 100644
--- a/src/bindings/matlab/isSBML_Model.m
+++ b/src/bindings/matlab/isSBML_Model.m
@@ -22,7 +22,7 @@ function [valid, message] = isSBML_Model(varargin)
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
@@ -101,6 +101,14 @@ else
   version = 1;
 end;
 
+pkgVersion = 1;
+if (in_fbc == 1)
+  if isfield(SBMLStructure, 'fbc_version')
+    pkgVersion = SBMLStructure.fbc_version;
+  end;
+end;
+    
+
 isValidLevelVersionCombination(level, version);
 
 message = '';
@@ -254,7 +262,14 @@ if (valid == 1 && (level > 2 || (level == 2 && version > 1)))
 end;
 
 % reaction
-if (valid == 1)
+% dont validate if fbc v2 
+fbcv2 = 0;
+if (level == 3 && version == 1)
+    if (pkgVersion == 2)
+        fbcv2 = 1;
+    end;
+end;
+if (valid == 1 && fbcv2 == 0)
   index = 1;
   while (valid == 1 && index <= length(SBMLStructure.reaction))
     [valid, message] = isSBML_Struct('SBML_REACTION', ...
@@ -647,7 +662,12 @@ valid = isstruct(SBMLStructure);
 % check the typecode
 if (valid == 1 && ~isempty(SBMLStructure))
   if isfield(SBMLStructure, 'typecode')
-    if (strcmp(typecode, SBMLStructure.typecode) ~= 1)
+      if (strcmp(typecode, 'SBML_FBC_GENE_PRODUCT_REF') == 1)
+          possible_tc = {'SBML_FBC_GENE_PRODUCT_REF', 'SBML_FBC_OR', 'SBML_FBC_AND'};
+      else 
+          possible_tc = {typecode};
+      end;
+    if (sum(ismember(possible_tc, SBMLStructure.typecode)) ~= 1)
       valid = 0;
       message = 'typecode mismatch';
       return;
@@ -814,7 +834,7 @@ if (valid == 1)
 
 
   % fluxBound
-  if (valid == 1)
+  if (valid == 1 && pkgVersion == 1)
     index = 1;
     while (valid == 1 && index <= length(SBMLStructure.fbc_fluxBound))
       [valid, message] = isSBML_FBCStruct('SBML_FBC_FLUXBOUND', ...
@@ -834,7 +854,18 @@ if (valid == 1)
       index = index + 1;
     end;
   end;
-  
+
+  % geneProduct
+  if (valid == 1 && pkgVersion == 2)
+    index = 1;
+    while (valid == 1 && index <= length(SBMLStructure.fbc_geneProduct))
+      [valid, message] = isSBML_FBCStruct('SBML_FBC_GENE_PRODUCT', ...
+                                    SBMLStructure.fbc_geneProduct(index), ...
+                                    level, version, pkgVersion, extensions_allowed);
+      index = index + 1;
+    end;
+  end;
+
   %species
   if (valid == 1)
     index = 1;
@@ -846,6 +877,16 @@ if (valid == 1)
     end;
   end;
   
+  %reaction
+  if (valid == 1 && pkgVersion == 2)
+    index = 1;
+    while (valid == 1 && index <= length(SBMLStructure.reaction))
+      [valid, message] = isSBML_FBC_Reaction('SBML_FBC_REACTION', ...
+                                    SBMLStructure.reaction(index), ...
+                                    level, version, pkgVersion, extensions_allowed);
+      index = index + 1;
+    end;
+  end;
 
 end;
 
@@ -950,6 +991,127 @@ if (valid == 0)
 	message = sprintf('Invalid FBC Species\n%s\n', message);
 end;
 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function [valid, message] = isSBML_FBC_Reaction(typecode, SBMLStructure, ...
+                                    level, version, pkgVersion, extensions_allowed)
+
+if (length(SBMLStructure) > 1)
+	message = 'cannot deal with arrays of structures';
+  valid = 0;
+  return;
+end;
+
+isValidLevelVersionCombination(level, version);
+
+message = '';
+
+% check that argument is a structure
+valid = isstruct(SBMLStructure);
+
+% check the typecode
+typecode = 'SBML_REACTION';
+if (valid == 1 && ~isempty(SBMLStructure))
+  if isfield(SBMLStructure, 'typecode')
+    if (strcmp(typecode, SBMLStructure.typecode) ~= 1)
+      valid = 0;
+      message = 'typecode mismatch';
+      return;
+    end;
+  else
+    valid = 0;
+    message = 'typecode field missing';
+    return;
+  end;
+end;
+
+% if the level and version fields exist they must match
+if (valid == 1 && isfield(SBMLStructure, 'level') && ~isempty(SBMLStructure))
+	if ~isequal(level, SBMLStructure.level)
+		valid = 0;
+		message = 'level mismatch';
+	end;
+end;
+if (valid == 1 && isfield(SBMLStructure, 'version') && ~isempty(SBMLStructure))
+	if ~isequal(version, SBMLStructure.version)
+		valid = 0;
+		message = 'version mismatch';
+	end;
+end;
+if (valid == 1 && isfield(SBMLStructure, 'fbc_version') && ~isempty(SBMLStructure))
+	if ~isequal(pkgVersion, SBMLStructure.fbc_version)
+		valid = 0;
+		message = 'FBC version mismatch';
+	end;
+end;
+
+if (valid == 1)
+  [valid, message] = isSBML_Struct('SBML_REACTION', SBMLStructure, level, ...
+                                             version, 1);
+end;
+
+% check that structure contains all the fbc fields
+if (valid == 1)
+  [SBMLfieldnames, numFields] = getFieldnames('SBML_FBC_REACTION', level, ...
+                                                version, pkgVersion);
+
+  if (numFields ==0)
+    valid = 0;
+    message = 'invalid level/version';
+  end;
+
+  index = 1;
+  while (valid == 1 && index <= numFields)
+    valid = isfield(SBMLStructure, char(SBMLfieldnames(index)));
+    if (valid == 0);
+      message = sprintf('%s field missing', char(SBMLfieldnames(index)));
+    end;
+    index = index + 1;
+  end;
+
+  if (extensions_allowed == 0)
+    % check that the structure contains ONLY the expected fields
+    if (valid == 1)
+      if (numFields ~= length(fieldnames(SBMLStructure))-17)
+        valid = 0;
+        message = sprintf('Unexpected field detected');
+      end;
+    end;
+  end;
+
+
+end;
+
+  %check that any nested structures are appropriate
+
+
+  % geneProductAssociation
+  if (valid == 1 && pkgVersion == 2)
+    index = 1;
+    while (valid == 1 && index <= length(SBMLStructure.fbc_geneProductAssociation))
+      [valid, message] = isSBML_FBCStruct('SBML_FBC_GENE_PRODUCT_ASSOCIATION', ...
+                                    SBMLStructure.fbc_geneProductAssociation(index), ...
+                                    level, version, pkgVersion, extensions_allowed);
+      index = index + 1;
+    end;
+  end;
+
+  % geneAssociation
+  if (valid == 1 && pkgVersion == 2)
+    index = length(SBMLStructure.fbc_geneProductAssociation);
+    while (valid == 1 && index == 1)
+      [valid, message] = isSBML_FBCStruct('SBML_FBC_GENE_PRODUCT_REF', ...
+                                    SBMLStructure.fbc_geneProductAssociation.fbc_association, ...
+                                    level, version, pkgVersion, extensions_allowed);
+      index = index + 1;
+    end;
+  end;
+
+% report failure
+if (valid == 0)
+	message = sprintf('Invalid FBC Reaction\n%s\n', message);
+end;
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 function valid = isValidLevelVersionCombination(level, version)
@@ -1845,6 +2007,16 @@ if done == 0
      [SBMLfieldnames, nNumberFields] = getFBCModelFieldnames(level, version, pkgVersion);
     case {'SBML_FBC_SPECIES', 'FBCSpecies'}
      [SBMLfieldnames, nNumberFields] = getFBCSpeciesFieldnames(level, version, pkgVersion);
+    case {'SBML_FBC_REACTION', 'FBCReaction'}
+     [SBMLfieldnames, nNumberFields] = getFBCReactionFieldnames(level, version, pkgVersion);
+    case {'SBML_FBC_GENE_PRODUCT', 'GeneProduct', 'geneProduct'}
+     [SBMLfieldnames, nNumberFields] = getGeneProductFieldnames(level, version, pkgVersion);
+    case {'SBML_FBC_GENE_PRODUCT_ASSOCIATION', 'GeneProductAssociation', 'geneProductAssociation'}
+     [SBMLfieldnames, nNumberFields] = getGeneProductAssociationFieldnames(level, version, pkgVersion);
+    case {'SBML_FBC_GENE_PRODUCT_REF', 'GeneProductRef', 'geneProductRef'}
+     [SBMLfieldnames, nNumberFields] = getGeneAssociationFieldnames(level, version, pkgVersion);
+    case {'SBML_FBC_OR', 'FBCOr', 'fbcOr', 'SBML_FBC_AND', 'FBCAnd', 'fbcAnd', }
+     [SBMLfieldnames, nNumberFields] = getGeneAssociationFieldnames(level, version, pkgVersion);
     otherwise
       error('%s\n%s', ...
         'getFieldnames(typecode, level, version', ...
@@ -3555,12 +3727,20 @@ elseif (level == 2)
 elseif (level == 3)
 	if (version == 1)
     if (pkgVersion == 1)
-      SBMLfieldnames = { 'fbc_version', ...
-                         'fbc_fluxBound', ...
-                         'fbc_objective', ...
-                         'fbc_activeObjective', ...
-                       };
-      nNumberFields = 4;
+          SBMLfieldnames = { 'fbc_version', ...
+                             'fbc_fluxBound', ...
+                             'fbc_objective', ...
+                             'fbc_activeObjective', ...
+                           };
+          nNumberFields = 4;
+    elseif(pkgVersion ==2)
+          SBMLfieldnames = { 'fbc_version', ...
+                             'fbc_geneProduct', ...
+                             'fbc_objective', ...
+                             'fbc_activeObjective', ...
+                             'fbc_strict'
+                           };
+          nNumberFields = 5;
     end;
 	end;
 end;
@@ -3584,7 +3764,7 @@ elseif (level == 2)
 	nNumberFields = 0;
 elseif (level == 3)
 	if (version == 1)
-    if (pkgVersion == 1)
+    if (pkgVersion < 3)
       SBMLfieldnames = { 'fbc_charge', ...
                          'isSetfbc_charge', ...
                          'fbc_chemicalFormula', ...
@@ -3630,6 +3810,9 @@ elseif (level == 3)
                          'fbc_version', ...
                        };
       nNumberFields = 13;
+    else
+        SBMLfieldnames = [];
+        nNumberFields = 0;
     end;
 	end;
 end;
@@ -3653,7 +3836,7 @@ elseif (level == 2)
 	nNumberFields = 0;
 elseif (level == 3)
 	if (version == 1)
-    if (pkgVersion == 1)
+    if (pkgVersion < 3)
       SBMLfieldnames = { 'typecode', ...
                          'metaid', ...
                          'notes', ...
@@ -3690,7 +3873,7 @@ elseif (level == 2)
 	nNumberFields = 0;
 elseif (level == 3)
 	if (version == 1)
-    if (pkgVersion == 1)
+    if (pkgVersion < 3)
       SBMLfieldnames = { 'typecode', ...
                          'metaid', ...
                          'notes', ...
@@ -3707,3 +3890,161 @@ elseif (level == 3)
     end;
 	end;
 end;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function [SBMLfieldnames, nNumberFields] = getGeneProductFieldnames(level, ...
+                                                         version, pkgVersion)
+
+if (~isValidLevelVersionCombination(level, version))
+  error ('invalid level/version combination');
+end;
+
+% need a check on package version
+
+if (level == 1)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 2)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 3)
+	if (version == 1)
+    if (pkgVersion  == 2)
+      SBMLfieldnames = { 'typecode', ...
+                         'metaid', ...
+                         'notes', ...
+                         'annotation', ...
+                         'sboTerm', ...
+                         'fbc_id', ...
+                         'fbc_name', ...
+                         'fbc_label', ...
+                         'fbc_associatedSpecies', ...
+                         'level', ...
+                         'version', ...
+                         'fbc_version', ...
+                       };
+      nNumberFields = 12;
+    else
+        SBMLfieldnames = [];
+        nNumberFields = 0;
+    end;
+	end;
+end;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function [SBMLfieldnames, nNumberFields] = getFBCReactionFieldnames(level, ...
+                                                         version, pkgVersion)
+
+if (~isValidLevelVersionCombination(level, version))
+  error ('invalid level/version combination');
+end;
+
+% need a check on package version
+
+if (level == 1)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 2)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 3)
+	if (version == 1)
+    if (pkgVersion == 2)
+      SBMLfieldnames = { 'fbc_lowerFluxBound', ...
+                         'fbc_upperFluxBound', ...
+                         'fbc_geneProductAssociation', ...
+                         'fbc_version', ...
+                       };
+      nNumberFields = 4;
+    else
+       SBMLfieldnames = [];
+	   nNumberFields = 0;
+    end;
+	end;
+end;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function [SBMLfieldnames, nNumberFields] = getGeneProductAssociationFieldnames(level, ...
+                                                         version, pkgVersion)
+
+if (~isValidLevelVersionCombination(level, version))
+  error ('invalid level/version combination');
+end;
+
+% need a check on package version
+
+if (level == 1)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 2)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 3)
+	if (version == 1)
+    if (pkgVersion == 2)
+
+      SBMLfieldnames = { 'typecode', ...
+                         'metaid', ...
+                         'notes', ...
+                         'annotation', ...
+                         'sboTerm', ...
+                         'fbc_id', ...
+                         'fbc_name', ...
+                         'fbc_association', ...
+                         'level', ...
+                         'version', ...
+                         'fbc_version', ...
+                       };
+                   nNumberFields = 11;
+    else
+       SBMLfieldnames = [];
+	   nNumberFields = 0;
+    end;
+	end;
+end;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function [SBMLfieldnames, nNumberFields] = getGeneAssociationFieldnames(level, ...
+                                                         version, pkgVersion)
+
+if (~isValidLevelVersionCombination(level, version))
+  error ('invalid level/version combination');
+end;
+
+% need a check on package version
+
+if (level == 1)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 2)
+	SBMLfieldnames = [];
+	nNumberFields = 0;
+elseif (level == 3)
+	if (version == 1)
+    if (pkgVersion == 2)
+
+      SBMLfieldnames = { 'typecode', ...
+                         'metaid', ...
+                         'notes', ...
+                         'annotation', ...
+                         'sboTerm', ...
+                         'fbc_association', ...
+                         'level', ...
+                         'version', ...
+                         'fbc_version', ...
+                       };
+                   nNumberFields = 9;
+    else
+       SBMLfieldnames = [];
+	   nNumberFields = 0;
+    end;
+	end;
+end;
+
+
+
+
diff --git a/src/bindings/matlab/test/Makefile.in b/src/bindings/matlab/test/Makefile.in
index b847230..e097509 100644
--- a/src/bindings/matlab/test/Makefile.in
+++ b/src/bindings/matlab/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/test/compareFiles.m b/src/bindings/matlab/test/compareFiles.m
index 3b093df..d43375f 100644
--- a/src/bindings/matlab/test/compareFiles.m
+++ b/src/bindings/matlab/test/compareFiles.m
@@ -8,7 +8,7 @@ function y = compareFiles(file1, file2)
 % This file is part of SBMLToolbox.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of SBMLToolbox.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/matlab/test/test-data/fbcV2.xml b/src/bindings/matlab/test/test-data/fbcV2.xml
new file mode 100644
index 0000000..3537810
--- /dev/null
+++ b/src/bindings/matlab/test/test-data/fbcV2.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:fbc="http://www.sbml.org/sbml/level3/version1/fbc/version2" level="3" version="1" fbc:required="false">
+  <model id="m" substanceUnits="mole" timeUnits="second" volumeUnits="litre" extentUnits="mole" fbc:strict="true">
+    <listOfUnitDefinitions>
+      <unitDefinition id="vol_per_time">
+        <listOfUnits>
+          <unit kind="litre" exponent="1" scale="0" multiplier="1"/>
+          <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+        </listOfUnits>
+      </unitDefinition>
+    </listOfUnitDefinitions>
+    <listOfCompartments>
+      <compartment id="comp1" spatialDimensions="3" size="1" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="S" compartment="comp1" initialAmount="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" fbc:charge="2" fbc:chemicalFormula="S20"/>
+      <species id="S1" compartment="comp1" initialAmount="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" fbc:charge="2" fbc:chemicalFormula="S20"/>
+      <species id="S2" compartment="comp1" initialAmount="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="S3" compartment="comp1" initialAmount="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" fbc:charge="2" fbc:chemicalFormula="S20"/>
+      <species id="S4" compartment="comp1" initialAmount="1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" fbc:charge="2" fbc:chemicalFormula="S20"/>
+    </listOfSpecies>
+    <listOfParameters>
+      <parameter sboTerm="SBO:0000625" id="low" value="10" constant="true"/>
+      <parameter sboTerm="SBO:0000625" id="up" value="23" constant="true"/>
+    </listOfParameters>
+    <listOfReactions>
+      <reaction id="R1" reversible="false" fast="false" fbc:lowerFluxBound="low" fbc:upperFluxBound="up">
+        <listOfReactants>
+          <speciesReference species="S1" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="S2" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <times/>
+              <ci> k </ci>
+              <ci> S1 </ci>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="k" value="0.1" units="vol_per_time"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+        <fbc:geneProductAssociation fbc:id="gg1">
+          <fbc:geneProductRef fbc:geneProduct="g_1"/>
+        </fbc:geneProductAssociation>
+      </reaction>
+      <reaction id="R2" reversible="false" fast="false" fbc:lowerFluxBound="low" fbc:upperFluxBound="up">
+        <listOfReactants>
+          <speciesReference species="S1" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="S2" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <times/>
+              <ci> k </ci>
+              <ci> S1 </ci>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="k" value="0.1" units="vol_per_time"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+        <fbc:geneProductAssociation fbc:id="gg2">
+          <fbc:or metaid="ss">
+            <fbc:geneProductRef fbc:geneProduct="g_1"/>
+            <fbc:geneProductRef fbc:geneProduct="g_2"/>
+          </fbc:or>
+        </fbc:geneProductAssociation>
+      </reaction>
+      <reaction id="R3" reversible="false" fast="false" fbc:lowerFluxBound="low" fbc:upperFluxBound="up">
+        <listOfReactants>
+          <speciesReference species="S1" stoichiometry="1" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="S2" stoichiometry="1" constant="true"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <times/>
+              <ci> k </ci>
+              <ci> S1 </ci>
+            </apply>
+          </math>
+          <listOfLocalParameters>
+            <localParameter id="k" value="0.1" units="vol_per_time"/>
+          </listOfLocalParameters>
+        </kineticLaw>
+        <fbc:geneProductAssociation fbc:id="gg3">
+          <fbc:or metaid="ss">
+            <fbc:geneProductRef fbc:geneProduct="g_1"/>
+            <fbc:geneProductRef fbc:geneProduct="g_2"/>
+            <fbc:and>
+              <fbc:geneProductRef fbc:geneProduct="g_1"/>
+              <fbc:geneProductRef fbc:geneProduct="g_2"/>
+            </fbc:and>
+          </fbc:or>
+        </fbc:geneProductAssociation>
+      </reaction>
+    </listOfReactions>
+    <fbc:listOfObjectives fbc:activeObjective="c">
+      <fbc:objective fbc:id="c" fbc:type="maximize">
+        <fbc:listOfFluxObjectives>
+          <fbc:fluxObjective fbc:reaction="R1" fbc:coefficient="1"/>
+        </fbc:listOfFluxObjectives>
+      </fbc:objective>
+    </fbc:listOfObjectives>
+    <fbc:listOfGeneProducts>
+      <fbc:geneProduct fbc:id="g_1" fbc:label="g_1"/>
+      <fbc:geneProduct fbc:id="g_2" fbc:label="g_2"/>
+    </fbc:listOfGeneProducts>
+  </model>
+</sbml>
diff --git a/src/bindings/matlab/test/test-data/test-greek.xml b/src/bindings/matlab/test/test-data/test-greek.xml
new file mode 100644
index 0000000..f05b0cb
--- /dev/null
+++ b/src/bindings/matlab/test/test-data/test-greek.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level2" level="2" version="1">
+  <model id="Branch">
+    <notes>
+      <body xmlns="http://www.w3.org/1999/xhtml">
+        <p>Simple branch system.</p>
+        <p>ɱ - some € symbolsβ śԈ</p>
+      </body>
+    </notes>
+    <listOfCompartments>
+      <compartment id="compartmentOne" spatialDimensions="3" size="1" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="S1" name="αxdxd" compartment="compartmentOne" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="X0" compartment="compartmentOne" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="true" constant="false"/>
+      <species id="X1" compartment="compartmentOne" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="true" constant="false"/>
+      <species id="X2" compartment="compartmentOne" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="true" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="reaction_1" reversible="false">
+        <listOfReactants>
+          <speciesReference species="X0" stoichiometry="1"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="S1" stoichiometry="1"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <times/>
+              <ci> k1 </ci>
+              <ci> X0 </ci>
+            </apply>
+          </math>
+          <listOfParameters>
+            <parameter id="k1" value="0" constant="true"/>
+          </listOfParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="reaction_2" reversible="false">
+        <listOfReactants>
+          <speciesReference species="S1" stoichiometry="1"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="X1" stoichiometry="1"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <times/>
+              <ci> k2 </ci>
+              <ci> S1 </ci>
+            </apply>
+          </math>
+          <listOfParameters>
+            <parameter id="k2" value="0" constant="true"/>
+          </listOfParameters>
+        </kineticLaw>
+      </reaction>
+      <reaction id="reaction_3" reversible="false">
+        <listOfReactants>
+          <speciesReference species="S1" stoichiometry="1"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="X2" stoichiometry="1"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <apply>
+              <times/>
+              <ci> k3 </ci>
+              <ci> S1 </ci>
+            </apply>
+          </math>
+          <listOfParameters>
+            <parameter id="k3" value="0" constant="true"/>
+          </listOfParameters>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/bindings/matlab/test/testBinding.m b/src/bindings/matlab/test/testBinding.m
index cec3be3..2ce5f11 100644
--- a/src/bindings/matlab/test/testBinding.m
+++ b/src/bindings/matlab/test/testBinding.m
@@ -55,6 +55,7 @@ try
   Totalfail = Totalfail + testReadFromFile16(install);
   if (FbcEnabled == 1)
     Totalfail = Totalfail + testReadFromFileFbc1(install);
+    Totalfail = Totalfail + testReadFromFileFbc2(install);
   end;
   if (install == 0)
     Totalfail = Totalfail + testReadFlags(install);
diff --git a/src/bindings/matlab/test/testOutput.m b/src/bindings/matlab/test/testOutput.m
index e830a0e..5af36c8 100644
--- a/src/bindings/matlab/test/testOutput.m
+++ b/src/bindings/matlab/test/testOutput.m
@@ -8,7 +8,7 @@ function fail = testOutput(outdir, in_installer, fbcEnabled)
 % This file is part of SBMLToolbox.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of SBMLToolbox.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
@@ -151,6 +151,7 @@ expected_files = { ...
 'errors.xml', ...
 'fatal.xml', ...
 'fbc.xml', ...
+'fbcV2.xml', ...
 'funcDefsWithInitialAssignments.xml', ...
 'functionDefinition.xml', ...
 'initialAssignments.xml', ...
@@ -177,7 +178,8 @@ expected_files = { ...
 'notes_annotations.xml', ...
 'piecewise.xml', ...
 'rateRules.xml', ...
-'readerror.xml' ...
+'readerror.xml', ...
+'test-greek.xml' ...
 };
 
 if sum(ismember(expected_files, filename)) == 1
diff --git a/src/bindings/matlab/test/testReadFromFile16.m b/src/bindings/matlab/test/testReadFromFile16.m
index 5e48c2a..fb6dba9 100644
--- a/src/bindings/matlab/test/testReadFromFile16.m
+++ b/src/bindings/matlab/test/testReadFromFile16.m
@@ -282,7 +282,7 @@ Totalfail = Totalfail + fail_unless(m.SBML_version == 5);
   
   
 if (silent == 0)
-disp('Testing readFromFile12:');
+disp('Testing readFromFile16:');
 disp(sprintf('Number tests: %d', test));
 disp(sprintf('Number fails: %d', Totalfail));
 disp(sprintf('Pass rate: %d%%\n', ((test-Totalfail)/test)*100));
diff --git a/src/bindings/octave/CMakeLists.txt b/src/bindings/octave/CMakeLists.txt
index f87faf2..a4efffa 100644
--- a/src/bindings/octave/CMakeLists.txt
+++ b/src/bindings/octave/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/octave/Makefile.in b/src/bindings/octave/Makefile.in
index 7788e75..d747135 100644
--- a/src/bindings/octave/Makefile.in
+++ b/src/bindings/octave/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/octave/buildLibSBMLOctave.m b/src/bindings/octave/buildLibSBMLOctave.m
index dd1e144..63d92d6 100644
--- a/src/bindings/octave/buildLibSBMLOctave.m
+++ b/src/bindings/octave/buildLibSBMLOctave.m
@@ -18,7 +18,7 @@ function buildLibSBMLOctave(varargin)
 % This file is part of libSBML.  Please visit http://sbml.org for more
 % information about SBML, and the latest version of libSBML.
 %
-% Copyright (C) 2013-2014 jointly by the following organizations:
+% Copyright (C) 2013-2016 jointly by the following organizations:
 %     1. California Institute of Technology, Pasadena, CA, USA
 %     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 %     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/octave/test/Makefile.in b/src/bindings/octave/test/Makefile.in
index 8d03a84..6f21d78 100644
--- a/src/bindings/octave/test/Makefile.in
+++ b/src/bindings/octave/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/perl/CMakeLists.txt b/src/bindings/perl/CMakeLists.txt
index 7c97411..d6ac3b1 100644
--- a/src/bindings/perl/CMakeLists.txt
+++ b/src/bindings/perl/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/perl/LibSBML.pm b/src/bindings/perl/LibSBML.pm
index 159da7e..900ba3f 100644
--- a/src/bindings/perl/LibSBML.pm
+++ b/src/bindings/perl/LibSBML.pm
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 2.0.4
+# Version 2.0.6
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
@@ -21498,6 +21498,11 @@ otherwise.
 C<opydetails> doc_note_static_methods
 
 
+=item SBO::getParentBranch
+
+ at internal
+
+
 =item SBO::isChildOf
 
 @internal
@@ -23973,40 +23978,40 @@ otherwise.
 @sbmlpackage{core}
 
 @htmlinclude pkg-marker-core.html Whole-document SBML Level/Version converter.
- at htmlinclude libsbml-facility-only-warning.html
-This SBML converter takes an SBML document having one SBML Level+Version
-combination, and attempts to convert it to an SBML document having a
-different Level+Version combination.  This converter
-(SBMLLevel1Version1Converter) converts models to SBML Level 1
-Version 1, to the extent possible by the limited features of
-that Level/Version combination of SBML.
- at section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
-SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
-object with the option C<"convertToL1V1">, and passing this
-properties object to SBMLDocument::convert(@if java
-ConversionProperties at endif).  The target SBML Level and Version
-combination are determined by the value of the SBML namespace set on the
-ConversionProperties object (using
-ConversionProperties::setTargetNamespaces(SBMLNamespaces  targetNS)).
-In addition, this converter offers the following options:
- at li C<"changePow">: Mathematical expressions for exponentiation of
-the form C<pow(s1, 2)> will be converted to the expression
-C<s1^2>.
-  
- at li C<"inlineCompartmentSizes">: Back in the days of SBML Level 1
-Version 1, many software tools assumed that the "kinetic laws" of
-SBML were written in terms of units of
-<em>concentration</em>/<em>time</em>.  These tools would not expect (and
-thus not handle) rate expressions such as
-C<CompartmentOfS1   k   S1>.
-When the option C<"inlineCompartmentSizes"> is enabled, libSBML will
-replace the references to compartments (such as C<"CompartmentOfS1"> in
-this example) with their initial sizes.  This is not strictly correct in
-all cases; in particular, if the compartment volume varies during
-simulation, this conversion will not reflect the expected behavior.
-However, many models do not have time-varying compartment sizes, so this
-option makes it easy to get modern SBML rate expressions into a form that
-old software tools may better understand.
+ at htmlinclude libsbml-facility-only-warning.html
+This SBML converter takes an SBML document having one SBML Level+Version
+combination, and attempts to convert it to an SBML document having a
+different Level+Version combination.  This converter
+(SBMLLevel1Version1Converter) converts models to SBML Level 1
+Version 1, to the extent possible by the limited features of
+that Level/Version combination of SBML.
+ at section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
+SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
+object with the option C<"convertToL1V1">, and passing this
+properties object to SBMLDocument::convert(@if java
+ConversionProperties at endif).  The target SBML Level and Version
+combination are determined by the value of the SBML namespace set on the
+ConversionProperties object (using
+ConversionProperties::setTargetNamespaces(SBMLNamespaces  targetNS)).
+In addition, this converter offers the following options:
+ at li C<"changePow">: Mathematical expressions for exponentiation of
+the form C<pow(s1, 2)> will be converted to the expression
+C<s1^2>.
+
+ at li C<"inlineCompartmentSizes">: Back in the days of SBML Level 1
+Version 1, many software tools assumed that the "kinetic laws" of
+SBML were written in terms of units of
+<em>concentration</em>/<em>time</em>.  These tools would not expect (and
+thus not handle) rate expressions such as
+C<CompartmentOfS1   k   S1>.
+When the option C<"inlineCompartmentSizes"> is enabled, libSBML will
+replace the references to compartments (such as C<"CompartmentOfS1"> in
+this example) with their initial sizes.  This is not strictly correct in
+all cases; in particular, if the compartment volume varies during
+simulation, this conversion will not reflect the expected behavior.
+However, many models do not have time-varying compartment sizes, so this
+option makes it easy to get modern SBML rate expressions into a form that
+old software tools may better understand.
 C<opydetails> doc_section_using_sbml_converters
 
 =over
@@ -24024,63 +24029,63 @@ Creates a new SBMLLevel1Version1Converter object.
 
 =item SBMLLevel1Version1Converter::SBMLLevel1Version1Converter
 
-Copy constructor; creates a copy of an SBMLLevel1Version1Converter
-object.
-    
+Copy constructor; creates a copy of an SBMLLevel1Version1Converter
+object.
+
 @param obj the SBMLLevel1Version1Converter object to copy.
 
 
 =item SBMLLevel1Version1Converter::clone
 
-Creates and returns a deep copy of this SBMLLevel1Version1Converter
-object.
-    
+Creates and returns a deep copy of this SBMLLevel1Version1Converter
+object.
+
 @return a (deep) copy of this converter.
 
 
 =item SBMLLevel1Version1Converter::matchesProperties
 
-Returns C<true> if this converter object's properties match the given
-properties.
-    
-A typical use of this method involves creating a ConversionProperties
-object, setting the options desired, and then calling this method on
-an SBMLLevel1Version1Converter object to find out if the object's
-property values match the given ones.  This method is also used by
-SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
-to search across all registered converters for one matching particular
-properties.
-    
- at param props the properties to match.
- at return C<true> if this converter's properties match, C<false
>
+Returns C<true> if this converter object's properties match the given
+properties.
+
+A typical use of this method involves creating a ConversionProperties
+object, setting the options desired, and then calling this method on
+an SBMLLevel1Version1Converter object to find out if the object's
+property values match the given ones.  This method is also used by
+SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
+to search across all registered converters for one matching particular
+properties.
+
+ at param props the properties to match.
+ at return C<true> if this converter's properties match, C<false>
 otherwise.
 
 
 =item SBMLLevel1Version1Converter::convert
 
-Perform the conversion.
-This method causes the converter to do the actual conversion work,
-that is, to convert the SBMLDocument object set by
-SBMLConverter::setDocument(@if java SBMLDocument at endif) and
-with the configuration options set by
-SBMLConverter::setProperties(@if java ConversionProperties at endif).
-C<opydetails> doc_returns_success_code
- at li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
- at li @link OperationReturnValues_t#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
- at li @link OperationReturnValues_t#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
- at li @link OperationReturnValues_t#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
+Perform the conversion.
+This method causes the converter to do the actual conversion work,
+that is, to convert the SBMLDocument object set by
+SBMLConverter::setDocument(@if java SBMLDocument at endif) and
+with the configuration options set by
+SBMLConverter::setProperties(@if java ConversionProperties at endif).
+C<opydetails> doc_returns_success_code
+ at li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
+ at li @link OperationReturnValues_t#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
+ at li @link OperationReturnValues_t#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
+ at li @link OperationReturnValues_t#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
 @li @link OperationReturnValues_t#LIBSBML_CONV_INVALID_SRC_DOCUMENT LIBSBML_CONV_INVALID_SRC_DOCUMENT at endlink
 
 
 =item SBMLLevel1Version1Converter::getDefaultProperties
 
-Returns the default properties of this converter.
-A given converter exposes one or more properties that can be adjusted
-in order to influence the behavior of the converter.  This method
-returns the I<default> property settings for this converter.  It is
-meant to be called in order to discover all the settings for the
-converter object.
- at return the ConversionProperties object describing the default properties
+Returns the default properties of this converter.
+A given converter exposes one or more properties that can be adjusted
+in order to influence the behavior of the converter.  This method
+returns the I<default> property settings for this converter.  It is
+meant to be called in order to discover all the settings for the
+converter object.
+ at return the ConversionProperties object describing the default properties
 for this converter.
 
 
@@ -27958,6 +27963,8 @@ comment.
 in the output stream.
 @param programVersion an optional version identification string to write
 as a comment in the output stream.
+ at param writeTimestamp an optional flag indicating that a timestamp should
+be written
 
 
 =item XMLOutputStream::downIndent
@@ -27991,6 +27998,55 @@ Sets the SBMLNamespaces object associated with this output stream.
 @param sbmlns the namespace object.
 
 
+=item XMLOutputStream::getWriteComment
+
+ at return a boolean, whether the output stream will write an XML
+comment at the top of the file. (Enabled by default)
+
+
+=item XMLOutputStream::setWriteComment
+
+sets a flag, whether the output stream will write an XML
+comment at the top of the file. (Enabled by default)
+ at param writeComment the flag
+
+
+=item XMLOutputStream::getWriteTimestamp
+
+ at return a boolean, whether the output stream will write an XML
+comment with a timestamp at the top of the file. (Enabled by default)
+
+
+=item XMLOutputStream::setWriteTimestamp
+
+sets a flag, whether the output stream will write an XML
+comment with a timestamp at the top of the file. (Enabled by default)
+ at param writeTimestamp the flag
+
+
+=item XMLOutputStream::getLibraryName
+
+ at return the name of the library to be used in comments ('libSBML' by default)
+
+
+=item XMLOutputStream::setLibraryName
+
+sets the name of the library writing the XML
+ at param libraryName the name of the library to be used in comments
+
+
+=item XMLOutputStream::getLibraryVersion
+
+ at return a string representing the version of the library writing the output.
+This is the value of getLibSBMLDottedVersion() by default.
+
+
+=item XMLOutputStream::setLibraryVersion
+
+sets the name of the library writing the output
+ at param libraryVersion the version information as string
+
+
 =item XMLOutputStream::XMLOutputStream
 
 @internal
@@ -30127,7 +30183,7 @@ relationships.  Please refer to the SBML specification or the <a
 target="_blank" href="http://co.mbine.org/standards/qualifiers/">BioModels.net
 qualifiers web page</a> for an explanation of the meaning of these
 different qualifiers.
- at param type a @if clike #QualifierType_t value at else qualifier type at endif@~
+ at param type a @if clike #QualifierType_t value at else qualifier type at endif@~.
 @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
 
 
@@ -30187,9 +30243,9 @@ methods to call to find out the specific relationship.
 @return the @if clike #QualifierType_t value at else qualifier type at endif@~
 of this object or @link QualifierType_t#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
 (the default).
- at see CVTerm::getResources()
- at see CVTerm::getModelQualifierType()
- at see CVTerm::getBiologicalQualifierType()
+ at see getResources()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 
 
 =item CVTerm::getQualifierType
@@ -30218,9 +30274,9 @@ methods to call to find out the specific relationship.
 @return the @if clike #QualifierType_t value at else qualifier type at endif@~
 of this object or @link QualifierType_t#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
 (the default).
- at see CVTerm::getResources()
- at see CVTerm::getModelQualifierType()
- at see CVTerm::getBiologicalQualifierType()
+ at see getResources()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 
 
 =item CVTerm::getModelQualifierType
@@ -30389,9 +30445,9 @@ resource URI</span> shown in the XML template above.
 A valid CVTerm entity must always have at least one resource and
 a value for the relationship qualifier.
 @return the XMLAttributes that store the resources of this CVTerm.
- at see CVTerm::getQualifierType()
- at see CVTerm::addResource(const std::string& resource)
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getQualifierType()
+ at see addResource(const std::string& resource)
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getResources
@@ -30408,9 +30464,9 @@ resource URI</span> shown in the XML template above.
 A valid CVTerm entity must always have at least one resource and
 a value for the relationship qualifier.
 @return the XMLAttributes that store the resources of this CVTerm.
- at see CVTerm::getQualifierType()
- at see CVTerm::addResource(const std::string& resource)
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getQualifierType()
+ at see addResource(const std::string& resource)
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getNumResources
@@ -30425,8 +30481,8 @@ style="background-color: #bbb">RELATION_ELEMENT</span>).  The present
 method returns a count of the resources stored in this CVTerm object.
 @return the number of resources in the set of XMLAttributes
 of this CVTerm.
- at see CVTerm::getResources()
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getResources()
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getNumResources
@@ -30441,8 +30497,8 @@ style="background-color: #bbb">RELATION_ELEMENT</span>).  The present
 method returns a count of the resources stored in this CVTerm object.
 @return the number of resources in the set of XMLAttributes
 of this CVTerm.
- at see CVTerm::getResources()
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getResources()
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getResourceURI
@@ -30458,11 +30514,11 @@ all resource URIs in a single CVTerm object for a given relationship.
 Callers can use CVTerm::getNumResources() to find out how many resources
 are stored in this CVTerm object, then call this method to retrieve the
 <em>n</em>th resource URI.
- at param n the index of the resource to query
+ at param n the index of the resource to query.
 @return string representing the value of the nth resource
 in the set of XMLAttributes of this CVTerm.
- at see CVTerm::getNumResources()
- at see CVTerm::getQualifierType()
+ at see getNumResources()
+ at see getQualifierType()
 
 
 =item CVTerm::getResourceURI
@@ -30478,11 +30534,11 @@ all resource URIs in a single CVTerm object for a given relationship.
 Callers can use CVTerm::getNumResources() to find out how many resources
 are stored in this CVTerm object, then call this method to retrieve the
 <em>n</em>th resource URI.
- at param n the index of the resource to query
+ at param n the index of the resource to query.
 @return string representing the value of the nth resource
 in the set of XMLAttributes of this CVTerm.
- at see CVTerm::getNumResources()
- at see CVTerm::getQualifierType()
+ at see getNumResources()
+ at see getQualifierType()
 
 
 =item CVTerm::setQualifierType
@@ -30492,14 +30548,14 @@ CVTerm object.
 @param type the @if clike #QualifierType_t value at else qualifier type at endif.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
- at see CVTerm::getQualifierType()
+ at see getQualifierType()
 
 
 =item CVTerm::setModelQualifierType
 
 Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 of this CVTerm object.
- at param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
+ at param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
@@ -30507,8 +30563,8 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#MODEL_QUALIFIER MODEL_QUALIFIER at endlink, then the
 then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 will default to @link QualifierType_t#BQM_UNKNOWN BQM_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::setBiologicalQualifierType
@@ -30524,15 +30580,15 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER at endlink,
 then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif@~
 will default to @link BiolQualifierType_t#BQB_UNKNOWN BQB_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::setModelQualifierType
 
 Sets the @if clike #ModelQualifierType_t at else model qualifier
 type at endif@~ value of this CVTerm object.
- at param qualifier the string representing a model qualifier
+ at param qualifier the string representing a model qualifier.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
@@ -30540,15 +30596,15 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#MODEL_QUALIFIER MODEL_QUALIFIER at endlink, 
 then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 will default to @link QualifierType_t#BQM_UNKNOWN BQM_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::setBiologicalQualifierType
 
 Sets the @if clike #BiolQualifierType_t at else biology qualifier
 type code at endif@~ of this CVTerm object.
- at param qualifier the string representing a biology qualifier
+ at param qualifier the string representing a biology qualifier.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
@@ -30556,8 +30612,8 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER at endlink,
 then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif@~
 will default to @link BiolQualifierType_t#BQB_UNKNOWN BQB_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::addResource
@@ -30616,11 +30672,11 @@ C<"http://www.geneontology.org/#GO:0005892">.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
- at see CVTerm::getResources()
- at see CVTerm::removeResource(std::string resource)
- at see CVTerm::getQualifierType()
- at see CVTerm::getModelQualifierType()
- at see CVTerm::getBiologicalQualifierType()
+ at see getResources()
+ at see removeResource(std::string resource)
+ at see getQualifierType()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 
 
 =item CVTerm::removeResource
@@ -30634,7 +30690,7 @@ C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
- at see CVTerm::addResource(const std::string& resource)
+ at see addResource(const std::string& resource)
 
 
 =item CVTerm::hasRequiredAttributes
@@ -30677,7 +30733,7 @@ nested within this CVTerm.
 Returns the nth CVTerm in the list of CVTerms of this CVTerm
 object.
 
- at param n unsigned int the index of the CVTerm to retrieve
+ at param n unsigned int the index of the CVTerm to retrieve.
 @return the nth CVTerm in the list of CVTerms for this CVTerm object.
 
 
@@ -30686,7 +30742,7 @@ object.
 Returns the nth CVTerm in the list of CVTerms of this CVTerm
 object.
 
- at param n unsigned int the index of the CVTerm to retrieve
+ at param n unsigned int the index of the CVTerm to retrieve.
 @return the nth CVTerm in the list of CVTerms for this CVTerm object.
 
 
@@ -30721,7 +30777,7 @@ C<opydetails> doc_returns_success_code
 
 Removes the nth CVTerm in the list of CVTerms of this CVTerm
 object and returns a pointer to it.
- at param n unsigned int the index of the CVTerm to retrieve
+ at param n unsigned int the index of the CVTerm to retrieve.
 @return a pointer to the nth CVTerm in the list of CVTerms for this 
 CVTerm object.
 
@@ -30731,6 +30787,82 @@ CVTerm object.
 @internal
 
 
+=item ModelQualifierType_toString
+
+This method takes a model qualifier type code and returns a string
+representing the code.
+This method takes a model qualifier type as argument
+and returns a string name corresponding to that code.  For example,
+passing it the qualifier C<BQM_IS_DESCRIBED_BY> will return
+the string C<"isDescribedBy">.
+ at param type The @if clike ModelQualifierType_t at endif@~ value to
+translate. @ifnot clike The value should be a libSBML constant whose
+name begins with C<BQM_>, such as (for example)
+ at link BiolQualifierType_t#BQM_IS BQM_IS at endlink.@endif@~
+ at return a human readable qualifier name for the given qualifier type.
+ at note The caller does not own the returned string and is therefore not
+allowed to modify it.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
+=item BiolQualifierType_toString
+
+This method takes a biol qualifier type code and returns a string
+representing the code.
+This method takes a biol qualifier type as argument
+and returns a string name corresponding to that code.  For example,
+passing it the qualifier C<BQB_HAS_VERSION> will return
+the string C<"hasVersion">.
+ at param type The @if clike BiolQualifierType_t at endif@~ value to
+translate. @ifnot clike The value should be a constant whose name
+begins with C<BQB_>, such as (for example)
+ at link BiolQualifierType_t#BQB_IS BQB_IS at endlink.@endif@~
+ at return a human readable qualifier name for the given type.
+ at note The caller does not own the returned string and is therefore not
+allowed to modify it.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
+=item ModelQualifierType_fromString
+
+This method takes a a string and returns a model qualifier
+representing the string.
+This method takes a string as argument and returns a model qualifier type
+corresponding to that string.  For example, passing it the string
+C<"isDescribedBy"> will return the qualifier
+C<BQM_IS_DESCRIBED_BY>.
+
+ at param s The string to translate to a @if clike ModelQualifierType_t
+value at else libSBML constant value representing a model qualifier at endif.
+ at return a libSBML qualifier enumeration value for the given human readable
+qualifier name.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
+=item BiolQualifierType_fromString
+
+This method takes a a string and returns a biol qualifier
+representing the string.
+This method takes a string as argument and returns a biol qualifier type
+corresponding to that string.  For example, passing it the string
+C<"hasVersion"> will return the qualifier
+C<BQB_HAS_VERSION>.
+
+ at param s The string to translate to a @if clike BiolQualifierType_t
+value at else libSBML constant value representing a biological qualifier at endif.
+ at return a libSBML qualifier enumeration value for the given human readable
+qualifier name.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
 =back
 
 =head2 Date
@@ -32189,7 +32321,6 @@ found, this method returns the result of getElementNamespace().
 @return a string, the URI of the XML namespace to which this object belongs.
 @see getPackageName()
 @see getElementNamespace()
- at see SBMLDocument::getSBMLNamespaces()
 @see getSBMLDocument()
 
 
@@ -35002,6 +35133,11 @@ Returns the MathML C<definitionURL> attribute value as a string.
 @internal
 
 
+=item ASTNode::getNumPiece
+
+ at internal
+
+
 =item ASTNode::containsVariable
 
 @internal
@@ -36190,6 +36326,10 @@ package LibSBML;
 *UnitKind_forName = *LibSBMLc::UnitKind_forName;
 *UnitKind_toString = *LibSBMLc::UnitKind_toString;
 *UnitKind_isValidUnitKindString = *LibSBMLc::UnitKind_isValidUnitKindString;
+*ModelQualifierType_toString = *LibSBMLc::ModelQualifierType_toString;
+*BiolQualifierType_toString = *LibSBMLc::BiolQualifierType_toString;
+*ModelQualifierType_fromString = *LibSBMLc::ModelQualifierType_fromString;
+*BiolQualifierType_fromString = *LibSBMLc::BiolQualifierType_fromString;
 *representsNumber = *LibSBMLc::representsNumber;
 *representsFunction = *LibSBMLc::representsFunction;
 *representsUnaryFunction = *LibSBMLc::representsUnaryFunction;
@@ -39686,6 +39826,7 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *intToString = *LibSBMLc::SBO_intToString;
 *stringToInt = *LibSBMLc::SBO_stringToInt;
 *checkTerm = *LibSBMLc::SBO_checkTerm;
+*getParentBranch = *LibSBMLc::SBO_getParentBranch;
 sub new {
     my $pkg = shift;
     my $self = LibSBMLc::new_SBO(@_);
@@ -41060,6 +41201,14 @@ sub DESTROY {
 *upIndent = *LibSBMLc::XMLOutputStream_upIndent;
 *getSBMLNamespaces = *LibSBMLc::XMLOutputStream_getSBMLNamespaces;
 *setSBMLNamespaces = *LibSBMLc::XMLOutputStream_setSBMLNamespaces;
+*getWriteComment = *LibSBMLc::XMLOutputStream_getWriteComment;
+*setWriteComment = *LibSBMLc::XMLOutputStream_setWriteComment;
+*getWriteTimestamp = *LibSBMLc::XMLOutputStream_getWriteTimestamp;
+*setWriteTimestamp = *LibSBMLc::XMLOutputStream_setWriteTimestamp;
+*getLibraryName = *LibSBMLc::XMLOutputStream_getLibraryName;
+*setLibraryName = *LibSBMLc::XMLOutputStream_setLibraryName;
+*getLibraryVersion = *LibSBMLc::XMLOutputStream_getLibraryVersion;
+*setLibraryVersion = *LibSBMLc::XMLOutputStream_setLibraryVersion;
 sub DISOWN {
     my $self = shift;
     my $ptr = tied(%$self);
@@ -42235,6 +42384,7 @@ sub DESTROY {
 *getTypeCode = *LibSBMLc::ASTNode_getTypeCode;
 *getPackageName = *LibSBMLc::ASTNode_getPackageName;
 *getPlugin = *LibSBMLc::ASTNode_getPlugin;
+*getNumPiece = *LibSBMLc::ASTNode_getNumPiece;
 sub getListOfNodes {
   my $lox = LibSBMLc::ASTNode_getListOfNodes(@_);
   my @lox = ();
@@ -42459,6 +42609,7 @@ package LibSBML;
 *LIBSBML_ANNOTATION_NAME_NOT_FOUND = *LibSBMLc::LIBSBML_ANNOTATION_NAME_NOT_FOUND;
 *LIBSBML_ANNOTATION_NS_NOT_FOUND = *LibSBMLc::LIBSBML_ANNOTATION_NS_NOT_FOUND;
 *LIBSBML_MISSING_METAID = *LibSBMLc::LIBSBML_MISSING_METAID;
+*LIBSBML_DEPRECATED_ATTRIBUTE = *LibSBMLc::LIBSBML_DEPRECATED_ATTRIBUTE;
 *LIBSBML_PKG_VERSION_MISMATCH = *LibSBMLc::LIBSBML_PKG_VERSION_MISMATCH;
 *LIBSBML_PKG_UNKNOWN = *LibSBMLc::LIBSBML_PKG_UNKNOWN;
 *LIBSBML_PKG_UNKNOWN_VERSION = *LibSBMLc::LIBSBML_PKG_UNKNOWN_VERSION;
diff --git a/src/bindings/perl/LibSBML.pod b/src/bindings/perl/LibSBML.pod
index 59de2f3..39c93b8 100644
--- a/src/bindings/perl/LibSBML.pod
+++ b/src/bindings/perl/LibSBML.pod
@@ -21485,6 +21485,11 @@ otherwise.
 C<opydetails> doc_note_static_methods
 
 
+=item SBO::getParentBranch
+
+ at internal
+
+
 =item SBO::isChildOf
 
 @internal
@@ -23960,40 +23965,40 @@ otherwise.
 @sbmlpackage{core}
 
 @htmlinclude pkg-marker-core.html Whole-document SBML Level/Version converter.
- at htmlinclude libsbml-facility-only-warning.html
-This SBML converter takes an SBML document having one SBML Level+Version
-combination, and attempts to convert it to an SBML document having a
-different Level+Version combination.  This converter
-(SBMLLevel1Version1Converter) converts models to SBML Level 1
-Version 1, to the extent possible by the limited features of
-that Level/Version combination of SBML.
- at section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
-SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
-object with the option C<"convertToL1V1">, and passing this
-properties object to SBMLDocument::convert(@if java
-ConversionProperties at endif).  The target SBML Level and Version
-combination are determined by the value of the SBML namespace set on the
-ConversionProperties object (using
-ConversionProperties::setTargetNamespaces(SBMLNamespaces  targetNS)).
-In addition, this converter offers the following options:
- at li C<"changePow">: Mathematical expressions for exponentiation of
-the form C<pow(s1, 2)> will be converted to the expression
-C<s1^2>.
-  
- at li C<"inlineCompartmentSizes">: Back in the days of SBML Level 1
-Version 1, many software tools assumed that the "kinetic laws" of
-SBML were written in terms of units of
-<em>concentration</em>/<em>time</em>.  These tools would not expect (and
-thus not handle) rate expressions such as
-C<CompartmentOfS1   k   S1>.
-When the option C<"inlineCompartmentSizes"> is enabled, libSBML will
-replace the references to compartments (such as C<"CompartmentOfS1"> in
-this example) with their initial sizes.  This is not strictly correct in
-all cases; in particular, if the compartment volume varies during
-simulation, this conversion will not reflect the expected behavior.
-However, many models do not have time-varying compartment sizes, so this
-option makes it easy to get modern SBML rate expressions into a form that
-old software tools may better understand.
+ at htmlinclude libsbml-facility-only-warning.html
+This SBML converter takes an SBML document having one SBML Level+Version
+combination, and attempts to convert it to an SBML document having a
+different Level+Version combination.  This converter
+(SBMLLevel1Version1Converter) converts models to SBML Level 1
+Version 1, to the extent possible by the limited features of
+that Level/Version combination of SBML.
+ at section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
+SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
+object with the option C<"convertToL1V1">, and passing this
+properties object to SBMLDocument::convert(@if java
+ConversionProperties at endif).  The target SBML Level and Version
+combination are determined by the value of the SBML namespace set on the
+ConversionProperties object (using
+ConversionProperties::setTargetNamespaces(SBMLNamespaces  targetNS)).
+In addition, this converter offers the following options:
+ at li C<"changePow">: Mathematical expressions for exponentiation of
+the form C<pow(s1, 2)> will be converted to the expression
+C<s1^2>.
+
+ at li C<"inlineCompartmentSizes">: Back in the days of SBML Level 1
+Version 1, many software tools assumed that the "kinetic laws" of
+SBML were written in terms of units of
+<em>concentration</em>/<em>time</em>.  These tools would not expect (and
+thus not handle) rate expressions such as
+C<CompartmentOfS1   k   S1>.
+When the option C<"inlineCompartmentSizes"> is enabled, libSBML will
+replace the references to compartments (such as C<"CompartmentOfS1"> in
+this example) with their initial sizes.  This is not strictly correct in
+all cases; in particular, if the compartment volume varies during
+simulation, this conversion will not reflect the expected behavior.
+However, many models do not have time-varying compartment sizes, so this
+option makes it easy to get modern SBML rate expressions into a form that
+old software tools may better understand.
 C<opydetails> doc_section_using_sbml_converters
 
 =over
@@ -24011,63 +24016,63 @@ Creates a new SBMLLevel1Version1Converter object.
 
 =item SBMLLevel1Version1Converter::SBMLLevel1Version1Converter
 
-Copy constructor; creates a copy of an SBMLLevel1Version1Converter
-object.
-    
+Copy constructor; creates a copy of an SBMLLevel1Version1Converter
+object.
+
 @param obj the SBMLLevel1Version1Converter object to copy.
 
 
 =item SBMLLevel1Version1Converter::clone
 
-Creates and returns a deep copy of this SBMLLevel1Version1Converter
-object.
-    
+Creates and returns a deep copy of this SBMLLevel1Version1Converter
+object.
+
 @return a (deep) copy of this converter.
 
 
 =item SBMLLevel1Version1Converter::matchesProperties
 
-Returns C<true> if this converter object's properties match the given
-properties.
-    
-A typical use of this method involves creating a ConversionProperties
-object, setting the options desired, and then calling this method on
-an SBMLLevel1Version1Converter object to find out if the object's
-property values match the given ones.  This method is also used by
-SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
-to search across all registered converters for one matching particular
-properties.
-    
- at param props the properties to match.
- at return C<true> if this converter's properties match, C<false
>
+Returns C<true> if this converter object's properties match the given
+properties.
+
+A typical use of this method involves creating a ConversionProperties
+object, setting the options desired, and then calling this method on
+an SBMLLevel1Version1Converter object to find out if the object's
+property values match the given ones.  This method is also used by
+SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
+to search across all registered converters for one matching particular
+properties.
+
+ at param props the properties to match.
+ at return C<true> if this converter's properties match, C<false>
 otherwise.
 
 
 =item SBMLLevel1Version1Converter::convert
 
-Perform the conversion.
-This method causes the converter to do the actual conversion work,
-that is, to convert the SBMLDocument object set by
-SBMLConverter::setDocument(@if java SBMLDocument at endif) and
-with the configuration options set by
-SBMLConverter::setProperties(@if java ConversionProperties at endif).
-C<opydetails> doc_returns_success_code
- at li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
- at li @link OperationReturnValues_t#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
- at li @link OperationReturnValues_t#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
- at li @link OperationReturnValues_t#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
+Perform the conversion.
+This method causes the converter to do the actual conversion work,
+that is, to convert the SBMLDocument object set by
+SBMLConverter::setDocument(@if java SBMLDocument at endif) and
+with the configuration options set by
+SBMLConverter::setProperties(@if java ConversionProperties at endif).
+C<opydetails> doc_returns_success_code
+ at li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
+ at li @link OperationReturnValues_t#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
+ at li @link OperationReturnValues_t#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
+ at li @link OperationReturnValues_t#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
 @li @link OperationReturnValues_t#LIBSBML_CONV_INVALID_SRC_DOCUMENT LIBSBML_CONV_INVALID_SRC_DOCUMENT at endlink
 
 
 =item SBMLLevel1Version1Converter::getDefaultProperties
 
-Returns the default properties of this converter.
-A given converter exposes one or more properties that can be adjusted
-in order to influence the behavior of the converter.  This method
-returns the I<default> property settings for this converter.  It is
-meant to be called in order to discover all the settings for the
-converter object.
- at return the ConversionProperties object describing the default properties
+Returns the default properties of this converter.
+A given converter exposes one or more properties that can be adjusted
+in order to influence the behavior of the converter.  This method
+returns the I<default> property settings for this converter.  It is
+meant to be called in order to discover all the settings for the
+converter object.
+ at return the ConversionProperties object describing the default properties
 for this converter.
 
 
@@ -27945,6 +27950,8 @@ comment.
 in the output stream.
 @param programVersion an optional version identification string to write
 as a comment in the output stream.
+ at param writeTimestamp an optional flag indicating that a timestamp should
+be written
 
 
 =item XMLOutputStream::downIndent
@@ -27978,6 +27985,55 @@ Sets the SBMLNamespaces object associated with this output stream.
 @param sbmlns the namespace object.
 
 
+=item XMLOutputStream::getWriteComment
+
+ at return a boolean, whether the output stream will write an XML
+comment at the top of the file. (Enabled by default)
+
+
+=item XMLOutputStream::setWriteComment
+
+sets a flag, whether the output stream will write an XML
+comment at the top of the file. (Enabled by default)
+ at param writeComment the flag
+
+
+=item XMLOutputStream::getWriteTimestamp
+
+ at return a boolean, whether the output stream will write an XML
+comment with a timestamp at the top of the file. (Enabled by default)
+
+
+=item XMLOutputStream::setWriteTimestamp
+
+sets a flag, whether the output stream will write an XML
+comment with a timestamp at the top of the file. (Enabled by default)
+ at param writeTimestamp the flag
+
+
+=item XMLOutputStream::getLibraryName
+
+ at return the name of the library to be used in comments ('libSBML' by default)
+
+
+=item XMLOutputStream::setLibraryName
+
+sets the name of the library writing the XML
+ at param libraryName the name of the library to be used in comments
+
+
+=item XMLOutputStream::getLibraryVersion
+
+ at return a string representing the version of the library writing the output.
+This is the value of getLibSBMLDottedVersion() by default.
+
+
+=item XMLOutputStream::setLibraryVersion
+
+sets the name of the library writing the output
+ at param libraryVersion the version information as string
+
+
 =item XMLOutputStream::XMLOutputStream
 
 @internal
@@ -30114,7 +30170,7 @@ relationships.  Please refer to the SBML specification or the <a
 target="_blank" href="http://co.mbine.org/standards/qualifiers/">BioModels.net
 qualifiers web page</a> for an explanation of the meaning of these
 different qualifiers.
- at param type a @if clike #QualifierType_t value at else qualifier type at endif@~
+ at param type a @if clike #QualifierType_t value at else qualifier type at endif@~.
 @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
 
 
@@ -30174,9 +30230,9 @@ methods to call to find out the specific relationship.
 @return the @if clike #QualifierType_t value at else qualifier type at endif@~
 of this object or @link QualifierType_t#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
 (the default).
- at see CVTerm::getResources()
- at see CVTerm::getModelQualifierType()
- at see CVTerm::getBiologicalQualifierType()
+ at see getResources()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 
 
 =item CVTerm::getQualifierType
@@ -30205,9 +30261,9 @@ methods to call to find out the specific relationship.
 @return the @if clike #QualifierType_t value at else qualifier type at endif@~
 of this object or @link QualifierType_t#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
 (the default).
- at see CVTerm::getResources()
- at see CVTerm::getModelQualifierType()
- at see CVTerm::getBiologicalQualifierType()
+ at see getResources()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 
 
 =item CVTerm::getModelQualifierType
@@ -30376,9 +30432,9 @@ resource URI</span> shown in the XML template above.
 A valid CVTerm entity must always have at least one resource and
 a value for the relationship qualifier.
 @return the XMLAttributes that store the resources of this CVTerm.
- at see CVTerm::getQualifierType()
- at see CVTerm::addResource(const std::string& resource)
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getQualifierType()
+ at see addResource(const std::string& resource)
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getResources
@@ -30395,9 +30451,9 @@ resource URI</span> shown in the XML template above.
 A valid CVTerm entity must always have at least one resource and
 a value for the relationship qualifier.
 @return the XMLAttributes that store the resources of this CVTerm.
- at see CVTerm::getQualifierType()
- at see CVTerm::addResource(const std::string& resource)
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getQualifierType()
+ at see addResource(const std::string& resource)
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getNumResources
@@ -30412,8 +30468,8 @@ style="background-color: #bbb">RELATION_ELEMENT</span>).  The present
 method returns a count of the resources stored in this CVTerm object.
 @return the number of resources in the set of XMLAttributes
 of this CVTerm.
- at see CVTerm::getResources()
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getResources()
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getNumResources
@@ -30428,8 +30484,8 @@ style="background-color: #bbb">RELATION_ELEMENT</span>).  The present
 method returns a count of the resources stored in this CVTerm object.
 @return the number of resources in the set of XMLAttributes
 of this CVTerm.
- at see CVTerm::getResources()
- at see CVTerm::getResourceURI(unsigned int n)
+ at see getResources()
+ at see getResourceURI(unsigned int n)
 
 
 =item CVTerm::getResourceURI
@@ -30445,11 +30501,11 @@ all resource URIs in a single CVTerm object for a given relationship.
 Callers can use CVTerm::getNumResources() to find out how many resources
 are stored in this CVTerm object, then call this method to retrieve the
 <em>n</em>th resource URI.
- at param n the index of the resource to query
+ at param n the index of the resource to query.
 @return string representing the value of the nth resource
 in the set of XMLAttributes of this CVTerm.
- at see CVTerm::getNumResources()
- at see CVTerm::getQualifierType()
+ at see getNumResources()
+ at see getQualifierType()
 
 
 =item CVTerm::getResourceURI
@@ -30465,11 +30521,11 @@ all resource URIs in a single CVTerm object for a given relationship.
 Callers can use CVTerm::getNumResources() to find out how many resources
 are stored in this CVTerm object, then call this method to retrieve the
 <em>n</em>th resource URI.
- at param n the index of the resource to query
+ at param n the index of the resource to query.
 @return string representing the value of the nth resource
 in the set of XMLAttributes of this CVTerm.
- at see CVTerm::getNumResources()
- at see CVTerm::getQualifierType()
+ at see getNumResources()
+ at see getQualifierType()
 
 
 =item CVTerm::setQualifierType
@@ -30479,14 +30535,14 @@ CVTerm object.
 @param type the @if clike #QualifierType_t value at else qualifier type at endif.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
- at see CVTerm::getQualifierType()
+ at see getQualifierType()
 
 
 =item CVTerm::setModelQualifierType
 
 Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 of this CVTerm object.
- at param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
+ at param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
@@ -30494,8 +30550,8 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#MODEL_QUALIFIER MODEL_QUALIFIER at endlink, then the
 then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 will default to @link QualifierType_t#BQM_UNKNOWN BQM_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::setBiologicalQualifierType
@@ -30511,15 +30567,15 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER at endlink,
 then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif@~
 will default to @link BiolQualifierType_t#BQB_UNKNOWN BQB_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::setModelQualifierType
 
 Sets the @if clike #ModelQualifierType_t at else model qualifier
 type at endif@~ value of this CVTerm object.
- at param qualifier the string representing a model qualifier
+ at param qualifier the string representing a model qualifier.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
@@ -30527,15 +30583,15 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#MODEL_QUALIFIER MODEL_QUALIFIER at endlink, 
 then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 will default to @link QualifierType_t#BQM_UNKNOWN BQM_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::setBiologicalQualifierType
 
 Sets the @if clike #BiolQualifierType_t at else biology qualifier
 type code at endif@~ of this CVTerm object.
- at param qualifier the string representing a biology qualifier
+ at param qualifier the string representing a biology qualifier.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
@@ -30543,8 +30599,8 @@ C<opydetails> doc_returns_success_code
 @link QualifierType_t#BIOLOGICAL_QUALIFIER BIOLOGICAL_QUALIFIER at endlink,
 then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif@~
 will default to @link BiolQualifierType_t#BQB_UNKNOWN BQB_UNKNOWN at endlink.
- at see CVTerm::getQualifierType()
- at see CVTerm::setQualifierType(@if java int at endif)
+ at see getQualifierType()
+ at see setQualifierType(@if java int at endif)
 
 
 =item CVTerm::addResource
@@ -30603,11 +30659,11 @@ C<"http://www.geneontology.org/#GO:0005892">.
 C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
- at see CVTerm::getResources()
- at see CVTerm::removeResource(std::string resource)
- at see CVTerm::getQualifierType()
- at see CVTerm::getModelQualifierType()
- at see CVTerm::getBiologicalQualifierType()
+ at see getResources()
+ at see removeResource(std::string resource)
+ at see getQualifierType()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 
 
 =item CVTerm::removeResource
@@ -30621,7 +30677,7 @@ C<opydetails> doc_returns_success_code
 @li @link OperationReturnValues_t#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link OperationReturnValues_t#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE at endlink
 @li @link OperationReturnValues_t#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
- at see CVTerm::addResource(const std::string& resource)
+ at see addResource(const std::string& resource)
 
 
 =item CVTerm::hasRequiredAttributes
@@ -30664,7 +30720,7 @@ nested within this CVTerm.
 Returns the nth CVTerm in the list of CVTerms of this CVTerm
 object.
 
- at param n unsigned int the index of the CVTerm to retrieve
+ at param n unsigned int the index of the CVTerm to retrieve.
 @return the nth CVTerm in the list of CVTerms for this CVTerm object.
 
 
@@ -30673,7 +30729,7 @@ object.
 Returns the nth CVTerm in the list of CVTerms of this CVTerm
 object.
 
- at param n unsigned int the index of the CVTerm to retrieve
+ at param n unsigned int the index of the CVTerm to retrieve.
 @return the nth CVTerm in the list of CVTerms for this CVTerm object.
 
 
@@ -30708,7 +30764,7 @@ C<opydetails> doc_returns_success_code
 
 Removes the nth CVTerm in the list of CVTerms of this CVTerm
 object and returns a pointer to it.
- at param n unsigned int the index of the CVTerm to retrieve
+ at param n unsigned int the index of the CVTerm to retrieve.
 @return a pointer to the nth CVTerm in the list of CVTerms for this 
 CVTerm object.
 
@@ -30718,6 +30774,82 @@ CVTerm object.
 @internal
 
 
+=item ModelQualifierType_toString
+
+This method takes a model qualifier type code and returns a string
+representing the code.
+This method takes a model qualifier type as argument
+and returns a string name corresponding to that code.  For example,
+passing it the qualifier C<BQM_IS_DESCRIBED_BY> will return
+the string C<"isDescribedBy">.
+ at param type The @if clike ModelQualifierType_t at endif@~ value to
+translate. @ifnot clike The value should be a libSBML constant whose
+name begins with C<BQM_>, such as (for example)
+ at link BiolQualifierType_t#BQM_IS BQM_IS at endlink.@endif@~
+ at return a human readable qualifier name for the given qualifier type.
+ at note The caller does not own the returned string and is therefore not
+allowed to modify it.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
+=item BiolQualifierType_toString
+
+This method takes a biol qualifier type code and returns a string
+representing the code.
+This method takes a biol qualifier type as argument
+and returns a string name corresponding to that code.  For example,
+passing it the qualifier C<BQB_HAS_VERSION> will return
+the string C<"hasVersion">.
+ at param type The @if clike BiolQualifierType_t at endif@~ value to
+translate. @ifnot clike The value should be a constant whose name
+begins with C<BQB_>, such as (for example)
+ at link BiolQualifierType_t#BQB_IS BQB_IS at endlink.@endif@~
+ at return a human readable qualifier name for the given type.
+ at note The caller does not own the returned string and is therefore not
+allowed to modify it.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
+=item ModelQualifierType_fromString
+
+This method takes a a string and returns a model qualifier
+representing the string.
+This method takes a string as argument and returns a model qualifier type
+corresponding to that string.  For example, passing it the string
+C<"isDescribedBy"> will return the qualifier
+C<BQM_IS_DESCRIBED_BY>.
+
+ at param s The string to translate to a @if clike ModelQualifierType_t
+value at else libSBML constant value representing a model qualifier at endif.
+ at return a libSBML qualifier enumeration value for the given human readable
+qualifier name.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
+=item BiolQualifierType_fromString
+
+This method takes a a string and returns a biol qualifier
+representing the string.
+This method takes a string as argument and returns a biol qualifier type
+corresponding to that string.  For example, passing it the string
+C<"hasVersion"> will return the qualifier
+C<BQB_HAS_VERSION>.
+
+ at param s The string to translate to a @if clike BiolQualifierType_t
+value at else libSBML constant value representing a biological qualifier at endif.
+ at return a libSBML qualifier enumeration value for the given human readable
+qualifier name.
+ at if conly
+ at memberof CVTerm_t
+ at endif
+
+
 =back
 
 =head2 Date
@@ -32176,7 +32308,6 @@ found, this method returns the result of getElementNamespace().
 @return a string, the URI of the XML namespace to which this object belongs.
 @see getPackageName()
 @see getElementNamespace()
- at see SBMLDocument::getSBMLNamespaces()
 @see getSBMLDocument()
 
 
@@ -34989,6 +35120,11 @@ Returns the MathML C<definitionURL> attribute value as a string.
 @internal
 
 
+=item ASTNode::getNumPiece
+
+ at internal
+
+
 =item ASTNode::containsVariable
 
 @internal
diff --git a/src/bindings/perl/LibSBML_wrap.cxx b/src/bindings/perl/LibSBML_wrap.cxx
index f74f02a..dd19a0b 100644
--- a/src/bindings/perl/LibSBML_wrap.cxx
+++ b/src/bindings/perl/LibSBML_wrap.cxx
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -854,50 +854,35 @@ extern "C" {
 
 SWIGINTERN const char*
 SWIG_Perl_ErrorType(int code) {
-  const char* type = 0;
   switch(code) {
   case SWIG_MemoryError:
-    type = "MemoryError";
-    break;
+    return "MemoryError";
   case SWIG_IOError:
-    type = "IOError";
-    break;
+    return "IOError";
   case SWIG_RuntimeError:
-    type = "RuntimeError";
-    break;
+    return "RuntimeError";
   case SWIG_IndexError:
-    type = "IndexError";
-    break;
+    return "IndexError";
   case SWIG_TypeError:
-    type = "TypeError";
-    break;
+    return "TypeError";
   case SWIG_DivisionByZero:
-    type = "ZeroDivisionError";
-    break;
+    return "ZeroDivisionError";
   case SWIG_OverflowError:
-    type = "OverflowError";
-    break;
+    return "OverflowError";
   case SWIG_SyntaxError:
-    type = "SyntaxError";
-    break;
+    return "SyntaxError";
   case SWIG_ValueError:
-    type = "ValueError";
-    break;
+    return "ValueError";
   case SWIG_SystemError:
-    type = "SystemError";
-    break;
+    return "SystemError";
   case SWIG_AttributeError:
-    type = "AttributeError";
-    break;
+    return "AttributeError";
   default:
-    type = "RuntimeError";
+    return "RuntimeError";
   }
-  return type;
 }
 
 
-
-
 /* -----------------------------------------------------------------------------
  * perlrun.swg
  *
@@ -947,7 +932,7 @@ SWIG_Perl_ErrorType(int code) {
 /* Error manipulation */
 
 #define SWIG_ErrorType(code)                            SWIG_Perl_ErrorType(code)               
-#define SWIG_Error(code, msg)            		sv_setpvf(GvSV(PL_errgv),"%s %s\n", SWIG_ErrorType(code), msg)
+#define SWIG_Error(code, msg)            		sv_setpvf(get_sv("@", GV_ADD), "%s %s", SWIG_ErrorType(code), msg)
 #define SWIG_fail                        		goto fail						    
 
 /* Perl-specific SWIG API */
@@ -1041,8 +1026,6 @@ typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
 #endif /* MULTIPLICITY */
 #endif /* PERL_OBJECT */
 
-/* Workaround for bug in perl 5.6.x croak and earlier */
-#if (PERL_VERSION < 8)
 #  ifdef PERL_OBJECT
 #    define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
 static void SWIG_Perl_croak_null(CPerlObj *pPerl)
@@ -1050,17 +1033,16 @@ static void SWIG_Perl_croak_null(CPerlObj *pPerl)
 static void SWIG_croak_null()
 #  endif
 {
-  SV *err=ERRSV;
+  SV *err = get_sv("@", GV_ADD);
 #  if (PERL_VERSION < 6)
   croak("%_", err);
 #  else
-  if (SvOK(err) && !SvROK(err)) croak("%_", err);
-  croak(Nullch);
+  if (sv_isobject(err))
+    croak(0);
+  else
+    croak("%s", SvPV_nolen(err));
 #  endif
 }
-#else
-#  define SWIG_croak_null() croak(Nullch)
-#endif
 
 
 /* 
@@ -1112,8 +1094,7 @@ SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
   if (ty) {
     swig_cast_info *iter = ty->cast;
     while (iter) {
-      if ( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) ||
-            (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0)) ) {
+      if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) {
         if (iter == ty->cast)
           return iter;
         /* Move iter to the top of the linked list */
@@ -1244,7 +1225,7 @@ SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, i
     SV *obj=newSV(0);
     HV *hash=newHV();
     HV *stash;
-    sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr);
+    sv_setref_pv(obj, SWIG_Perl_TypeProxyName(t), ptr);
     stash=SvSTASH(SvRV(obj));
     if (flags & SWIG_POINTER_OWN) {
       HV *hv;
@@ -1262,7 +1243,7 @@ SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, i
     sv_bless(sv, stash);
   }
   else {
-    sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr);
+    sv_setref_pv(sv, SWIG_Perl_TypeProxyName(t), ptr);
   }
 }
 
@@ -1353,19 +1334,23 @@ typedef struct {
 
 /* Magic variable code */
 #ifndef PERL_OBJECT
-#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
-  #ifndef MULTIPLICITY
-     SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) 
-  #else
-     SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) 
-  #endif
+# ifdef __cplusplus
+#  define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast<char*>(a),b,c)
+# else
+#  define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c)
+# endif
+# ifndef MULTIPLICITY
+SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) 
+# else
+SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) 
+# endif
 #else
 #  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) 
 #endif
 {
   MAGIC *mg;
-  sv_magic(sv,sv,'U',(char *) name,strlen(name));
+  sv_magic(sv,sv,'U',name,strlen(name));
   mg = mg_find(sv,'U');
   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
@@ -1691,7 +1676,7 @@ static swig_module_info swig_module = {swig_types, 155, 0, 0, 0, 0};
 #define SWIG_name   "LibSBMLc::boot_LibSBML"
 #define SWIG_prefix "LibSBMLc::"
 
-#define SWIGVERSION 0x020004 
+#define SWIGVERSION 0x020006 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -1806,16 +1791,19 @@ SWIGINTERN int
 SWIG_AsVal_unsigned_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long *val) 
 {
   if (SvUOK(obj)) {
-    if (val) *val = SvUV(obj);
-    return SWIG_OK;
-  } else  if (SvIOK(obj)) {
-    long v = SvIV(obj);
-    if (v >= 0) {
+    UV v = SvUV(obj);
+    if (v <= ULONG_MAX) {
       if (val) *val = v;
       return SWIG_OK;
-    } else {
-      return SWIG_OverflowError;
     }
+    return SWIG_OverflowError;
+  } else if (SvIOK(obj)) {
+    IV v = SvIV(obj);
+    if (v >= 0 && v <= ULONG_MAX) {
+      if (val) *val = v;
+      return SWIG_OK;
+    }
+    return SWIG_OverflowError;
   } else {
     int dispatch = 0;
     const char *nptr = SvPV_nolen(obj);
@@ -1865,10 +1853,13 @@ SWIG_AsVal_unsigned_SS_int SWIG_PERL_DECL_ARGS_2(SV * obj, unsigned int *val)
 
 SWIGINTERNINLINE SV *
 SWIG_From_unsigned_SS_long  SWIG_PERL_DECL_ARGS_1(unsigned long value)
-{    
-  SV *obj = sv_newmortal();
-  sv_setuv(obj, (UV) value);
-  return obj;
+{
+  SV *sv;
+  if (value <= UV_MAX)
+    sv = newSVuv(value);
+  else
+    sv = newSVpvf("%lu", value);
+  return sv_2mortal(sv);
 }
 
 
@@ -1888,10 +1879,13 @@ SWIG_From_unsigned_SS_int  SWIG_PERL_DECL_ARGS_1(unsigned int value)
 
 SWIGINTERNINLINE SV *
 SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value)
-{    
-  SV *obj = sv_newmortal();
-  sv_setiv(obj, (IV) value);
-  return obj;
+{
+  SV *sv;
+  if (value >= IV_MIN && value <= IV_MAX)
+    sv = newSViv(value);
+  else
+    sv = newSVpvf("%ld", value);
+  return sv_2mortal(sv);
 }
 
 
@@ -1905,9 +1899,20 @@ SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value)
 SWIGINTERN int
 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
 {
-  if (SvIOK(obj)) {
-    if (val) *val = SvIV(obj);
-    return SWIG_OK;
+  if (SvUOK(obj)) {
+    UV v = SvUV(obj);
+    if (v <= LONG_MAX) {
+      if (val) *val = v;
+      return SWIG_OK;
+    }
+    return SWIG_OverflowError;
+  } else if (SvIOK(obj)) {
+    IV v = SvIV(obj);
+    if (v >= LONG_MIN && v <= LONG_MAX) {
+      if(val) *val = v;
+      return SWIG_OK;
+    }
+    return SWIG_OverflowError;
   } else {
     int dispatch = 0;
     const char *nptr = SvPV_nolen(obj);
@@ -2049,10 +2054,9 @@ SWIG_AsVal_bool SWIG_PERL_DECL_ARGS_2(SV *obj, bool* val)
     if (val) *val = false;
     return SWIG_OK;
   } else {
-    if (val) *val = SvTRUE(obj) ? true: false;
+    if (val) *val = SvTRUE(obj) ? true : false;
     return SWIG_AddCast(SWIG_OK);    
   }
-  return SWIG_TypeError;
 }
 
 
@@ -2128,10 +2132,8 @@ SWIG_AsVal_unsigned_SS_char SWIG_PERL_DECL_ARGS_2(SV * obj, unsigned char *val)
 
 SWIGINTERNINLINE SV *
 SWIG_From_double  SWIG_PERL_DECL_ARGS_1(double value)
-{    
-  SV *obj = sv_newmortal();
-  sv_setnv(obj, value);
-  return obj;
+{
+  return sv_2mortal(newSVnv(value));
 }
 
 
@@ -2297,14 +2299,8 @@ SWIGINTERN ListWrapper< ASTNode > *ASTNode_getListOfNodes(ASTNode *self){
 
 SWIGINTERNINLINE SV *
 SWIG_From_bool  SWIG_PERL_DECL_ARGS_1(bool value)
-{    
-  SV *obj = sv_newmortal();
-  if (value) {
-    sv_setsv(obj, &PL_sv_yes);
-  } else {
-    sv_setsv(obj, &PL_sv_no); 
-  }
-  return obj;
+{
+  return boolSV(value);
 }
 
 #ifdef __cplusplus
@@ -3780,9 +3776,9 @@ XS(_wrap_new_OStream) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_OStream__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_OStream__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_OStream__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_OStream__SWIG_0); return;
     }
   }
   
@@ -4008,9 +4004,9 @@ XS(_wrap_new_OFStream) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_OFStream__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_OFStream__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_OFStream__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_OFStream__SWIG_0); return;
     }
   }
   
@@ -4217,9 +4213,9 @@ XS(_wrap_OFStream_open) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_OFStream_open__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_OFStream_open__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_OFStream_open__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_OFStream_open__SWIG_0); return;
     }
   }
   
@@ -4433,9 +4429,9 @@ XS(_wrap_OStringStream_str) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_OStringStream_str__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_OStringStream_str__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_OStringStream_str__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_OStringStream_str__SWIG_1); return;
     }
   }
   
@@ -4699,9 +4695,9 @@ XS(_wrap_new_IdList) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_IdList__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IdList__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_IdList__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_IdList__SWIG_1); return;
     }
   }
   
@@ -5759,9 +5755,9 @@ XS(_wrap_SBMLWriter_writeSBML) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLWriter_writeSBML__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLWriter_writeSBML__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLWriter_writeSBML__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLWriter_writeSBML__SWIG_0); return;
     }
   }
   
@@ -6312,9 +6308,9 @@ XS(_wrap_SBase_getElementBySId) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getElementBySId__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getElementBySId__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getElementBySId__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getElementBySId__SWIG_1); return;
     }
   }
   
@@ -6484,9 +6480,9 @@ XS(_wrap_SBase_getElementByMetaId) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getElementByMetaId__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getElementByMetaId__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getElementByMetaId__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getElementByMetaId__SWIG_1); return;
     }
   }
   
@@ -7228,9 +7224,9 @@ XS(_wrap_SBase_getNotes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getNotes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getNotes__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getNotes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getNotes__SWIG_1); return;
     }
   }
   
@@ -7346,9 +7342,9 @@ XS(_wrap_SBase_getNotesString) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getNotesString__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getNotesString__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getNotesString__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getNotesString__SWIG_1); return;
     }
   }
   
@@ -7464,9 +7460,9 @@ XS(_wrap_SBase_getAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAnnotation__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAnnotation__SWIG_1); return;
     }
   }
   
@@ -7582,9 +7578,9 @@ XS(_wrap_SBase_getAnnotationString) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAnnotationString__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAnnotationString__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAnnotationString__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAnnotationString__SWIG_1); return;
     }
   }
   
@@ -7728,9 +7724,9 @@ XS(_wrap_SBase_getSBMLDocument) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getSBMLDocument__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getSBMLDocument__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getSBMLDocument__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getSBMLDocument__SWIG_0); return;
     }
   }
   
@@ -7854,9 +7850,9 @@ XS(_wrap_SBase_getParentSBMLObject) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getParentSBMLObject__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getParentSBMLObject__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getParentSBMLObject__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getParentSBMLObject__SWIG_1); return;
     }
   }
   
@@ -8206,13 +8202,13 @@ XS(_wrap_SBase_getAncestorOfType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_0); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getAncestorOfType__SWIG_2); return;
     }
   }
   
@@ -8468,9 +8464,9 @@ XS(_wrap_SBase_getModelHistory) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getModelHistory__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getModelHistory__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getModelHistory__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getModelHistory__SWIG_0); return;
     }
   }
   
@@ -8974,9 +8970,9 @@ XS(_wrap_SBase_setAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_setAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_setAnnotation__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_setAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_setAnnotation__SWIG_1); return;
     }
   }
   
@@ -9134,9 +9130,9 @@ XS(_wrap_SBase_appendAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_appendAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_appendAnnotation__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_appendAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_appendAnnotation__SWIG_1); return;
     }
   }
   
@@ -9421,11 +9417,11 @@ XS(_wrap_SBase_removeTopLevelAnnotationElement) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_removeTopLevelAnnotationElement__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_removeTopLevelAnnotationElement__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_removeTopLevelAnnotationElement__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_removeTopLevelAnnotationElement__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_removeTopLevelAnnotationElement__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_removeTopLevelAnnotationElement__SWIG_0); return;
     }
   }
   
@@ -9583,9 +9579,9 @@ XS(_wrap_SBase_replaceTopLevelAnnotationElement) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_replaceTopLevelAnnotationElement__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_replaceTopLevelAnnotationElement__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_replaceTopLevelAnnotationElement__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_replaceTopLevelAnnotationElement__SWIG_1); return;
     }
   }
   
@@ -9835,11 +9831,11 @@ XS(_wrap_SBase_setNotes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_setNotes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_setNotes__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_setNotes__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_setNotes__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_setNotes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_setNotes__SWIG_1); return;
     }
   }
   
@@ -9997,9 +9993,9 @@ XS(_wrap_SBase_appendNotes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_appendNotes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_appendNotes__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_appendNotes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_appendNotes__SWIG_1); return;
     }
   }
   
@@ -10260,9 +10256,9 @@ XS(_wrap_SBase_setSBOTerm) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_setSBOTerm__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_setSBOTerm__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_setSBOTerm__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_setSBOTerm__SWIG_1); return;
     }
   }
   
@@ -10642,9 +10638,9 @@ XS(_wrap_SBase_addCVTerm) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_addCVTerm__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_addCVTerm__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_addCVTerm__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_addCVTerm__SWIG_0); return;
     }
   }
   
@@ -10780,9 +10776,9 @@ XS(_wrap_SBase_getCVTerms) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getCVTerms__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getCVTerms__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getCVTerms__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getCVTerms__SWIG_1); return;
     }
   }
   
@@ -11584,13 +11580,13 @@ XS(_wrap_SBase_getPlugin) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_0); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getPlugin__SWIG_1); return;
     }
   }
   
@@ -11754,9 +11750,9 @@ XS(_wrap_SBase_getDisabledPlugin) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getDisabledPlugin__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getDisabledPlugin__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getDisabledPlugin__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getDisabledPlugin__SWIG_1); return;
     }
   }
   
@@ -11946,9 +11942,9 @@ XS(_wrap_SBase_deleteDisabledPlugins) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_deleteDisabledPlugins__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_deleteDisabledPlugins__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_deleteDisabledPlugins__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_deleteDisabledPlugins__SWIG_0); return;
     }
   }
   
@@ -12821,9 +12817,9 @@ XS(_wrap_SBase_matchesSBMLNamespaces) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_matchesSBMLNamespaces__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_matchesSBMLNamespaces__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_matchesSBMLNamespaces__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_matchesSBMLNamespaces__SWIG_1); return;
     }
   }
   
@@ -12983,9 +12979,9 @@ XS(_wrap_SBase_matchesRequiredSBMLNamespacesForAddition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_matchesRequiredSBMLNamespacesForAddition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_matchesRequiredSBMLNamespacesForAddition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_matchesRequiredSBMLNamespacesForAddition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_matchesRequiredSBMLNamespacesForAddition__SWIG_1); return;
     }
   }
   
@@ -13235,9 +13231,9 @@ XS(_wrap_SBase_getListOfAllElements) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getListOfAllElements__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getListOfAllElements__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getListOfAllElements__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getListOfAllElements__SWIG_0); return;
     }
   }
   
@@ -13372,9 +13368,9 @@ XS(_wrap_SBase_getListOfAllElementsFromPlugins) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getListOfAllElementsFromPlugins__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getListOfAllElementsFromPlugins__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBase_getListOfAllElementsFromPlugins__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBase_getListOfAllElementsFromPlugins__SWIG_0); return;
     }
   }
   
@@ -13716,15 +13712,15 @@ XS(_wrap_new_ListOf) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOf__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOf__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOf__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOf__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOf__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOf__SWIG_4); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOf__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOf__SWIG_1); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOf__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOf__SWIG_0); return;
     }
   }
   
@@ -14122,9 +14118,9 @@ XS(_wrap_ListOf_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOf_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOf_get__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOf_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOf_get__SWIG_0); return;
     }
   }
   
@@ -14352,9 +14348,9 @@ XS(_wrap_ListOf_clear) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOf_clear__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOf_clear__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOf_clear__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOf_clear__SWIG_0); return;
     }
   }
   
@@ -14876,11 +14872,11 @@ XS(_wrap_new_Model) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Model__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Model__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Model__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Model__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Model__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Model__SWIG_0); return;
     }
   }
   
@@ -17019,7 +17015,11 @@ XS(_wrap_Model_createReaction) {
     }
     arg1 = reinterpret_cast< Model * >(argp1);
     result = (Reaction *)(arg1)->createReaction();
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     XSRETURN(argvi);
   fail:
@@ -17458,9 +17458,9 @@ XS(_wrap_Model_setAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_setAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_setAnnotation__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_setAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_setAnnotation__SWIG_1); return;
     }
   }
   
@@ -17618,9 +17618,9 @@ XS(_wrap_Model_appendAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_appendAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_appendAnnotation__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_appendAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_appendAnnotation__SWIG_1); return;
     }
   }
   
@@ -17736,9 +17736,9 @@ XS(_wrap_Model_getListOfFunctionDefinitions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfFunctionDefinitions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfFunctionDefinitions__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfFunctionDefinitions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfFunctionDefinitions__SWIG_0); return;
     }
   }
   
@@ -17854,9 +17854,9 @@ XS(_wrap_Model_getListOfUnitDefinitions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfUnitDefinitions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfUnitDefinitions__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfUnitDefinitions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfUnitDefinitions__SWIG_0); return;
     }
   }
   
@@ -17972,9 +17972,9 @@ XS(_wrap_Model_getListOfCompartmentTypes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfCompartmentTypes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfCompartmentTypes__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfCompartmentTypes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfCompartmentTypes__SWIG_0); return;
     }
   }
   
@@ -18090,9 +18090,9 @@ XS(_wrap_Model_getListOfSpeciesTypes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfSpeciesTypes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfSpeciesTypes__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfSpeciesTypes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfSpeciesTypes__SWIG_0); return;
     }
   }
   
@@ -18208,9 +18208,9 @@ XS(_wrap_Model_getListOfCompartments) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfCompartments__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfCompartments__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfCompartments__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfCompartments__SWIG_0); return;
     }
   }
   
@@ -18326,9 +18326,9 @@ XS(_wrap_Model_getListOfSpecies) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfSpecies__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfSpecies__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfSpecies__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfSpecies__SWIG_0); return;
     }
   }
   
@@ -18444,9 +18444,9 @@ XS(_wrap_Model_getListOfParameters) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfParameters__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfParameters__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfParameters__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfParameters__SWIG_0); return;
     }
   }
   
@@ -18562,9 +18562,9 @@ XS(_wrap_Model_getListOfInitialAssignments) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfInitialAssignments__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfInitialAssignments__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfInitialAssignments__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfInitialAssignments__SWIG_0); return;
     }
   }
   
@@ -18680,9 +18680,9 @@ XS(_wrap_Model_getListOfRules) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfRules__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfRules__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfRules__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfRules__SWIG_0); return;
     }
   }
   
@@ -18798,9 +18798,9 @@ XS(_wrap_Model_getListOfConstraints) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfConstraints__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfConstraints__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfConstraints__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfConstraints__SWIG_0); return;
     }
   }
   
@@ -18916,9 +18916,9 @@ XS(_wrap_Model_getListOfReactions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfReactions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfReactions__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfReactions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfReactions__SWIG_0); return;
     }
   }
   
@@ -19034,9 +19034,9 @@ XS(_wrap_Model_getListOfEvents) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfEvents__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfEvents__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getListOfEvents__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getListOfEvents__SWIG_0); return;
     }
   }
   
@@ -19336,13 +19336,13 @@ XS(_wrap_Model_getFunctionDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getFunctionDefinition__SWIG_2); return;
     }
   }
   
@@ -19642,13 +19642,13 @@ XS(_wrap_Model_getUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getUnitDefinition__SWIG_2); return;
     }
   }
   
@@ -19948,13 +19948,13 @@ XS(_wrap_Model_getCompartmentType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartmentType__SWIG_2); return;
     }
   }
   
@@ -20254,13 +20254,13 @@ XS(_wrap_Model_getSpeciesType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpeciesType__SWIG_2); return;
     }
   }
   
@@ -20560,13 +20560,13 @@ XS(_wrap_Model_getCompartment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getCompartment__SWIG_2); return;
     }
   }
   
@@ -20866,13 +20866,13 @@ XS(_wrap_Model_getSpecies) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpecies__SWIG_2); return;
     }
   }
   
@@ -21172,13 +21172,13 @@ XS(_wrap_Model_getParameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getParameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getParameter__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getParameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getParameter__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getParameter__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getParameter__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getParameter__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getParameter__SWIG_2); return;
     }
   }
   
@@ -21521,13 +21521,13 @@ XS(_wrap_Model_getInitialAssignment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getInitialAssignment__SWIG_2); return;
     }
   }
   
@@ -21646,9 +21646,9 @@ XS(_wrap_Model_getInitialAssignmentBySymbol) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getInitialAssignmentBySymbol__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getInitialAssignmentBySymbol__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getInitialAssignmentBySymbol__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getInitialAssignmentBySymbol__SWIG_0); return;
     }
   }
   
@@ -21964,13 +21964,13 @@ XS(_wrap_Model_getRule) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRule__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRule__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRule__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRule__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRule__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRule__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRule__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRule__SWIG_2); return;
     }
   }
   
@@ -22140,9 +22140,9 @@ XS(_wrap_Model_getRuleByVariable) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRuleByVariable__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRuleByVariable__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRuleByVariable__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRuleByVariable__SWIG_0); return;
     }
   }
   
@@ -22304,9 +22304,9 @@ XS(_wrap_Model_getAssignmentRule) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getAssignmentRule__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getAssignmentRule__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getAssignmentRule__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getAssignmentRule__SWIG_0); return;
     }
   }
   
@@ -22468,9 +22468,9 @@ XS(_wrap_Model_getRateRule) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRateRule__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRateRule__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRateRule__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRateRule__SWIG_0); return;
     }
   }
   
@@ -22632,9 +22632,9 @@ XS(_wrap_Model_getAssignmentRuleByVariable) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getAssignmentRuleByVariable__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getAssignmentRuleByVariable__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getAssignmentRuleByVariable__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getAssignmentRuleByVariable__SWIG_0); return;
     }
   }
   
@@ -22796,9 +22796,9 @@ XS(_wrap_Model_getRateRuleByVariable) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRateRuleByVariable__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRateRuleByVariable__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getRateRuleByVariable__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getRateRuleByVariable__SWIG_0); return;
     }
   }
   
@@ -22954,9 +22954,9 @@ XS(_wrap_Model_getConstraint) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getConstraint__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getConstraint__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getConstraint__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getConstraint__SWIG_0); return;
     }
   }
   
@@ -22991,7 +22991,11 @@ XS(_wrap_Model_getReaction__SWIG_0) {
     } 
     arg2 = static_cast< unsigned int >(val2);
     result = (Reaction *)((Model const *)arg1)->getReaction(arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     
     XSRETURN(argvi);
@@ -23029,7 +23033,11 @@ XS(_wrap_Model_getReaction__SWIG_1) {
     } 
     arg2 = static_cast< unsigned int >(val2);
     result = (Reaction *)(arg1)->getReaction(arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     
     XSRETURN(argvi);
@@ -23072,7 +23080,11 @@ XS(_wrap_Model_getReaction__SWIG_2) {
       arg2 = ptr;
     }
     result = (Reaction *)((Model const *)arg1)->getReaction((std::string const &)*arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     if (SWIG_IsNewObj(res2)) delete arg2;
     XSRETURN(argvi);
@@ -23115,7 +23127,11 @@ XS(_wrap_Model_getReaction__SWIG_3) {
       arg2 = ptr;
     }
     result = (Reaction *)(arg1)->getReaction((std::string const &)*arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     if (SWIG_IsNewObj(res2)) delete arg2;
     XSRETURN(argvi);
@@ -23256,13 +23272,13 @@ XS(_wrap_Model_getReaction) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getReaction__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getReaction__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getReaction__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getReaction__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getReaction__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getReaction__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getReaction__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getReaction__SWIG_2); return;
     }
   }
   
@@ -23424,9 +23440,9 @@ XS(_wrap_Model_getSpeciesReference) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpeciesReference__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpeciesReference__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getSpeciesReference__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getSpeciesReference__SWIG_1); return;
     }
   }
   
@@ -23588,9 +23604,9 @@ XS(_wrap_Model_getModifierSpeciesReference) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getModifierSpeciesReference__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getModifierSpeciesReference__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getModifierSpeciesReference__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getModifierSpeciesReference__SWIG_1); return;
     }
   }
   
@@ -23890,13 +23906,13 @@ XS(_wrap_Model_getEvent) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getEvent__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getEvent__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getEvent__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getEvent__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getEvent__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getEvent__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_getEvent__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_getEvent__SWIG_2); return;
     }
   }
   
@@ -24461,9 +24477,9 @@ XS(_wrap_Model_renameAllIds) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_renameAllIds__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_renameAllIds__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_renameAllIds__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_renameAllIds__SWIG_0); return;
     }
   }
   
@@ -24738,9 +24754,9 @@ XS(_wrap_Model_convertL1ToL3) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL1ToL3__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL1ToL3__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL1ToL3__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL1ToL3__SWIG_0); return;
     }
   }
   
@@ -24962,11 +24978,11 @@ XS(_wrap_Model_convertL2ToL3) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL2ToL3__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL2ToL3__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL2ToL3__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL2ToL3__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL2ToL3__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL2ToL3__SWIG_0); return;
     }
   }
   
@@ -25100,9 +25116,9 @@ XS(_wrap_Model_convertL2ToL1) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL2ToL1__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL2ToL1__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL2ToL1__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL2ToL1__SWIG_0); return;
     }
   }
   
@@ -25236,9 +25252,9 @@ XS(_wrap_Model_convertL3ToL1) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL3ToL1__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL3ToL1__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL3ToL1__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL3ToL1__SWIG_0); return;
     }
   }
   
@@ -25372,9 +25388,9 @@ XS(_wrap_Model_convertL3ToL2) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL3ToL2__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL3ToL2__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_convertL3ToL2__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_convertL3ToL2__SWIG_0); return;
     }
   }
   
@@ -25562,9 +25578,9 @@ XS(_wrap_Model_setSpatialDimensions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_setSpatialDimensions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_setSpatialDimensions__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_setSpatialDimensions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_setSpatialDimensions__SWIG_0); return;
     }
   }
   
@@ -25917,9 +25933,9 @@ XS(_wrap_Model_dealWithModelUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_dealWithModelUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_dealWithModelUnits__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_dealWithModelUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_dealWithModelUnits__SWIG_0); return;
     }
   }
   
@@ -26454,9 +26470,9 @@ XS(_wrap_Model_removeFunctionDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeFunctionDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeFunctionDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeFunctionDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeFunctionDefinition__SWIG_1); return;
     }
   }
   
@@ -26615,9 +26631,9 @@ XS(_wrap_Model_removeUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -26776,9 +26792,9 @@ XS(_wrap_Model_removeCompartmentType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeCompartmentType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeCompartmentType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeCompartmentType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeCompartmentType__SWIG_1); return;
     }
   }
   
@@ -26937,9 +26953,9 @@ XS(_wrap_Model_removeSpeciesType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeSpeciesType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeSpeciesType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeSpeciesType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeSpeciesType__SWIG_1); return;
     }
   }
   
@@ -27098,9 +27114,9 @@ XS(_wrap_Model_removeCompartment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeCompartment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeCompartment__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeCompartment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeCompartment__SWIG_1); return;
     }
   }
   
@@ -27259,9 +27275,9 @@ XS(_wrap_Model_removeSpecies) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeSpecies__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeSpecies__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeSpecies__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeSpecies__SWIG_1); return;
     }
   }
   
@@ -27420,9 +27436,9 @@ XS(_wrap_Model_removeParameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeParameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeParameter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeParameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeParameter__SWIG_1); return;
     }
   }
   
@@ -27581,9 +27597,9 @@ XS(_wrap_Model_removeInitialAssignment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeInitialAssignment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeInitialAssignment__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeInitialAssignment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeInitialAssignment__SWIG_1); return;
     }
   }
   
@@ -27750,9 +27766,9 @@ XS(_wrap_Model_removeRule) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeRule__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeRule__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeRule__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeRule__SWIG_1); return;
     }
   }
   
@@ -27872,7 +27888,11 @@ XS(_wrap_Model_removeReaction__SWIG_0) {
     } 
     arg2 = static_cast< unsigned int >(val2);
     result = (Reaction *)(arg1)->removeReaction(arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     
     XSRETURN(argvi);
@@ -27915,7 +27935,11 @@ XS(_wrap_Model_removeReaction__SWIG_1) {
       arg2 = ptr;
     }
     result = (Reaction *)(arg1)->removeReaction((std::string const &)*arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     if (SWIG_IsNewObj(res2)) delete arg2;
     XSRETURN(argvi);
@@ -27996,9 +28020,9 @@ XS(_wrap_Model_removeReaction) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeReaction__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeReaction__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeReaction__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeReaction__SWIG_1); return;
     }
   }
   
@@ -28157,9 +28181,9 @@ XS(_wrap_Model_removeEvent) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeEvent__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeEvent__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Model_removeEvent__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Model_removeEvent__SWIG_1); return;
     }
   }
   
@@ -28689,15 +28713,15 @@ XS(_wrap_new_SBMLDocument) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_4); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_1); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLDocument__SWIG_0); return;
     }
   }
   
@@ -28872,9 +28896,9 @@ XS(_wrap_SBMLDocument_getModel) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getModel__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getModel__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getModel__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getModel__SWIG_0); return;
     }
   }
   
@@ -29384,11 +29408,11 @@ XS(_wrap_SBMLDocument_setLevelAndVersion) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_setLevelAndVersion__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_setLevelAndVersion__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_setLevelAndVersion__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_setLevelAndVersion__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_setLevelAndVersion__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_setLevelAndVersion__SWIG_0); return;
     }
   }
   
@@ -29627,9 +29651,9 @@ XS(_wrap_SBMLDocument_createModel) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_createModel__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_createModel__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_createModel__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_createModel__SWIG_0); return;
     }
   }
   
@@ -29787,9 +29811,9 @@ XS(_wrap_SBMLDocument_getLocationURI) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getLocationURI__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getLocationURI__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getLocationURI__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getLocationURI__SWIG_0); return;
     }
   }
   
@@ -30004,7 +30028,45 @@ XS(_wrap_SBMLDocument_checkInternalConsistency) {
 }
 
 
-XS(_wrap_SBMLDocument_checkL1Compatibility) {
+XS(_wrap_SBMLDocument_checkL1Compatibility__SWIG_0) {
+  {
+    SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+    bool arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    bool val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    unsigned int result;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: SBMLDocument_checkL1Compatibility(self,inConversion);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL1Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+    }
+    arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+    ecode2 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL1Compatibility" "', argument " "2"" of type '" "bool""'");
+    } 
+    arg2 = static_cast< bool >(val2);
+    result = (unsigned int)(arg1)->checkL1Compatibility(arg2);
+    ST(argvi) = SWIG_From_unsigned_SS_int  SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ;
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_SBMLDocument_checkL1Compatibility__SWIG_1) {
   {
     SBMLDocument *arg1 = (SBMLDocument *) 0 ;
     void *argp1 = 0 ;
@@ -30032,7 +30094,117 @@ XS(_wrap_SBMLDocument_checkL1Compatibility) {
 }
 
 
-XS(_wrap_SBMLDocument_checkL2v1Compatibility) {
+XS(_wrap_SBMLDocument_checkL1Compatibility) {
+  dXSARGS;
+  
+  {
+    unsigned long _index = 0;
+    SWIG_TypeRank _rank = 0; 
+    if (items == 1) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_1;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 1;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_1:
+    
+    if (items == 2) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        {
+          int res = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), NULL);
+          _v = SWIG_CheckState(res);
+        }
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 2;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_2:
+    
+  dispatch:
+    switch(_index) {
+    case 1:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL1Compatibility__SWIG_1); return;
+    case 2:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL1Compatibility__SWIG_0); return;
+    }
+  }
+  
+  croak("No matching function for overloaded 'SBMLDocument_checkL1Compatibility'");
+  XSRETURN(0);
+}
+
+
+XS(_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_0) {
+  {
+    SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+    bool arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    bool val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    unsigned int result;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: SBMLDocument_checkL2v1Compatibility(self,inConversion);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL2v1Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+    }
+    arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+    ecode2 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL2v1Compatibility" "', argument " "2"" of type '" "bool""'");
+    } 
+    arg2 = static_cast< bool >(val2);
+    result = (unsigned int)(arg1)->checkL2v1Compatibility(arg2);
+    ST(argvi) = SWIG_From_unsigned_SS_int  SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ;
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_1) {
   {
     SBMLDocument *arg1 = (SBMLDocument *) 0 ;
     void *argp1 = 0 ;
@@ -30060,7 +30232,117 @@ XS(_wrap_SBMLDocument_checkL2v1Compatibility) {
 }
 
 
-XS(_wrap_SBMLDocument_checkL2v2Compatibility) {
+XS(_wrap_SBMLDocument_checkL2v1Compatibility) {
+  dXSARGS;
+  
+  {
+    unsigned long _index = 0;
+    SWIG_TypeRank _rank = 0; 
+    if (items == 1) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_1;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 1;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_1:
+    
+    if (items == 2) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        {
+          int res = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), NULL);
+          _v = SWIG_CheckState(res);
+        }
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 2;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_2:
+    
+  dispatch:
+    switch(_index) {
+    case 1:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_1); return;
+    case 2:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_0); return;
+    }
+  }
+  
+  croak("No matching function for overloaded 'SBMLDocument_checkL2v1Compatibility'");
+  XSRETURN(0);
+}
+
+
+XS(_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_0) {
+  {
+    SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+    bool arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    bool val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    unsigned int result;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: SBMLDocument_checkL2v2Compatibility(self,inConversion);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL2v2Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+    }
+    arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+    ecode2 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL2v2Compatibility" "', argument " "2"" of type '" "bool""'");
+    } 
+    arg2 = static_cast< bool >(val2);
+    result = (unsigned int)(arg1)->checkL2v2Compatibility(arg2);
+    ST(argvi) = SWIG_From_unsigned_SS_int  SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ;
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_1) {
   {
     SBMLDocument *arg1 = (SBMLDocument *) 0 ;
     void *argp1 = 0 ;
@@ -30088,7 +30370,117 @@ XS(_wrap_SBMLDocument_checkL2v2Compatibility) {
 }
 
 
-XS(_wrap_SBMLDocument_checkL2v3Compatibility) {
+XS(_wrap_SBMLDocument_checkL2v2Compatibility) {
+  dXSARGS;
+  
+  {
+    unsigned long _index = 0;
+    SWIG_TypeRank _rank = 0; 
+    if (items == 1) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_1;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 1;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_1:
+    
+    if (items == 2) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        {
+          int res = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), NULL);
+          _v = SWIG_CheckState(res);
+        }
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 2;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_2:
+    
+  dispatch:
+    switch(_index) {
+    case 1:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_1); return;
+    case 2:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_0); return;
+    }
+  }
+  
+  croak("No matching function for overloaded 'SBMLDocument_checkL2v2Compatibility'");
+  XSRETURN(0);
+}
+
+
+XS(_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_0) {
+  {
+    SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+    bool arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    bool val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    unsigned int result;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: SBMLDocument_checkL2v3Compatibility(self,inConversion);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL2v3Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+    }
+    arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+    ecode2 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL2v3Compatibility" "', argument " "2"" of type '" "bool""'");
+    } 
+    arg2 = static_cast< bool >(val2);
+    result = (unsigned int)(arg1)->checkL2v3Compatibility(arg2);
+    ST(argvi) = SWIG_From_unsigned_SS_int  SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ;
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_1) {
   {
     SBMLDocument *arg1 = (SBMLDocument *) 0 ;
     void *argp1 = 0 ;
@@ -30116,6 +30508,78 @@ XS(_wrap_SBMLDocument_checkL2v3Compatibility) {
 }
 
 
+XS(_wrap_SBMLDocument_checkL2v3Compatibility) {
+  dXSARGS;
+  
+  {
+    unsigned long _index = 0;
+    SWIG_TypeRank _rank = 0; 
+    if (items == 1) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_1;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 1;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_1:
+    
+    if (items == 2) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_SBMLDocument, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        {
+          int res = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(1), NULL);
+          _v = SWIG_CheckState(res);
+        }
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 2;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_2:
+    
+  dispatch:
+    switch(_index) {
+    case 1:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_1); return;
+    case 2:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_0); return;
+    }
+  }
+  
+  croak("No matching function for overloaded 'SBMLDocument_checkL2v3Compatibility'");
+  XSRETURN(0);
+}
+
+
 XS(_wrap_SBMLDocument_checkL2v4Compatibility) {
   {
     SBMLDocument *arg1 = (SBMLDocument *) 0 ;
@@ -30385,9 +30849,9 @@ XS(_wrap_SBMLDocument_getNumErrors) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getNumErrors__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getNumErrors__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getNumErrors__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getNumErrors__SWIG_1); return;
     }
   }
   
@@ -30613,11 +31077,11 @@ XS(_wrap_SBMLDocument_printErrors) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_printErrors__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_printErrors__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_printErrors__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_printErrors__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_printErrors__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_printErrors__SWIG_2); return;
     }
   }
   
@@ -30924,9 +31388,9 @@ XS(_wrap_SBMLDocument_getErrorLog) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getErrorLog__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getErrorLog__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLDocument_getErrorLog__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLDocument_getErrorLog__SWIG_1); return;
     }
   }
   
@@ -32207,11 +32671,11 @@ XS(_wrap_new_FunctionDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_FunctionDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_FunctionDefinition__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_FunctionDefinition__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_FunctionDefinition__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_FunctionDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_FunctionDefinition__SWIG_0); return;
     }
   }
   
@@ -32727,9 +33191,9 @@ XS(_wrap_FunctionDefinition_getArgument) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_FunctionDefinition_getArgument__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_FunctionDefinition_getArgument__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_FunctionDefinition_getArgument__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_FunctionDefinition_getArgument__SWIG_1); return;
     }
   }
   
@@ -32845,9 +33309,9 @@ XS(_wrap_FunctionDefinition_getBody) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_FunctionDefinition_getBody__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_FunctionDefinition_getBody__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_FunctionDefinition_getBody__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_FunctionDefinition_getBody__SWIG_0); return;
     }
   }
   
@@ -33238,9 +33702,9 @@ XS(_wrap_new_ListOfFunctionDefinitions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfFunctionDefinitions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfFunctionDefinitions__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfFunctionDefinitions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfFunctionDefinitions__SWIG_0); return;
     }
   }
   
@@ -33624,13 +34088,13 @@ XS(_wrap_ListOfFunctionDefinitions_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_get__SWIG_3); return;
     }
   }
   
@@ -33789,9 +34253,9 @@ XS(_wrap_ListOfFunctionDefinitions_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfFunctionDefinitions_remove__SWIG_1); return;
     }
   }
   
@@ -34208,11 +34672,11 @@ XS(_wrap_new_Unit) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Unit__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Unit__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Unit__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Unit__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Unit__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Unit__SWIG_0); return;
     }
   }
   
@@ -35838,9 +36302,9 @@ XS(_wrap_Unit_setExponent) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Unit_setExponent__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Unit_setExponent__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Unit_setExponent__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Unit_setExponent__SWIG_1); return;
     }
   }
   
@@ -36615,9 +37079,9 @@ XS(_wrap_new_ListOfUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfUnits__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfUnits__SWIG_0); return;
     }
   }
   
@@ -36857,9 +37321,9 @@ XS(_wrap_ListOfUnits_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnits_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnits_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnits_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnits_get__SWIG_1); return;
     }
   }
   
@@ -37170,11 +37634,11 @@ XS(_wrap_new_UnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_UnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_UnitDefinition__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_UnitDefinition__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_UnitDefinition__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_UnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_UnitDefinition__SWIG_0); return;
     }
   }
   
@@ -37958,9 +38422,9 @@ XS(_wrap_UnitDefinition_getListOfUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_UnitDefinition_getListOfUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_UnitDefinition_getListOfUnits__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_UnitDefinition_getListOfUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_UnitDefinition_getListOfUnits__SWIG_0); return;
     }
   }
   
@@ -38116,9 +38580,9 @@ XS(_wrap_UnitDefinition_getUnit) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_UnitDefinition_getUnit__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_UnitDefinition_getUnit__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_UnitDefinition_getUnit__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_UnitDefinition_getUnit__SWIG_1); return;
     }
   }
   
@@ -38710,9 +39174,9 @@ XS(_wrap_UnitDefinition_printUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_UnitDefinition_printUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_UnitDefinition_printUnits__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_UnitDefinition_printUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_UnitDefinition_printUnits__SWIG_0); return;
     }
   }
   
@@ -38931,9 +39395,9 @@ XS(_wrap_new_ListOfUnitDefinitions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfUnitDefinitions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfUnitDefinitions__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfUnitDefinitions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfUnitDefinitions__SWIG_0); return;
     }
   }
   
@@ -39317,13 +39781,13 @@ XS(_wrap_ListOfUnitDefinitions_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnitDefinitions_get__SWIG_3); return;
     }
   }
   
@@ -39529,9 +39993,9 @@ XS(_wrap_ListOfUnitDefinitions_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnitDefinitions_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnitDefinitions_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfUnitDefinitions_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfUnitDefinitions_remove__SWIG_1); return;
     }
   }
   
@@ -39804,11 +40268,11 @@ XS(_wrap_new_CompartmentType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_CompartmentType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_CompartmentType__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_CompartmentType__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_CompartmentType__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_CompartmentType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_CompartmentType__SWIG_0); return;
     }
   }
   
@@ -40312,9 +40776,9 @@ XS(_wrap_new_ListOfCompartmentTypes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfCompartmentTypes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfCompartmentTypes__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfCompartmentTypes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfCompartmentTypes__SWIG_0); return;
     }
   }
   
@@ -40698,13 +41162,13 @@ XS(_wrap_ListOfCompartmentTypes_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartmentTypes_get__SWIG_3); return;
     }
   }
   
@@ -40863,9 +41327,9 @@ XS(_wrap_ListOfCompartmentTypes_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartmentTypes_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartmentTypes_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartmentTypes_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartmentTypes_remove__SWIG_1); return;
     }
   }
   
@@ -41138,11 +41602,11 @@ XS(_wrap_new_SpeciesType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SpeciesType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SpeciesType__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SpeciesType__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SpeciesType__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SpeciesType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SpeciesType__SWIG_0); return;
     }
   }
   
@@ -41646,9 +42110,9 @@ XS(_wrap_new_ListOfSpeciesTypes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfSpeciesTypes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfSpeciesTypes__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfSpeciesTypes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfSpeciesTypes__SWIG_0); return;
     }
   }
   
@@ -42032,13 +42496,13 @@ XS(_wrap_ListOfSpeciesTypes_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesTypes_get__SWIG_3); return;
     }
   }
   
@@ -42197,9 +42661,9 @@ XS(_wrap_ListOfSpeciesTypes_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesTypes_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesTypes_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesTypes_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesTypes_remove__SWIG_1); return;
     }
   }
   
@@ -42472,11 +42936,11 @@ XS(_wrap_new_Compartment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Compartment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Compartment__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Compartment__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Compartment__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Compartment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Compartment__SWIG_0); return;
     }
   }
   
@@ -43378,9 +43842,9 @@ XS(_wrap_Compartment_setSpatialDimensions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Compartment_setSpatialDimensions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Compartment_setSpatialDimensions__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Compartment_setSpatialDimensions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Compartment_setSpatialDimensions__SWIG_1); return;
     }
   }
   
@@ -44034,9 +44498,9 @@ XS(_wrap_Compartment_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Compartment_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Compartment_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Compartment_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Compartment_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -44280,9 +44744,9 @@ XS(_wrap_new_ListOfCompartments) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfCompartments__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfCompartments__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfCompartments__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfCompartments__SWIG_0); return;
     }
   }
   
@@ -44666,13 +45130,13 @@ XS(_wrap_ListOfCompartments_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartments_get__SWIG_3); return;
     }
   }
   
@@ -44831,9 +45295,9 @@ XS(_wrap_ListOfCompartments_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartments_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartments_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfCompartments_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfCompartments_remove__SWIG_1); return;
     }
   }
   
@@ -45106,11 +45570,11 @@ XS(_wrap_new_Species) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Species__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Species__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Species__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Species__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Species__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Species__SWIG_0); return;
     }
   }
   
@@ -47052,9 +47516,9 @@ XS(_wrap_Species_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Species_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Species_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Species_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Species_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -47412,9 +47876,9 @@ XS(_wrap_new_ListOfSpecies) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfSpecies__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfSpecies__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfSpecies__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfSpecies__SWIG_0); return;
     }
   }
   
@@ -47798,13 +48262,13 @@ XS(_wrap_ListOfSpecies_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpecies_get__SWIG_3); return;
     }
   }
   
@@ -47963,9 +48427,9 @@ XS(_wrap_ListOfSpecies_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpecies_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpecies_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpecies_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpecies_remove__SWIG_1); return;
     }
   }
   
@@ -48238,11 +48702,11 @@ XS(_wrap_new_Parameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Parameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Parameter__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Parameter__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Parameter__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Parameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Parameter__SWIG_0); return;
     }
   }
   
@@ -49028,9 +49492,9 @@ XS(_wrap_Parameter_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Parameter_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Parameter_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Parameter_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Parameter_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -49368,9 +49832,9 @@ XS(_wrap_new_ListOfParameters) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfParameters__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfParameters__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfParameters__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfParameters__SWIG_0); return;
     }
   }
   
@@ -49754,13 +50218,13 @@ XS(_wrap_ListOfParameters_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfParameters_get__SWIG_3); return;
     }
   }
   
@@ -49919,9 +50383,9 @@ XS(_wrap_ListOfParameters_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfParameters_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfParameters_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfParameters_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfParameters_remove__SWIG_1); return;
     }
   }
   
@@ -50256,13 +50720,13 @@ XS(_wrap_new_LocalParameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_LocalParameter__SWIG_0); return;
     }
   }
   
@@ -50406,9 +50870,9 @@ XS(_wrap_LocalParameter_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_LocalParameter_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_LocalParameter_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_LocalParameter_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_LocalParameter_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -50780,9 +51244,9 @@ XS(_wrap_new_ListOfLocalParameters) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfLocalParameters__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfLocalParameters__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfLocalParameters__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfLocalParameters__SWIG_0); return;
     }
   }
   
@@ -51166,13 +51630,13 @@ XS(_wrap_ListOfLocalParameters_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfLocalParameters_get__SWIG_3); return;
     }
   }
   
@@ -51378,9 +51842,9 @@ XS(_wrap_ListOfLocalParameters_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfLocalParameters_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfLocalParameters_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfLocalParameters_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfLocalParameters_remove__SWIG_1); return;
     }
   }
   
@@ -51653,11 +52117,11 @@ XS(_wrap_new_InitialAssignment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_InitialAssignment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_InitialAssignment__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_InitialAssignment__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_InitialAssignment__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_InitialAssignment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_InitialAssignment__SWIG_0); return;
     }
   }
   
@@ -52028,9 +52492,9 @@ XS(_wrap_InitialAssignment_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_InitialAssignment_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_InitialAssignment_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_InitialAssignment_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_InitialAssignment_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -52152,9 +52616,9 @@ XS(_wrap_InitialAssignment_containsUndeclaredUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_InitialAssignment_containsUndeclaredUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_InitialAssignment_containsUndeclaredUnits__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_InitialAssignment_containsUndeclaredUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_InitialAssignment_containsUndeclaredUnits__SWIG_1); return;
     }
   }
   
@@ -52727,9 +53191,9 @@ XS(_wrap_new_ListOfInitialAssignments) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfInitialAssignments__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfInitialAssignments__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfInitialAssignments__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfInitialAssignments__SWIG_0); return;
     }
   }
   
@@ -53113,13 +53577,13 @@ XS(_wrap_ListOfInitialAssignments_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfInitialAssignments_get__SWIG_3); return;
     }
   }
   
@@ -53278,9 +53742,9 @@ XS(_wrap_ListOfInitialAssignments_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfInitialAssignments_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfInitialAssignments_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfInitialAssignments_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfInitialAssignments_remove__SWIG_1); return;
     }
   }
   
@@ -54023,9 +54487,9 @@ XS(_wrap_Rule_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Rule_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Rule_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Rule_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Rule_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -54147,9 +54611,9 @@ XS(_wrap_Rule_containsUndeclaredUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Rule_containsUndeclaredUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Rule_containsUndeclaredUnits__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Rule_containsUndeclaredUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Rule_containsUndeclaredUnits__SWIG_1); return;
     }
   }
   
@@ -55033,9 +55497,9 @@ XS(_wrap_new_ListOfRules) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfRules__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfRules__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfRules__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfRules__SWIG_0); return;
     }
   }
   
@@ -55435,13 +55899,13 @@ XS(_wrap_ListOfRules_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfRules_get__SWIG_3); return;
     }
   }
   
@@ -55655,9 +56119,9 @@ XS(_wrap_ListOfRules_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfRules_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfRules_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfRules_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfRules_remove__SWIG_1); return;
     }
   }
   
@@ -55841,9 +56305,9 @@ XS(_wrap_new_AlgebraicRule) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_AlgebraicRule__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_AlgebraicRule__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_AlgebraicRule__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_AlgebraicRule__SWIG_0); return;
     }
   }
   
@@ -56086,9 +56550,9 @@ XS(_wrap_new_AssignmentRule) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_AssignmentRule__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_AssignmentRule__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_AssignmentRule__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_AssignmentRule__SWIG_0); return;
     }
   }
   
@@ -56388,9 +56852,9 @@ XS(_wrap_new_RateRule) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_RateRule__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_RateRule__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_RateRule__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_RateRule__SWIG_0); return;
     }
   }
   
@@ -56779,11 +57243,11 @@ XS(_wrap_new_Constraint) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Constraint__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Constraint__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Constraint__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Constraint__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Constraint__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Constraint__SWIG_0); return;
     }
   }
   
@@ -57207,11 +57671,11 @@ XS(_wrap_Constraint_setMessage) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Constraint_setMessage__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Constraint_setMessage__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Constraint_setMessage__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Constraint_setMessage__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Constraint_setMessage__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Constraint_setMessage__SWIG_1); return;
     }
   }
   
@@ -57687,9 +58151,9 @@ XS(_wrap_new_ListOfConstraints) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfConstraints__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfConstraints__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfConstraints__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfConstraints__SWIG_0); return;
     }
   }
   
@@ -57929,9 +58393,9 @@ XS(_wrap_ListOfConstraints_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfConstraints_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfConstraints_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfConstraints_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfConstraints_get__SWIG_1); return;
     }
   }
   
@@ -58041,7 +58505,11 @@ XS(_wrap_new_Reaction__SWIG_0) {
         croak("%s", e.what());
       }
     }
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     
     XSRETURN(argvi);
@@ -58081,7 +58549,11 @@ XS(_wrap_new_Reaction__SWIG_1) {
         croak("%s", e.what());
       }
     }
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     XSRETURN(argvi);
   fail:
@@ -58149,7 +58621,11 @@ XS(_wrap_new_Reaction__SWIG_2) {
         croak("%s", e.what());
       }
     }
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     XSRETURN(argvi);
   fail:
@@ -58242,11 +58718,11 @@ XS(_wrap_new_Reaction) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Reaction__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Reaction__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Reaction__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Reaction__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Reaction__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Reaction__SWIG_0); return;
     }
   }
   
@@ -58273,7 +58749,11 @@ XS(_wrap_Reaction_clone) {
     }
     arg1 = reinterpret_cast< Reaction * >(argp1);
     result = (Reaction *)((Reaction const *)arg1)->clone();
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     XSRETURN(argvi);
   fail:
@@ -58624,9 +59104,9 @@ XS(_wrap_Reaction_getKineticLaw) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getKineticLaw__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getKineticLaw__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getKineticLaw__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getKineticLaw__SWIG_0); return;
     }
   }
   
@@ -59769,15 +60249,15 @@ XS(_wrap_Reaction_addReactant) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_4); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_2); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addReactant__SWIG_1); return;
     }
   }
   
@@ -60261,15 +60741,15 @@ XS(_wrap_Reaction_addProduct) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_4); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_2); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addProduct__SWIG_1); return;
     }
   }
   
@@ -60514,11 +60994,11 @@ XS(_wrap_Reaction_addModifier) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addModifier__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addModifier__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addModifier__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addModifier__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_addModifier__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_addModifier__SWIG_1); return;
     }
   }
   
@@ -60746,9 +61226,9 @@ XS(_wrap_Reaction_getListOfReactants) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getListOfReactants__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getListOfReactants__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getListOfReactants__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getListOfReactants__SWIG_0); return;
     }
   }
   
@@ -60864,9 +61344,9 @@ XS(_wrap_Reaction_getListOfProducts) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getListOfProducts__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getListOfProducts__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getListOfProducts__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getListOfProducts__SWIG_0); return;
     }
   }
   
@@ -60982,9 +61462,9 @@ XS(_wrap_Reaction_getListOfModifiers) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getListOfModifiers__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getListOfModifiers__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getListOfModifiers__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getListOfModifiers__SWIG_0); return;
     }
   }
   
@@ -61284,13 +61764,13 @@ XS(_wrap_Reaction_getReactant) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getReactant__SWIG_2); return;
     }
   }
   
@@ -61590,13 +62070,13 @@ XS(_wrap_Reaction_getProduct) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getProduct__SWIG_2); return;
     }
   }
   
@@ -61896,13 +62376,13 @@ XS(_wrap_Reaction_getModifier) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_getModifier__SWIG_2); return;
     }
   }
   
@@ -62145,9 +62625,9 @@ XS(_wrap_Reaction_removeReactant) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_removeReactant__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_removeReactant__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_removeReactant__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_removeReactant__SWIG_1); return;
     }
   }
   
@@ -62306,9 +62786,9 @@ XS(_wrap_Reaction_removeProduct) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_removeProduct__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_removeProduct__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_removeProduct__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_removeProduct__SWIG_1); return;
     }
   }
   
@@ -62467,9 +62947,9 @@ XS(_wrap_Reaction_removeModifier) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_removeModifier__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_removeModifier__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Reaction_removeModifier__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Reaction_removeModifier__SWIG_1); return;
     }
   }
   
@@ -62807,9 +63287,9 @@ XS(_wrap_new_ListOfReactions) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfReactions__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfReactions__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfReactions__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfReactions__SWIG_0); return;
     }
   }
   
@@ -62928,7 +63408,11 @@ XS(_wrap_ListOfReactions_get__SWIG_0) {
     } 
     arg2 = static_cast< unsigned int >(val2);
     result = (Reaction *)(arg1)->get(arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     
     XSRETURN(argvi);
@@ -62966,7 +63450,11 @@ XS(_wrap_ListOfReactions_get__SWIG_1) {
     } 
     arg2 = static_cast< unsigned int >(val2);
     result = (Reaction *)((ListOfReactions const *)arg1)->get(arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     
     XSRETURN(argvi);
@@ -63009,7 +63497,11 @@ XS(_wrap_ListOfReactions_get__SWIG_2) {
       arg2 = ptr;
     }
     result = (Reaction *)(arg1)->get((std::string const &)*arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     if (SWIG_IsNewObj(res2)) delete arg2;
     XSRETURN(argvi);
@@ -63052,7 +63544,11 @@ XS(_wrap_ListOfReactions_get__SWIG_3) {
       arg2 = ptr;
     }
     result = (Reaction *)((ListOfReactions const *)arg1)->get((std::string const &)*arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        0 | SWIG_SHADOW);
+      argvi++;
+    }
     
     if (SWIG_IsNewObj(res2)) delete arg2;
     XSRETURN(argvi);
@@ -63193,13 +63689,13 @@ XS(_wrap_ListOfReactions_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfReactions_get__SWIG_3); return;
     }
   }
   
@@ -63234,7 +63730,11 @@ XS(_wrap_ListOfReactions_remove__SWIG_0) {
     } 
     arg2 = static_cast< unsigned int >(val2);
     result = (Reaction *)(arg1)->remove(arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     
     XSRETURN(argvi);
@@ -63277,7 +63777,11 @@ XS(_wrap_ListOfReactions_remove__SWIG_1) {
       arg2 = ptr;
     }
     result = (Reaction *)(arg1)->remove((std::string const &)*arg2);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    {
+      ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+        SWIG_OWNER | SWIG_SHADOW);
+      argvi++;
+    }
     
     if (SWIG_IsNewObj(res2)) delete arg2;
     XSRETURN(argvi);
@@ -63358,9 +63862,9 @@ XS(_wrap_ListOfReactions_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfReactions_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfReactions_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfReactions_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfReactions_remove__SWIG_1); return;
     }
   }
   
@@ -63633,11 +64137,11 @@ XS(_wrap_new_KineticLaw) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_KineticLaw__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_KineticLaw__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_KineticLaw__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_KineticLaw__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_KineticLaw__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_KineticLaw__SWIG_0); return;
     }
   }
   
@@ -64466,9 +64970,9 @@ XS(_wrap_KineticLaw_getListOfParameters) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getListOfParameters__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getListOfParameters__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getListOfParameters__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getListOfParameters__SWIG_0); return;
     }
   }
   
@@ -64584,9 +65088,9 @@ XS(_wrap_KineticLaw_getListOfLocalParameters) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getListOfLocalParameters__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getListOfLocalParameters__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getListOfLocalParameters__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getListOfLocalParameters__SWIG_0); return;
     }
   }
   
@@ -64962,13 +65466,13 @@ XS(_wrap_KineticLaw_getParameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getParameter__SWIG_2); return;
     }
   }
   
@@ -65192,13 +65696,13 @@ XS(_wrap_KineticLaw_getLocalParameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getLocalParameter__SWIG_2); return;
     }
   }
   
@@ -65370,9 +65874,9 @@ XS(_wrap_KineticLaw_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -65494,9 +65998,9 @@ XS(_wrap_KineticLaw_containsUndeclaredUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_containsUndeclaredUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_containsUndeclaredUnits__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_containsUndeclaredUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_containsUndeclaredUnits__SWIG_1); return;
     }
   }
   
@@ -65693,9 +66197,9 @@ XS(_wrap_KineticLaw_removeParameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_removeParameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_removeParameter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_removeParameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_removeParameter__SWIG_1); return;
     }
   }
   
@@ -65816,9 +66320,9 @@ XS(_wrap_KineticLaw_removeLocalParameter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_removeLocalParameter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_removeLocalParameter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_KineticLaw_removeLocalParameter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_KineticLaw_removeLocalParameter__SWIG_1); return;
     }
   }
   
@@ -67079,11 +67583,11 @@ XS(_wrap_new_SpeciesReference) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SpeciesReference__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SpeciesReference__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SpeciesReference__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SpeciesReference__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SpeciesReference__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SpeciesReference__SWIG_0); return;
     }
   }
   
@@ -67282,9 +67786,9 @@ XS(_wrap_SpeciesReference_getStoichiometryMath) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SpeciesReference_getStoichiometryMath__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SpeciesReference_getStoichiometryMath__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SpeciesReference_getStoichiometryMath__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SpeciesReference_getStoichiometryMath__SWIG_0); return;
     }
   }
   
@@ -67858,9 +68362,9 @@ XS(_wrap_SpeciesReference_setAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SpeciesReference_setAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SpeciesReference_setAnnotation__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SpeciesReference_setAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SpeciesReference_setAnnotation__SWIG_1); return;
     }
   }
   
@@ -68018,9 +68522,9 @@ XS(_wrap_SpeciesReference_appendAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SpeciesReference_appendAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SpeciesReference_appendAnnotation__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SpeciesReference_appendAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SpeciesReference_appendAnnotation__SWIG_1); return;
     }
   }
   
@@ -68264,9 +68768,9 @@ XS(_wrap_new_ListOfSpeciesReferences) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfSpeciesReferences__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfSpeciesReferences__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfSpeciesReferences__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfSpeciesReferences__SWIG_0); return;
     }
   }
   
@@ -68666,13 +69170,13 @@ XS(_wrap_ListOfSpeciesReferences_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesReferences_get__SWIG_3); return;
     }
   }
   
@@ -68839,9 +69343,9 @@ XS(_wrap_ListOfSpeciesReferences_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesReferences_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesReferences_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfSpeciesReferences_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfSpeciesReferences_remove__SWIG_1); return;
     }
   }
   
@@ -69025,9 +69529,9 @@ XS(_wrap_new_ModifierSpeciesReference) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ModifierSpeciesReference__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ModifierSpeciesReference__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ModifierSpeciesReference__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ModifierSpeciesReference__SWIG_0); return;
     }
   }
   
@@ -69415,11 +69919,11 @@ XS(_wrap_new_Event) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Event__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Event__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Event__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Event__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Event__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Event__SWIG_0); return;
     }
   }
   
@@ -69740,9 +70244,9 @@ XS(_wrap_Event_getTrigger) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getTrigger__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getTrigger__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getTrigger__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getTrigger__SWIG_0); return;
     }
   }
   
@@ -69858,9 +70362,9 @@ XS(_wrap_Event_getDelay) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getDelay__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getDelay__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getDelay__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getDelay__SWIG_0); return;
     }
   }
   
@@ -69976,9 +70480,9 @@ XS(_wrap_Event_getPriority) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getPriority__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getPriority__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getPriority__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getPriority__SWIG_0); return;
     }
   }
   
@@ -70997,9 +71501,9 @@ XS(_wrap_Event_getListOfEventAssignments) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getListOfEventAssignments__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getListOfEventAssignments__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getListOfEventAssignments__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getListOfEventAssignments__SWIG_0); return;
     }
   }
   
@@ -71299,13 +71803,13 @@ XS(_wrap_Event_getEventAssignment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_getEventAssignment__SWIG_2); return;
     }
   }
   
@@ -71492,9 +71996,9 @@ XS(_wrap_Event_removeEventAssignment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_removeEventAssignment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_removeEventAssignment__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Event_removeEventAssignment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Event_removeEventAssignment__SWIG_1); return;
     }
   }
   
@@ -71863,9 +72367,9 @@ XS(_wrap_new_ListOfEvents) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfEvents__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfEvents__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfEvents__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfEvents__SWIG_0); return;
     }
   }
   
@@ -72249,13 +72753,13 @@ XS(_wrap_ListOfEvents_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEvents_get__SWIG_3); return;
     }
   }
   
@@ -72414,9 +72918,9 @@ XS(_wrap_ListOfEvents_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEvents_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEvents_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEvents_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEvents_remove__SWIG_1); return;
     }
   }
   
@@ -72689,11 +73193,11 @@ XS(_wrap_new_EventAssignment) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_EventAssignment__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_EventAssignment__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_EventAssignment__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_EventAssignment__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_EventAssignment__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_EventAssignment__SWIG_0); return;
     }
   }
   
@@ -73064,9 +73568,9 @@ XS(_wrap_EventAssignment_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_EventAssignment_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_EventAssignment_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_EventAssignment_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_EventAssignment_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -73188,9 +73692,9 @@ XS(_wrap_EventAssignment_containsUndeclaredUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_EventAssignment_containsUndeclaredUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_EventAssignment_containsUndeclaredUnits__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_EventAssignment_containsUndeclaredUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_EventAssignment_containsUndeclaredUnits__SWIG_1); return;
     }
   }
   
@@ -73763,9 +74267,9 @@ XS(_wrap_new_ListOfEventAssignments) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfEventAssignments__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfEventAssignments__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ListOfEventAssignments__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ListOfEventAssignments__SWIG_0); return;
     }
   }
   
@@ -74149,13 +74653,13 @@ XS(_wrap_ListOfEventAssignments_get) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEventAssignments_get__SWIG_3); return;
     }
   }
   
@@ -74314,9 +74818,9 @@ XS(_wrap_ListOfEventAssignments_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEventAssignments_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEventAssignments_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ListOfEventAssignments_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ListOfEventAssignments_remove__SWIG_1); return;
     }
   }
   
@@ -74636,11 +75140,11 @@ XS(_wrap_new_Trigger) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Trigger__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Trigger__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Trigger__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Trigger__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Trigger__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Trigger__SWIG_0); return;
     }
   }
   
@@ -75579,11 +76083,11 @@ XS(_wrap_new_Delay) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Delay__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Delay__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Delay__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Delay__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Delay__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Delay__SWIG_0); return;
     }
   }
   
@@ -75824,9 +76328,9 @@ XS(_wrap_Delay_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Delay_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Delay_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Delay_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Delay_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -75948,9 +76452,9 @@ XS(_wrap_Delay_containsUndeclaredUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Delay_containsUndeclaredUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Delay_containsUndeclaredUnits__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_Delay_containsUndeclaredUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_Delay_containsUndeclaredUnits__SWIG_1); return;
     }
   }
   
@@ -76477,11 +76981,11 @@ XS(_wrap_new_Priority) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Priority__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Priority__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Priority__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Priority__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Priority__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Priority__SWIG_0); return;
     }
   }
   
@@ -77943,9 +78447,9 @@ XS(_wrap_SBO_checkTerm) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBO_checkTerm__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBO_checkTerm__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBO_checkTerm__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBO_checkTerm__SWIG_0); return;
     }
   }
   
@@ -77954,6 +78458,34 @@ XS(_wrap_SBO_checkTerm) {
 }
 
 
+XS(_wrap_SBO_getParentBranch) {
+  {
+    unsigned int arg1 ;
+    unsigned int val1 ;
+    int ecode1 = 0 ;
+    int argvi = 0;
+    unsigned int result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: SBO_getParentBranch(term);");
+    }
+    ecode1 = SWIG_AsVal_unsigned_SS_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
+    if (!SWIG_IsOK(ecode1)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "SBO_getParentBranch" "', argument " "1"" of type '" "unsigned int""'");
+    } 
+    arg1 = static_cast< unsigned int >(val1);
+    result = (unsigned int)SBO::getParentBranch(arg1);
+    ST(argvi) = SWIG_From_unsigned_SS_int  SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_new_SBO) {
   {
     int argvi = 0;
@@ -78263,9 +78795,9 @@ XS(_wrap_SyntaxChecker_hasExpectedXHTMLSyntax) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SyntaxChecker_hasExpectedXHTMLSyntax__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SyntaxChecker_hasExpectedXHTMLSyntax__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SyntaxChecker_hasExpectedXHTMLSyntax__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SyntaxChecker_hasExpectedXHTMLSyntax__SWIG_0); return;
     }
   }
   
@@ -78622,11 +79154,11 @@ XS(_wrap_new_StoichiometryMath) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_StoichiometryMath__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_StoichiometryMath__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_StoichiometryMath__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_StoichiometryMath__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_StoichiometryMath__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_StoichiometryMath__SWIG_0); return;
     }
   }
   
@@ -78867,9 +79399,9 @@ XS(_wrap_StoichiometryMath_getDerivedUnitDefinition) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_StoichiometryMath_getDerivedUnitDefinition__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_StoichiometryMath_getDerivedUnitDefinition__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_StoichiometryMath_getDerivedUnitDefinition__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_StoichiometryMath_getDerivedUnitDefinition__SWIG_1); return;
     }
   }
   
@@ -78991,9 +79523,9 @@ XS(_wrap_StoichiometryMath_containsUndeclaredUnits) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_StoichiometryMath_containsUndeclaredUnits__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_StoichiometryMath_containsUndeclaredUnits__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_StoichiometryMath_containsUndeclaredUnits__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_StoichiometryMath_containsUndeclaredUnits__SWIG_1); return;
     }
   }
   
@@ -79850,17 +80382,17 @@ XS(_wrap_new_SBMLNamespaces) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_5); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_1); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_0); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_4); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLNamespaces__SWIG_3); return;
     }
   }
   
@@ -80129,9 +80661,9 @@ XS(_wrap_SBMLNamespaces_getLevel) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_getLevel__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_getLevel__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_getLevel__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_getLevel__SWIG_1); return;
     }
   }
   
@@ -80247,9 +80779,9 @@ XS(_wrap_SBMLNamespaces_getVersion) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_getVersion__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_getVersion__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_getVersion__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_getVersion__SWIG_1); return;
     }
   }
   
@@ -80365,9 +80897,9 @@ XS(_wrap_SBMLNamespaces_getNamespaces) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_getNamespaces__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_getNamespaces__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_getNamespaces__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_getNamespaces__SWIG_1); return;
     }
   }
   
@@ -80731,9 +81263,9 @@ XS(_wrap_SBMLNamespaces_addPackageNamespace) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_addPackageNamespace__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_addPackageNamespace__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_addPackageNamespace__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_addPackageNamespace__SWIG_0); return;
     }
   }
   
@@ -81069,9 +81601,9 @@ XS(_wrap_SBMLNamespaces_addPkgNamespace) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_addPkgNamespace__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_addPkgNamespace__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLNamespaces_addPkgNamespace__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLNamespaces_addPkgNamespace__SWIG_0); return;
     }
   }
   
@@ -81601,13 +82133,13 @@ XS(_wrap_SBMLTransforms_replaceFD) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLTransforms_replaceFD__SWIG_0); return;
     }
   }
   
@@ -81773,9 +82305,9 @@ XS(_wrap_SBMLTransforms_evaluateASTNode) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLTransforms_evaluateASTNode__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLTransforms_evaluateASTNode__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLTransforms_evaluateASTNode__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLTransforms_evaluateASTNode__SWIG_0); return;
     }
   }
   
@@ -82098,13 +82630,13 @@ XS(_wrap_new_SBMLConstructorException) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLConstructorException__SWIG_2); return;
     }
   }
   
@@ -83416,35 +83948,35 @@ XS(_wrap_new_ConversionOption) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_14); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_14); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_7); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_13); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_13); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_11); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_11); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_9); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_2); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_5); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_6); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_12); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_12); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_10); return;
     case 12:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_8); return;
     case 13:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_1); return;
     case 14:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_4); return;
     case 15:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionOption__SWIG_0); return;
     }
   }
   
@@ -84182,11 +84714,11 @@ XS(_wrap_new_ConversionProperties) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionProperties__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionProperties__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionProperties__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionProperties__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ConversionProperties__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ConversionProperties__SWIG_2); return;
     }
   }
   
@@ -84586,9 +85118,9 @@ XS(_wrap_ConversionProperties_getOption) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_getOption__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_getOption__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_getOption__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_getOption__SWIG_0); return;
     }
   }
   
@@ -86115,35 +86647,35 @@ XS(_wrap_ConversionProperties_addOption) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_4); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_8); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_14); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_14); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_12); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_12); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_10); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_3); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_6); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_7); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_13); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_13); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_11); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_11); return;
     case 12:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_9); return;
     case 13:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_2); return;
     case 14:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_5); return;
     case 15:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ConversionProperties_addOption__SWIG_1); return;
     }
   }
   
@@ -86904,11 +87436,11 @@ XS(_wrap_new_SBMLConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLConverter__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLConverter__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLConverter__SWIG_1); return;
     }
   }
   
@@ -87083,9 +87615,9 @@ XS(_wrap_SBMLConverter_getDocument) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLConverter_getDocument__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLConverter_getDocument__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLConverter_getDocument__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLConverter_getDocument__SWIG_1); return;
     }
   }
   
@@ -87660,9 +88192,9 @@ XS(_wrap_new_SBMLFunctionDefinitionConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLFunctionDefinitionConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLFunctionDefinitionConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLFunctionDefinitionConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLFunctionDefinitionConverter__SWIG_1); return;
     }
   }
   
@@ -87930,9 +88462,9 @@ XS(_wrap_new_SBMLIdConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLIdConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLIdConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLIdConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLIdConverter__SWIG_1); return;
     }
   }
   
@@ -88200,9 +88732,9 @@ XS(_wrap_new_SBMLInferUnitsConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLInferUnitsConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLInferUnitsConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLInferUnitsConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLInferUnitsConverter__SWIG_1); return;
     }
   }
   
@@ -88470,9 +89002,9 @@ XS(_wrap_new_SBMLInitialAssignmentConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLInitialAssignmentConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLInitialAssignmentConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLInitialAssignmentConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLInitialAssignmentConverter__SWIG_1); return;
     }
   }
   
@@ -88740,9 +89272,9 @@ XS(_wrap_new_SBMLLevelVersionConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLLevelVersionConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLLevelVersionConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLLevelVersionConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLLevelVersionConverter__SWIG_1); return;
     }
   }
   
@@ -89128,9 +89660,9 @@ XS(_wrap_new_SBMLLevel1Version1Converter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLLevel1Version1Converter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLLevel1Version1Converter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLLevel1Version1Converter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLLevel1Version1Converter__SWIG_1); return;
     }
   }
   
@@ -89398,9 +89930,9 @@ XS(_wrap_new_SBMLLocalParameterConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLLocalParameterConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLLocalParameterConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLLocalParameterConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLLocalParameterConverter__SWIG_1); return;
     }
   }
   
@@ -89668,9 +90200,9 @@ XS(_wrap_new_SBMLReactionConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLReactionConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLReactionConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLReactionConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLReactionConverter__SWIG_1); return;
     }
   }
   
@@ -89976,9 +90508,9 @@ XS(_wrap_new_SBMLRuleConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLRuleConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLRuleConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLRuleConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLRuleConverter__SWIG_1); return;
     }
   }
   
@@ -90246,9 +90778,9 @@ XS(_wrap_new_SBMLStripPackageConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLStripPackageConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLStripPackageConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLStripPackageConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLStripPackageConverter__SWIG_1); return;
     }
   }
   
@@ -90575,9 +91107,9 @@ XS(_wrap_new_SBMLUnitsConverter) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLUnitsConverter__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLUnitsConverter__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLUnitsConverter__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLUnitsConverter__SWIG_1); return;
     }
   }
   
@@ -90828,9 +91360,9 @@ XS(_wrap_new_SBMLValidator) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLValidator__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLValidator__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLValidator__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLValidator__SWIG_1); return;
     }
   }
   
@@ -91001,9 +91533,9 @@ XS(_wrap_SBMLValidator_getDocument) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLValidator_getDocument__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLValidator_getDocument__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLValidator_getDocument__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLValidator_getDocument__SWIG_1); return;
     }
   }
   
@@ -91318,11 +91850,11 @@ XS(_wrap_SBMLValidator_validate) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLValidator_validate__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLValidator_validate__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLValidator_validate__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLValidator_validate__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLValidator_validate__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLValidator_validate__SWIG_2); return;
     }
   }
   
@@ -91466,9 +91998,9 @@ XS(_wrap_SBMLValidator_getModel) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLValidator_getModel__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLValidator_getModel__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLValidator_getModel__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLValidator_getModel__SWIG_0); return;
     }
   }
   
@@ -91630,9 +92162,9 @@ XS(_wrap_new_SBMLExternalValidator) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLExternalValidator__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLExternalValidator__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLExternalValidator__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLExternalValidator__SWIG_1); return;
     }
   }
   
@@ -92185,9 +92717,9 @@ XS(_wrap_new_XMLAttributes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLAttributes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLAttributes__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLAttributes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLAttributes__SWIG_1); return;
     }
   }
   
@@ -92681,13 +93213,13 @@ XS(_wrap_XMLAttributes_add) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_1); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_add__SWIG_0); return;
     }
   }
   
@@ -93050,13 +93582,13 @@ XS(_wrap_XMLAttributes_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_remove__SWIG_1); return;
     }
   }
   
@@ -93340,11 +93872,11 @@ XS(_wrap_XMLAttributes_getIndex) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_getIndex__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_getIndex__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_getIndex__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_getIndex__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_getIndex__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_getIndex__SWIG_1); return;
     }
   }
   
@@ -93868,13 +94400,13 @@ XS(_wrap_XMLAttributes_getValue) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_1); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_getValue__SWIG_2); return;
     }
   }
   
@@ -94202,13 +94734,13 @@ XS(_wrap_XMLAttributes_hasAttribute) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLAttributes_hasAttribute__SWIG_1); return;
     }
   }
   
@@ -94333,9 +94865,9 @@ XS(_wrap_new_XMLConstructorException) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLConstructorException__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLConstructorException__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLConstructorException__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLConstructorException__SWIG_0); return;
     }
   }
   
@@ -94499,9 +95031,9 @@ XS(_wrap_new_XMLNamespaces) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNamespaces__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNamespaces__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNamespaces__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNamespaces__SWIG_1); return;
     }
   }
   
@@ -94714,9 +95246,9 @@ XS(_wrap_XMLNamespaces_add) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_add__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_add__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_add__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_add__SWIG_0); return;
     }
   }
   
@@ -94875,9 +95407,9 @@ XS(_wrap_XMLNamespaces_remove) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_remove__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_remove__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_remove__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_remove__SWIG_1); return;
     }
   }
   
@@ -95243,9 +95775,9 @@ XS(_wrap_XMLNamespaces_getPrefix) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_getPrefix__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_getPrefix__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_getPrefix__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_getPrefix__SWIG_1); return;
     }
   }
   
@@ -95453,11 +95985,11 @@ XS(_wrap_XMLNamespaces_getURI) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_getURI__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_getURI__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_getURI__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_getURI__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNamespaces_getURI__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNamespaces_getURI__SWIG_1); return;
     }
   }
   
@@ -96927,33 +97459,33 @@ XS(_wrap_new_XMLToken) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_9); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_13); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_13); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_12); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_12); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_6); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_8); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_11); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_11); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_3); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_5); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_7); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_10); return;
     case 12:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_2); return;
     case 13:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_4); return;
     case 14:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLToken__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLToken__SWIG_1); return;
     }
   }
   
@@ -97516,13 +98048,13 @@ XS(_wrap_XMLToken_addAttr) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_1); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_addAttr__SWIG_0); return;
     }
   }
   
@@ -97847,13 +98379,13 @@ XS(_wrap_XMLToken_removeAttr) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_removeAttr__SWIG_1); return;
     }
   }
   
@@ -98137,11 +98669,11 @@ XS(_wrap_XMLToken_getAttrIndex) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getAttrIndex__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getAttrIndex__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getAttrIndex__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getAttrIndex__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getAttrIndex__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getAttrIndex__SWIG_0); return;
     }
   }
   
@@ -98637,13 +99169,13 @@ XS(_wrap_XMLToken_getAttrValue) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getAttrValue__SWIG_1); return;
     }
   }
   
@@ -98971,13 +99503,13 @@ XS(_wrap_XMLToken_hasAttr) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_hasAttr__SWIG_1); return;
     }
   }
   
@@ -99262,9 +99794,9 @@ XS(_wrap_XMLToken_addNamespace) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_addNamespace__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_addNamespace__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_addNamespace__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_addNamespace__SWIG_0); return;
     }
   }
   
@@ -99423,9 +99955,9 @@ XS(_wrap_XMLToken_removeNamespace) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_removeNamespace__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_removeNamespace__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_removeNamespace__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_removeNamespace__SWIG_1); return;
     }
   }
   
@@ -99726,9 +100258,9 @@ XS(_wrap_XMLToken_getNamespacePrefix) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getNamespacePrefix__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getNamespacePrefix__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getNamespacePrefix__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getNamespacePrefix__SWIG_1); return;
     }
   }
   
@@ -99936,11 +100468,11 @@ XS(_wrap_XMLToken_getNamespaceURI) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getNamespaceURI__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getNamespaceURI__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getNamespaceURI__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getNamespaceURI__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLToken_getNamespaceURI__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLToken_getNamespaceURI__SWIG_1); return;
     }
   }
   
@@ -102091,37 +102623,37 @@ XS(_wrap_new_XMLNode) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_15); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_15); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_10); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_14); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_14); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_1); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_13); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_13); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_7); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_9); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_12); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_12); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_4); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_6); return;
     case 12:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_8); return;
     case 13:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_11); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_11); return;
     case 14:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_3); return;
     case 15:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_5); return;
     case 16:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLNode__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLNode__SWIG_2); return;
     }
   }
   
@@ -102607,13 +103139,13 @@ XS(_wrap_XMLNode_getChild) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_getChild__SWIG_3); return;
     }
   }
   
@@ -102888,9 +103420,9 @@ XS(_wrap_XMLNode_equals) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_equals__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_equals__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_equals__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_equals__SWIG_0); return;
     }
   }
   
@@ -103117,9 +103649,9 @@ XS(_wrap_XMLNode_convertStringToXMLNode) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_convertStringToXMLNode__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_convertStringToXMLNode__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLNode_convertStringToXMLNode__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLNode_convertStringToXMLNode__SWIG_0); return;
     }
   }
   
@@ -103440,15 +103972,15 @@ XS(_wrap_new_XMLTriple) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_4); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_2); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLTriple__SWIG_1); return;
     }
   }
   
@@ -104180,15 +104712,15 @@ XS(_wrap_new_XMLOutputStream) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_4); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_1); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOutputStream__SWIG_0); return;
     }
   }
   
@@ -104468,11 +105000,11 @@ XS(_wrap_XMLOutputStream_endElement) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_endElement__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_endElement__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_endElement__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_endElement__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_endElement__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_endElement__SWIG_0); return;
     }
   }
   
@@ -104762,11 +105294,11 @@ XS(_wrap_XMLOutputStream_startElement) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_startElement__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_startElement__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_startElement__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_startElement__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_startElement__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_startElement__SWIG_0); return;
     }
   }
   
@@ -105019,11 +105551,11 @@ XS(_wrap_XMLOutputStream_startEndElement) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_startEndElement__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_startEndElement__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_startEndElement__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_startEndElement__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_startEndElement__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_startEndElement__SWIG_0); return;
     }
   }
   
@@ -106957,43 +107489,43 @@ XS(_wrap_XMLOutputStream_writeAttribute) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_8); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_17); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_17); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_14); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_14); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_11); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_11); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_2); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_5); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_6); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_15); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_15); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_12); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_12); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_9); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_0); return;
     case 12:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_3); return;
     case 13:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_7); return;
     case 14:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_18); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_18); return;
     case 15:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_16); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_16); return;
     case 16:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_13); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_13); return;
     case 17:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_10); return;
     case 18:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_1); return;
     case 19:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeAttribute__SWIG_4); return;
     }
   }
   
@@ -107029,7 +107561,74 @@ XS(_wrap_XMLOutputStream_writeXMLDecl) {
 }
 
 
-XS(_wrap_XMLOutputStream_writeComment) {
+XS(_wrap_XMLOutputStream_writeComment__SWIG_0) {
+  {
+    XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
+    std::string *arg2 = 0 ;
+    std::string *arg3 = 0 ;
+    bool arg4 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int res2 = SWIG_OLDOBJ ;
+    int res3 = SWIG_OLDOBJ ;
+    bool val4 ;
+    int ecode4 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 4) || (items > 4)) {
+      SWIG_croak("Usage: XMLOutputStream_writeComment(self,programName,programVersion,writeTimestamp);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_XMLOutputStream, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "XMLOutputStream_writeComment" "', argument " "1"" of type '" "XMLOutputStream *""'"); 
+    }
+    arg1 = reinterpret_cast< XMLOutputStream * >(argp1);
+    {
+      std::string *ptr = (std::string *)0;
+      res2 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(1), &ptr);
+      if (!SWIG_IsOK(res2)) {
+        SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "XMLOutputStream_writeComment" "', argument " "2"" of type '" "std::string const &""'"); 
+      }
+      if (!ptr) {
+        SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_writeComment" "', argument " "2"" of type '" "std::string const &""'"); 
+      }
+      arg2 = ptr;
+    }
+    {
+      std::string *ptr = (std::string *)0;
+      res3 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(2), &ptr);
+      if (!SWIG_IsOK(res3)) {
+        SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "XMLOutputStream_writeComment" "', argument " "3"" of type '" "std::string const &""'"); 
+      }
+      if (!ptr) {
+        SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_writeComment" "', argument " "3"" of type '" "std::string const &""'"); 
+      }
+      arg3 = ptr;
+    }
+    ecode4 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(3), &val4);
+    if (!SWIG_IsOK(ecode4)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "XMLOutputStream_writeComment" "', argument " "4"" of type '" "bool""'");
+    } 
+    arg4 = static_cast< bool >(val4);
+    (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3,arg4);
+    ST(argvi) = sv_newmortal();
+    
+    if (SWIG_IsNewObj(res2)) delete arg2;
+    if (SWIG_IsNewObj(res3)) delete arg3;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    if (SWIG_IsNewObj(res2)) delete arg2;
+    if (SWIG_IsNewObj(res3)) delete arg3;
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_writeComment__SWIG_1) {
   {
     XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
     std::string *arg2 = 0 ;
@@ -107086,6 +107685,110 @@ XS(_wrap_XMLOutputStream_writeComment) {
 }
 
 
+XS(_wrap_XMLOutputStream_writeComment) {
+  dXSARGS;
+  
+  {
+    unsigned long _index = 0;
+    SWIG_TypeRank _rank = 0; 
+    if (items == 3) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_XMLOutputStream, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_1;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(1), (std::string**)(0));
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_1;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(2), (std::string**)(0));
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_1;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 1;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_1:
+    
+    if (items == 4) {
+      SWIG_TypeRank _ranki = 0;
+      SWIG_TypeRank _rankm = 0;
+      SWIG_TypeRank _pi = 1;
+      int _v = 0;
+      {
+        void *vptr = 0;
+        int res = SWIG_ConvertPtr(ST(0), &vptr, SWIGTYPE_p_XMLOutputStream, 0);
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(1), (std::string**)(0));
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        int res = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(2), (std::string**)(0));
+        _v = SWIG_CheckState(res);
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      {
+        {
+          int res = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(3), NULL);
+          _v = SWIG_CheckState(res);
+        }
+      }
+      if (!_v) goto check_2;
+      _ranki += _v*_pi;
+      _rankm += _pi;
+      _pi *= SWIG_MAXCASTRANK;
+      if (!_index || (_ranki < _rank)) {
+        _rank = _ranki; _index = 2;
+        if (_rank == _rankm) goto dispatch;
+      }
+    }
+  check_2:
+    
+  dispatch:
+    switch(_index) {
+    case 1:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeComment__SWIG_1); return;
+    case 2:
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLOutputStream_writeComment__SWIG_0); return;
+    }
+  }
+  
+  croak("No matching function for overloaded 'XMLOutputStream_writeComment'");
+  XSRETURN(0);
+}
+
+
 XS(_wrap_XMLOutputStream_downIndent) {
   {
     XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
@@ -107209,6 +107912,202 @@ XS(_wrap_XMLOutputStream_setSBMLNamespaces) {
 }
 
 
+XS(_wrap_XMLOutputStream_getWriteComment) {
+  {
+    int argvi = 0;
+    bool result;
+    dXSARGS;
+    
+    if ((items < 0) || (items > 0)) {
+      SWIG_croak("Usage: XMLOutputStream_getWriteComment();");
+    }
+    result = (bool)XMLOutputStream::getWriteComment();
+    {
+      ST(argvi) = sv_newmortal();
+      sv_setiv(ST(argvi++), (IV) result);
+    }
+    XSRETURN(argvi);
+  fail:
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_setWriteComment) {
+  {
+    bool arg1 ;
+    bool val1 ;
+    int ecode1 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: XMLOutputStream_setWriteComment(writeComment);");
+    }
+    ecode1 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
+    if (!SWIG_IsOK(ecode1)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "XMLOutputStream_setWriteComment" "', argument " "1"" of type '" "bool""'");
+    } 
+    arg1 = static_cast< bool >(val1);
+    XMLOutputStream::setWriteComment(arg1);
+    ST(argvi) = sv_newmortal();
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_getWriteTimestamp) {
+  {
+    int argvi = 0;
+    bool result;
+    dXSARGS;
+    
+    if ((items < 0) || (items > 0)) {
+      SWIG_croak("Usage: XMLOutputStream_getWriteTimestamp();");
+    }
+    result = (bool)XMLOutputStream::getWriteTimestamp();
+    {
+      ST(argvi) = sv_newmortal();
+      sv_setiv(ST(argvi++), (IV) result);
+    }
+    XSRETURN(argvi);
+  fail:
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_setWriteTimestamp) {
+  {
+    bool arg1 ;
+    bool val1 ;
+    int ecode1 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: XMLOutputStream_setWriteTimestamp(writeTimestamp);");
+    }
+    ecode1 = SWIG_AsVal_bool SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
+    if (!SWIG_IsOK(ecode1)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "XMLOutputStream_setWriteTimestamp" "', argument " "1"" of type '" "bool""'");
+    } 
+    arg1 = static_cast< bool >(val1);
+    XMLOutputStream::setWriteTimestamp(arg1);
+    ST(argvi) = sv_newmortal();
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_getLibraryName) {
+  {
+    int argvi = 0;
+    std::string result;
+    dXSARGS;
+    
+    if ((items < 0) || (items > 0)) {
+      SWIG_croak("Usage: XMLOutputStream_getLibraryName();");
+    }
+    result = XMLOutputStream::getLibraryName();
+    ST(argvi) = SWIG_From_std_string  SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ;
+    XSRETURN(argvi);
+  fail:
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_setLibraryName) {
+  {
+    std::string *arg1 = 0 ;
+    int res1 = SWIG_OLDOBJ ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: XMLOutputStream_setLibraryName(libraryName);");
+    }
+    {
+      std::string *ptr = (std::string *)0;
+      res1 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), &ptr);
+      if (!SWIG_IsOK(res1)) {
+        SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "XMLOutputStream_setLibraryName" "', argument " "1"" of type '" "std::string const &""'"); 
+      }
+      if (!ptr) {
+        SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_setLibraryName" "', argument " "1"" of type '" "std::string const &""'"); 
+      }
+      arg1 = ptr;
+    }
+    XMLOutputStream::setLibraryName((std::string const &)*arg1);
+    ST(argvi) = sv_newmortal();
+    if (SWIG_IsNewObj(res1)) delete arg1;
+    XSRETURN(argvi);
+  fail:
+    if (SWIG_IsNewObj(res1)) delete arg1;
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_getLibraryVersion) {
+  {
+    int argvi = 0;
+    std::string result;
+    dXSARGS;
+    
+    if ((items < 0) || (items > 0)) {
+      SWIG_croak("Usage: XMLOutputStream_getLibraryVersion();");
+    }
+    result = XMLOutputStream::getLibraryVersion();
+    ST(argvi) = SWIG_From_std_string  SWIG_PERL_CALL_ARGS_1(static_cast< std::string >(result)); argvi++ ;
+    XSRETURN(argvi);
+  fail:
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_XMLOutputStream_setLibraryVersion) {
+  {
+    std::string *arg1 = 0 ;
+    int res1 = SWIG_OLDOBJ ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: XMLOutputStream_setLibraryVersion(libraryVersion);");
+    }
+    {
+      std::string *ptr = (std::string *)0;
+      res1 = SWIG_AsPtr_std_string SWIG_PERL_CALL_ARGS_2(ST(0), &ptr);
+      if (!SWIG_IsOK(res1)) {
+        SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "XMLOutputStream_setLibraryVersion" "', argument " "1"" of type '" "std::string const &""'"); 
+      }
+      if (!ptr) {
+        SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_setLibraryVersion" "', argument " "1"" of type '" "std::string const &""'"); 
+      }
+      arg1 = ptr;
+    }
+    XMLOutputStream::setLibraryVersion((std::string const &)*arg1);
+    ST(argvi) = sv_newmortal();
+    if (SWIG_IsNewObj(res1)) delete arg1;
+    XSRETURN(argvi);
+  fail:
+    if (SWIG_IsNewObj(res1)) delete arg1;
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_new_XMLOwningOutputStringStream__SWIG_0) {
   {
     std::string *arg1 = 0 ;
@@ -107585,15 +108484,15 @@ XS(_wrap_new_XMLOwningOutputStringStream) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_4); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_1); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputStringStream__SWIG_0); return;
     }
   }
   
@@ -108124,15 +109023,15 @@ XS(_wrap_new_XMLOwningOutputFileStream) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_4); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_1); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLOwningOutputFileStream__SWIG_0); return;
     }
   }
   
@@ -108492,13 +109391,13 @@ XS(_wrap_new_XMLInputStream) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_1); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLInputStream__SWIG_0); return;
     }
   }
   
@@ -109099,9 +109998,9 @@ XS(_wrap_XMLInputStream_determineNumberChildren) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLInputStream_determineNumberChildren__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLInputStream_determineNumberChildren__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLInputStream_determineNumberChildren__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLInputStream_determineNumberChildren__SWIG_0); return;
     }
   }
   
@@ -109987,21 +110886,21 @@ XS(_wrap_new_XMLError) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_6); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_7); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_5); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_4); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_3); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_2); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_1); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLError__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLError__SWIG_0); return;
     }
   }
   
@@ -110877,9 +111776,9 @@ XS(_wrap_new_XMLErrorLog) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLErrorLog__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLErrorLog__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_XMLErrorLog__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_XMLErrorLog__SWIG_1); return;
     }
   }
   
@@ -111064,9 +111963,9 @@ XS(_wrap_XMLErrorLog_add) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLErrorLog_add__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLErrorLog_add__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLErrorLog_add__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLErrorLog_add__SWIG_1); return;
     }
   }
   
@@ -111320,11 +112219,11 @@ XS(_wrap_XMLErrorLog_printErrors) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLErrorLog_printErrors__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLErrorLog_printErrors__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLErrorLog_printErrors__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLErrorLog_printErrors__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLErrorLog_printErrors__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLErrorLog_printErrors__SWIG_2); return;
     }
   }
   
@@ -111661,9 +112560,9 @@ XS(_wrap_XMLErrorLog_changeErrorSeverity) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLErrorLog_changeErrorSeverity__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLErrorLog_changeErrorSeverity__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_XMLErrorLog_changeErrorSeverity__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_XMLErrorLog_changeErrorSeverity__SWIG_0); return;
     }
   }
   
@@ -111905,9 +112804,9 @@ XS(_wrap_SBMLErrorLog_getNumFailsWithSeverity) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_getNumFailsWithSeverity__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_getNumFailsWithSeverity__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_getNumFailsWithSeverity__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_getNumFailsWithSeverity__SWIG_1); return;
     }
   }
   
@@ -112003,9 +112902,9 @@ XS(_wrap_new_SBMLErrorLog) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLErrorLog__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLErrorLog__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLErrorLog__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLErrorLog__SWIG_1); return;
     }
   }
   
@@ -113217,23 +114116,23 @@ XS(_wrap_SBMLErrorLog_logError) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_8); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_7); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_6); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_5); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_4); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_3); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_2); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_1); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logError__SWIG_0); return;
     }
   }
   
@@ -114924,27 +115823,27 @@ XS(_wrap_SBMLErrorLog_logPackageError) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_10); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_9); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_8); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_7); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_6); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_5); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_4); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_3); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_2); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_1); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBMLErrorLog_logPackageError__SWIG_0); return;
     }
   }
   
@@ -116622,29 +117521,29 @@ XS(_wrap_new_SBMLError) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_10); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_11); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_11); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_9); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_8); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_7); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_6); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_5); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_4); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_3); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_2); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_1); return;
     case 12:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLError__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLError__SWIG_0); return;
     }
   }
   
@@ -116897,13 +117796,13 @@ XS(_wrap_new_CVTerm) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_CVTerm__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_CVTerm__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_CVTerm__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_CVTerm__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_CVTerm__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_CVTerm__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_CVTerm__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_CVTerm__SWIG_0); return;
     }
   }
   
@@ -117047,9 +117946,9 @@ XS(_wrap_CVTerm_getQualifierType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getQualifierType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getQualifierType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getQualifierType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getQualifierType__SWIG_1); return;
     }
   }
   
@@ -117165,9 +118064,9 @@ XS(_wrap_CVTerm_getModelQualifierType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getModelQualifierType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getModelQualifierType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getModelQualifierType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getModelQualifierType__SWIG_1); return;
     }
   }
   
@@ -117283,9 +118182,9 @@ XS(_wrap_CVTerm_getBiologicalQualifierType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getBiologicalQualifierType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getBiologicalQualifierType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getBiologicalQualifierType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getBiologicalQualifierType__SWIG_1); return;
     }
   }
   
@@ -117401,9 +118300,9 @@ XS(_wrap_CVTerm_getResources) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getResources__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getResources__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getResources__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getResources__SWIG_1); return;
     }
   }
   
@@ -117519,9 +118418,9 @@ XS(_wrap_CVTerm_getNumResources) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getNumResources__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getNumResources__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getNumResources__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getNumResources__SWIG_1); return;
     }
   }
   
@@ -117677,9 +118576,9 @@ XS(_wrap_CVTerm_getResourceURI) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getResourceURI__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getResourceURI__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getResourceURI__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getResourceURI__SWIG_1); return;
     }
   }
   
@@ -117914,9 +118813,9 @@ XS(_wrap_CVTerm_setModelQualifierType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_setModelQualifierType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_setModelQualifierType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_setModelQualifierType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_setModelQualifierType__SWIG_1); return;
     }
   }
   
@@ -118037,9 +118936,9 @@ XS(_wrap_CVTerm_setBiologicalQualifierType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_setBiologicalQualifierType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_setBiologicalQualifierType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_setBiologicalQualifierType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_setBiologicalQualifierType__SWIG_1); return;
     }
   }
   
@@ -118302,9 +119201,9 @@ XS(_wrap_CVTerm_hasRequiredAttributes) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_hasRequiredAttributes__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_hasRequiredAttributes__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_hasRequiredAttributes__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_hasRequiredAttributes__SWIG_1); return;
     }
   }
   
@@ -118488,9 +119387,9 @@ XS(_wrap_CVTerm_getNestedCVTerm) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getNestedCVTerm__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getNestedCVTerm__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getNestedCVTerm__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getNestedCVTerm__SWIG_1); return;
     }
   }
   
@@ -118606,9 +119505,9 @@ XS(_wrap_CVTerm_getListNestedCVTerms) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getListNestedCVTerms__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getListNestedCVTerms__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_CVTerm_getListNestedCVTerms__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_CVTerm_getListNestedCVTerms__SWIG_1); return;
     }
   }
   
@@ -118693,6 +119592,120 @@ XS(_wrap_CVTerm_removeNestedCVTerm) {
 }
 
 
+XS(_wrap_ModelQualifierType_toString) {
+  {
+    ModelQualifierType_t arg1 ;
+    int val1 ;
+    int ecode1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: ModelQualifierType_toString(type);");
+    }
+    ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
+    if (!SWIG_IsOK(ecode1)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "ModelQualifierType_toString" "', argument " "1"" of type '" "ModelQualifierType_t""'");
+    } 
+    arg1 = static_cast< ModelQualifierType_t >(val1);
+    result = (char *)ModelQualifierType_toString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_BiolQualifierType_toString) {
+  {
+    BiolQualifierType_t arg1 ;
+    int val1 ;
+    int ecode1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: BiolQualifierType_toString(type);");
+    }
+    ecode1 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(0), &val1);
+    if (!SWIG_IsOK(ecode1)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "BiolQualifierType_toString" "', argument " "1"" of type '" "BiolQualifierType_t""'");
+    } 
+    arg1 = static_cast< BiolQualifierType_t >(val1);
+    result = (char *)BiolQualifierType_toString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_ModelQualifierType_fromString) {
+  {
+    char *arg1 = (char *) 0 ;
+    int res1 ;
+    char *buf1 = 0 ;
+    int alloc1 = 0 ;
+    int argvi = 0;
+    ModelQualifierType_t result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: ModelQualifierType_fromString(s);");
+    }
+    res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ModelQualifierType_fromString" "', argument " "1"" of type '" "char const *""'");
+    }
+    arg1 = reinterpret_cast< char * >(buf1);
+    result = (ModelQualifierType_t)ModelQualifierType_fromString((char const *)arg1);
+    ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ;
+    if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+    XSRETURN(argvi);
+  fail:
+    if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_BiolQualifierType_fromString) {
+  {
+    char *arg1 = (char *) 0 ;
+    int res1 ;
+    char *buf1 = 0 ;
+    int alloc1 = 0 ;
+    int argvi = 0;
+    BiolQualifierType_t result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: BiolQualifierType_fromString(s);");
+    }
+    res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BiolQualifierType_fromString" "', argument " "1"" of type '" "char const *""'");
+    }
+    arg1 = reinterpret_cast< char * >(buf1);
+    result = (BiolQualifierType_t)BiolQualifierType_fromString((char const *)arg1);
+    ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ;
+    if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+    XSRETURN(argvi);
+  fail:
+    if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_new_Date__SWIG_0) {
   {
     unsigned int arg1 ;
@@ -120030,29 +121043,29 @@ XS(_wrap_new_Date) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_9); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_9); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_11); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_11); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_8); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_8); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_10); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_10); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_7); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_7); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_6); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_6); return;
     case 7:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_5); return;
     case 8:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_4); return;
     case 9:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_3); return;
     case 10:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_2); return;
     case 11:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_1); return;
     case 12:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_Date__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_Date__SWIG_0); return;
     }
   }
   
@@ -121010,11 +122023,11 @@ XS(_wrap_new_ModelCreator) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ModelCreator__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ModelCreator__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ModelCreator__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ModelCreator__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ModelCreator__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ModelCreator__SWIG_2); return;
     }
   }
   
@@ -121904,9 +122917,9 @@ XS(_wrap_new_ModelHistory) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ModelHistory__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ModelHistory__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ModelHistory__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ModelHistory__SWIG_1); return;
     }
   }
   
@@ -122312,9 +123325,9 @@ XS(_wrap_ModelHistory_getModifiedDate) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ModelHistory_getModifiedDate__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ModelHistory_getModifiedDate__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ModelHistory_getModifiedDate__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ModelHistory_getModifiedDate__SWIG_1); return;
     }
   }
   
@@ -122871,11 +123884,11 @@ XS(_wrap_RDFAnnotationParser_createRDFAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_createRDFAnnotation__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_createRDFAnnotation__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_createRDFAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_createRDFAnnotation__SWIG_1); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_createRDFAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_createRDFAnnotation__SWIG_0); return;
     }
   }
   
@@ -123435,17 +124448,17 @@ XS(_wrap_RDFAnnotationParser_parseRDFAnnotation) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_1); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_5); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_5); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_0); return;
     case 6:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_4); return;
     }
   }
   
@@ -124020,13 +125033,13 @@ XS(_wrap_new_SBaseExtensionPoint) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_3); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_0); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_2); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBaseExtensionPoint__SWIG_1); return;
     }
   }
   
@@ -124682,9 +125695,9 @@ XS(_wrap_SBasePlugin_getSBMLDocument) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBasePlugin_getSBMLDocument__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBasePlugin_getSBMLDocument__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBasePlugin_getSBMLDocument__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBasePlugin_getSBMLDocument__SWIG_1); return;
     }
   }
   
@@ -124836,9 +125849,9 @@ XS(_wrap_SBasePlugin_getParentSBMLObject) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBasePlugin_getParentSBMLObject__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBasePlugin_getParentSBMLObject__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBasePlugin_getParentSBMLObject__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBasePlugin_getParentSBMLObject__SWIG_1); return;
     }
   }
   
@@ -125787,9 +126800,9 @@ XS(_wrap_SBasePlugin_getListOfAllElements) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBasePlugin_getListOfAllElements__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBasePlugin_getListOfAllElements__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_SBasePlugin_getListOfAllElements__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_SBasePlugin_getListOfAllElements__SWIG_0); return;
     }
   }
   
@@ -125954,9 +126967,9 @@ XS(_wrap_new_SBMLDocumentPlugin) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLDocumentPlugin__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLDocumentPlugin__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_SBMLDocumentPlugin__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_SBMLDocumentPlugin__SWIG_0); return;
     }
   }
   
@@ -128043,9 +129056,9 @@ XS(_wrap_representsFunction) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsFunction__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsFunction__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsFunction__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsFunction__SWIG_0); return;
     }
   }
   
@@ -128188,9 +129201,9 @@ XS(_wrap_representsUnaryFunction) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsUnaryFunction__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsUnaryFunction__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsUnaryFunction__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsUnaryFunction__SWIG_0); return;
     }
   }
   
@@ -128333,9 +129346,9 @@ XS(_wrap_representsBinaryFunction) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsBinaryFunction__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsBinaryFunction__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsBinaryFunction__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsBinaryFunction__SWIG_0); return;
     }
   }
   
@@ -128478,9 +129491,9 @@ XS(_wrap_representsNaryFunction) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsNaryFunction__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsNaryFunction__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsNaryFunction__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsNaryFunction__SWIG_0); return;
     }
   }
   
@@ -128623,9 +129636,9 @@ XS(_wrap_representsQualifier) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsQualifier__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsQualifier__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_representsQualifier__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_representsQualifier__SWIG_0); return;
     }
   }
   
@@ -129124,9 +130137,9 @@ XS(_wrap_ASTBase_setType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_setType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_setType__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_setType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_setType__SWIG_1); return;
     }
   }
   
@@ -130384,9 +131397,9 @@ XS(_wrap_ASTBase_read) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_read__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_read__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_read__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_read__SWIG_0); return;
     }
   }
   
@@ -130787,9 +131800,9 @@ XS(_wrap_ASTBase_logError) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_logError__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_logError__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_logError__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_logError__SWIG_0); return;
     }
   }
   
@@ -131663,13 +132676,13 @@ XS(_wrap_ASTBase_getPlugin) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_0); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_getPlugin__SWIG_1); return;
     }
   }
   
@@ -132055,9 +133068,9 @@ XS(_wrap_ASTBase_writeNodeOfType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_writeNodeOfType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_writeNodeOfType__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBase_writeNodeOfType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBase_writeNodeOfType__SWIG_0); return;
     }
   }
   
@@ -132700,15 +133713,15 @@ XS(_wrap_new_ASTNode) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ASTNode__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ASTNode__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ASTNode__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ASTNode__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ASTNode__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ASTNode__SWIG_4); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ASTNode__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ASTNode__SWIG_0); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_ASTNode__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_ASTNode__SWIG_2); return;
     }
   }
   
@@ -133114,9 +134127,9 @@ XS(_wrap_ASTNode_replaceChild) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_replaceChild__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_replaceChild__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_replaceChild__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_replaceChild__SWIG_0); return;
     }
   }
   
@@ -134093,9 +135106,9 @@ XS(_wrap_ASTNode_returnsBoolean) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_returnsBoolean__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_returnsBoolean__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_returnsBoolean__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_returnsBoolean__SWIG_0); return;
     }
   }
   
@@ -135520,13 +136533,13 @@ XS(_wrap_ASTNode_setValue) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_2); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_1); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_setValue__SWIG_3); return;
     }
   }
   
@@ -136122,9 +137135,9 @@ XS(_wrap_ASTNode_setDefinitionURL) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_setDefinitionURL__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_setDefinitionURL__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_setDefinitionURL__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_setDefinitionURL__SWIG_1); return;
     }
   }
   
@@ -136731,9 +137744,9 @@ XS(_wrap_ASTNode_read) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_read__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_read__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_read__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_read__SWIG_0); return;
     }
   }
   
@@ -136951,9 +137964,9 @@ XS(_wrap_ASTNode_writeNodeOfType) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_writeNodeOfType__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_writeNodeOfType__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_writeNodeOfType__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_writeNodeOfType__SWIG_0); return;
     }
   }
   
@@ -137337,13 +138350,13 @@ XS(_wrap_ASTNode_getPlugin) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_2); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_3); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_0); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTNode_getPlugin__SWIG_1); return;
     }
   }
   
@@ -137352,6 +138365,34 @@ XS(_wrap_ASTNode_getPlugin) {
 }
 
 
+XS(_wrap_ASTNode_getNumPiece) {
+  {
+    ASTNode *arg1 = (ASTNode *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    unsigned int result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: ASTNode_getNumPiece(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_ASTNode, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ASTNode_getNumPiece" "', argument " "1"" of type '" "ASTNode const *""'"); 
+    }
+    arg1 = reinterpret_cast< ASTNode * >(argp1);
+    result = (unsigned int)((ASTNode const *)arg1)->getNumPiece();
+    ST(argvi) = SWIG_From_unsigned_SS_int  SWIG_PERL_CALL_ARGS_1(static_cast< unsigned int >(result)); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_ASTNode_getListOfNodes) {
   {
     ASTNode *arg1 = (ASTNode *) 0 ;
@@ -137464,9 +138505,9 @@ XS(_wrap_new_MathML) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_MathML__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_MathML__SWIG_1); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_MathML__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_MathML__SWIG_0); return;
     }
   }
   
@@ -138461,15 +139502,15 @@ XS(_wrap_new_L3ParserSettings) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_4); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_4); return;
     case 3:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_3); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_3); return;
     case 4:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_2); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_2); return;
     case 5:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_new_L3ParserSettings__SWIG_1); return;
     }
   }
   
@@ -139543,9 +140584,9 @@ XS(_wrap_ASTBasePlugin_getParentASTObject) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBasePlugin_getParentASTObject__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBasePlugin_getParentASTObject__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_ASTBasePlugin_getParentASTObject__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_ASTBasePlugin_getParentASTObject__SWIG_1); return;
     }
   }
   
@@ -143695,6 +144736,7 @@ static swig_command_info swig_commands[] = {
 {"LibSBMLc::SBO_intToString", _wrap_SBO_intToString},
 {"LibSBMLc::SBO_stringToInt", _wrap_SBO_stringToInt},
 {"LibSBMLc::SBO_checkTerm", _wrap_SBO_checkTerm},
+{"LibSBMLc::SBO_getParentBranch", _wrap_SBO_getParentBranch},
 {"LibSBMLc::new_SBO", _wrap_new_SBO},
 {"LibSBMLc::delete_SBO", _wrap_delete_SBO},
 {"LibSBMLc::SyntaxChecker_isValidSBMLSId", _wrap_SyntaxChecker_isValidSBMLSId},
@@ -144044,6 +145086,14 @@ static swig_command_info swig_commands[] = {
 {"LibSBMLc::XMLOutputStream_upIndent", _wrap_XMLOutputStream_upIndent},
 {"LibSBMLc::XMLOutputStream_getSBMLNamespaces", _wrap_XMLOutputStream_getSBMLNamespaces},
 {"LibSBMLc::XMLOutputStream_setSBMLNamespaces", _wrap_XMLOutputStream_setSBMLNamespaces},
+{"LibSBMLc::XMLOutputStream_getWriteComment", _wrap_XMLOutputStream_getWriteComment},
+{"LibSBMLc::XMLOutputStream_setWriteComment", _wrap_XMLOutputStream_setWriteComment},
+{"LibSBMLc::XMLOutputStream_getWriteTimestamp", _wrap_XMLOutputStream_getWriteTimestamp},
+{"LibSBMLc::XMLOutputStream_setWriteTimestamp", _wrap_XMLOutputStream_setWriteTimestamp},
+{"LibSBMLc::XMLOutputStream_getLibraryName", _wrap_XMLOutputStream_getLibraryName},
+{"LibSBMLc::XMLOutputStream_setLibraryName", _wrap_XMLOutputStream_setLibraryName},
+{"LibSBMLc::XMLOutputStream_getLibraryVersion", _wrap_XMLOutputStream_getLibraryVersion},
+{"LibSBMLc::XMLOutputStream_setLibraryVersion", _wrap_XMLOutputStream_setLibraryVersion},
 {"LibSBMLc::new_XMLOwningOutputStringStream", _wrap_new_XMLOwningOutputStringStream},
 {"LibSBMLc::delete_XMLOwningOutputStringStream", _wrap_delete_XMLOwningOutputStringStream},
 {"LibSBMLc::new_XMLOwningOutputFileStream", _wrap_new_XMLOwningOutputFileStream},
@@ -144139,6 +145189,10 @@ static swig_command_info swig_commands[] = {
 {"LibSBMLc::CVTerm_getListNestedCVTerms", _wrap_CVTerm_getListNestedCVTerms},
 {"LibSBMLc::CVTerm_addNestedCVTerm", _wrap_CVTerm_addNestedCVTerm},
 {"LibSBMLc::CVTerm_removeNestedCVTerm", _wrap_CVTerm_removeNestedCVTerm},
+{"LibSBMLc::ModelQualifierType_toString", _wrap_ModelQualifierType_toString},
+{"LibSBMLc::BiolQualifierType_toString", _wrap_BiolQualifierType_toString},
+{"LibSBMLc::ModelQualifierType_fromString", _wrap_ModelQualifierType_fromString},
+{"LibSBMLc::BiolQualifierType_fromString", _wrap_BiolQualifierType_fromString},
 {"LibSBMLc::delete_Date", _wrap_delete_Date},
 {"LibSBMLc::new_Date", _wrap_new_Date},
 {"LibSBMLc::Date_clone", _wrap_Date_clone},
@@ -144515,6 +145569,7 @@ static swig_command_info swig_commands[] = {
 {"LibSBMLc::ASTNode_getTypeCode", _wrap_ASTNode_getTypeCode},
 {"LibSBMLc::ASTNode_getPackageName", _wrap_ASTNode_getPackageName},
 {"LibSBMLc::ASTNode_getPlugin", _wrap_ASTNode_getPlugin},
+{"LibSBMLc::ASTNode_getNumPiece", _wrap_ASTNode_getNumPiece},
 {"LibSBMLc::ASTNode_getListOfNodes", _wrap_ASTNode_getListOfNodes},
 {"LibSBMLc::new_MathML", _wrap_new_MathML},
 {"LibSBMLc::delete_MathML", _wrap_delete_MathML},
@@ -144859,25 +145914,30 @@ XS(SWIG_init) {
   
   /* Install commands */
   for (i = 0; swig_commands[i].name; i++) {
-    newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
+    // Casts only needed for Perl < 5.10.
+#ifdef __cplusplus
+    newXS(const_cast<char*>(swig_commands[i].name), swig_commands[i].wrapper, const_cast<char*>(__FILE__));
+#else
+    newXS((char*)swig_commands[i].name, swig_commands[i].wrapper, (char*)__FILE__);
+#endif
   }
   
   /* Install variables */
   for (i = 0; swig_variables[i].name; i++) {
     SV *sv;
-    sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
+    sv = get_sv(swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
     if (swig_variables[i].type) {
       SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
     } else {
       sv_setiv(sv,(IV) 0);
     }
-    swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
+    swig_create_magic(sv, swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
   }
   
   /* Install constant */
   for (i = 0; swig_constants[i].type; i++) {
     SV *sv;
-    sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
+    sv = get_sv(swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
     switch(swig_constants[i].type) {
     case SWIG_INT:
       sv_setiv(sv, (IV) swig_constants[i].lvalue);
@@ -144886,7 +145946,7 @@ XS(SWIG_init) {
       sv_setnv(sv, (double) swig_constants[i].dvalue);
       break;
     case SWIG_STRING:
-      sv_setpv(sv, (char *) swig_constants[i].pvalue);
+      sv_setpv(sv, (const char *) swig_constants[i].pvalue);
       break;
     case SWIG_POINTER:
       SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
@@ -144906,17 +145966,17 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_ListWrapperT_ASTNode_t, (void*) "LibSBML::ASTNodeList");
   SWIG_TypeClientData(SWIGTYPE_p_ListWrapperT_SBMLNamespaces_t, (void*) "LibSBML::SBMLNamespacesList");
   SWIG_TypeClientData(SWIGTYPE_p_ListWrapperT_SBase_t, (void*) "LibSBML::SBaseList");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OStream_COUT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OStream::COUT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OStream_CERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OStream::CERR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OStream_CLOG", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OStream::CLOG)));
     SvREADONLY_on(sv);
@@ -144924,147 +145984,152 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_OStream, (void*) "LibSBML::OStream");
   SWIG_TypeClientData(SWIGTYPE_p_OFStream, (void*) "LibSBML::OFStream");
   SWIG_TypeClientData(SWIGTYPE_p_OStringStream, (void*) "LibSBML::OStringStream");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_DOTTED_VERSION", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_FromCharPtr("5.12.0"));
+    sv_setsv(sv, SWIG_FromCharPtr("5.13.0"));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_VERSION", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(51200)));
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(51300)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_VERSION_STRING", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_FromCharPtr("51200"));
+    sv_setsv(sv, SWIG_FromCharPtr("51300"));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_OPERATION_SUCCESS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_OPERATION_SUCCESS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_INDEX_EXCEEDS_SIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_INDEX_EXCEEDS_SIZE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_UNEXPECTED_ATTRIBUTE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_UNEXPECTED_ATTRIBUTE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_OPERATION_FAILED", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_OPERATION_FAILED)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_INVALID_ATTRIBUTE_VALUE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_INVALID_ATTRIBUTE_VALUE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_INVALID_OBJECT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_INVALID_OBJECT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_DUPLICATE_OBJECT_ID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_DUPLICATE_OBJECT_ID)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_LEVEL_MISMATCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_LEVEL_MISMATCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_VERSION_MISMATCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_VERSION_MISMATCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_INVALID_XML_OPERATION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_INVALID_XML_OPERATION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_NAMESPACES_MISMATCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_NAMESPACES_MISMATCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_DUPLICATE_ANNOTATION_NS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_DUPLICATE_ANNOTATION_NS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_ANNOTATION_NAME_NOT_FOUND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_ANNOTATION_NAME_NOT_FOUND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_ANNOTATION_NS_NOT_FOUND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_ANNOTATION_NS_NOT_FOUND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_MISSING_METAID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_MISSING_METAID)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_DEPRECATED_ATTRIBUTE", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_DEPRECATED_ATTRIBUTE)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_PKG_VERSION_MISMATCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_PKG_VERSION_MISMATCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_PKG_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_PKG_UNKNOWN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_PKG_UNKNOWN_VERSION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_PKG_UNKNOWN_VERSION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_PKG_DISABLED", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_PKG_DISABLED)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_PKG_CONFLICTED_VERSION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_PKG_CONFLICTED_VERSION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_PKG_CONFLICT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_PKG_CONFLICT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CONV_INVALID_TARGET_NAMESPACE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CONV_INVALID_TARGET_NAMESPACE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CONV_INVALID_SRC_DOCUMENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CONV_INVALID_SRC_DOCUMENT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CONV_CONVERSION_NOT_AVAILABLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CONV_CONVERSION_NOT_AVAILABLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CONV_PKG_CONSIDERED_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CONV_PKG_CONSIDERED_UNKNOWN)));
     SvREADONLY_on(sv);
@@ -145074,167 +146139,167 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_ElementFilter, (void*) "LibSBML::ElementFilter");
   SWIG_TypeClientData(SWIGTYPE_p_SBMLReader, (void*) "LibSBML::SBMLReader");
   SWIG_TypeClientData(SWIGTYPE_p_SBMLWriter, (void*) "LibSBML::SBMLWriter");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_UNKNOWN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_COMPARTMENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_COMPARTMENT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_COMPARTMENT_TYPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_COMPARTMENT_TYPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_CONSTRAINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_CONSTRAINT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_DOCUMENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_DOCUMENT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_EVENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_EVENT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_EVENT_ASSIGNMENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_EVENT_ASSIGNMENT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_FUNCTION_DEFINITION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_FUNCTION_DEFINITION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_INITIAL_ASSIGNMENT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_INITIAL_ASSIGNMENT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_KINETIC_LAW", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_KINETIC_LAW)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_LIST_OF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_LIST_OF)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_MODEL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_MODEL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_PARAMETER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_PARAMETER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_REACTION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_REACTION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_RULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_RULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_SPECIES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_SPECIES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_SPECIES_REFERENCE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_SPECIES_REFERENCE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_SPECIES_TYPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_SPECIES_TYPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_MODIFIER_SPECIES_REFERENCE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_MODIFIER_SPECIES_REFERENCE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_UNIT_DEFINITION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_UNIT_DEFINITION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_UNIT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_UNIT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_ALGEBRAIC_RULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_ALGEBRAIC_RULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_ASSIGNMENT_RULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_ASSIGNMENT_RULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_RATE_RULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_RATE_RULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_SPECIES_CONCENTRATION_RULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_SPECIES_CONCENTRATION_RULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_COMPARTMENT_VOLUME_RULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_COMPARTMENT_VOLUME_RULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_PARAMETER_RULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_PARAMETER_RULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_TRIGGER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_TRIGGER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_DELAY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_DELAY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_STOICHIOMETRY_MATH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_STOICHIOMETRY_MATH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_LOCAL_PARAMETER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_LOCAL_PARAMETER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_PRIORITY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_PRIORITY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBML_GENERIC_SBASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBML_GENERIC_SBASE)));
     SvREADONLY_on(sv);
@@ -145242,77 +146307,77 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_SBase, (void*) "LibSBML::SBase");
   SWIG_TypeClientData(SWIGTYPE_p_ListOf, (void*) "LibSBML::ListOf");
   SWIG_TypeClientData(SWIGTYPE_p_Model, (void*) "LibSBML::Model");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IdCheckON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x01)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IdCheckOFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0xfe)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBMLCheckON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x02)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBMLCheckOFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0xfd)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBOCheckON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x04)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBOCheckOFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0xfb)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MathCheckON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x08)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MathCheckOFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0xf7)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnitsCheckON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x10)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnitsCheckOFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0xef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OverdeterCheckON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x20)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OverdeterCheckOFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0xdf)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PracticeCheckON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x40)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PracticeCheckOFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0xbf)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllChecksON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(0x7f)));
     SvREADONLY_on(sv);
@@ -145320,187 +146385,187 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_SBMLDocument, (void*) "LibSBML::SBMLDocument");
   SWIG_TypeClientData(SWIGTYPE_p_FunctionDefinition, (void*) "LibSBML::FunctionDefinition");
   SWIG_TypeClientData(SWIGTYPE_p_ListOfFunctionDefinitions, (void*) "LibSBML::ListOfFunctionDefinitions");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_AMPERE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_AMPERE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_AVOGADRO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_AVOGADRO)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_BECQUEREL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_BECQUEREL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_CANDELA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_CANDELA)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_CELSIUS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_CELSIUS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_COULOMB", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_COULOMB)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_DIMENSIONLESS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_DIMENSIONLESS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_FARAD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_FARAD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_GRAM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_GRAM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_GRAY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_GRAY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_HENRY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_HENRY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_HERTZ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_HERTZ)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_ITEM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_ITEM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_JOULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_JOULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_KATAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_KATAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_KELVIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_KELVIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_KILOGRAM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_KILOGRAM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_LITER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_LITER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_LITRE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_LITRE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_LUMEN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_LUMEN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_LUX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_LUX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_METER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_METER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_METRE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_METRE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_MOLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_MOLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_NEWTON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_NEWTON)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_OHM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_OHM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_PASCAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_PASCAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_RADIAN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_RADIAN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_SECOND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_SECOND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_SIEMENS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_SIEMENS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_SIEVERT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_SIEVERT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_STERADIAN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_STERADIAN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_TESLA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_TESLA)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_VOLT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_VOLT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_WATT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_WATT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_WEBER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_WEBER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNIT_KIND_INVALID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNIT_KIND_INVALID)));
     SvREADONLY_on(sv);
@@ -145523,17 +146588,17 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_ListOfLocalParameters, (void*) "LibSBML::ListOfLocalParameters");
   SWIG_TypeClientData(SWIGTYPE_p_InitialAssignment, (void*) "LibSBML::InitialAssignment");
   SWIG_TypeClientData(SWIGTYPE_p_ListOfInitialAssignments, (void*) "LibSBML::ListOfInitialAssignments");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RULE_TYPE_RATE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RULE_TYPE_RATE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RULE_TYPE_SCALAR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RULE_TYPE_SCALAR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RULE_TYPE_INVALID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RULE_TYPE_INVALID)));
     SvREADONLY_on(sv);
@@ -145565,27 +146630,27 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_SBMLNamespaces, (void*) "LibSBML::SBMLNamespaces");
   SWIG_TypeClientData(SWIGTYPE_p_SBMLTransforms, (void*) "LibSBML::SBMLTransforms");
   SWIG_TypeClientData(SWIGTYPE_p_SBMLConstructorException, (void*) "LibSBML::SBMLConstructorException");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CNV_TYPE_BOOL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CNV_TYPE_BOOL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CNV_TYPE_DOUBLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CNV_TYPE_DOUBLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CNV_TYPE_INT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CNV_TYPE_INT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CNV_TYPE_SINGLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CNV_TYPE_SINGLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CNV_TYPE_STRING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CNV_TYPE_STRING)));
     SvREADONLY_on(sv);
@@ -145617,282 +146682,282 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_XMLOwningOutputStringStream, (void*) "LibSBML::XMLOwningOutputStringStream");
   SWIG_TypeClientData(SWIGTYPE_p_XMLOwningOutputFileStream, (void*) "LibSBML::XMLOwningOutputFileStream");
   SWIG_TypeClientData(SWIGTYPE_p_XMLInputStream, (void*) "LibSBML::XMLInputStream");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLUnknownError", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLUnknownError)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLOutOfMemory", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLOutOfMemory)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLFileUnreadable", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLFileUnreadable)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLFileUnwritable", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLFileUnwritable)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLFileOperationError", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLFileOperationError)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLNetworkAccessError", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLNetworkAccessError)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InternalXMLParserError", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InternalXMLParserError)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnrecognizedXMLParserCode", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnrecognizedXMLParserCode)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLTranscoderError", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLTranscoderError)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingXMLDecl", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingXMLDecl)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingXMLEncoding", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingXMLEncoding)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLDecl", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLDecl)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLDOCTYPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLDOCTYPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidCharInXML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidCharInXML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadlyFormedXML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadlyFormedXML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnclosedXMLToken", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnclosedXMLToken)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidXMLConstruct", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidXMLConstruct)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLTagMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLTagMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateXMLAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateXMLAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndefinedXMLEntity", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndefinedXMLEntity)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadProcessingInstruction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadProcessingInstruction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLPrefix", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLPrefix)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLPrefixValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLPrefixValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingXMLRequiredAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingXMLRequiredAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLAttributeTypeMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLAttributeTypeMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLBadUTF8Content", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLBadUTF8Content)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingXMLAttributeValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingXMLAttributeValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLAttributeValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLAttributeValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnrecognizedXMLElement", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnrecognizedXMLElement)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLComment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLComment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLDeclLocation", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLDeclLocation)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLUnexpectedEOF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLUnexpectedEOF)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLIDValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLIDValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLIDRef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLIDRef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UninterpretableXMLContent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UninterpretableXMLContent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadXMLDocumentStructure", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadXMLDocumentStructure)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidAfterXMLContent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidAfterXMLContent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLExpectedQuotedString", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLExpectedQuotedString)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLEmptyValueNotPermitted", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLEmptyValueNotPermitted)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLBadNumber", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLBadNumber)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLBadColon", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLBadColon)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingXMLElements", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingXMLElements)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLContentEmpty", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLContentEmpty)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "XMLErrorCodesUpperBound", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(XMLErrorCodesUpperBound)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_INTERNAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_INTERNAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SYSTEM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SYSTEM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_XML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_XML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_SEV_INFO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_SEV_INFO)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_SEV_WARNING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_SEV_WARNING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_SEV_ERROR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_SEV_ERROR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_SEV_FATAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_SEV_FATAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_OVERRIDE_DISABLED", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_OVERRIDE_DISABLED)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_OVERRIDE_DONT_LOG", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_OVERRIDE_DONT_LOG)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_OVERRIDE_WARNING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_OVERRIDE_WARNING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_OVERRIDE_ERROR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_OVERRIDE_ERROR)));
     SvREADONLY_on(sv);
@@ -145900,2313 +146965,2313 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_XMLError, (void*) "LibSBML::XMLError");
   SWIG_TypeClientData(SWIGTYPE_p_XMLErrorLog, (void*) "LibSBML::XMLErrorLog");
   SWIG_TypeClientData(SWIGTYPE_p_SBMLErrorLog, (void*) "LibSBML::SBMLErrorLog");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnknownError", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnknownError)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NotUTF8", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NotUTF8)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnrecognizedElement", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnrecognizedElement)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NotSchemaConformant", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NotSchemaConformant)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3NotSchemaConformant", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3NotSchemaConformant)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidMathElement", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidMathElement)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DisallowedMathMLSymbol", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DisallowedMathMLSymbol)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DisallowedMathMLEncodingUse", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DisallowedMathMLEncodingUse)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DisallowedDefinitionURLUse", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DisallowedDefinitionURLUse)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadCsymbolDefinitionURLValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadCsymbolDefinitionURLValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DisallowedMathTypeAttributeUse", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DisallowedMathTypeAttributeUse)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DisallowedMathTypeAttributeValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DisallowedMathTypeAttributeValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LambdaOnlyAllowedInFunctionDef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LambdaOnlyAllowedInFunctionDef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BooleanOpsNeedBooleanArgs", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BooleanOpsNeedBooleanArgs)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NumericOpsNeedNumericArgs", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NumericOpsNeedNumericArgs)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ArgsToEqNeedSameType", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ArgsToEqNeedSameType)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PiecewiseNeedsConsistentTypes", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PiecewiseNeedsConsistentTypes)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PieceNeedsBoolean", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PieceNeedsBoolean)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ApplyCiMustBeUserFunction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ApplyCiMustBeUserFunction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ApplyCiMustBeModelComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ApplyCiMustBeModelComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "KineticLawParametersAreLocalOnly", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(KineticLawParametersAreLocalOnly)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MathResultMustBeNumeric", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MathResultMustBeNumeric)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OpsNeedCorrectNumberOfArgs", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OpsNeedCorrectNumberOfArgs)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidNoArgsPassedToFunctionDef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidNoArgsPassedToFunctionDef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DisallowedMathUnitsUse", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DisallowedMathUnitsUse)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidUnitsValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidUnitsValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CiCannotReference0DCompartment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CiCannotReference0DCompartment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateComponentId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateComponentId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateUnitDefinitionId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateUnitDefinitionId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateLocalParameterId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateLocalParameterId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MultipleAssignmentOrRateRules", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MultipleAssignmentOrRateRules)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MultipleEventAssignmentsForId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MultipleEventAssignmentsForId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EventAndAssignmentRuleForId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EventAndAssignmentRuleForId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateMetaId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateMetaId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSBOTermSyntax", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSBOTermSyntax)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidMetaidSyntax", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidMetaidSyntax)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidIdSyntax", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidIdSyntax)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidUnitIdSyntax", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidUnitIdSyntax)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidNameSyntax", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidNameSyntax)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DanglingUnitReference", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DanglingUnitReference)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingAnnotationNamespace", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingAnnotationNamespace)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateAnnotationNamespaces", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateAnnotationNamespaces)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBMLNamespaceInAnnotation", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBMLNamespaceInAnnotation)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MultipleAnnotations", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MultipleAnnotations)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InconsistentArgUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InconsistentArgUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InconsistentKineticLawUnitsL3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InconsistentKineticLawUnitsL3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AssignRuleCompartmentMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AssignRuleCompartmentMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AssignRuleSpeciesMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AssignRuleSpeciesMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AssignRuleParameterMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AssignRuleParameterMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AssignRuleStoichiometryMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AssignRuleStoichiometryMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitAssignCompartmenMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitAssignCompartmenMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitAssignSpeciesMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitAssignSpeciesMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitAssignParameterMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitAssignParameterMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitAssignStoichiometryMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitAssignStoichiometryMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RateRuleCompartmentMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RateRuleCompartmentMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RateRuleSpeciesMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RateRuleSpeciesMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RateRuleParameterMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RateRuleParameterMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RateRuleStoichiometryMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RateRuleStoichiometryMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "KineticLawNotSubstancePerTime", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(KineticLawNotSubstancePerTime)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpeciesInvalidExtentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpeciesInvalidExtentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DelayUnitsNotTime", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DelayUnitsNotTime)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EventAssignCompartmentMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EventAssignCompartmentMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EventAssignSpeciesMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EventAssignSpeciesMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EventAssignParameterMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EventAssignParameterMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EventAssignStoichiometryMismatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EventAssignStoichiometryMismatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PriorityUnitsNotDimensionless", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PriorityUnitsNotDimensionless)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UpperUnitBound", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UpperUnitBound)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OverdeterminedSystem", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OverdeterminedSystem)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidModelSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidModelSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidFunctionDefSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidFunctionDefSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidParameterSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidParameterSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidInitAssignSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidInitAssignSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidRuleSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidRuleSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidConstraintSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidConstraintSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidReactionSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidReactionSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSpeciesReferenceSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSpeciesReferenceSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidKineticLawSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidKineticLawSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidEventSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidEventSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidEventAssignmentSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidEventAssignmentSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidCompartmentSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidCompartmentSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSpeciesSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSpeciesSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidCompartmentTypeSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidCompartmentTypeSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSpeciesTypeSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSpeciesTypeSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidTriggerSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidTriggerSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidDelaySBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidDelaySBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidLocalParameterSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidLocalParameterSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NotesNotInXHTMLNamespace", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NotesNotInXHTMLNamespace)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NotesContainsXMLDecl", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NotesContainsXMLDecl)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NotesContainsDOCTYPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NotesContainsDOCTYPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidNotesContent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidNotesContent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyOneNotesElementAllowed", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyOneNotesElementAllowed)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidNamespaceOnSBML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidNamespaceOnSBML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingOrInconsistentLevel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingOrInconsistentLevel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingOrInconsistentVersion", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingOrInconsistentVersion)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PackageNSMustMatch", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PackageNSMustMatch)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LevelPositiveInteger", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LevelPositiveInteger)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "VersionPositiveInteger", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(VersionPositiveInteger)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnSBML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnSBML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3PackageOnLowerSBML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3PackageOnLowerSBML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IncorrectOrderInModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IncorrectOrderInModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EmptyListElement", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EmptyListElement)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NeedCompartmentIfHaveSpecies", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NeedCompartmentIfHaveSpecies)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneOfEachListOf", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneOfEachListOf)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyFuncDefsInListOfFuncDefs", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyFuncDefsInListOfFuncDefs)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyUnitDefsInListOfUnitDefs", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyUnitDefsInListOfUnitDefs)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyCompartmentsInListOfCompartments", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyCompartmentsInListOfCompartments)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlySpeciesInListOfSpecies", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlySpeciesInListOfSpecies)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyParametersInListOfParameters", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyParametersInListOfParameters)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyInitAssignsInListOfInitAssigns", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyInitAssignsInListOfInitAssigns)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyRulesInListOfRules", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyRulesInListOfRules)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyConstraintsInListOfConstraints", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyConstraintsInListOfConstraints)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyReactionsInListOfReactions", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyReactionsInListOfReactions)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyEventsInListOfEvents", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyEventsInListOfEvents)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3ConversionFactorOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3ConversionFactorOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3TimeUnitsOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3TimeUnitsOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3VolumeUnitsOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3VolumeUnitsOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3AreaUnitsOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3AreaUnitsOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3LengthUnitsOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3LengthUnitsOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3ExtentUnitsOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3ExtentUnitsOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfFuncs", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfFuncs)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfUnitDefs", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfUnitDefs)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfComps", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfComps)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfSpecies", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfSpecies)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfParams", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfParams)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfInitAssign", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfInitAssign)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfRules", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfRules)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfConstraints", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfConstraints)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfReactions", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfReactions)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfEvents", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfEvents)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3V2SubstanceUnitsOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3V2SubstanceUnitsOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FunctionDefMathNotLambda", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(FunctionDefMathNotLambda)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidApplyCiInLambda", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidApplyCiInLambda)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RecursiveFunctionDefinition", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RecursiveFunctionDefinition)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidCiInLambda", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidCiInLambda)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidFunctionDefReturnType", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidFunctionDefReturnType)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathElementPerFunc", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathElementPerFunc)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnFunc", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnFunc)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidUnitDefId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidUnitDefId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSubstanceRedefinition", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSubstanceRedefinition)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidLengthRedefinition", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidLengthRedefinition)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidAreaRedefinition", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidAreaRedefinition)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidTimeRedefinition", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidTimeRedefinition)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidVolumeRedefinition", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidVolumeRedefinition)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "VolumeLitreDefExponentNotOne", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(VolumeLitreDefExponentNotOne)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "VolumeMetreDefExponentNot3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(VolumeMetreDefExponentNot3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EmptyListOfUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EmptyListOfUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidUnitKind", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidUnitKind)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OffsetNoLongerValid", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OffsetNoLongerValid)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CelsiusNoLongerValid", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CelsiusNoLongerValid)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EmptyUnitListElement", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EmptyUnitListElement)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneListOfUnitsPerUnitDef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneListOfUnitsPerUnitDef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyUnitsInListOfUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyUnitsInListOfUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnUnitDefinition", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnUnitDefinition)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnUnit", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnUnit)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ZeroDimensionalCompartmentSize", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ZeroDimensionalCompartmentSize)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ZeroDimensionalCompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ZeroDimensionalCompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ZeroDimensionalCompartmentConst", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ZeroDimensionalCompartmentConst)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndefinedOutsideCompartment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndefinedOutsideCompartment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RecursiveCompartmentContainment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RecursiveCompartmentContainment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ZeroDCompartmentContainment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ZeroDCompartmentContainment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Invalid1DCompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Invalid1DCompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Invalid2DCompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Invalid2DCompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "Invalid3DCompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(Invalid3DCompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidCompartmentTypeRef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidCompartmentTypeRef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneDimensionalCompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneDimensionalCompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TwoDimensionalCompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(TwoDimensionalCompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ThreeDimensionalCompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ThreeDimensionalCompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnCompartment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnCompartment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoUnitsOnCompartment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoUnitsOnCompartment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSpeciesCompartmentRef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSpeciesCompartmentRef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "HasOnlySubsNoSpatialUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(HasOnlySubsNoSpatialUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpatialUnitsInZeroD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpatialUnitsInZeroD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoConcentrationInZeroD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoConcentrationInZeroD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpatialUnitsInOneD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpatialUnitsInOneD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpatialUnitsInTwoD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpatialUnitsInTwoD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpatialUnitsInThreeD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpatialUnitsInThreeD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSpeciesSusbstanceUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSpeciesSusbstanceUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BothAmountAndConcentrationSet", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BothAmountAndConcentrationSet)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NonBoundarySpeciesAssignedAndUsed", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NonBoundarySpeciesAssignedAndUsed)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NonConstantSpeciesUsed", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NonConstantSpeciesUsed)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSpeciesTypeRef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSpeciesTypeRef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MultSpeciesSameTypeInCompartment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MultSpeciesSameTypeInCompartment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingSpeciesCompartment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingSpeciesCompartment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpatialSizeUnitsRemoved", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpatialSizeUnitsRemoved)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SubstanceUnitsOnSpecies", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SubstanceUnitsOnSpecies)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConversionFactorOnSpecies", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConversionFactorOnSpecies)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnSpecies", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnSpecies)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidParameterUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidParameterUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ParameterUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ParameterUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConversionFactorMustConstant", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConversionFactorMustConstant)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnParameter", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnParameter)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidInitAssignSymbol", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidInitAssignSymbol)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MultipleInitAssignments", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MultipleInitAssignments)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitAssignmentAndRuleForSameId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitAssignmentAndRuleForSameId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathElementPerInitialAssign", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathElementPerInitialAssign)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnInitialAssign", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnInitialAssign)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitAssignmentCannotRef0DComp", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitAssignmentCannotRef0DComp)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidAssignRuleVariable", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidAssignRuleVariable)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidRateRuleVariable", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidRateRuleVariable)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AssignmentToConstantEntity", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AssignmentToConstantEntity)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RateRuleForConstantEntity", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RateRuleForConstantEntity)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RepeatedRule10304", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RepeatedRule10304)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CircularRuleDependency", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CircularRuleDependency)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathElementPerRule", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathElementPerRule)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnAssignRule", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnAssignRule)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnRateRule", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnRateRule)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnAlgRule", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnAlgRule)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RuleCannotRef0DComp", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RuleCannotRef0DComp)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConstraintMathNotBoolean", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConstraintMathNotBoolean)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IncorrectOrderInConstraint", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IncorrectOrderInConstraint)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConstraintNotInXHTMLNamespace", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConstraintNotInXHTMLNamespace)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConstraintContainsXMLDecl", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConstraintContainsXMLDecl)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConstraintContainsDOCTYPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConstraintContainsDOCTYPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidConstraintContent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidConstraintContent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathElementPerConstraint", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathElementPerConstraint)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMessageElementPerConstraint", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMessageElementPerConstraint)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnConstraint", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnConstraint)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoReactantsOrProducts", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoReactantsOrProducts)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IncorrectOrderInReaction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IncorrectOrderInReaction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EmptyListInReaction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EmptyListInReaction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidReactantsProductsList", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidReactantsProductsList)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidModifiersList", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidModifiersList)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneSubElementPerReaction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneSubElementPerReaction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CompartmentOnReaction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CompartmentOnReaction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnReaction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnReaction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSpeciesReference", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSpeciesReference)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RepeatedRule20611", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RepeatedRule20611)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BothStoichiometryAndMath", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BothStoichiometryAndMath)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnSpeciesReference", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnSpeciesReference)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnModifier", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnModifier)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndeclaredSpeciesRef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndeclaredSpeciesRef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IncorrectOrderInKineticLaw", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IncorrectOrderInKineticLaw)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EmptyListInKineticLaw", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EmptyListInKineticLaw)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NonConstantLocalParameter", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NonConstantLocalParameter)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SubsUnitsNoLongerValid", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SubsUnitsNoLongerValid)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TimeUnitsNoLongerValid", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(TimeUnitsNoLongerValid)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneListOfPerKineticLaw", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneListOfPerKineticLaw)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyLocalParamsInListOfLocalParams", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyLocalParamsInListOfLocalParams)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfLocalParam", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfLocalParam)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathPerKineticLaw", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathPerKineticLaw)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndeclaredSpeciesInStoichMath", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndeclaredSpeciesInStoichMath)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnKineticLaw", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnKineticLaw)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfSpeciesRef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfSpeciesRef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfMods", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfMods)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3V2FastDeprecated", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3V2FastDeprecated)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnLocalParameter", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnLocalParameter)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingTriggerInEvent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingTriggerInEvent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TriggerMathNotBoolean", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(TriggerMathNotBoolean)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MissingEventAssignment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MissingEventAssignment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TimeUnitsEvent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(TimeUnitsEvent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IncorrectOrderInEvent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IncorrectOrderInEvent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ValuesFromTriggerTimeNeedDelay", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ValuesFromTriggerTimeNeedDelay)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DelayNeedsValuesFromTriggerTime", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DelayNeedsValuesFromTriggerTime)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathPerTrigger", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathPerTrigger)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathPerDelay", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathPerDelay)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidEventAssignmentVariable", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidEventAssignmentVariable)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EventAssignmentForConstantEntity", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EventAssignmentForConstantEntity)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathPerEventAssignment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathPerEventAssignment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnEventAssignment", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnEventAssignment)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyOneDelayPerEvent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyOneDelayPerEvent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneListOfEventAssignmentsPerEvent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneListOfEventAssignmentsPerEvent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyEventAssignInListOfEventAssign", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyEventAssignInListOfEventAssign)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnListOfEventAssign", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnListOfEventAssign)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnEvent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnEvent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnTrigger", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnTrigger)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnDelay", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnDelay)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PersistentNotBoolean", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PersistentNotBoolean)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitialValueNotBoolean", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitialValueNotBoolean)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OnlyOnePriorityPerEvent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OnlyOnePriorityPerEvent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OneMathPerPriority", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OneMathPerPriority)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AllowedAttributesOnPriority", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AllowedAttributesOnPriority)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "GeneralWarningNotSpecified", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(GeneralWarningNotSpecified)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CompartmentShouldHaveSize", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CompartmentShouldHaveSize)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpeciesShouldHaveValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpeciesShouldHaveValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ParameterShouldHaveUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ParameterShouldHaveUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ParameterShouldHaveValue", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ParameterShouldHaveValue)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LocalParameterShadowsId", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LocalParameterShadowsId)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LibSBMLAdditionalCodesLowerBound", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LibSBMLAdditionalCodesLowerBound)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CannotConvertToL1V1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CannotConvertToL1V1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoEventsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoEventsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoFunctionDefinitionsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoFunctionDefinitionsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoConstraintsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoConstraintsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoInitialAssignmentsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoInitialAssignmentsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpeciesTypesInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpeciesTypesInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoCompartmentTypeInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoCompartmentTypeInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoNon3DCompartmentsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoNon3DCompartmentsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoFancyStoichiometryMathInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoFancyStoichiometryMathInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoNonIntegerStoichiometryInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoNonIntegerStoichiometryInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoUnitMultipliersOrOffsetsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoUnitMultipliersOrOffsetsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpeciesCompartmentRequiredInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpeciesCompartmentRequiredInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpeciesSpatialSizeUnitsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpeciesSpatialSizeUnitsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSBOTermsInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSBOTermsInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StrictUnitsRequiredInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StrictUnitsRequiredInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConversionFactorNotInL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConversionFactorNotInL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CompartmentNotOnL1Reaction", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CompartmentNotOnL1Reaction)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ExtentUnitsNotSubstance", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ExtentUnitsNotSubstance)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "GlobalUnitsNotDeclared", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(GlobalUnitsNotDeclared)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "HasOnlySubstanceUnitsNotinL1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(HasOnlySubstanceUnitsNotinL1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AvogadroNotSupported", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AvogadroNotSupported)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoConstraintsInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoConstraintsInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoInitialAssignmentsInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoInitialAssignmentsInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpeciesTypeInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpeciesTypeInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoCompartmentTypeInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoCompartmentTypeInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSBOTermsInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSBOTermsInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoIdOnSpeciesReferenceInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoIdOnSpeciesReferenceInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoDelayedEventAssignmentInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoDelayedEventAssignmentInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StrictUnitsRequiredInL2v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StrictUnitsRequiredInL2v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IntegerSpatialDimensions", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IntegerSpatialDimensions)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StoichiometryMathNotYetSupported", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StoichiometryMathNotYetSupported)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PriorityLostFromL3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PriorityLostFromL3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NonPersistentNotSupported", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NonPersistentNotSupported)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitialValueFalseEventNotSupported", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitialValueFalseEventNotSupported)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBOTermNotUniversalInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBOTermNotUniversalInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoUnitOffsetInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoUnitOffsetInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawTimeUnitsInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawTimeUnitsInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawSubstanceUnitsInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawSubstanceUnitsInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoDelayedEventAssignmentInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoDelayedEventAssignmentInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ModelSBOBranchChangedBeyondL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ModelSBOBranchChangedBeyondL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StrictUnitsRequiredInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StrictUnitsRequiredInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StrictSBORequiredInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StrictSBORequiredInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateAnnotationInvalidInL2v2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateAnnotationInvalidInL2v2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoUnitOffsetInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoUnitOffsetInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawTimeUnitsInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawTimeUnitsInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawSubstanceUnitsInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawSubstanceUnitsInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpeciesSpatialSizeUnitsInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpeciesSpatialSizeUnitsInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoEventTimeUnitsInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoEventTimeUnitsInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoDelayedEventAssignmentInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoDelayedEventAssignmentInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ModelSBOBranchChangedBeyondL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ModelSBOBranchChangedBeyondL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StrictUnitsRequiredInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StrictUnitsRequiredInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StrictSBORequiredInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StrictSBORequiredInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateAnnotationInvalidInL2v3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateAnnotationInvalidInL2v3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoUnitOffsetInL2v4", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoUnitOffsetInL2v4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawTimeUnitsInL2v4", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawTimeUnitsInL2v4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawSubstanceUnitsInL2v4", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawSubstanceUnitsInL2v4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpeciesSpatialSizeUnitsInL2v4", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpeciesSpatialSizeUnitsInL2v4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoEventTimeUnitsInL2v4", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoEventTimeUnitsInL2v4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ModelSBOBranchChangedInL2v4", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ModelSBOBranchChangedInL2v4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateAnnotationInvalidInL2v4", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateAnnotationInvalidInL2v4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpeciesTypeInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpeciesTypeInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoCompartmentTypeInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoCompartmentTypeInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoUnitOffsetInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoUnitOffsetInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawTimeUnitsInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawTimeUnitsInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoKineticLawSubstanceUnitsInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoKineticLawSubstanceUnitsInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoSpeciesSpatialSizeUnitsInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoSpeciesSpatialSizeUnitsInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoEventTimeUnitsInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoEventTimeUnitsInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ModelSBOBranchChangedInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ModelSBOBranchChangedInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DuplicateAnnotationInvalidInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DuplicateAnnotationInvalidInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoCompartmentOutsideInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoCompartmentOutsideInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoStoichiometryMathInL3v1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoStoichiometryMathInL3v1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidSBMLLevelVersion", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidSBMLLevelVersion)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AnnotationNotesNotAllowedLevel1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AnnotationNotesNotAllowedLevel1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidRuleOrdering", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidRuleOrdering)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RequiredPackagePresent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RequiredPackagePresent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnrequiredPackagePresent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnrequiredPackagePresent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PackageRequiredShouldBeFalse", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PackageRequiredShouldBeFalse)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SubsUnitsAllowedInKL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SubsUnitsAllowedInKL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TimeUnitsAllowedInKL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(TimeUnitsAllowedInKL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FormulaInLevel1KL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(FormulaInLevel1KL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3SubstanceUnitsOnModel", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3SubstanceUnitsOnModel)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "TimeUnitsRemoved", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(TimeUnitsRemoved)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadMathML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadMathML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FailedMathMLReadOfDouble", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(FailedMathMLReadOfDouble)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FailedMathMLReadOfInteger", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(FailedMathMLReadOfInteger)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FailedMathMLReadOfExponential", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(FailedMathMLReadOfExponential)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FailedMathMLReadOfRational", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(FailedMathMLReadOfRational)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BadMathMLNodeType", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BadMathMLNodeType)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidMathMLAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidMathMLAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoTimeSymbolInFunctionDef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoTimeSymbolInFunctionDef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NoBodyInFunctionDef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NoBodyInFunctionDef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "DanglingUnitSIdRef", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(DanglingUnitSIdRef)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RDFMissingAboutTag", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RDFMissingAboutTag)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RDFEmptyAboutTag", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RDFEmptyAboutTag)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RDFAboutTagNotMetaid", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RDFAboutTagNotMetaid)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RDFNotCompleteModelHistory", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RDFNotCompleteModelHistory)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "RDFNotModelHistory", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(RDFNotModelHistory)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AnnotationNotElement", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AnnotationNotElement)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NestedAnnotationNotAllowed", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NestedAnnotationNotAllowed)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InconsistentArgUnitsWarnings", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InconsistentArgUnitsWarnings)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InconsistentPowerUnitsWarnings", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InconsistentPowerUnitsWarnings)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InconsistentExponUnitsWarnings", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InconsistentExponUnitsWarnings)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndeclaredUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndeclaredUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndeclaredTimeUnitsL3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndeclaredTimeUnitsL3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndeclaredExtentUnitsL3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndeclaredExtentUnitsL3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UndeclaredObjectUnitsL3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UndeclaredObjectUnitsL3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnrecognisedSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnrecognisedSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ObseleteSBOTerm", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ObseleteSBOTerm)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IncorrectCompartmentSpatialDimensions", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IncorrectCompartmentSpatialDimensions)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CompartmentTypeNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CompartmentTypeNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConstantNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConstantNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MetaIdNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MetaIdNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBOTermNotValidAttributeBeforeL2V3", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBOTermNotValidAttributeBeforeL2V3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidL1CompartmentUnits", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidL1CompartmentUnits)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L1V1CompartmentVolumeReqd", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L1V1CompartmentVolumeReqd)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "CompartmentTypeNotValidComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(CompartmentTypeNotValidComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConstraintNotValidComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConstraintNotValidComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "EventNotValidComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(EventNotValidComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBOTermNotValidAttributeBeforeL2V2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBOTermNotValidAttributeBeforeL2V2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FuncDefNotValidComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(FuncDefNotValidComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InitialAssignNotValidComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InitialAssignNotValidComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "VariableNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(VariableNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnitsNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnitsNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ConstantSpeciesNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(ConstantSpeciesNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpatialSizeUnitsNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpatialSizeUnitsNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpeciesTypeNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpeciesTypeNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "HasOnlySubsUnitsNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(HasOnlySubsUnitsNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "IdNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(IdNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "NameNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(NameNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SpeciesTypeNotValidComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SpeciesTypeNotValidComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "StoichiometryMathNotValidComponent", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(StoichiometryMathNotValidComponent)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MultiplierNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MultiplierNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "OffsetNotValidAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(OffsetNotValidAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3SpatialDimensionsUnset", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3SpatialDimensionsUnset)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnknownCoreAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnknownCoreAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UnknownPackageAttribute", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UnknownPackageAttribute)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "PackageConversionNotSupported", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(PackageConversionNotSupported)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "InvalidTargetLevelVersion", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(InvalidTargetLevelVersion)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3NotSupported", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3NotSupported)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SBMLCodesUpperBound", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(SBMLCodesUpperBound)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBML)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBML_L1_COMPAT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBML_L1_COMPAT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBML_L2V1_COMPAT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBML_L2V1_COMPAT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBML_L2V2_COMPAT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBML_L2V2_COMPAT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_GENERAL_CONSISTENCY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_GENERAL_CONSISTENCY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_IDENTIFIER_CONSISTENCY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_IDENTIFIER_CONSISTENCY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_UNITS_CONSISTENCY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_UNITS_CONSISTENCY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_MATHML_CONSISTENCY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_MATHML_CONSISTENCY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBO_CONSISTENCY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBO_CONSISTENCY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_OVERDETERMINED_MODEL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_OVERDETERMINED_MODEL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBML_L2V3_COMPAT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBML_L2V3_COMPAT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_MODELING_PRACTICE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_MODELING_PRACTICE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_INTERNAL_CONSISTENCY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_INTERNAL_CONSISTENCY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBML_L2V4_COMPAT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBML_L2V4_COMPAT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_CAT_SBML_L3V1_COMPAT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_CAT_SBML_L3V1_COMPAT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_SEV_SCHEMA_ERROR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_SEV_SCHEMA_ERROR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_SEV_GENERAL_WARNING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_SEV_GENERAL_WARNING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "LIBSBML_SEV_NOT_APPLICABLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(LIBSBML_SEV_NOT_APPLICABLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_SBMLError, (void*) "LibSBML::SBMLError");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MODEL_QUALIFIER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(MODEL_QUALIFIER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BIOLOGICAL_QUALIFIER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BIOLOGICAL_QUALIFIER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "UNKNOWN_QUALIFIER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(UNKNOWN_QUALIFIER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQM_IS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQM_IS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQM_IS_DESCRIBED_BY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQM_IS_DESCRIBED_BY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQM_IS_DERIVED_FROM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQM_IS_DERIVED_FROM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQM_IS_INSTANCE_OF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQM_IS_INSTANCE_OF)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQM_HAS_INSTANCE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQM_HAS_INSTANCE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQM_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQM_UNKNOWN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_IS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_IS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_HAS_PART", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_HAS_PART)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_IS_PART_OF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_IS_PART_OF)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_IS_VERSION_OF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_IS_VERSION_OF)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_HAS_VERSION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_HAS_VERSION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_IS_HOMOLOG_TO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_IS_HOMOLOG_TO)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_IS_DESCRIBED_BY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_IS_DESCRIBED_BY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_IS_ENCODED_BY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_IS_ENCODED_BY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_ENCODES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_ENCODES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_OCCURS_IN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_OCCURS_IN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_HAS_PROPERTY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_HAS_PROPERTY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_IS_PROPERTY_OF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_IS_PROPERTY_OF)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_HAS_TAXON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_HAS_TAXON)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "BQB_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(BQB_UNKNOWN)));
     SvREADONLY_on(sv);
@@ -148223,477 +149288,477 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_SBMLExtension, (void*) "LibSBML::SBMLExtension");
   SWIG_TypeClientData(SWIGTYPE_p_SBMLExtensionException, (void*) "LibSBML::SBMLExtensionException");
   SWIG_TypeClientData(SWIGTYPE_p_SBMLExtensionRegistry, (void*) "LibSBML::SBMLExtensionRegistry");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_PLUS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_PLUS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_MINUS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_MINUS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TIMES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TIMES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_DIVIDE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_DIVIDE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_POWER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_POWER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_INTEGER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_INTEGER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_REAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_REAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_REAL_E", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_REAL_E)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_RATIONAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_RATIONAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_NAME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_NAME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_NAME_AVOGADRO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_NAME_AVOGADRO)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_NAME_TIME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_NAME_TIME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_CONSTANT_E", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_CONSTANT_E)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_CONSTANT_FALSE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_CONSTANT_FALSE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_CONSTANT_PI", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_CONSTANT_PI)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_CONSTANT_TRUE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_CONSTANT_TRUE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_LAMBDA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_LAMBDA)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ABS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ABS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCCOS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCCOS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCCOSH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCCOSH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCCOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCCOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCCOTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCCOTH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCCSC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCCSC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCCSCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCCSCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCSEC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCSEC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCSECH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCSECH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCSIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCSIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCSINH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCSINH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCTAN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCTAN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ARCTANH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ARCTANH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_CEILING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_CEILING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_COS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_COS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_COSH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_COSH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_COT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_COT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_COTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_COTH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_CSC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_CSC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_CSCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_CSCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_DELAY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_DELAY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_EXP", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_EXP)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_FACTORIAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_FACTORIAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_FLOOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_FLOOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_LN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_LN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_LOG", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_LOG)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_PIECEWISE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_PIECEWISE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_POWER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_POWER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_ROOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_ROOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_SEC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_SEC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_SECH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_SECH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_SIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_SIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_SINH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_SINH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_TAN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_TAN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_FUNCTION_TANH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_FUNCTION_TANH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_LOGICAL_AND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_LOGICAL_AND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_LOGICAL_NOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_LOGICAL_NOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_LOGICAL_OR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_LOGICAL_OR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_LOGICAL_XOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_LOGICAL_XOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_RELATIONAL_EQ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_RELATIONAL_EQ)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_RELATIONAL_GEQ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_RELATIONAL_GEQ)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_RELATIONAL_GT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_RELATIONAL_GT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_RELATIONAL_LEQ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_RELATIONAL_LEQ)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_RELATIONAL_LT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_RELATIONAL_LT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_RELATIONAL_NEQ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_RELATIONAL_NEQ)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_QUALIFIER_BVAR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_QUALIFIER_BVAR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_QUALIFIER_LOGBASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_QUALIFIER_LOGBASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_QUALIFIER_DEGREE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_QUALIFIER_DEGREE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_SEMANTICS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_SEMANTICS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_CONSTRUCTOR_PIECE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_CONSTRUCTOR_PIECE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_CONSTRUCTOR_OTHERWISE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_CONSTRUCTOR_OTHERWISE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_UNKNOWN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_ORIGINATES_IN_PACKAGE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_ORIGINATES_IN_PACKAGE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_BASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_BASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CN_BASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CN_BASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_BASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_BASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_NUMBER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_NUMBER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CN_INTEGER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CN_INTEGER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CN_EXPONENTIAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CN_EXPONENTIAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CN_RATIONAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CN_RATIONAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CN_REAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CN_REAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CONSTANT_NUMBER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CONSTANT_NUMBER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CI_NUMBER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CI_NUMBER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CSYMBOL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CSYMBOL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CSYMBOL_AVOGADRO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CSYMBOL_AVOGADRO)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CSYMBOL_DELAY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CSYMBOL_DELAY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_CSYMBOL_TIME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_CSYMBOL_TIME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_UNARY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_UNARY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_BINARY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_BINARY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_NARY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_NARY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_PIECEWISE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_PIECEWISE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_LAMBDA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_LAMBDA)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_CI", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_CI)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_SEMANTIC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_SEMANTIC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_FUNCTION_QUALIFIER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_FUNCTION_QUALIFIER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "AST_TYPECODE_ASTNODE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(AST_TYPECODE_ASTNODE)));
     SvREADONLY_on(sv);
@@ -148701,72 +149766,72 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_ASTBase, (void*) "LibSBML::ASTBase");
   SWIG_TypeClientData(SWIGTYPE_p_ASTNode, (void*) "LibSBML::ASTNode");
   SWIG_TypeClientData(SWIGTYPE_p_MathML, (void*) "LibSBML::MathML");
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_PARSE_LOG_AS_LOG10", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3P_PARSE_LOG_AS_LOG10)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_PARSE_LOG_AS_LN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3P_PARSE_LOG_AS_LN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_PARSE_LOG_AS_ERROR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(L3P_PARSE_LOG_AS_ERROR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_COLLAPSE_UNARY_MINUS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(true)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_EXPAND_UNARY_MINUS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(false)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_PARSE_UNITS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(true)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_NO_UNITS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(false)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_AVOGADRO_IS_CSYMBOL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(true)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_AVOGADRO_IS_NAME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(false)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_COMPARE_BUILTINS_CASE_INSENSITIVE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(false)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "L3P_COMPARE_BUILTINS_CASE_SENSITIVE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_bool  SWIG_PERL_CALL_ARGS_1(static_cast< bool >(true)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "INFIX_SYNTAX_NAMED_SQUARE_BRACKETS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(INFIX_SYNTAX_NAMED_SQUARE_BRACKETS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "INFIX_SYNTAX_CURLY_BRACES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(INFIX_SYNTAX_CURLY_BRACES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/local/share/swig/2.0.4/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/local/share/swig/2.0.6/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "INFIX_SYNTAX_CURLY_BRACES_SEMICOLON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1(static_cast< int >(INFIX_SYNTAX_CURLY_BRACES_SEMICOLON)));
     SvREADONLY_on(sv);
diff --git a/src/bindings/perl/Makefile.PL.in b/src/bindings/perl/Makefile.PL.in
index 680b132..8b101ab 100644
--- a/src/bindings/perl/Makefile.PL.in
+++ b/src/bindings/perl/Makefile.PL.in
@@ -101,6 +101,11 @@ ifeq ("@USE_FBC@", "1")
 	SWIGDOCDEFINES += --define USE_FBC
 endif
 
+ifeq ("@USE_GROUPS@", "1")
+	PACKAGE_ARGS += -DUSE_GROUPS
+	SWIGDOCDEFINES += --define USE_GROUPS
+endif
+
 ifeq ("@USE_LAYOUT@", "1")
 	PACKAGE_ARGS += -DUSE_LAYOUT
 	SWIGDOCDEFINES += --define USE_LAYOUT
diff --git a/src/bindings/perl/local-downcast-converters.cpp.in b/src/bindings/perl/local-downcast-converters.cpp.in
index 40bcd52..7ad7ab9 100644
--- a/src/bindings/perl/local-downcast-converters.cpp.in
+++ b/src/bindings/perl/local-downcast-converters.cpp.in
@@ -1,17 +1,17 @@
-// This file is autogenerated and will be overwritten by the configuration process
-
-#ifdef USE_COMP
-#include "local-downcast-converters-comp.cpp"
-#endif
-#ifdef USE_FBC
-#include "local-downcast-converters-fbc.cpp"
-#endif
-#ifdef USE_LAYOUT
-#include "local-downcast-converters-layout.cpp"
-#endif
-#ifdef USE_QUAL
-#include "local-downcast-converters-qual.cpp"
-#endif
-
-
-
+// This file is autogenerated and will be overwritten by the configuration process
+
+#ifdef USE_COMP
+#include "local-downcast-converters-comp.cpp"
+#endif
+#ifdef USE_FBC
+#include "local-downcast-converters-fbc.cpp"
+#endif
+#ifdef USE_LAYOUT
+#include "local-downcast-converters-layout.cpp"
+#endif
+#ifdef USE_QUAL
+#include "local-downcast-converters-qual.cpp"
+#endif
+
+
+
diff --git a/src/bindings/perl/local-downcast-packages-groups.cpp b/src/bindings/perl/local-downcast-packages-groups.cpp
index f69e10f..aa3a4e5 100644
--- a/src/bindings/perl/local-downcast-packages-groups.cpp
+++ b/src/bindings/perl/local-downcast-packages-groups.cpp
@@ -2,34 +2,30 @@
 #ifdef USE_GROUPS
 else if (pkgName == "groups")
 {
-	switch (sb->getTypeCode())
-	{
-		case SBML_LIST_OF:
-			name = sb->getElementName();
-			if(name == "listOfMembers"){
-				return SWIGTYPE_p_ListOfMembers;
-			}
-			else if (name == "listOfMemberConstraints")
-			{
-				return SWIGTYPE_p_ListOfMemberConstraints;
-			}
-			else if(name == "listOfGroups"){
-				return SWIGTYPE_p_ListOfGroups;
-			}
-			return SWIGTYPE_p_ListOf;				  
-			
-		case SBML_GROUPS_MEMBER:
-			return SWIGTYPE_p_Member;
+  switch ( sb->getTypeCode() )
+  {
+    case SBML_LIST_OF:
+      name = sb->getElementName();
+      if (name == "listOfGroups")
+      {
+        return SWIGTYPE_p_ListOfGroups;
+      }
+      else if (name == "listOfMembers")
+      {
+        return SWIGTYPE_p_ListOfMembers;
+      }
 
-		case SBML_GROUPS_MEMBER_CONSTRAINT:
-			return SWIGTYPE_p_MemberConstraint;
+      return SWIGTYPE_p_ListOf;
 
-		case SBML_GROUPS_GROUP:
-			return SWIGTYPE_p_Group;
+    case SBML_GROUPS_GROUP:
+      return SWIGTYPE_p_Group;
 
-		default:
-			return SWIGTYPE_p_SBase;
-	}
+    case SBML_GROUPS_MEMBER:
+      return SWIGTYPE_p_Member;
+
+    default:
+      return SWIGTYPE_p_SBase;
+    }
 }
 #endif // USE_GROUPS				  
 
diff --git a/src/bindings/perl/local-downcast-packages-multi.cpp b/src/bindings/perl/local-downcast-packages-multi.cpp
index 4b845a5..2b88667 100644
--- a/src/bindings/perl/local-downcast-packages-multi.cpp
+++ b/src/bindings/perl/local-downcast-packages-multi.cpp
@@ -25,10 +25,6 @@ else if (pkgName == "multi")
       {
         return SWIGTYPE_p_ListOfInSpeciesTypeBonds;
       }
-      else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-      {
-        return SWIGTYPE_p_ListOfDenotedSpeciesTypeComponentIndexes;
-      }
       else if (name == "listOfOutwardBindingSites")
       {
         return SWIGTYPE_p_ListOfOutwardBindingSites;
@@ -75,9 +71,6 @@ else if (pkgName == "multi")
     case SBML_MULTI_IN_SPECIES_TYPE_BOND:
       return SWIGTYPE_p_InSpeciesTypeBond;
 
-    case SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-      return SWIGTYPE_p_DenotedSpeciesTypeComponentIndex;
-
     case SBML_MULTI_OUTWARD_BINDING_SITE:
       return SWIGTYPE_p_OutwardBindingSite;
 
diff --git a/src/bindings/perl/local-downcast-plugins-multi.cpp b/src/bindings/perl/local-downcast-plugins-multi.cpp
index e3f77ff..cee4db7 100644
--- a/src/bindings/perl/local-downcast-plugins-multi.cpp
+++ b/src/bindings/perl/local-downcast-plugins-multi.cpp
@@ -21,6 +21,10 @@ if (pkgName == "multi")
   {
     return SWIGTYPE_p_MultiSpeciesReferencePlugin;
   }
+  else if (sb->getElementName() == "listOfReactions")
+  {
+    return SWIGTYPE_p_MultiListOfReactionsPlugin;
+  }
 }
 
 #endif // USE_MULTI 
diff --git a/src/bindings/perl/local-groups.i b/src/bindings/perl/local-groups.i
index 4300394..ff6dd49 100644
--- a/src/bindings/perl/local-groups.i
+++ b/src/bindings/perl/local-groups.i
@@ -5,15 +5,15 @@
  * Contributor(s):
  */
 
+
 #ifdef USE_GROUPS
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
+
 
-#endif // USE_GROUPS 
+#endif // USE_GROUPS
 
diff --git a/src/bindings/perl/local-multi.i b/src/bindings/perl/local-multi.i
index bc10578..7f7703e 100644
--- a/src/bindings/perl/local-multi.i
+++ b/src/bindings/perl/local-multi.i
@@ -6,7 +6,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -21,7 +20,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/perl/local-packages.i.in b/src/bindings/perl/local-packages.i.in
index 84217c2..aca50cb 100644
--- a/src/bindings/perl/local-packages.i.in
+++ b/src/bindings/perl/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-layout.i"
 #endif
diff --git a/src/bindings/perl/local.i b/src/bindings/perl/local.i
index f60ef82..fa58da4 100644
--- a/src/bindings/perl/local.i
+++ b/src/bindings/perl/local.i
@@ -39,7 +39,7 @@
 /**
  * Convert SBase, SimpleSpeciesReference and Rule objects into the most specific type possible.
  */
-%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*
+%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*, Reaction*
 {
   ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr($1), GetDowncastSwigType($1),
                                  $owner | %newpointer_flags);
diff --git a/src/bindings/php/CMakeLists.txt b/src/bindings/php/CMakeLists.txt
index adfb1b1..8369677 100644
--- a/src/bindings/php/CMakeLists.txt
+++ b/src/bindings/php/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/php/libsbml.i b/src/bindings/php/libsbml.i
index f8f082d..42e43e4 100644
--- a/src/bindings/php/libsbml.i
+++ b/src/bindings/php/libsbml.i
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/php/local-downcast-converters.cpp.in b/src/bindings/php/local-downcast-converters.cpp.in
index 40bcd52..7ad7ab9 100644
--- a/src/bindings/php/local-downcast-converters.cpp.in
+++ b/src/bindings/php/local-downcast-converters.cpp.in
@@ -1,17 +1,17 @@
-// This file is autogenerated and will be overwritten by the configuration process
-
-#ifdef USE_COMP
-#include "local-downcast-converters-comp.cpp"
-#endif
-#ifdef USE_FBC
-#include "local-downcast-converters-fbc.cpp"
-#endif
-#ifdef USE_LAYOUT
-#include "local-downcast-converters-layout.cpp"
-#endif
-#ifdef USE_QUAL
-#include "local-downcast-converters-qual.cpp"
-#endif
-
-
-
+// This file is autogenerated and will be overwritten by the configuration process
+
+#ifdef USE_COMP
+#include "local-downcast-converters-comp.cpp"
+#endif
+#ifdef USE_FBC
+#include "local-downcast-converters-fbc.cpp"
+#endif
+#ifdef USE_LAYOUT
+#include "local-downcast-converters-layout.cpp"
+#endif
+#ifdef USE_QUAL
+#include "local-downcast-converters-qual.cpp"
+#endif
+
+
+
diff --git a/src/bindings/php/local-downcast-packages-groups.cpp b/src/bindings/php/local-downcast-packages-groups.cpp
index f69e10f..aa3a4e5 100644
--- a/src/bindings/php/local-downcast-packages-groups.cpp
+++ b/src/bindings/php/local-downcast-packages-groups.cpp
@@ -2,34 +2,30 @@
 #ifdef USE_GROUPS
 else if (pkgName == "groups")
 {
-	switch (sb->getTypeCode())
-	{
-		case SBML_LIST_OF:
-			name = sb->getElementName();
-			if(name == "listOfMembers"){
-				return SWIGTYPE_p_ListOfMembers;
-			}
-			else if (name == "listOfMemberConstraints")
-			{
-				return SWIGTYPE_p_ListOfMemberConstraints;
-			}
-			else if(name == "listOfGroups"){
-				return SWIGTYPE_p_ListOfGroups;
-			}
-			return SWIGTYPE_p_ListOf;				  
-			
-		case SBML_GROUPS_MEMBER:
-			return SWIGTYPE_p_Member;
+  switch ( sb->getTypeCode() )
+  {
+    case SBML_LIST_OF:
+      name = sb->getElementName();
+      if (name == "listOfGroups")
+      {
+        return SWIGTYPE_p_ListOfGroups;
+      }
+      else if (name == "listOfMembers")
+      {
+        return SWIGTYPE_p_ListOfMembers;
+      }
 
-		case SBML_GROUPS_MEMBER_CONSTRAINT:
-			return SWIGTYPE_p_MemberConstraint;
+      return SWIGTYPE_p_ListOf;
 
-		case SBML_GROUPS_GROUP:
-			return SWIGTYPE_p_Group;
+    case SBML_GROUPS_GROUP:
+      return SWIGTYPE_p_Group;
 
-		default:
-			return SWIGTYPE_p_SBase;
-	}
+    case SBML_GROUPS_MEMBER:
+      return SWIGTYPE_p_Member;
+
+    default:
+      return SWIGTYPE_p_SBase;
+    }
 }
 #endif // USE_GROUPS				  
 
diff --git a/src/bindings/php/local-downcast-packages-multi.cpp b/src/bindings/php/local-downcast-packages-multi.cpp
index 4b845a5..2b88667 100644
--- a/src/bindings/php/local-downcast-packages-multi.cpp
+++ b/src/bindings/php/local-downcast-packages-multi.cpp
@@ -25,10 +25,6 @@ else if (pkgName == "multi")
       {
         return SWIGTYPE_p_ListOfInSpeciesTypeBonds;
       }
-      else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-      {
-        return SWIGTYPE_p_ListOfDenotedSpeciesTypeComponentIndexes;
-      }
       else if (name == "listOfOutwardBindingSites")
       {
         return SWIGTYPE_p_ListOfOutwardBindingSites;
@@ -75,9 +71,6 @@ else if (pkgName == "multi")
     case SBML_MULTI_IN_SPECIES_TYPE_BOND:
       return SWIGTYPE_p_InSpeciesTypeBond;
 
-    case SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-      return SWIGTYPE_p_DenotedSpeciesTypeComponentIndex;
-
     case SBML_MULTI_OUTWARD_BINDING_SITE:
       return SWIGTYPE_p_OutwardBindingSite;
 
diff --git a/src/bindings/php/local-downcast-plugins-multi.cpp b/src/bindings/php/local-downcast-plugins-multi.cpp
index e3f77ff..cee4db7 100644
--- a/src/bindings/php/local-downcast-plugins-multi.cpp
+++ b/src/bindings/php/local-downcast-plugins-multi.cpp
@@ -21,6 +21,10 @@ if (pkgName == "multi")
   {
     return SWIGTYPE_p_MultiSpeciesReferencePlugin;
   }
+  else if (sb->getElementName() == "listOfReactions")
+  {
+    return SWIGTYPE_p_MultiListOfReactionsPlugin;
+  }
 }
 
 #endif // USE_MULTI 
diff --git a/src/bindings/php/local-fbc.i b/src/bindings/php/local-fbc.i
index c17a677..46dec38 100644
--- a/src/bindings/php/local-fbc.i
+++ b/src/bindings/php/local-fbc.i
@@ -1,34 +1,34 @@
-#ifdef USE_FBC
-
-SBMLCONSTRUCTOR_EXCEPTION(Association)
-SBMLCONSTRUCTOR_EXCEPTION(FbcPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(FluxBound)
-SBMLCONSTRUCTOR_EXCEPTION(FluxObjective)
-SBMLCONSTRUCTOR_EXCEPTION(GeneAssociation)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxBounds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxObjectives)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneAssociations)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfObjectives)
-SBMLCONSTRUCTOR_EXCEPTION(Objective)
-
-SBMLCONSTRUCTOR_EXCEPTION(FbcAssociation)
-SBMLCONSTRUCTOR_EXCEPTION(GeneProductAssociation)
-
-SBMLCONSTRUCTOR_EXCEPTION(GeneProduct)
-SBMLCONSTRUCTOR_EXCEPTION(GeneProductRef)
-SBMLCONSTRUCTOR_EXCEPTION(FbcAnd)
-SBMLCONSTRUCTOR_EXCEPTION(FbcOr)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfFbcAssociations)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneProducts)
-
-/**
- * Convert FbcAssociation objects into the most specific object possible.
- */
-%typemap(out) FbcAssociation*
-{
-	$result = SWIG_NewPointerObj($1, GetDowncastSwigTypeForPackage($1, "fbc"), $owner | %newpointer_flags);
-}
-
-
-#endif // USE_FBC 
-
+#ifdef USE_FBC
+
+SBMLCONSTRUCTOR_EXCEPTION(Association)
+SBMLCONSTRUCTOR_EXCEPTION(FbcPkgNamespaces)
+SBMLCONSTRUCTOR_EXCEPTION(FluxBound)
+SBMLCONSTRUCTOR_EXCEPTION(FluxObjective)
+SBMLCONSTRUCTOR_EXCEPTION(GeneAssociation)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxBounds)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfFluxObjectives)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneAssociations)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfObjectives)
+SBMLCONSTRUCTOR_EXCEPTION(Objective)
+
+SBMLCONSTRUCTOR_EXCEPTION(FbcAssociation)
+SBMLCONSTRUCTOR_EXCEPTION(GeneProductAssociation)
+
+SBMLCONSTRUCTOR_EXCEPTION(GeneProduct)
+SBMLCONSTRUCTOR_EXCEPTION(GeneProductRef)
+SBMLCONSTRUCTOR_EXCEPTION(FbcAnd)
+SBMLCONSTRUCTOR_EXCEPTION(FbcOr)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfFbcAssociations)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfGeneProducts)
+
+/**
+ * Convert FbcAssociation objects into the most specific object possible.
+ */
+%typemap(out) FbcAssociation*
+{
+	$result = SWIG_NewPointerObj($1, GetDowncastSwigTypeForPackage($1, "fbc"), $owner | %newpointer_flags);
+}
+
+
+#endif // USE_FBC 
+
diff --git a/src/bindings/php/local-groups.i b/src/bindings/php/local-groups.i
index 4300394..2910199 100644
--- a/src/bindings/php/local-groups.i
+++ b/src/bindings/php/local-groups.i
@@ -8,12 +8,11 @@
 #ifdef USE_GROUPS
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
+
 
 #endif // USE_GROUPS 
 
diff --git a/src/bindings/php/local-multi.i b/src/bindings/php/local-multi.i
index bc10578..7f7703e 100644
--- a/src/bindings/php/local-multi.i
+++ b/src/bindings/php/local-multi.i
@@ -6,7 +6,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -21,7 +20,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/php/local-packages.i.in b/src/bindings/php/local-packages.i.in
index 84217c2..aca50cb 100644
--- a/src/bindings/php/local-packages.i.in
+++ b/src/bindings/php/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-layout.i"
 #endif
diff --git a/src/bindings/php/local.cpp b/src/bindings/php/local.cpp
index 2ba1cf3..0f27001 100644
--- a/src/bindings/php/local.cpp
+++ b/src/bindings/php/local.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/php/local.i b/src/bindings/php/local.i
index 0850a3b..f429e14 100644
--- a/src/bindings/php/local.i
+++ b/src/bindings/php/local.i
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -50,7 +50,7 @@
 /**
  * Convert SBase, SimpleSpeciesReference, and Rule objects into the most specific type possible.
  */
-%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*
+%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*, Reaction*
 {
   SWIG_SetPointerZval(return_value, SWIG_as_voidptr($1),GetDowncastSwigType($1), $owner);
 }
@@ -234,17 +234,26 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
                                SWIG_POINTER_OWN |  0 );
 }
 
-%typemap(out) List* SBase::getCVTerms
+
+
+%define LIST_WRAPPER(_FNAME_,_TYPENAME_)
+%typemap(out) List* _FNAME_
 {
-  ListWrapper<CVTerm> *listw = ($1 != 0)? new ListWrapper<CVTerm>($1) : 0;
+  ListWrapper<_TYPENAME_> *listw = ($1 != 0)? new ListWrapper<_TYPENAME_>($1) : 0;
   SWIG_SetPointerZval(return_value, SWIG_as_voidptr(listw),
 #if SWIG_VERSION > 0x010333
-                               SWIGTYPE_p_ListWrapperT_CVTerm_t, 
+                               SWIGTYPE_p_ListWrapperT_ ## _TYPENAME_ ## _t, 
 #else
-                               SWIGTYPE_p_ListWrapperTCVTerm_t, 
+                               SWIGTYPE_p_ListWrapperT ## _TYPENAME_ ## _t, 
 #endif
                                SWIG_POINTER_OWN |  0 );
 }
+%enddef
+
+LIST_WRAPPER(SBase::getCVTerms,CVTerm)
+LIST_WRAPPER(SBase::getListOfAllElements,SBase)
+LIST_WRAPPER(SBasePlugin::getListOfAllElements,SBase)
+LIST_WRAPPER(SBase::getListOfAllElementsFromPlugins,SBase)
 
 %include "local-packages.i"
 
diff --git a/src/bindings/python/CMakeLists.txt b/src/bindings/python/CMakeLists.txt
index 8db8c1c..d2f2292 100644
--- a/src/bindings/python/CMakeLists.txt
+++ b/src/bindings/python/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -50,6 +50,7 @@ file(GLOB SWIG_DEPENDENCIES
   ${CMAKE_CURRENT_SOURCE_DIR}/*.i 
   ${CMAKE_CURRENT_SOURCE_DIR}/*.h 
   ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
+  ${CMAKE_CURRENT_SOURCE_DIR}/*.cmake
   ${CMAKE_CURRENT_SOURCE_DIR}/../swig/*.i
   ${CMAKE_CURRENT_SOURCE_DIR}/../swig/*.h
   )
@@ -216,6 +217,11 @@ add_custom_command(
   COMMAND "${CMAKE_COMMAND}"
   ARGS  -E rename pydoc.i pydoc-normal.i 
 
+  COMMAND "${CMAKE_COMMAND}"
+  ARGS  -DCUR_BIN_DIRECTORY=\"${CMAKE_CURRENT_BINARY_DIR}\"
+        -DVERSION=\"${LIBSBML_DOTTED_VERSION}\"
+        -P "${CMAKE_CURRENT_SOURCE_DIR}/add_version.cmake"
+
   MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/libsbml.i
   DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
           ${CMAKE_CURRENT_SOURCE_DIR}/doc-converter/rewrite_pydoc.py
@@ -266,7 +272,7 @@ endif()
 
 if(APPLE)
   option (PYTHON_USE_DYNAMIC_LOOKUP
-  "Do not actually link against the python library, instead use the undefined lookup mechanism, that ." OFF)
+  "Do not actually link against the python library, instead use the undefined lookup mechanism." OFF)
   mark_as_advanced(PYTHON_USE_DYNAMIC_LOOKUP)
 endif(APPLE)
 
@@ -290,13 +296,44 @@ else()
   set(PYTHON_PACKAGE_INSTALL_DIR ${MISC_PREFIX}bindings/python)
 endif()
 
-INSTALL(TARGETS binding_python_lib DESTINATION ${PYTHON_PACKAGE_INSTALL_DIR}/libsbml )
+####################################################################
+#
+# install using the configured install prefix
+#
+
+option (PYTHON_INSTALL_IN_PREFIX
+        "Install python binaries using the specified install prefix." ON)
+if (PYTHON_INSTALL_IN_PREFIX)
+  install(TARGETS binding_python_lib DESTINATION ${PYTHON_PACKAGE_INSTALL_DIR}/libsbml )
+  
+  file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/libsbml.pth" "libsbml\n")
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsbml.pth  DESTINATION ${PYTHON_PACKAGE_INSTALL_DIR})
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsbml.py  DESTINATION ${PYTHON_PACKAGE_INSTALL_DIR}/libsbml )
+endif(PYTHON_INSTALL_IN_PREFIX)
+
+####################################################################
+#
+# install using setup.py
+#
+
+option (PYTHON_INSTALL_WITH_SETUP
+        "Use setup.py to install the compiled python binaries (be sure to install with the appropriate privileges)." OFF)
+if (PYTHON_INSTALL_WITH_SETUP)
 
-file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/libsbml.pth" "libsbml\n")
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsbml.pth  DESTINATION ${PYTHON_PACKAGE_INSTALL_DIR})
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsbml.py  DESTINATION ${PYTHON_PACKAGE_INSTALL_DIR}/libsbml )
+  # adjust the setup.py script 
+  configure_file(${CMAKE_CURRENT_SOURCE_DIR}/setup.py.cmake ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
+    
+  # execute the python interpreter
+   INSTALL(TARGETS binding_python_lib DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/libsbml)
+   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libsbml.py  DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/libsbml RENAME __init__.py )
+   INSTALL(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E chdir ${CMAKE_CURRENT_BINARY_DIR} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/setup.py install)")
 
+endif(PYTHON_INSTALL_WITH_SETUP)
 
+####################################################################
+#
+# generate source package
+#
 option(WITH_CREATE_PYTHON_SOURCE   "Generate Python Source Package." OFF)
 if (WITH_CREATE_PYTHON_SOURCE AND EXISTS "${LIBSBML_ROOT_SOURCE_DIR}/dev/utilities/python_package/")
 
@@ -323,8 +360,7 @@ add_custom_command(
 )
 
 add_custom_target(binding_python_source_config ALL DEPENDS ${PYTHON_SOURCE_OUT_DIR}/setup.py)
-add_dependencies(binding_python_source_config binding_python_swig)
-
+add_dependencies(binding_python_source_config binding_python_swig binding_python_lib)
 add_custom_command(
   OUTPUT ${PYTHON_SOURCE_OUT_DIR}/MANIFEST
 
@@ -342,6 +378,7 @@ add_custom_command(
 
 add_custom_target(binding_python_source_package ALL DEPENDS ${PYTHON_SOURCE_OUT_DIR}/MANIFEST)
 add_dependencies(binding_python_source_package binding_python_source_config)
+add_dependencies( binding_python_source_package binding_python_swig) 
  
 
 endif(WITH_CREATE_PYTHON_SOURCE AND EXISTS "${LIBSBML_ROOT_SOURCE_DIR}/dev/utilities/python_package/")
diff --git a/src/bindings/python/Makefile.in b/src/bindings/python/Makefile.in
index 62eb84c..0def3f1 100644
--- a/src/bindings/python/Makefile.in
+++ b/src/bindings/python/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -129,6 +129,11 @@ ifdef USE_FBC
   SWIGDOCDEFINES += --define USE_FBC
 endif # USE_FBC  
 
+ifdef USE_GROUPS
+  SWIGFLAGS      += -DUSE_GROUPS
+  SWIGDOCDEFINES += --define USE_GROUPS
+endif # USE_GROUPS  
+
 ifdef USE_LAYOUT
   SWIGFLAGS      += -DUSE_LAYOUT
   SWIGDOCDEFINES += --define USE_LAYOUT
@@ -187,8 +192,9 @@ endif
 distfiles =							  \
             Makefile.in						  \
             CMakeLists.txt					  \
+            add_version.cmake					  \
             test.py						  \
-	    local-doc-extras.i					  \
+            local-doc-extras.i					  \
             local-packages.i.in					  \
             local-layout.i					  \
             setup.cfg						  \
@@ -217,6 +223,7 @@ extra_distclean =		      \
 	$(installed_files_list)	      \
 	libsbml.py		      \
 	libsbml.pyc		      \
+	libsbml-doxygen.py	      \
 	local-downcast-extension.i    \
 	local-downcast-extension.cpp  \
 	local-downcast-namespaces.i   \
@@ -258,6 +265,13 @@ ifdef USE_FBC
                ../../sbml/packages/fbc/validator \
                ../../sbml/packages/fbc/validator/constraints 
 endif
+ifdef USE_GROUPS
+  otherdirs += ../../sbml/packages/groups/common \
+               ../../sbml/packages/groups/extension \
+               ../../sbml/packages/groups/sbml \
+               ../../sbml/packages/groups/validator \
+               ../../sbml/packages/groups/validator/constraints 
+endif
 ifdef USE_LAYOUT
   otherdirs += ../../sbml/packages/layout/common \
                ../../sbml/packages/layout/extension \
@@ -381,6 +395,18 @@ else
   endef
 endif
 
+ifdef USE_GROUPS
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -z "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+else
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -n "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+endif
+
 ifdef USE_LAYOUT
   define check_layout
     if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
@@ -428,7 +454,7 @@ pydoc-normal.i: pydoc-doxygen.i
 
 libsbml_wrap.cpp: pydoc-doxygen.i pydoc-normal.i $(swig_sources) \
   $(main_sources) $(shell $(call check_layout)) $(shell $(call check_comp)) \
-  $(shell $(call check_fbc)) $(shell $(call check_qual))
+  $(shell $(call check_fbc)) $(shell $(call check_qual)) $(shell $(call check_groups))
 	@top_srcdir@/config/chk_swig_version.sh || exit
 	mv pydoc-doxygen.i pydoc.i
 	$(SWIG) $(SWIGFLAGS) $(sort $(default_includes) $(INCLUDES)) \
@@ -458,7 +484,7 @@ test_subdir_path = test/sbml:test/xml:test/annotation:test/math:test/layout
 
 check: $(libraries) $(shell $(call check_layout)) \
   $(shell $(call check_fbc)) $(shell $(call check_comp)) \
-  $(shell $(call check_qual))
+  $(shell $(call check_qual)) $(shell $(call check_groups))
 	@echo
 	@echo
 	@echo Running Tests in $(thisdir)
diff --git a/src/bindings/python/add_version.cmake b/src/bindings/python/add_version.cmake
new file mode 100644
index 0000000..bfdcd47
--- /dev/null
+++ b/src/bindings/python/add_version.cmake
@@ -0,0 +1,43 @@
+###############################################################################
+#
+# Description       : CMake build script for adding version to the python file 
+# Original author(s): Frank Bergmann <fbergman at caltech.edu>
+# Organization      : California Institute of Technology
+#
+# This file is part of libSBML.  Please visit http://sbml.org for more
+# information about SBML, and the latest version of libSBML.
+#
+# Copyright (C) 2013-2016 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#     3. University of Heidelberg, Heidelberg, Germany
+#
+# Copyright (C) 2009-2013 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#  
+# Copyright (C) 2006-2008 by the California Institute of Technology,
+#     Pasadena, CA, USA 
+#  
+# Copyright (C) 2002-2005 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. Japan Science and Technology Agency, Japan
+# 
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation.  A copy of the license agreement is provided
+# in the file named "LICENSE.txt" included with this software distribution
+# and also available online as http://sbml.org/software/libsbml/license.html
+#
+###############################################################################
+
+message("Python: Add Version to generated file")
+
+if(NOT EXISTS ${CUR_BIN_DIRECTORY}/libsbml.py)
+  message(FATAL_ERROR "  The SWIG wrapper has not yet been created")
+else()
+  file(APPEND ${CUR_BIN_DIRECTORY}/libsbml.py "
+global __version__
+__version__ = '${VERSION}'
+")
+endif()
diff --git a/src/bindings/python/doc-converter/rewrite_pydoc.py b/src/bindings/python/doc-converter/rewrite_pydoc.py
index 473122e..1be4ced 100755
--- a/src/bindings/python/doc-converter/rewrite_pydoc.py
+++ b/src/bindings/python/doc-converter/rewrite_pydoc.py
@@ -90,7 +90,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2014 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -272,7 +272,13 @@ def rewrite(contents, include_dir, graphics_dir, quietly=False):
     Print messages about errors unless parameter 'quietly' is True."""
 
     p = re.compile('(%feature\("docstring"\) \S+ "\n)(.*?)(^";\n\s*)', re.DOTALL|re.MULTILINE)
-    return p.sub(lambda match: rewrite_each(match, include_dir, graphics_dir, quietly), contents)
+    try:
+      return p.sub(lambda match: rewrite_each(match, include_dir, graphics_dir, quietly), contents)
+    except:
+      print("Warning: the content contains non-ascii characters, the character will be replaced. Please be sure to check the generated file.")
+      contents = contents.decode('ascii', 'ignore')
+      return p.sub(lambda match: rewrite_each(match, include_dir, graphics_dir, quietly), contents)
+
 
 
 def rewrite_each(match, include_dir, graphics_dir, quietly):
@@ -596,7 +602,11 @@ def rewrite_htmlinclude(match, include_dir, quietly):
         file = open(file_path, 'r')
 
         writer = RewritePydocStringWriter()
-        parser = RewritePydocHTMLParser(AbstractFormatter(writer))
+        parser = None
+        try: 
+          parser = RewritePydocHTMLParser(AbstractFormatter(writer))
+        except: 
+          parser = RewritePydocHTMLParser()
         parser.feed(file.read())
         parser.close()
         file.close()
diff --git a/src/bindings/python/libsbml-doxygen.py b/src/bindings/python/libsbml-doxygen.py
index da30f0b..3433961 100644
--- a/src/bindings/python/libsbml-doxygen.py
+++ b/src/bindings/python/libsbml-doxygen.py
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 2.0.4
+# Version 2.0.6
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
@@ -362,75 +362,75 @@ class SwigPyIterator(_object):
     __swig_destroy__ = _libsbml.delete_SwigPyIterator
     __del__ = lambda self : None;
     def value(self):
-        """value(self) -> PyObject"""
+        """value(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator_value(self)
 
-    def incr(self, n = 1):
+    def incr(self, n=1):
         """
-        incr(self, size_t n = 1) -> SwigPyIterator
-        incr(self) -> SwigPyIterator
+        incr(SwigPyIterator self, size_t n=1) -> SwigPyIterator
+        incr(SwigPyIterator self) -> SwigPyIterator
         """
         return _libsbml.SwigPyIterator_incr(self, n)
 
-    def decr(self, n = 1):
+    def decr(self, n=1):
         """
-        decr(self, size_t n = 1) -> SwigPyIterator
-        decr(self) -> SwigPyIterator
+        decr(SwigPyIterator self, size_t n=1) -> SwigPyIterator
+        decr(SwigPyIterator self) -> SwigPyIterator
         """
         return _libsbml.SwigPyIterator_decr(self, n)
 
     def distance(self, *args):
-        """distance(self, SwigPyIterator x) -> ptrdiff_t"""
+        """distance(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t"""
         return _libsbml.SwigPyIterator_distance(self, *args)
 
     def equal(self, *args):
-        """equal(self, SwigPyIterator x) -> bool"""
+        """equal(SwigPyIterator self, SwigPyIterator x) -> bool"""
         return _libsbml.SwigPyIterator_equal(self, *args)
 
     def copy(self):
-        """copy(self) -> SwigPyIterator"""
+        """copy(SwigPyIterator self) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator_copy(self)
 
     def next(self):
-        """next(self) -> PyObject"""
+        """next(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator_next(self)
 
     def __next__(self):
-        """__next__(self) -> PyObject"""
+        """__next__(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator___next__(self)
 
     def previous(self):
-        """previous(self) -> PyObject"""
+        """previous(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator_previous(self)
 
     def advance(self, *args):
-        """advance(self, ptrdiff_t n) -> SwigPyIterator"""
+        """advance(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator_advance(self, *args)
 
     def __eq__(self, *args):
-        """__eq__(self, SwigPyIterator x) -> bool"""
+        """__eq__(SwigPyIterator self, SwigPyIterator x) -> bool"""
         return _libsbml.SwigPyIterator___eq__(self, *args)
 
     def __ne__(self, *args):
-        """__ne__(self, SwigPyIterator x) -> bool"""
+        """__ne__(SwigPyIterator self, SwigPyIterator x) -> bool"""
         return _libsbml.SwigPyIterator___ne__(self, *args)
 
     def __iadd__(self, *args):
-        """__iadd__(self, ptrdiff_t n) -> SwigPyIterator"""
+        """__iadd__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator___iadd__(self, *args)
 
     def __isub__(self, *args):
-        """__isub__(self, ptrdiff_t n) -> SwigPyIterator"""
+        """__isub__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator___isub__(self, *args)
 
     def __add__(self, *args):
-        """__add__(self, ptrdiff_t n) -> SwigPyIterator"""
+        """__add__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator___add__(self, *args)
 
     def __sub__(self, *args):
         """
-        __sub__(self, ptrdiff_t n) -> SwigPyIterator
-        __sub__(self, SwigPyIterator x) -> ptrdiff_t
+        __sub__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator
+        __sub__(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t
         """
         return _libsbml.SwigPyIterator___sub__(self, *args)
 
@@ -446,264 +446,276 @@ class string(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, string, name)
     __repr__ = _swig_repr
     def length(self):
-        """length(self) -> size_type"""
+        """length(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string_length(self)
 
     def max_size(self):
-        """max_size(self) -> size_type"""
+        """max_size(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string_max_size(self)
 
     def copy(self, *args):
         """
-        copy(self, char __s, size_type __n, size_type __pos = 0) -> size_type
-        copy(self, char __s, size_type __n) -> size_type
+        copy(string self, char * __s, std::basic_string< char >::size_type __n, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        copy(string self, char * __s, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_copy(self, *args)
 
     def c_str(self):
-        """c_str(self) -> char"""
+        """c_str(string self) -> char const *"""
         return _libsbml.string_c_str(self)
 
     def find(self, *args):
         """
-        find(self, char __s, size_type __pos, size_type __n) -> size_type
-        find(self, string __str, size_type __pos = 0) -> size_type
-        find(self, string __str) -> size_type
-        find(self, char __c, size_type __pos = 0) -> size_type
-        find(self, char __c) -> size_type
+        find(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find(string self, string __str) -> std::basic_string< char >::size_type
+        find(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find(self, *args)
 
     def rfind(self, *args):
         """
-        rfind(self, string __str, size_type __pos = std::basic_string< char >::npos) -> size_type
-        rfind(self, string __str) -> size_type
-        rfind(self, char __s, size_type __pos, size_type __n) -> size_type
-        rfind(self, char __c, size_type __pos = std::basic_string< char >::npos) -> size_type
-        rfind(self, char __c) -> size_type
+        rfind(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        rfind(string self, string __str) -> std::basic_string< char >::size_type
+        rfind(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        rfind(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        rfind(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_rfind(self, *args)
 
     def find_first_of(self, *args):
         """
-        find_first_of(self, string __str, size_type __pos = 0) -> size_type
-        find_first_of(self, string __str) -> size_type
-        find_first_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_first_of(self, char __c, size_type __pos = 0) -> size_type
-        find_first_of(self, char __c) -> size_type
+        find_first_of(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_first_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_first_of(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_first_of(self, *args)
 
     def find_last_of(self, *args):
         """
-        find_last_of(self, string __str, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_of(self, string __str) -> size_type
-        find_last_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_last_of(self, char __c, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_of(self, char __c) -> size_type
+        find_last_of(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_last_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_last_of(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_last_of(self, *args)
 
     def find_first_not_of(self, *args):
         """
-        find_first_not_of(self, string __str, size_type __pos = 0) -> size_type
-        find_first_not_of(self, string __str) -> size_type
-        find_first_not_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_first_not_of(self, char __c, size_type __pos = 0) -> size_type
-        find_first_not_of(self, char __c) -> size_type
+        find_first_not_of(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_first_not_of(self, *args)
 
     def find_last_not_of(self, *args):
         """
-        find_last_not_of(self, string __str, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_not_of(self, string __str) -> size_type
-        find_last_not_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_last_not_of(self, char __c, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_not_of(self, char __c) -> size_type
+        find_last_not_of(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_last_not_of(self, *args)
 
     def substr(self, *args):
         """
-        substr(self, size_type __pos = 0, size_type __n = std::basic_string< char >::npos) -> string
-        substr(self, size_type __pos = 0) -> string
-        substr(self) -> string
+        substr(string self, std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string
+        substr(string self, std::basic_string< char >::size_type __pos=0) -> string
+        substr(string self) -> string
         """
         return _libsbml.string_substr(self, *args)
 
     def empty(self):
-        """empty(self) -> bool"""
+        """empty(string self) -> bool"""
         return _libsbml.string_empty(self)
 
     def size(self):
-        """size(self) -> size_type"""
+        """size(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string_size(self)
 
     def swap(self, *args):
-        """swap(self, string v)"""
+        """swap(string self, string v)"""
         return _libsbml.string_swap(self, *args)
 
     def erase(self, *args):
         """
-        erase(self, size_type __pos = 0, size_type __n = std::basic_string< char >::npos) -> string
-        erase(self, size_type __pos = 0) -> string
-        erase(self) -> string
-        erase(self, iterator pos) -> iterator
-        erase(self, iterator first, iterator last) -> iterator
+        erase(string self, std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string
+        erase(string self, std::basic_string< char >::size_type __pos=0) -> string
+        erase(string self) -> string
+        erase(string self, std::basic_string< char >::iterator pos) -> std::basic_string< char >::iterator
+        erase(string self, std::basic_string< char >::iterator first, std::basic_string< char >::iterator last) -> std::basic_string< char >::iterator
         """
         return _libsbml.string_erase(self, *args)
 
     def __init__(self, *args): 
         """
-        __init__(self, char __s, size_type __n) -> string
-        __init__(self) -> string
-        __init__(self, string arg0) -> string
-        __init__(self, size_type size, value_type value) -> string
+        __init__(std::basic_string<(char)> self, char const * __s, std::basic_string< char >::size_type __n) -> string
+        __init__(std::basic_string<(char)> self) -> string
+        __init__(std::basic_string<(char)> self, string arg2) -> string
+        __init__(std::basic_string<(char)> self, std::basic_string< char >::size_type size, std::basic_string< char >::value_type value) -> string
         """
         this = _libsbml.new_string(*args)
         try: self.this.append(this)
         except: self.this = this
     def assign(self, *args):
         """
-        assign(self, string __str) -> string
-        assign(self, string __str, size_type __pos, size_type __n) -> string
-        assign(self, char __s, size_type __n) -> string
-        assign(self, size_type n, value_type x)
+        assign(string self, string __str) -> string
+        assign(string self, string __str, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> string
+        assign(string self, char const * __s, std::basic_string< char >::size_type __n) -> string
+        assign(string self, std::basic_string< char >::size_type n, std::basic_string< char >::value_type x)
         """
         return _libsbml.string_assign(self, *args)
 
     def resize(self, *args):
         """
-        resize(self, size_type new_size)
-        resize(self, size_type new_size, value_type x)
+        resize(string self, std::basic_string< char >::size_type new_size)
+        resize(string self, std::basic_string< char >::size_type new_size, std::basic_string< char >::value_type x)
         """
         return _libsbml.string_resize(self, *args)
 
     def iterator(self):
-        """iterator(self) -> SwigPyIterator"""
+        """iterator(string self) -> SwigPyIterator"""
         return _libsbml.string_iterator(self)
 
     def __iter__(self): return self.iterator()
     def __nonzero__(self):
-        """__nonzero__(self) -> bool"""
+        """__nonzero__(string self) -> bool"""
         return _libsbml.string___nonzero__(self)
 
     def __bool__(self):
-        """__bool__(self) -> bool"""
+        """__bool__(string self) -> bool"""
         return _libsbml.string___bool__(self)
 
     def __len__(self):
-        """__len__(self) -> size_type"""
+        """__len__(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string___len__(self)
 
     def __getslice__(self, *args):
-        """__getslice__(self, difference_type i, difference_type j) -> string"""
+        """__getslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j) -> string"""
         return _libsbml.string___getslice__(self, *args)
 
     def __setslice__(self, *args):
         """
-        __setslice__(self, difference_type i, difference_type j, string v = std::basic_string< char,std::char_traits< char >,std::allocator< char > >())
-        __setslice__(self, difference_type i, difference_type j)
+        __setslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j, 
+            string v=std::basic_string< char,std::char_traits< char >,std::allocator< char > >())
+        __setslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j)
         """
         return _libsbml.string___setslice__(self, *args)
 
     def __delslice__(self, *args):
-        """__delslice__(self, difference_type i, difference_type j)"""
+        """__delslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j)"""
         return _libsbml.string___delslice__(self, *args)
 
     def __delitem__(self, *args):
         """
-        __delitem__(self, difference_type i)
-        __delitem__(self, PySliceObject slice)
+        __delitem__(string self, std::basic_string< char >::difference_type i)
+        __delitem__(string self, PySliceObject * slice)
         """
         return _libsbml.string___delitem__(self, *args)
 
     def __getitem__(self, *args):
         """
-        __getitem__(self, PySliceObject slice) -> string
-        __getitem__(self, difference_type i) -> value_type
+        __getitem__(string self, PySliceObject * slice) -> string
+        __getitem__(string self, std::basic_string< char >::difference_type i) -> std::basic_string< char >::value_type
         """
         return _libsbml.string___getitem__(self, *args)
 
     def __setitem__(self, *args):
         """
-        __setitem__(self, PySliceObject slice, string v)
-        __setitem__(self, PySliceObject slice)
-        __setitem__(self, difference_type i, value_type x)
+        __setitem__(string self, PySliceObject * slice, string v)
+        __setitem__(string self, PySliceObject * slice)
+        __setitem__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::value_type x)
         """
         return _libsbml.string___setitem__(self, *args)
 
     def insert(self, *args):
         """
-        insert(self, size_type __pos1, string __str) -> string
-        insert(self, size_type __pos1, string __str, size_type __pos2, size_type __n) -> string
-        insert(self, size_type __pos, char __s, size_type __n) -> string
-        insert(self, size_type __pos, size_type __n, char __c) -> string
-        insert(self, iterator pos, value_type x) -> iterator
-        insert(self, iterator pos, size_type n, value_type x)
-        insert(self, iterator __p, size_type __n, char __c)
+        insert(string self, std::basic_string< char >::size_type __pos1, string __str) -> string
+        insert(string self, std::basic_string< char >::size_type __pos1, string __str, std::basic_string< char >::size_type __pos2, 
+            std::basic_string< char >::size_type __n) -> string
+        insert(string self, std::basic_string< char >::size_type __pos, char const * __s, std::basic_string< char >::size_type __n) -> string
+        insert(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, 
+            char __c) -> string
+        insert(string self, std::basic_string< char >::iterator pos, std::basic_string< char >::value_type x) -> std::basic_string< char >::iterator
+        insert(string self, std::basic_string< char >::iterator pos, std::basic_string< char >::size_type n, 
+            std::basic_string< char >::value_type x)
+        insert(string self, std::basic_string< char >::iterator __p, std::basic_string< char >::size_type __n, 
+            char __c)
         """
         return _libsbml.string_insert(self, *args)
 
     def replace(self, *args):
         """
-        replace(self, size_type __pos, size_type __n, string __str) -> string
-        replace(self, size_type __pos1, size_type __n1, string __str, size_type __pos2, 
-            size_type __n2) -> string
-        replace(self, size_type __pos, size_type __n1, char __s, size_type __n2) -> string
-        replace(self, size_type __pos, size_type __n1, size_type __n2, char __c) -> string
-        replace(self, iterator __i1, iterator __i2, string __str) -> string
-        replace(self, iterator __i1, iterator __i2, char __s, size_type __n) -> string
-        replace(self, iterator __i1, iterator __i2, size_type __n, char __c) -> string
-        replace(self, iterator __i1, iterator __i2, char __k1, char __k2) -> string
-        replace(self, iterator __i1, iterator __i2, const_iterator __k1, 
-            const_iterator __k2) -> string
+        replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, 
+            string __str) -> string
+        replace(string self, std::basic_string< char >::size_type __pos1, std::basic_string< char >::size_type __n1, 
+            string __str, std::basic_string< char >::size_type __pos2, std::basic_string< char >::size_type __n2) -> string
+        replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, 
+            char const * __s, std::basic_string< char >::size_type __n2) -> string
+        replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, 
+            std::basic_string< char >::size_type __n2, char __c) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            string __str) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            char const * __s, std::basic_string< char >::size_type __n) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            std::basic_string< char >::size_type __n, char __c) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            char const * __k1, char const * __k2) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            std::basic_string< char >::const_iterator __k1, std::basic_string< char >::const_iterator __k2) -> string
         """
         return _libsbml.string_replace(self, *args)
 
     def __iadd__(self, *args):
-        """__iadd__(self, string v) -> string"""
+        """__iadd__(string self, string v) -> string"""
         return _libsbml.string___iadd__(self, *args)
 
     def __add__(self, *args):
-        """__add__(self, string v) -> string"""
+        """__add__(string self, string v) -> string"""
         return _libsbml.string___add__(self, *args)
 
     def __radd__(self, *args):
-        """__radd__(self, string v) -> string"""
+        """__radd__(string self, string v) -> string"""
         return _libsbml.string___radd__(self, *args)
 
     def __str__(self):
-        """__str__(self) -> string"""
+        """__str__(string self) -> string"""
         return _libsbml.string___str__(self)
 
     def __rlshift__(self, *args):
-        """__rlshift__(self, ostream out) -> ostream"""
+        """__rlshift__(string self, ostream out) -> ostream"""
         return _libsbml.string___rlshift__(self, *args)
 
     def __eq__(self, *args):
-        """__eq__(self, string v) -> bool"""
+        """__eq__(string self, string v) -> bool"""
         return _libsbml.string___eq__(self, *args)
 
     def __ne__(self, *args):
-        """__ne__(self, string v) -> bool"""
+        """__ne__(string self, string v) -> bool"""
         return _libsbml.string___ne__(self, *args)
 
     def __gt__(self, *args):
-        """__gt__(self, string v) -> bool"""
+        """__gt__(string self, string v) -> bool"""
         return _libsbml.string___gt__(self, *args)
 
     def __lt__(self, *args):
-        """__lt__(self, string v) -> bool"""
+        """__lt__(string self, string v) -> bool"""
         return _libsbml.string___lt__(self, *args)
 
     def __ge__(self, *args):
-        """__ge__(self, string v) -> bool"""
+        """__ge__(string self, string v) -> bool"""
         return _libsbml.string___ge__(self, *args)
 
     def __le__(self, *args):
-        """__le__(self, string v) -> bool"""
+        """__le__(string self, string v) -> bool"""
         return _libsbml.string___le__(self, *args)
 
     __swig_destroy__ = _libsbml.delete_string
@@ -721,7 +733,7 @@ class ostream(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, ostream, name)
     __repr__ = _swig_repr
     def __init__(self, *args): 
-        """__init__(self, std::basic_streambuf<(char,std::char_traits<(char)>)> __sb) -> ostream"""
+        """__init__(std::basic_ostream<(char)> self, std::basic_streambuf< char,std::char_traits< char > > * __sb) -> ostream"""
         this = _libsbml.new_ostream(*args)
         try: self.this.append(this)
         except: self.this = this
@@ -741,8 +753,8 @@ class ostringstream(ostream):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, std::ios_base::openmode __mode = std::ios_base::out) -> ostringstream
-        __init__(self) -> ostringstream
+        __init__(std::basic_ostringstream<(char)> self, std::ios_base::openmode __mode=std::ios_base::out) -> ostringstream
+        __init__(std::basic_ostringstream<(char)> self) -> ostringstream
         """
         this = _libsbml.new_ostringstream(*args)
         try: self.this.append(this)
@@ -751,8 +763,8 @@ class ostringstream(ostream):
     __del__ = lambda self : None;
     def str(self, *args):
         """
-        str(self) -> string
-        str(self, string __s)
+        str(ostringstream self) -> string
+        str(ostringstream self, string __s)
         """
         return _libsbml.ostringstream_str(self, *args)
 
@@ -761,11 +773,11 @@ ostringstream_swigregister(ostringstream)
 
 
 def endl(*args):
-  """endl(ostream arg0) -> ostream"""
+  """endl(ostream arg1) -> ostream"""
   return _libsbml.endl(*args)
 
 def flush(*args):
-  """flush(ostream arg0) -> ostream"""
+  """flush(ostream arg1) -> ostream"""
   return _libsbml.flush(*args)
 LIBSBML_DOTTED_VERSION = _libsbml.LIBSBML_DOTTED_VERSION
 LIBSBML_VERSION = _libsbml.LIBSBML_VERSION
@@ -784,7 +796,7 @@ def getLibSBMLVersion():
 
 def getLibSBMLDottedVersion():
   """
-    getLibSBMLDottedVersion() -> char
+    getLibSBMLDottedVersion() -> char const *
 
     Returns the version number of this copy of libSBML as a string.
 
@@ -798,7 +810,7 @@ def getLibSBMLDottedVersion():
 
 def getLibSBMLVersionString():
   """
-    getLibSBMLVersionString() -> char
+    getLibSBMLVersionString() -> char const *
 
     Returns the version number of this copy of libSBML as a string without
     periods.
@@ -812,7 +824,7 @@ def getLibSBMLVersionString():
 
 def isLibSBMLCompiledWith(*args):
   """
-    isLibSBMLCompiledWith(char option) -> int
+    isLibSBMLCompiledWith(char const * option) -> int
 
     Returns an indication whether libSBML has been compiled with
     against a specific library. 
@@ -832,7 +844,7 @@ def isLibSBMLCompiledWith(*args):
 
 def getLibSBMLDependencyVersionOf(*args):
   """
-    getLibSBMLDependencyVersionOf(char option) -> char
+    getLibSBMLDependencyVersionOf(char const * option) -> char const *
 
     Returns the version string for the dependency library used. 
 
@@ -862,6 +874,7 @@ LIBSBML_DUPLICATE_ANNOTATION_NS = _libsbml.LIBSBML_DUPLICATE_ANNOTATION_NS
 LIBSBML_ANNOTATION_NAME_NOT_FOUND = _libsbml.LIBSBML_ANNOTATION_NAME_NOT_FOUND
 LIBSBML_ANNOTATION_NS_NOT_FOUND = _libsbml.LIBSBML_ANNOTATION_NS_NOT_FOUND
 LIBSBML_MISSING_METAID = _libsbml.LIBSBML_MISSING_METAID
+LIBSBML_DEPRECATED_ATTRIBUTE = _libsbml.LIBSBML_DEPRECATED_ATTRIBUTE
 LIBSBML_PKG_VERSION_MISMATCH = _libsbml.LIBSBML_PKG_VERSION_MISMATCH
 LIBSBML_PKG_UNKNOWN = _libsbml.LIBSBML_PKG_UNKNOWN
 LIBSBML_PKG_UNKNOWN_VERSION = _libsbml.LIBSBML_PKG_UNKNOWN_VERSION
@@ -876,7 +889,7 @@ LIBSBML_CONV_PKG_CONSIDERED_UNKNOWN = _libsbml.LIBSBML_CONV_PKG_CONSIDERED_UNKNO
 
 def OperationReturnValue_toString(*args):
   """
-    OperationReturnValue_toString(int returnValue) -> char
+    OperationReturnValue_toString(int returnValue) -> char const *
 
     This method takes an SBML operation return value and returns a string representing
     the code.
@@ -906,8 +919,8 @@ class IdList(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> IdList
-        __init__(self, string commaSeparated) -> IdList
+        __init__(IdList self) -> IdList
+        __init__(IdList self, string commaSeparated) -> IdList
 
         @sbmlpackage{core}
 
@@ -920,7 +933,7 @@ class IdList(_object):
         except: self.this = this
     def append(self, *args):
         """
-        append(self, string id)
+        append(IdList self, string id)
 
         @internal
 
@@ -931,7 +944,7 @@ class IdList(_object):
 
     def contains(self, *args):
         """
-        contains(self, string id) -> bool
+        contains(IdList self, string id) -> bool
 
         @internal
 
@@ -942,7 +955,7 @@ class IdList(_object):
 
     def removeIdsBefore(self, *args):
         """
-        removeIdsBefore(self, string id)
+        removeIdsBefore(IdList self, string id)
 
         @internal
 
@@ -953,7 +966,7 @@ class IdList(_object):
 
     def size(self):
         """
-        size(self) -> unsigned int
+        size(IdList self) -> unsigned int
 
         @internal
 
@@ -963,11 +976,11 @@ class IdList(_object):
         return _libsbml.IdList_size(self)
 
     def clear(self):
-        """clear(self)"""
+        """clear(IdList self)"""
         return _libsbml.IdList_clear(self)
 
     def at(self, *args):
-        """at(self, int n) -> string"""
+        """at(IdList self, int n) -> string"""
         return _libsbml.IdList_at(self, *args)
 
     __swig_destroy__ = _libsbml.delete_IdList
@@ -993,7 +1006,7 @@ class IdentifierTransformer(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> IdentifierTransformer
+        __init__(IdentifierTransformer self) -> IdentifierTransformer
 
         @sbmlpackage{core}
 
@@ -1011,7 +1024,7 @@ class IdentifierTransformer(_object):
     __swig_destroy__ = _libsbml.delete_IdentifierTransformer
     __del__ = lambda self : None;
     def transform(self, *args):
-        """transform(self, SBase element) -> int"""
+        """transform(IdentifierTransformer self, SBase element) -> int"""
         return _libsbml.IdentifierTransformer_transform(self, *args)
 
     def __disown__(self):
@@ -1042,7 +1055,7 @@ class ElementFilter(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> ElementFilter
+        __init__(ElementFilter self) -> ElementFilter
 
         Creates a new ElementFilter object.
 
@@ -1058,7 +1071,7 @@ class ElementFilter(_object):
     __del__ = lambda self : None;
     def filter(self, *args):
         """
-        filter(self, SBase element) -> bool
+        filter(ElementFilter self, SBase element) -> bool
 
         Predicate to test elements.
 
@@ -1147,7 +1160,7 @@ class SBMLReader(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> SBMLReader
+        __init__(SBMLReader self) -> SBMLReader
 
         Creates a new SBMLReader object and returns it.
 
@@ -1162,7 +1175,7 @@ class SBMLReader(_object):
     __del__ = lambda self : None;
     def readSBML(self, *args):
         """
-        readSBML(self, string filename) -> SBMLDocument
+        readSBML(SBMLReader self, string filename) -> SBMLDocument
 
         Reads an SBML document from the given file.
 
@@ -1353,7 +1366,7 @@ class SBMLReader(_object):
 
     def readSBMLFromFile(self, *args):
         """
-        readSBMLFromFile(self, string filename) -> SBMLDocument
+        readSBMLFromFile(SBMLReader self, string filename) -> SBMLDocument
 
         Reads an SBML document from the given file.
 
@@ -1544,7 +1557,7 @@ class SBMLReader(_object):
 
     def readSBMLFromString(self, *args):
         """
-        readSBMLFromString(self, string xml) -> SBMLDocument
+        readSBMLFromString(SBMLReader self, string xml) -> SBMLDocument
 
         Reads an SBML document from a text string.
 
@@ -1696,7 +1709,7 @@ def SBMLReader_hasBzip2():
 
 def readSBML(*args):
   """
-    readSBML(char filename) -> SBMLDocument_t
+    readSBML(char const * filename) -> SBMLDocument
 
     Reads an SBML document from the given file.
 
@@ -1863,7 +1876,7 @@ def readSBML(*args):
 
 def readSBMLFromFile(*args):
   """
-    readSBMLFromFile(char filename) -> SBMLDocument_t
+    readSBMLFromFile(char const * filename) -> SBMLDocument
 
     Reads an SBML document from the given file.
 
@@ -2035,7 +2048,7 @@ def readSBMLFromFile(*args):
 
 def readSBMLFromString(*args):
   """
-    readSBMLFromString(char xml) -> SBMLDocument_t
+    readSBMLFromString(char const * xml) -> SBMLDocument
 
     Reads an SBML document from a text string.
 
@@ -2125,7 +2138,7 @@ class SBMLWriter(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> SBMLWriter
+        __init__(SBMLWriter self) -> SBMLWriter
 
         Creates a new SBMLWriter.
 
@@ -2140,7 +2153,7 @@ class SBMLWriter(_object):
     __del__ = lambda self : None;
     def setProgramName(self, *args):
         """
-        setProgramName(self, string name) -> int
+        setProgramName(SBMLWriter self, string name) -> int
 
         Sets the name of this program, i.e., the program that is about to
         write out the SBMLDocument.
@@ -2173,7 +2186,7 @@ class SBMLWriter(_object):
 
     def setProgramVersion(self, *args):
         """
-        setProgramVersion(self, string version) -> int
+        setProgramVersion(SBMLWriter self, string version) -> int
 
         Sets the version of this program, i.e., the program that is about to
         write out the SBMLDocument.
@@ -2206,8 +2219,8 @@ class SBMLWriter(_object):
 
     def writeSBML(self, *args):
         """
-        writeSBML(self, SBMLDocument d, string filename) -> bool
-        writeSBML(self, SBMLDocument d, ostream stream) -> bool
+        writeSBML(SBMLWriter self, SBMLDocument d, string filename) -> bool
+        writeSBML(SBMLWriter self, SBMLDocument d, ostream stream) -> bool
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -2257,7 +2270,7 @@ class SBMLWriter(_object):
 
     def writeToString(self, *args):
         """
-        writeToString(self, SBMLDocument d) -> char
+        writeToString(SBMLWriter self, SBMLDocument d) -> char *
 
         @internal
 
@@ -2268,7 +2281,7 @@ class SBMLWriter(_object):
 
     def writeSBMLToFile(self, *args):
         """
-        writeSBMLToFile(self, SBMLDocument d, string filename) -> bool
+        writeSBMLToFile(SBMLWriter self, SBMLDocument d, string filename) -> bool
 
         Writes the given SBML document to filename.
 
@@ -2292,7 +2305,7 @@ class SBMLWriter(_object):
 
     def writeSBMLToString(self, *args):
         """
-        writeSBMLToString(self, SBMLDocument d) -> char
+        writeSBMLToString(SBMLWriter self, SBMLDocument d) -> char *
 
         Writes the given SBML document to an in-memory string and returns a
         pointer to it.
@@ -2447,7 +2460,7 @@ def SBMLWriter_hasBzip2():
 
 def writeSBML(*args):
   """
-    writeSBML(SBMLDocument_t d, char filename) -> int
+    writeSBML(SBMLDocument d, char const * filename) -> int
 
     Writes the given SBML document @p d to the file named by @p filename.
     This convenience function is functionally equivalent to:
@@ -2480,7 +2493,7 @@ def writeSBML(*args):
 
 def writeSBMLToString(*args):
   """
-    writeSBMLToString(SBMLDocument_t d) -> char
+    writeSBMLToString(SBMLDocument d) -> char *
 
     Writes the given SBML document @p d to an in-memory string and returns a
     pointer to it.  The string is owned by the caller and should be freed
@@ -2508,7 +2521,7 @@ def writeSBMLToString(*args):
 
 def writeSBMLToFile(*args):
   """
-    writeSBMLToFile(SBMLDocument_t d, char filename) -> int
+    writeSBMLToFile(SBMLDocument d, char const * filename) -> int
 
     Writes the given SBML document @p d to the file @p filename.
     This convenience function is functionally equivalent to:
@@ -2580,7 +2593,7 @@ SBML_GENERIC_SBASE = _libsbml.SBML_GENERIC_SBASE
 
 def SBMLTypeCode_toString(*args):
   """
-    SBMLTypeCode_toString(int tc, char pkgName) -> char
+    SBMLTypeCode_toString(int tc, char const * pkgName) -> char const *
 
     This method takes an SBML type code and returns a string representing
     the code.
@@ -2722,7 +2735,7 @@ class SBase(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBase
+        clone(SBase self) -> SBase
 
         Creates and returns a deep copy of this SBase object.
 
@@ -2733,8 +2746,8 @@ class SBase(_object):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(SBase self, string id) -> SBase
+        getElementBySId(SBase self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide @c SId namespace, or @c None if no such object is found.
@@ -2749,8 +2762,8 @@ class SBase(_object):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(SBase self, string metaid) -> SBase
+        getElementByMetaId(SBase self, string metaid) -> SBase
 
         Returns the first child element it can find with a specific 'metaid'
         attribute value, or @c None if no such object is found.
@@ -2786,7 +2799,7 @@ class SBase(_object):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(SBase self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -2816,7 +2829,7 @@ class SBase(_object):
 
     def renameMetaIdRefs(self, *args):
         """
-        renameMetaIdRefs(self, string oldid, string newid)
+        renameMetaIdRefs(SBase self, string oldid, string newid)
 
         Replaces all uses of a given meta identifier attribute value with
         another value.
@@ -2842,7 +2855,7 @@ class SBase(_object):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(SBase self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -2872,7 +2885,7 @@ class SBase(_object):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(SBase self, string id, ASTNode function)
 
         @internal
 
@@ -2883,7 +2896,7 @@ class SBase(_object):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(SBase self, string id, ASTNode function)
 
         @internal
 
@@ -2894,7 +2907,7 @@ class SBase(_object):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(SBase self, string id, ASTNode function)
 
         @internal
 
@@ -2905,7 +2918,7 @@ class SBase(_object):
 
     def getElementFromPluginsBySId(self, *args):
         """
-        getElementFromPluginsBySId(self, string id) -> SBase
+        getElementFromPluginsBySId(SBase self, string id) -> SBase
 
         @internal
 
@@ -2916,7 +2929,7 @@ class SBase(_object):
 
     def getElementFromPluginsByMetaId(self, *args):
         """
-        getElementFromPluginsByMetaId(self, string metaid) -> SBase
+        getElementFromPluginsByMetaId(SBase self, string metaid) -> SBase
 
         @internal
 
@@ -2927,7 +2940,7 @@ class SBase(_object):
 
     def hasNonstandardIdentifierBeginningWith(self, *args):
         """
-        hasNonstandardIdentifierBeginningWith(self, string prefix) -> bool
+        hasNonstandardIdentifierBeginningWith(SBase self, string prefix) -> bool
 
         @internal
 
@@ -2938,7 +2951,7 @@ class SBase(_object):
 
     def prependStringToAllIdentifiers(self, *args):
         """
-        prependStringToAllIdentifiers(self, string prefix) -> int
+        prependStringToAllIdentifiers(SBase self, string prefix) -> int
 
         @internal
 
@@ -2949,7 +2962,7 @@ class SBase(_object):
 
     def transformIdentifiers(self, *args):
         """
-        transformIdentifiers(self, IdentifierTransformer idTransformer) -> int
+        transformIdentifiers(SBase self, IdentifierTransformer idTransformer) -> int
 
         @internal
 
@@ -2960,7 +2973,7 @@ class SBase(_object):
 
     def getMetaId(self):
         """
-        getMetaId(self) -> string
+        getMetaId(SBase self) -> string
 
         Returns the value of the 'metaid' attribute of this object.
 
@@ -2995,7 +3008,7 @@ class SBase(_object):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(SBase self) -> string
 
         @internal
 
@@ -3006,7 +3019,7 @@ class SBase(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SBase self) -> string
 
         @internal
 
@@ -3017,8 +3030,8 @@ class SBase(_object):
 
     def getNotes(self, *args):
         """
-        getNotes(self) -> XMLNode
-        getNotes(self) -> XMLNode
+        getNotes(SBase self) -> XMLNode
+        getNotes(SBase self) -> XMLNode
 
         Returns the content of the 'notes' subelement of this object as
         a tree of XMLNode objects.
@@ -3075,8 +3088,8 @@ class SBase(_object):
 
     def getNotesString(self, *args):
         """
-        getNotesString(self) -> string
-        getNotesString(self) -> string
+        getNotesString(SBase self) -> string
+        getNotesString(SBase self) -> string
 
         Returns the content of the 'notes' subelement of this object as a
         string.
@@ -3131,8 +3144,8 @@ class SBase(_object):
 
     def getAnnotation(self, *args):
         """
-        getAnnotation(self) -> XMLNode
-        getAnnotation(self) -> XMLNode
+        getAnnotation(SBase self) -> XMLNode
+        getAnnotation(SBase self) -> XMLNode
 
         Returns the content of the 'annotation' subelement of this object as
         a tree of XMLNode objects.
@@ -3173,8 +3186,8 @@ class SBase(_object):
 
     def getAnnotationString(self, *args):
         """
-        getAnnotationString(self) -> string
-        getAnnotationString(self) -> string
+        getAnnotationString(SBase self) -> string
+        getAnnotationString(SBase self) -> string
 
         Returns the content of the 'annotation' subelement of this object as a
         character string.
@@ -3212,7 +3225,7 @@ class SBase(_object):
 
     def getNamespaces(self):
         """
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(SBase self) -> XMLNamespaces
 
         Returns a list of the XML Namespaces declared on the SBML document
         owning this object.
@@ -3232,8 +3245,8 @@ class SBase(_object):
 
     def getSBMLDocument(self, *args):
         """
-        getSBMLDocument(self) -> SBMLDocument
-        getSBMLDocument(self) -> SBMLDocument
+        getSBMLDocument(SBase self) -> SBMLDocument
+        getSBMLDocument(SBase self) -> SBMLDocument
 
         Returns the SBMLDocument object containing this object instance.
 
@@ -3260,8 +3273,8 @@ class SBase(_object):
 
     def getParentSBMLObject(self, *args):
         """
-        getParentSBMLObject(self) -> SBase
-        getParentSBMLObject(self) -> SBase
+        getParentSBMLObject(SBase self) -> SBase
+        getParentSBMLObject(SBase self) -> SBase
 
         Returns the parent SBML object containing this object.
 
@@ -3279,10 +3292,10 @@ class SBase(_object):
 
     def getAncestorOfType(self, *args):
         """
-        getAncestorOfType(self, int type, string pkgName = "core") -> SBase
-        getAncestorOfType(self, int type) -> SBase
-        getAncestorOfType(self, int type, string pkgName = "core") -> SBase
-        getAncestorOfType(self, int type) -> SBase
+        getAncestorOfType(SBase self, int type, string pkgName="core") -> SBase
+        getAncestorOfType(SBase self, int type) -> SBase
+        getAncestorOfType(SBase self, int type, string pkgName="core") -> SBase
+        getAncestorOfType(SBase self, int type) -> SBase
 
         Returns the first ancestor object that has the given SBML type code from the given package.
 
@@ -3333,7 +3346,7 @@ class SBase(_object):
 
     def getSBOTerm(self):
         """
-        getSBOTerm(self) -> int
+        getSBOTerm(SBase self) -> int
 
         Returns the integer portion of the value of the 'sboTerm' attribute of
         this object.
@@ -3363,7 +3376,7 @@ class SBase(_object):
 
     def getSBOTermID(self):
         """
-        getSBOTermID(self) -> string
+        getSBOTermID(SBase self) -> string
 
         Returns the string representation of the 'sboTerm' attribute of
         this object.
@@ -3393,7 +3406,7 @@ class SBase(_object):
 
     def getSBOTermAsURL(self):
         """
-        getSBOTermAsURL(self) -> string
+        getSBOTermAsURL(SBase self) -> string
 
         Returns the URL representation of the 'sboTerm' attribute of this
         object.
@@ -3415,7 +3428,7 @@ class SBase(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(SBase self) -> unsigned int
 
         Returns the line number where this object first appears in the XML
         representation of the SBML document.
@@ -3446,7 +3459,7 @@ class SBase(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(SBase self) -> unsigned int
 
         Returns the column number where this object first appears in the XML
         representation of the SBML document.
@@ -3477,8 +3490,8 @@ class SBase(_object):
 
     def getModelHistory(self, *args):
         """
-        getModelHistory(self) -> ModelHistory
-        getModelHistory(self) -> ModelHistory
+        getModelHistory(SBase self) -> ModelHistory
+        getModelHistory(SBase self) -> ModelHistory
 
         Returns the ModelHistory object, if any, attached to this object.
 
@@ -3494,7 +3507,7 @@ class SBase(_object):
 
     def isSetMetaId(self):
         """
-        isSetMetaId(self) -> bool
+        isSetMetaId(SBase self) -> bool
 
         Predicate returning @c True if this object's 'metaid' attribute is set.
 
@@ -3530,7 +3543,7 @@ class SBase(_object):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(SBase self) -> bool
 
         @internal
 
@@ -3541,7 +3554,7 @@ class SBase(_object):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(SBase self) -> bool
 
         @internal
 
@@ -3552,7 +3565,7 @@ class SBase(_object):
 
     def isSetNotes(self):
         """
-        isSetNotes(self) -> bool
+        isSetNotes(SBase self) -> bool
 
         Predicate returning @c True if this
         object's 'notes' subelement exists and has content.
@@ -3593,7 +3606,7 @@ class SBase(_object):
 
     def isSetAnnotation(self):
         """
-        isSetAnnotation(self) -> bool
+        isSetAnnotation(SBase self) -> bool
 
         Predicate returning @c True if this
         object's 'annotation' subelement exists and has content.
@@ -3628,7 +3641,7 @@ class SBase(_object):
 
     def isSetSBOTerm(self):
         """
-        isSetSBOTerm(self) -> bool
+        isSetSBOTerm(SBase self) -> bool
 
         Predicate returning @c True if this
         object's 'sboTerm' attribute is set.
@@ -3641,7 +3654,7 @@ class SBase(_object):
 
     def setMetaId(self, *args):
         """
-        setMetaId(self, string metaid) -> int
+        setMetaId(SBase self, string metaid) -> int
 
         Sets the value of the meta-identifier attribute of this object.
 
@@ -3687,7 +3700,7 @@ class SBase(_object):
 
     def isSetModelHistory(self):
         """
-        isSetModelHistory(self) -> bool
+        isSetModelHistory(SBase self) -> bool
 
         Predicate returning @c True if this
         object has a ModelHistory object attached to it.
@@ -3703,7 +3716,7 @@ class SBase(_object):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(SBase self, string sid) -> int
 
         @internal
 
@@ -3714,7 +3727,7 @@ class SBase(_object):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(SBase self, string name) -> int
 
         @internal
 
@@ -3725,8 +3738,8 @@ class SBase(_object):
 
     def setAnnotation(self, *args):
         """
-        setAnnotation(self, XMLNode annotation) -> int
-        setAnnotation(self, string annotation) -> int
+        setAnnotation(SBase self, XMLNode annotation) -> int
+        setAnnotation(SBase self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -3836,8 +3849,8 @@ class SBase(_object):
 
     def appendAnnotation(self, *args):
         """
-        appendAnnotation(self, XMLNode annotation) -> int
-        appendAnnotation(self, string annotation) -> int
+        appendAnnotation(SBase self, XMLNode annotation) -> int
+        appendAnnotation(SBase self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -3944,9 +3957,9 @@ class SBase(_object):
 
     def removeTopLevelAnnotationElement(self, *args):
         """
-        removeTopLevelAnnotationElement(self, string elementName, string elementURI = "", bool removeEmpty = True) -> int
-        removeTopLevelAnnotationElement(self, string elementName, string elementURI = "") -> int
-        removeTopLevelAnnotationElement(self, string elementName) -> int
+        removeTopLevelAnnotationElement(SBase self, string elementName, string elementURI="", bool removeEmpty=True) -> int
+        removeTopLevelAnnotationElement(SBase self, string elementName, string elementURI="") -> int
+        removeTopLevelAnnotationElement(SBase self, string elementName) -> int
 
         Removes the top-level element within the 'annotation' subelement of this
         SBML object with the given name and optional URI.
@@ -3984,8 +3997,8 @@ class SBase(_object):
 
     def replaceTopLevelAnnotationElement(self, *args):
         """
-        replaceTopLevelAnnotationElement(self, XMLNode annotation) -> int
-        replaceTopLevelAnnotationElement(self, string annotation) -> int
+        replaceTopLevelAnnotationElement(SBase self, XMLNode annotation) -> int
+        replaceTopLevelAnnotationElement(SBase self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -4060,9 +4073,9 @@ class SBase(_object):
 
     def setNotes(self, *args):
         """
-        setNotes(self, XMLNode notes) -> int
-        setNotes(self, string notes, bool addXHTMLMarkup = False) -> int
-        setNotes(self, string notes) -> int
+        setNotes(SBase self, XMLNode notes) -> int
+        setNotes(SBase self, string notes, bool addXHTMLMarkup=False) -> int
+        setNotes(SBase self, string notes) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -4216,8 +4229,8 @@ class SBase(_object):
 
     def appendNotes(self, *args):
         """
-        appendNotes(self, XMLNode notes) -> int
-        appendNotes(self, string notes) -> int
+        appendNotes(SBase self, XMLNode notes) -> int
+        appendNotes(SBase self, string notes) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -4324,7 +4337,7 @@ class SBase(_object):
 
     def setModelHistory(self, *args):
         """
-        setModelHistory(self, ModelHistory history) -> int
+        setModelHistory(SBase self, ModelHistory history) -> int
 
         Sets the ModelHistory of this object.
 
@@ -4350,7 +4363,7 @@ class SBase(_object):
 
     def connectToParent(self, *args):
         """
-        connectToParent(self, SBase parent)
+        connectToParent(SBase self, SBase parent)
 
         @internal
 
@@ -4360,13 +4373,13 @@ class SBase(_object):
         return _libsbml.SBase_connectToParent(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(SBase self)"""
         return _libsbml.SBase_connectToChild(self)
 
     def setSBOTerm(self, *args):
         """
-        setSBOTerm(self, int value) -> int
-        setSBOTerm(self, string sboid) -> int
+        setSBOTerm(SBase self, int value) -> int
+        setSBOTerm(SBase self, string sboid) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -4447,7 +4460,7 @@ class SBase(_object):
 
     def setNamespaces(self, *args):
         """
-        setNamespaces(self, XMLNamespaces xmlns) -> int
+        setNamespaces(SBase self, XMLNamespaces xmlns) -> int
 
         Sets the namespaces relevant of this SBML object.
 
@@ -4471,7 +4484,7 @@ class SBase(_object):
 
     def unsetMetaId(self):
         """
-        unsetMetaId(self) -> int
+        unsetMetaId(SBase self) -> int
 
         Unsets the value of the 'metaid' attribute of this SBML object.
 
@@ -4509,7 +4522,7 @@ class SBase(_object):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(SBase self) -> int
 
         Unsets the value of the 'id' attribute of this SBML object.
 
@@ -4530,7 +4543,7 @@ class SBase(_object):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(SBase self) -> int
 
         Unsets the value of the 'name' attribute of this SBML object.
 
@@ -4579,7 +4592,7 @@ class SBase(_object):
 
     def unsetNotes(self):
         """
-        unsetNotes(self) -> int
+        unsetNotes(SBase self) -> int
 
         Unsets the value of the 'notes' subelement of this SBML object.
 
@@ -4622,7 +4635,7 @@ class SBase(_object):
 
     def unsetAnnotation(self):
         """
-        unsetAnnotation(self) -> int
+        unsetAnnotation(SBase self) -> int
 
         Unsets the value of the 'annotation' subelement of this SBML object.
 
@@ -4659,7 +4672,7 @@ class SBase(_object):
 
     def unsetSBOTerm(self):
         """
-        unsetSBOTerm(self) -> int
+        unsetSBOTerm(SBase self) -> int
 
         Unsets the value of the 'sboTerm' attribute of this SBML object.
 
@@ -4675,8 +4688,8 @@ class SBase(_object):
 
     def addCVTerm(self, *args):
         """
-        addCVTerm(self, CVTerm term, bool newBag = False) -> int
-        addCVTerm(self, CVTerm term) -> int
+        addCVTerm(SBase self, CVTerm term, bool newBag=False) -> int
+        addCVTerm(SBase self, CVTerm term) -> int
 
         Adds a copy of the given CVTerm object to this SBML object.
 
@@ -4718,8 +4731,8 @@ class SBase(_object):
 
     def getCVTerms(self, *args):
         """
-        getCVTerms(self) -> List
-        getCVTerms(self) -> List
+        getCVTerms(SBase self) -> List
+        getCVTerms(SBase self) -> List *
 
         Returns a list of CVTerm objects in the annotations of this SBML
         object.
@@ -4731,7 +4744,7 @@ class SBase(_object):
 
     def getNumCVTerms(self):
         """
-        getNumCVTerms(self) -> unsigned int
+        getNumCVTerms(SBase self) -> unsigned int
 
         Returns the number of CVTerm objects in the annotations of this SBML
         object.
@@ -4743,7 +4756,7 @@ class SBase(_object):
 
     def getCVTerm(self, *args):
         """
-        getCVTerm(self, unsigned int n) -> CVTerm
+        getCVTerm(SBase self, unsigned int n) -> CVTerm
 
         Returns the nth CVTerm in the list of CVTerms of this SBML
         object.
@@ -4757,7 +4770,7 @@ class SBase(_object):
 
     def unsetCVTerms(self):
         """
-        unsetCVTerms(self) -> int
+        unsetCVTerms(SBase self) -> int
 
         Clears the list of CVTerm objects attached to this SBML object.
 
@@ -4773,7 +4786,7 @@ class SBase(_object):
 
     def unsetModelHistory(self):
         """
-        unsetModelHistory(self) -> int
+        unsetModelHistory(SBase self) -> int
 
         Unsets the ModelHistory object attached to this object.
 
@@ -4794,7 +4807,7 @@ class SBase(_object):
 
     def getResourceBiologicalQualifier(self, *args):
         """
-        getResourceBiologicalQualifier(self, string resource) -> BiolQualifierType_t
+        getResourceBiologicalQualifier(SBase self, string resource) -> BiolQualifierType_t
 
         Returns the MIRIAM <em>biological qualifier</em> associated with the
         given resource.
@@ -4877,7 +4890,7 @@ class SBase(_object):
 
     def getResourceModelQualifier(self, *args):
         """
-        getResourceModelQualifier(self, string resource) -> ModelQualifierType_t
+        getResourceModelQualifier(SBase self, string resource) -> ModelQualifierType_t
 
         Returns the MIRIAM <em>model qualifier</em> associated with the
         given resource.
@@ -4960,7 +4973,7 @@ class SBase(_object):
 
     def getModel(self):
         """
-        getModel(self) -> Model
+        getModel(SBase self) -> Model
 
         Returns the Model object for the SBML Document in which the current object is located.
 
@@ -4974,7 +4987,7 @@ class SBase(_object):
 
     def getLevel(self):
         """
-        getLevel(self) -> unsigned int
+        getLevel(SBase self) -> unsigned int
 
         Returns the SBML Level of the SBMLDocument object containing @em this
         object.
@@ -5000,7 +5013,7 @@ class SBase(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> unsigned int
+        getVersion(SBase self) -> unsigned int
 
         Returns the Version within the SBML Level of the SBMLDocument object
         containing @em this object.
@@ -5025,7 +5038,7 @@ class SBase(_object):
 
     def getPackageVersion(self):
         """
-        getPackageVersion(self) -> unsigned int
+        getPackageVersion(SBase self) -> unsigned int
 
         Returns the Version of the SBML Level 3 package to which this
         element belongs to.
@@ -5042,7 +5055,7 @@ class SBase(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBase self) -> string
 
         Returns the name of the SBML Level 3 package in which this element
         is defined.
@@ -5058,7 +5071,7 @@ class SBase(_object):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SBase self) -> int
 
         Returns the libSBML type code for this object.
 
@@ -5219,9 +5232,9 @@ class SBase(_object):
         a type code.
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getPackageName()
         @see getElementName()
@@ -5231,7 +5244,7 @@ class SBase(_object):
 
     def hasValidLevelVersionNamespaceCombination(self):
         """
-        hasValidLevelVersionNamespaceCombination(self) -> bool
+        hasValidLevelVersionNamespaceCombination(SBase self) -> bool
 
         Predicate returning @c true if this object's level/version and namespace
         values correspond to a valid SBML specification.
@@ -5255,7 +5268,7 @@ class SBase(_object):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SBase self) -> string
 
         Returns the XML element name of this object.
 
@@ -5269,7 +5282,7 @@ class SBase(_object):
 
     def toSBML(self):
         """
-        toSBML(self) -> char
+        toSBML(SBase self) -> char *
 
         Returns a string consisting of a partial SBML corresponding to just
         this object.
@@ -5285,7 +5298,7 @@ class SBase(_object):
 
     def toXMLNode(self):
         """
-        toXMLNode(self) -> XMLNode
+        toXMLNode(SBase self) -> XMLNode
 
         Returns this element as an XMLNode.
 
@@ -5302,10 +5315,10 @@ class SBase(_object):
 
     def getPlugin(self, *args):
         """
-        getPlugin(self, string package) -> SBasePlugin
-        getPlugin(self, string package) -> SBasePlugin
-        getPlugin(self, unsigned int n) -> SBasePlugin
-        getPlugin(self, unsigned int n) -> SBasePlugin
+        getPlugin(SBase self, string package) -> SBasePlugin
+        getPlugin(SBase self, string package) -> SBasePlugin
+        getPlugin(SBase self, unsigned int n) -> SBasePlugin
+        getPlugin(SBase self, unsigned int n) -> SBasePlugin
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -5377,8 +5390,8 @@ class SBase(_object):
 
     def getDisabledPlugin(self, *args):
         """
-        getDisabledPlugin(self, unsigned int n) -> SBasePlugin
-        getDisabledPlugin(self, unsigned int n) -> SBasePlugin
+        getDisabledPlugin(SBase self, unsigned int n) -> SBasePlugin
+        getDisabledPlugin(SBase self, unsigned int n) -> SBasePlugin
 
         Returns the nth disabled plug-in object (extension interface) for an SBML Level 3
         package extension.
@@ -5402,7 +5415,7 @@ class SBase(_object):
         If a plugin is <em>disabled</em>, the package information it contains is
         no longer considered to be part of the SBML document for the purposes of
         searching the document or writing out the document.  However, the information
-        is still retained, so if the plugin is enabled again, the same information 
+        is still retained, so if the plugin is enabled again, the same information
         will once again be available, and will be written out to the final model.
 
         @param n the index of the disabled plug-in to return
@@ -5418,7 +5431,7 @@ class SBase(_object):
 
     def getNumPlugins(self):
         """
-        getNumPlugins(self) -> unsigned int
+        getNumPlugins(SBase self) -> unsigned int
 
         Returns the number of plug-in objects (extenstion interfaces) for SBML
         Level 3 package extensions known.
@@ -5448,7 +5461,7 @@ class SBase(_object):
 
     def getNumDisabledPlugins(self):
         """
-        getNumDisabledPlugins(self) -> unsigned int
+        getNumDisabledPlugins(SBase self) -> unsigned int
 
         Returns the number of disabled plug-in objects (extension interfaces) 
         for SBML Level 3 package extensions known.
@@ -5472,7 +5485,7 @@ class SBase(_object):
         If a plugin is <em>disabled</em>, the package information it contains is
         no longer considered to be part of the SBML document for the purposes of
         searching the document or writing out the document.  However, the information
-        is still retained, so if the plugin is enabled again, the same information 
+        is still retained, so if the plugin is enabled again, the same information
         will once again be available, and will be written out to the final model.
 
         @return the number of disabled plug-in objects (extension interfaces) 
@@ -5481,10 +5494,10 @@ class SBase(_object):
         """
         return _libsbml.SBase_getNumDisabledPlugins(self)
 
-    def deleteDisabledPlugins(self, recursive = True):
+    def deleteDisabledPlugins(self, recursive=True):
         """
-        deleteDisabledPlugins(self, bool recursive = True)
-        deleteDisabledPlugins(self)
+        deleteDisabledPlugins(SBase self, bool recursive=True)
+        deleteDisabledPlugins(SBase self)
 
         Deletes all information stored in disabled plugins.  If the plugin is 
         re-enabled later, it will then not have any previously-stored information.
@@ -5508,7 +5521,7 @@ class SBase(_object):
         If a plugin is <em>disabled</em>, the package information it contains is
         no longer considered to be part of the SBML document for the purposes of
         searching the document or writing out the document.  However, the information
-        is still retained, so if the plugin is enabled again, the same information 
+        is still retained, so if the plugin is enabled again, the same information
         will once again be available, and will be written out to the final model.
 
         @param recursive if @c True, the disabled information will be deleted
@@ -5521,7 +5534,7 @@ class SBase(_object):
 
     def enablePackage(self, *args):
         """
-        enablePackage(self, string pkgURI, string pkgPrefix, bool flag) -> int
+        enablePackage(SBase self, string pkgURI, string pkgPrefix, bool flag) -> int
 
         Enables or disables the given SBML Level 3 package on this object.
 
@@ -5552,7 +5565,7 @@ class SBase(_object):
 
     def disablePackage(self, *args):
         """
-        disablePackage(self, string pkgURI, string pkgPrefix) -> int
+        disablePackage(SBase self, string pkgURI, string pkgPrefix) -> int
 
         Disables the given SBML Level 3 package on this object.
 
@@ -5707,7 +5720,7 @@ class SBase(_object):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(SBase self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -5718,7 +5731,7 @@ class SBase(_object):
 
     def isPackageURIEnabled(self, *args):
         """
-        isPackageURIEnabled(self, string pkgURI) -> bool
+        isPackageURIEnabled(SBase self, string pkgURI) -> bool
 
         Predicate returning @c True if an SBML Level 3 package with the
         given URI is enabled with this object.
@@ -5734,7 +5747,7 @@ class SBase(_object):
 
     def isPackageEnabled(self, *args):
         """
-        isPackageEnabled(self, string pkgName) -> bool
+        isPackageEnabled(SBase self, string pkgName) -> bool
 
         Predicate returning @c True if the given SBML Level 3 package is
         enabled with this object.
@@ -5752,7 +5765,7 @@ class SBase(_object):
 
     def isPkgURIEnabled(self, *args):
         """
-        isPkgURIEnabled(self, string pkgURI) -> bool
+        isPkgURIEnabled(SBase self, string pkgURI) -> bool
 
         Predicate returning @c True if an SBML Level 3 package with the
         given URI is enabled with this object.
@@ -5771,7 +5784,7 @@ class SBase(_object):
 
     def isPkgEnabled(self, *args):
         """
-        isPkgEnabled(self, string pkgName) -> bool
+        isPkgEnabled(SBase self, string pkgName) -> bool
 
         Predicate returning @c True if the given SBML Level 3 package is
         enabled with this object.
@@ -5792,7 +5805,7 @@ class SBase(_object):
 
     def writeExtensionElements(self, *args):
         """
-        writeExtensionElements(self, XMLOutputStream stream)
+        writeExtensionElements(SBase self, XMLOutputStream stream)
 
         @internal
 
@@ -5803,7 +5816,7 @@ class SBase(_object):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(SBase self) -> bool
 
         @internal
 
@@ -5814,7 +5827,7 @@ class SBase(_object):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(SBase self) -> bool
 
         @internal
 
@@ -5825,7 +5838,7 @@ class SBase(_object):
 
     def checkCompatibility(self, *args):
         """
-        checkCompatibility(self, SBase object) -> int
+        checkCompatibility(SBase self, SBase object) -> int
 
         @internal
 
@@ -5836,7 +5849,7 @@ class SBase(_object):
 
     def setSBMLNamespacesAndOwn(self, *args):
         """
-        setSBMLNamespacesAndOwn(self, SBMLNamespaces disownedNs)
+        setSBMLNamespacesAndOwn(SBase self, SBMLNamespaces disownedNs)
 
         @internal
 
@@ -5847,7 +5860,7 @@ class SBase(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(SBase self) -> SBMLNamespaces
 
         @internal
 
@@ -5858,7 +5871,7 @@ class SBase(_object):
 
     def checkMathMLNamespace(self, *args):
         """
-        checkMathMLNamespace(self, XMLToken elem) -> string
+        checkMathMLNamespace(SBase self, XMLToken elem) -> string
 
         @internal
 
@@ -5869,7 +5882,7 @@ class SBase(_object):
 
     def getDerivedUnitDefinition(self):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(SBase self) -> UnitDefinition
 
         @internal
 
@@ -5880,7 +5893,7 @@ class SBase(_object):
 
     def containsUndeclaredUnits(self):
         """
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(SBase self) -> bool
 
         @internal
 
@@ -5891,7 +5904,7 @@ class SBase(_object):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(SBase self) -> int
 
         Removes this object from its parent.
 
@@ -5915,8 +5928,8 @@ class SBase(_object):
 
     def matchesSBMLNamespaces(self, *args):
         """
-        matchesSBMLNamespaces(self, SBase sb) -> bool
-        matchesSBMLNamespaces(self, SBase sb) -> bool
+        matchesSBMLNamespaces(SBase self, SBase sb) -> bool
+        matchesSBMLNamespaces(SBase self, SBase sb) -> bool
 
         Returns @c True if this object's set of XML namespaces are the same
         as the given object's XML namespaces.
@@ -5939,8 +5952,8 @@ class SBase(_object):
 
     def matchesRequiredSBMLNamespacesForAddition(self, *args):
         """
-        matchesRequiredSBMLNamespacesForAddition(self, SBase sb) -> bool
-        matchesRequiredSBMLNamespacesForAddition(self, SBase sb) -> bool
+        matchesRequiredSBMLNamespacesForAddition(SBase self, SBase sb) -> bool
+        matchesRequiredSBMLNamespacesForAddition(SBase self, SBase sb) -> bool
 
         Returns @c True if this object's set of XML namespaces are a subset
         of the given object's XML namespaces.
@@ -5963,7 +5976,7 @@ class SBase(_object):
 
     def isSetUserData(self):
         """
-        isSetUserData(self) -> bool
+        isSetUserData(SBase self) -> bool
 
         Predicate returning true or false depending on whether
         the user data of this element has been set.
@@ -5982,7 +5995,7 @@ class SBase(_object):
 
     def unsetUserData(self):
         """
-        unsetUserData(self) -> int
+        unsetUserData(SBase self) -> int
 
         Unsets the user data of this element.
 
@@ -6004,7 +6017,7 @@ class SBase(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(SBase self) -> string
 
         Gets the namespace URI to which this element belongs to.
 
@@ -6029,7 +6042,7 @@ class SBase(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(SBase self) -> string
 
         Returns the XML namespace prefix of this element.
 
@@ -6061,10 +6074,10 @@ class SBase(_object):
         if (self.this == rhs.this): return False
       return True
 
-    def getListOfAllElements(self, filter = None):
+    def getListOfAllElements(self, filter=None):
         """
-        getListOfAllElements(self, ElementFilter filter = None) -> SBaseList
-        getListOfAllElements(self) -> SBaseList
+        getListOfAllElements(SBase self, ElementFilter filter=None) -> SBaseList
+        getListOfAllElements(SBase self) -> SBaseList
 
         Returns an SBaseList of all child SBase objects, including those
         nested to an arbitrary depth.
@@ -6074,10 +6087,10 @@ class SBase(_object):
         """
         return _libsbml.SBase_getListOfAllElements(self, filter)
 
-    def getListOfAllElementsFromPlugins(self, filter = None):
+    def getListOfAllElementsFromPlugins(self, filter=None):
         """
-        getListOfAllElementsFromPlugins(self, ElementFilter filter = None) -> SBaseList
-        getListOfAllElementsFromPlugins(self) -> SBaseList
+        getListOfAllElementsFromPlugins(SBase self, ElementFilter filter=None) -> SBaseList
+        getListOfAllElementsFromPlugins(SBase self) -> SBaseList
 
         Returns a List of all child SBase objects contained in SBML package
         plug-ins.
@@ -6126,11 +6139,6 @@ class ListOf(SBase):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -6175,11 +6183,11 @@ class ListOf(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL, unsigned int version = SBML_DEFAULT_VERSION) -> ListOf
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL) -> ListOf
-        __init__(self) -> ListOf
-        __init__(self, SBMLNamespaces sbmlns) -> ListOf
-        __init__(self, ListOf orig) -> ListOf
+        __init__(ListOf self, unsigned int level=SBML_DEFAULT_LEVEL, unsigned int version=SBML_DEFAULT_VERSION) -> ListOf
+        __init__(ListOf self, unsigned int level=SBML_DEFAULT_LEVEL) -> ListOf
+        __init__(ListOf self) -> ListOf
+        __init__(ListOf self, SBMLNamespaces sbmlns) -> ListOf
+        __init__(ListOf self, ListOf orig) -> ListOf
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -6270,7 +6278,7 @@ class ListOf(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOf
+        clone(ListOf self) -> ListOf
 
         Creates and returns a deep copy of this ListOf object.
 
@@ -6281,7 +6289,7 @@ class ListOf(SBase):
 
     def append(self, *args):
         """
-        append(self, SBase item) -> int
+        append(ListOf self, SBase item) -> int
 
         Adds an item to the end of this ListOf's list of items.
 
@@ -6307,7 +6315,7 @@ class ListOf(SBase):
 
     def appendAndOwn(self, *args):
         """
-        appendAndOwn(self, SBase disownedItem) -> int
+        appendAndOwn(ListOf self, SBase disownedItem) -> int
 
         Adds an item to the end of this ListOf's list of items.
 
@@ -6333,7 +6341,7 @@ class ListOf(SBase):
 
     def appendFrom(self, *args):
         """
-        appendFrom(self, ListOf list) -> int
+        appendFrom(ListOf self, ListOf list) -> int
 
         Adds a clone of a list of items to this ListOf's list.
 
@@ -6357,7 +6365,7 @@ class ListOf(SBase):
 
     def insert(self, *args):
         """
-        insert(self, int location, SBase item) -> int
+        insert(ListOf self, int location, SBase item) -> int
 
         Inserts an item at a given position in this ListOf's list of items.
 
@@ -6382,7 +6390,7 @@ class ListOf(SBase):
 
     def insertAndOwn(self, *args):
         """
-        insertAndOwn(self, int location, SBase disownedItem) -> int
+        insertAndOwn(ListOf self, int location, SBase disownedItem) -> int
 
         Inserts an item at a given position in this ListOf's list of items.
 
@@ -6407,8 +6415,8 @@ class ListOf(SBase):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> SBase
-        get(self, unsigned int n) -> SBase
+        get(ListOf self, unsigned int n) -> SBase
+        get(ListOf self, unsigned int n) -> SBase
 
         Get an item from the list.
 
@@ -6424,7 +6432,7 @@ class ListOf(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOf self, string id) -> SBase
 
         Returns the first child element found that has the given identifier.
 
@@ -6442,7 +6450,7 @@ class ListOf(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(ListOf self, string metaid) -> SBase
 
         Returns the first child element found with the given meta-identifier.
 
@@ -6455,10 +6463,10 @@ class ListOf(SBase):
         """
         return _libsbml.ListOf_getElementByMetaId(self, *args)
 
-    def clear(self, doDelete = True):
+    def clear(self, doDelete=True):
         """
-        clear(self, bool doDelete = True)
-        clear(self)
+        clear(ListOf self, bool doDelete=True)
+        clear(ListOf self)
 
         Removes all items in this ListOf object.
 
@@ -6479,7 +6487,7 @@ class ListOf(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(ListOf self) -> int
 
         Removes all items in this ListOf object and deletes its properties too.
 
@@ -6502,7 +6510,7 @@ class ListOf(SBase):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> SBase
+        remove(ListOf self, unsigned int n) -> SBase
 
         Removes the <em>n</em>th item from this ListOf list of items and returns
         it.
@@ -6518,7 +6526,7 @@ class ListOf(SBase):
 
     def size(self):
         """
-        size(self) -> unsigned int
+        size(ListOf self) -> unsigned int
 
         Returns number of items in this ListOf list.
 
@@ -6528,12 +6536,12 @@ class ListOf(SBase):
         return _libsbml.ListOf_size(self)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(ListOf self)"""
         return _libsbml.ListOf_connectToChild(self)
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ListOf self) -> int
 
         Returns the libSBML type code for this object, namely,
         @link libsbml#SBML_LIST_OF SBML_LIST_OF at endlink.
@@ -6566,9 +6574,9 @@ class ListOf(SBase):
         class of this SBML object.
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getItemTypeCode()
         @see getElementName()
@@ -6579,7 +6587,7 @@ class ListOf(SBase):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOf self) -> int
 
         Get the type code of the objects contained in this ListOf.
 
@@ -6619,7 +6627,7 @@ class ListOf(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOf self) -> string
 
         Returns the XML element name of this object, which for ListOf, is
         always @c 'listOf'.
@@ -6631,7 +6639,7 @@ class ListOf(SBase):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(ListOf self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -6641,7 +6649,7 @@ class ListOf(SBase):
         return _libsbml.ListOf_enablePackageInternal(self, *args)
 
     def __len__(self):
-        """__len__(self) -> int"""
+        """__len__(ListOf self) -> int"""
         return _libsbml.ListOf___len__(self)
 
     def __getitem__(self, key):
@@ -7060,9 +7068,9 @@ class Model(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Model
-        __init__(self, SBMLNamespaces sbmlns) -> Model
-        __init__(self, Model orig) -> Model
+        __init__(Model self, unsigned int level, unsigned int version) -> Model
+        __init__(Model self, SBMLNamespaces sbmlns) -> Model
+        __init__(Model self, Model orig) -> Model
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -7153,7 +7161,7 @@ class Model(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Model
+        clone(Model self) -> Model
 
         Creates and returns a deep copy of this Model object.
 
@@ -7164,7 +7172,7 @@ class Model(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(Model self, string id) -> SBase
 
         Returns the first child element found that has the given @p id.
 
@@ -7181,7 +7189,7 @@ class Model(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(Model self, string metaid) -> SBase
 
         Returns the first child element it can find with the given @p metaid.
 
@@ -7196,7 +7204,7 @@ class Model(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Model self) -> string
 
         Returns the value of the 'id' attribute of this Model.
 
@@ -7207,7 +7215,7 @@ class Model(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Model self) -> string
 
         Returns the value of the 'name' attribute of this Model.
 
@@ -7218,7 +7226,7 @@ class Model(SBase):
 
     def getSubstanceUnits(self):
         """
-        getSubstanceUnits(self) -> string
+        getSubstanceUnits(Model self) -> string
 
         Returns the value of the 'substanceUnits' attribute of this Model.
 
@@ -7232,7 +7240,7 @@ class Model(SBase):
 
     def getTimeUnits(self):
         """
-        getTimeUnits(self) -> string
+        getTimeUnits(Model self) -> string
 
         Returns the value of the 'timeUnits' attribute of this Model.
 
@@ -7246,7 +7254,7 @@ class Model(SBase):
 
     def getVolumeUnits(self):
         """
-        getVolumeUnits(self) -> string
+        getVolumeUnits(Model self) -> string
 
         Returns the value of the 'volumeUnits' attribute of this Model.
 
@@ -7260,7 +7268,7 @@ class Model(SBase):
 
     def getAreaUnits(self):
         """
-        getAreaUnits(self) -> string
+        getAreaUnits(Model self) -> string
 
         Returns the value of the 'areaUnits' attribute of this Model.
 
@@ -7274,7 +7282,7 @@ class Model(SBase):
 
     def getLengthUnits(self):
         """
-        getLengthUnits(self) -> string
+        getLengthUnits(Model self) -> string
 
         Returns the value of the 'lengthUnits' attribute of this Model.
 
@@ -7288,7 +7296,7 @@ class Model(SBase):
 
     def getExtentUnits(self):
         """
-        getExtentUnits(self) -> string
+        getExtentUnits(Model self) -> string
 
         Returns the value of the 'extentUnits' attribute of this Model.
 
@@ -7302,7 +7310,7 @@ class Model(SBase):
 
     def getConversionFactor(self):
         """
-        getConversionFactor(self) -> string
+        getConversionFactor(Model self) -> string
 
         Returns the value of the 'conversionFactor' attribute of this Model.
 
@@ -7316,7 +7324,7 @@ class Model(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'id' attribute is set.
@@ -7329,7 +7337,7 @@ class Model(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'name' attribute is set.
@@ -7342,7 +7350,7 @@ class Model(SBase):
 
     def isSetSubstanceUnits(self):
         """
-        isSetSubstanceUnits(self) -> bool
+        isSetSubstanceUnits(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'substanceUnits' attribute is set.
@@ -7358,7 +7366,7 @@ class Model(SBase):
 
     def isSetTimeUnits(self):
         """
-        isSetTimeUnits(self) -> bool
+        isSetTimeUnits(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'timeUnits' attribute is set.
@@ -7374,7 +7382,7 @@ class Model(SBase):
 
     def isSetVolumeUnits(self):
         """
-        isSetVolumeUnits(self) -> bool
+        isSetVolumeUnits(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'volumeUnits' attribute is set.
@@ -7390,7 +7398,7 @@ class Model(SBase):
 
     def isSetAreaUnits(self):
         """
-        isSetAreaUnits(self) -> bool
+        isSetAreaUnits(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'areaUnits' attribute is set.
@@ -7406,7 +7414,7 @@ class Model(SBase):
 
     def isSetLengthUnits(self):
         """
-        isSetLengthUnits(self) -> bool
+        isSetLengthUnits(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'lengthUnits' attribute is set.
@@ -7422,7 +7430,7 @@ class Model(SBase):
 
     def isSetExtentUnits(self):
         """
-        isSetExtentUnits(self) -> bool
+        isSetExtentUnits(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'extentUnits' attribute is set.
@@ -7438,7 +7446,7 @@ class Model(SBase):
 
     def isSetConversionFactor(self):
         """
-        isSetConversionFactor(self) -> bool
+        isSetConversionFactor(Model self) -> bool
 
         Predicate returning @c True if this
         Model's 'conversionFactor' attribute is set.
@@ -7454,7 +7462,7 @@ class Model(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Model self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Model.
 
@@ -7494,7 +7502,7 @@ class Model(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Model self, string name) -> int
 
         Sets the value of the 'name' attribute of this Model.
 
@@ -7514,7 +7522,7 @@ class Model(SBase):
 
     def setSubstanceUnits(self, *args):
         """
-        setSubstanceUnits(self, string units) -> int
+        setSubstanceUnits(Model self, string units) -> int
 
         Sets the value of the 'substanceUnits' attribute of this Model.
 
@@ -7538,7 +7546,7 @@ class Model(SBase):
 
     def setTimeUnits(self, *args):
         """
-        setTimeUnits(self, string units) -> int
+        setTimeUnits(Model self, string units) -> int
 
         Sets the value of the 'timeUnits' attribute of this Model.
 
@@ -7562,7 +7570,7 @@ class Model(SBase):
 
     def setVolumeUnits(self, *args):
         """
-        setVolumeUnits(self, string units) -> int
+        setVolumeUnits(Model self, string units) -> int
 
         Sets the value of the 'volumeUnits' attribute of this Model.
 
@@ -7586,7 +7594,7 @@ class Model(SBase):
 
     def setAreaUnits(self, *args):
         """
-        setAreaUnits(self, string units) -> int
+        setAreaUnits(Model self, string units) -> int
 
         Sets the value of the 'areaUnits' attribute of this Model.
 
@@ -7610,7 +7618,7 @@ class Model(SBase):
 
     def setLengthUnits(self, *args):
         """
-        setLengthUnits(self, string units) -> int
+        setLengthUnits(Model self, string units) -> int
 
         Sets the value of the 'lengthUnits' attribute of this Model.
 
@@ -7634,7 +7642,7 @@ class Model(SBase):
 
     def setExtentUnits(self, *args):
         """
-        setExtentUnits(self, string units) -> int
+        setExtentUnits(Model self, string units) -> int
 
         Sets the value of the 'extentUnits' attribute of this Model.
 
@@ -7658,7 +7666,7 @@ class Model(SBase):
 
     def setConversionFactor(self, *args):
         """
-        setConversionFactor(self, string units) -> int
+        setConversionFactor(Model self, string units) -> int
 
         Sets the value of the 'conversionFactor' attribute of this Model.
 
@@ -7682,7 +7690,7 @@ class Model(SBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(Model self) -> int
 
         Unsets the value of the 'id' attribute of this Model.
 
@@ -7698,7 +7706,7 @@ class Model(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Model self) -> int
 
         Unsets the value of the 'name' attribute of this Model.
 
@@ -7714,7 +7722,7 @@ class Model(SBase):
 
     def unsetSubstanceUnits(self):
         """
-        unsetSubstanceUnits(self) -> int
+        unsetSubstanceUnits(Model self) -> int
 
         Unsets the value of the 'substanceUnits' attribute of this Model.
 
@@ -7733,7 +7741,7 @@ class Model(SBase):
 
     def unsetTimeUnits(self):
         """
-        unsetTimeUnits(self) -> int
+        unsetTimeUnits(Model self) -> int
 
         Unsets the value of the 'timeUnits' attribute of this Model.
 
@@ -7752,7 +7760,7 @@ class Model(SBase):
 
     def unsetVolumeUnits(self):
         """
-        unsetVolumeUnits(self) -> int
+        unsetVolumeUnits(Model self) -> int
 
         Unsets the value of the 'volumeUnits' attribute of this Model.
 
@@ -7771,7 +7779,7 @@ class Model(SBase):
 
     def unsetAreaUnits(self):
         """
-        unsetAreaUnits(self) -> int
+        unsetAreaUnits(Model self) -> int
 
         Unsets the value of the 'areaUnits' attribute of this Model.
 
@@ -7791,7 +7799,7 @@ class Model(SBase):
 
     def unsetLengthUnits(self):
         """
-        unsetLengthUnits(self) -> int
+        unsetLengthUnits(Model self) -> int
 
         Unsets the value of the 'lengthUnits' attribute of this Model.
 
@@ -7811,7 +7819,7 @@ class Model(SBase):
 
     def unsetExtentUnits(self):
         """
-        unsetExtentUnits(self) -> int
+        unsetExtentUnits(Model self) -> int
 
         Unsets the value of the 'extentUnits' attribute of this Model.
 
@@ -7831,7 +7839,7 @@ class Model(SBase):
 
     def unsetConversionFactor(self):
         """
-        unsetConversionFactor(self) -> int
+        unsetConversionFactor(Model self) -> int
 
         Unsets the value of the 'conversionFactor' attribute of this Model.
 
@@ -7851,7 +7859,7 @@ class Model(SBase):
 
     def addFunctionDefinition(self, *args):
         """
-        addFunctionDefinition(self, FunctionDefinition fd) -> int
+        addFunctionDefinition(Model self, FunctionDefinition fd) -> int
 
         Adds a copy of the given FunctionDefinition object to this Model.
 
@@ -7886,7 +7894,7 @@ class Model(SBase):
 
     def addUnitDefinition(self, *args):
         """
-        addUnitDefinition(self, UnitDefinition ud) -> int
+        addUnitDefinition(Model self, UnitDefinition ud) -> int
 
         Adds a copy of the given UnitDefinition object to this Model.
 
@@ -7921,7 +7929,7 @@ class Model(SBase):
 
     def addCompartmentType(self, *args):
         """
-        addCompartmentType(self, CompartmentType ct) -> int
+        addCompartmentType(Model self, CompartmentType ct) -> int
 
         Adds a copy of the given CompartmentType object to this Model.
 
@@ -7960,7 +7968,7 @@ class Model(SBase):
 
     def addSpeciesType(self, *args):
         """
-        addSpeciesType(self, SpeciesType st) -> int
+        addSpeciesType(Model self, SpeciesType st) -> int
 
         Adds a copy of the given SpeciesType object to this Model.
 
@@ -7999,7 +8007,7 @@ class Model(SBase):
 
     def addCompartment(self, *args):
         """
-        addCompartment(self, Compartment c) -> int
+        addCompartment(Model self, Compartment c) -> int
 
         Adds a copy of the given Compartment object to this Model.
 
@@ -8033,7 +8041,7 @@ class Model(SBase):
 
     def addSpecies(self, *args):
         """
-        addSpecies(self, Species s) -> int
+        addSpecies(Model self, Species s) -> int
 
         Adds a copy of the given Species object to this Model.
 
@@ -8068,7 +8076,7 @@ class Model(SBase):
 
     def addParameter(self, *args):
         """
-        addParameter(self, Parameter p) -> int
+        addParameter(Model self, Parameter p) -> int
 
         Adds a copy of the given Parameter object to this Model.
 
@@ -8103,7 +8111,7 @@ class Model(SBase):
 
     def addInitialAssignment(self, *args):
         """
-        addInitialAssignment(self, InitialAssignment ia) -> int
+        addInitialAssignment(Model self, InitialAssignment ia) -> int
 
         Adds a copy of the given InitialAssignment object to this Model.
 
@@ -8138,7 +8146,7 @@ class Model(SBase):
 
     def addRule(self, *args):
         """
-        addRule(self, Rule r) -> int
+        addRule(Model self, Rule r) -> int
 
         Adds a copy of the given Rule object to this Model.
 
@@ -8175,7 +8183,7 @@ class Model(SBase):
 
     def addConstraint(self, *args):
         """
-        addConstraint(self, Constraint c) -> int
+        addConstraint(Model self, Constraint c) -> int
 
         Adds a copy of the given Constraint object to this Model.
 
@@ -8209,7 +8217,7 @@ class Model(SBase):
 
     def addReaction(self, *args):
         """
-        addReaction(self, Reaction r) -> int
+        addReaction(Model self, Reaction r) -> int
 
         Adds a copy of the given Reaction object to this Model.
 
@@ -8244,7 +8252,7 @@ class Model(SBase):
 
     def addEvent(self, *args):
         """
-        addEvent(self, Event e) -> int
+        addEvent(Model self, Event e) -> int
 
         Adds a copy of the given Event object to this Model.
 
@@ -8279,7 +8287,7 @@ class Model(SBase):
 
     def createFunctionDefinition(self):
         """
-        createFunctionDefinition(self) -> FunctionDefinition
+        createFunctionDefinition(Model self) -> FunctionDefinition
 
         Creates a new FunctionDefinition inside this Model and returns it.
 
@@ -8296,7 +8304,7 @@ class Model(SBase):
 
     def createUnitDefinition(self):
         """
-        createUnitDefinition(self) -> UnitDefinition
+        createUnitDefinition(Model self) -> UnitDefinition
 
         Creates a new UnitDefinition inside this Model and returns it.
 
@@ -8313,7 +8321,7 @@ class Model(SBase):
 
     def createUnit(self):
         """
-        createUnit(self) -> Unit
+        createUnit(Model self) -> Unit
 
         Creates a new Unit object within the last UnitDefinition object
         created in this model and returns a pointer to it.
@@ -8335,7 +8343,7 @@ class Model(SBase):
 
     def createCompartmentType(self):
         """
-        createCompartmentType(self) -> CompartmentType
+        createCompartmentType(Model self) -> CompartmentType
 
         Creates a new CompartmentType inside this Model and returns it.
 
@@ -8356,7 +8364,7 @@ class Model(SBase):
 
     def createSpeciesType(self):
         """
-        createSpeciesType(self) -> SpeciesType
+        createSpeciesType(Model self) -> SpeciesType
 
         Creates a new SpeciesType inside this Model and returns it.
 
@@ -8377,7 +8385,7 @@ class Model(SBase):
 
     def createCompartment(self):
         """
-        createCompartment(self) -> Compartment
+        createCompartment(Model self) -> Compartment
 
         Creates a new Compartment inside this Model and returns it.
 
@@ -8394,7 +8402,7 @@ class Model(SBase):
 
     def createSpecies(self):
         """
-        createSpecies(self) -> Species
+        createSpecies(Model self) -> Species
 
         Creates a new Species inside this Model and returns it.
 
@@ -8411,7 +8419,7 @@ class Model(SBase):
 
     def createParameter(self):
         """
-        createParameter(self) -> Parameter
+        createParameter(Model self) -> Parameter
 
         Creates a new Parameter inside this Model and returns it.
 
@@ -8428,7 +8436,7 @@ class Model(SBase):
 
     def createInitialAssignment(self):
         """
-        createInitialAssignment(self) -> InitialAssignment
+        createInitialAssignment(Model self) -> InitialAssignment
 
         Creates a new InitialAssignment inside this Model and returns it.
 
@@ -8445,7 +8453,7 @@ class Model(SBase):
 
     def createAlgebraicRule(self):
         """
-        createAlgebraicRule(self) -> AlgebraicRule
+        createAlgebraicRule(Model self) -> AlgebraicRule
 
         Creates a new AlgebraicRule inside this Model and returns it.
 
@@ -8462,7 +8470,7 @@ class Model(SBase):
 
     def createAssignmentRule(self):
         """
-        createAssignmentRule(self) -> AssignmentRule
+        createAssignmentRule(Model self) -> AssignmentRule
 
         Creates a new AssignmentRule inside this Model and returns it.
 
@@ -8479,7 +8487,7 @@ class Model(SBase):
 
     def createRateRule(self):
         """
-        createRateRule(self) -> RateRule
+        createRateRule(Model self) -> RateRule
 
         Creates a new RateRule inside this Model and returns it.
 
@@ -8496,7 +8504,7 @@ class Model(SBase):
 
     def createConstraint(self):
         """
-        createConstraint(self) -> Constraint
+        createConstraint(Model self) -> Constraint
 
         Creates a new Constraint inside this Model and returns it.
 
@@ -8513,7 +8521,7 @@ class Model(SBase):
 
     def createReaction(self):
         """
-        createReaction(self) -> Reaction
+        createReaction(Model self) -> Reaction
 
         Creates a new Reaction inside this Model and returns it.
 
@@ -8530,7 +8538,7 @@ class Model(SBase):
 
     def createReactant(self):
         """
-        createReactant(self) -> SpeciesReference
+        createReactant(Model self) -> SpeciesReference
 
         Creates a new SpeciesReference object for a reactant inside the last
         Reaction object in this Model, and returns a pointer to it.
@@ -8555,7 +8563,7 @@ class Model(SBase):
 
     def createProduct(self):
         """
-        createProduct(self) -> SpeciesReference
+        createProduct(Model self) -> SpeciesReference
 
         Creates a new SpeciesReference object for a product inside the last
         Reaction object in this Model, and returns a pointer to it.
@@ -8580,7 +8588,7 @@ class Model(SBase):
 
     def createModifier(self):
         """
-        createModifier(self) -> ModifierSpeciesReference
+        createModifier(Model self) -> ModifierSpeciesReference
 
         Creates a new ModifierSpeciesReference object for a modifier species
         inside the last Reaction object in this Model, and returns a pointer
@@ -8606,7 +8614,7 @@ class Model(SBase):
 
     def createKineticLaw(self):
         """
-        createKineticLaw(self) -> KineticLaw
+        createKineticLaw(Model self) -> KineticLaw
 
         Creates a new KineticLaw inside the last Reaction object created in
         this Model, and returns a pointer to it.
@@ -8631,7 +8639,7 @@ class Model(SBase):
 
     def createKineticLawParameter(self):
         """
-        createKineticLawParameter(self) -> Parameter
+        createKineticLawParameter(Model self) -> Parameter
 
         Creates a new local Parameter inside the KineticLaw object of the last
         Reaction created inside this Model, and returns a pointer to it.
@@ -8658,7 +8666,7 @@ class Model(SBase):
 
     def createKineticLawLocalParameter(self):
         """
-        createKineticLawLocalParameter(self) -> LocalParameter
+        createKineticLawLocalParameter(Model self) -> LocalParameter
 
         Creates a new LocalParameter inside the KineticLaw object of the last
         Reaction created inside this Model, and returns a pointer to it.
@@ -8685,7 +8693,7 @@ class Model(SBase):
 
     def createEvent(self):
         """
-        createEvent(self) -> Event
+        createEvent(Model self) -> Event
 
         Creates a new Event inside this Model and returns it.
 
@@ -8700,7 +8708,7 @@ class Model(SBase):
 
     def createEventAssignment(self):
         """
-        createEventAssignment(self) -> EventAssignment
+        createEventAssignment(Model self) -> EventAssignment
 
         Creates a new EventAssignment inside the last Event object created in
         this Model, and returns a pointer to it.
@@ -8723,7 +8731,7 @@ class Model(SBase):
 
     def createTrigger(self):
         """
-        createTrigger(self) -> Trigger
+        createTrigger(Model self) -> Trigger
 
         Creates a new Trigger inside the last Event object created in
         this Model, and returns a pointer to it.
@@ -8746,7 +8754,7 @@ class Model(SBase):
 
     def createDelay(self):
         """
-        createDelay(self) -> Delay
+        createDelay(Model self) -> Delay
 
         Creates a new Delay inside the last Event object created in
         this Model, and returns a pointer to it.
@@ -8769,8 +8777,8 @@ class Model(SBase):
 
     def setAnnotation(self, *args):
         """
-        setAnnotation(self, XMLNode annotation) -> int
-        setAnnotation(self, string annotation) -> int
+        setAnnotation(Model self, XMLNode annotation) -> int
+        setAnnotation(Model self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -8834,8 +8842,8 @@ class Model(SBase):
 
     def appendAnnotation(self, *args):
         """
-        appendAnnotation(self, XMLNode annotation) -> int
-        appendAnnotation(self, string annotation) -> int
+        appendAnnotation(Model self, XMLNode annotation) -> int
+        appendAnnotation(Model self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -8893,8 +8901,8 @@ class Model(SBase):
 
     def getListOfFunctionDefinitions(self, *args):
         """
-        getListOfFunctionDefinitions(self) -> ListOfFunctionDefinitions
-        getListOfFunctionDefinitions(self) -> ListOfFunctionDefinitions
+        getListOfFunctionDefinitions(Model self) -> ListOfFunctionDefinitions
+        getListOfFunctionDefinitions(Model self) -> ListOfFunctionDefinitions
 
         Get the ListOfFunctionDefinitions object in this Model.
 
@@ -8905,8 +8913,8 @@ class Model(SBase):
 
     def getListOfUnitDefinitions(self, *args):
         """
-        getListOfUnitDefinitions(self) -> ListOfUnitDefinitions
-        getListOfUnitDefinitions(self) -> ListOfUnitDefinitions
+        getListOfUnitDefinitions(Model self) -> ListOfUnitDefinitions
+        getListOfUnitDefinitions(Model self) -> ListOfUnitDefinitions
 
         Get the ListOfUnitDefinitions object in this Model.
 
@@ -8917,8 +8925,8 @@ class Model(SBase):
 
     def getListOfCompartmentTypes(self, *args):
         """
-        getListOfCompartmentTypes(self) -> ListOfCompartmentTypes
-        getListOfCompartmentTypes(self) -> ListOfCompartmentTypes
+        getListOfCompartmentTypes(Model self) -> ListOfCompartmentTypes
+        getListOfCompartmentTypes(Model self) -> ListOfCompartmentTypes
 
         Get the ListOfCompartmentTypes object in this Model.
 
@@ -8933,8 +8941,8 @@ class Model(SBase):
 
     def getListOfSpeciesTypes(self, *args):
         """
-        getListOfSpeciesTypes(self) -> ListOfSpeciesTypes
-        getListOfSpeciesTypes(self) -> ListOfSpeciesTypes
+        getListOfSpeciesTypes(Model self) -> ListOfSpeciesTypes
+        getListOfSpeciesTypes(Model self) -> ListOfSpeciesTypes
 
         Get the ListOfSpeciesTypes object in this Model.
 
@@ -8949,8 +8957,8 @@ class Model(SBase):
 
     def getListOfCompartments(self, *args):
         """
-        getListOfCompartments(self) -> ListOfCompartments
-        getListOfCompartments(self) -> ListOfCompartments
+        getListOfCompartments(Model self) -> ListOfCompartments
+        getListOfCompartments(Model self) -> ListOfCompartments
 
         Get the ListOfCompartments object in this Model.
 
@@ -8961,8 +8969,8 @@ class Model(SBase):
 
     def getListOfSpecies(self, *args):
         """
-        getListOfSpecies(self) -> ListOfSpecies
-        getListOfSpecies(self) -> ListOfSpecies
+        getListOfSpecies(Model self) -> ListOfSpecies
+        getListOfSpecies(Model self) -> ListOfSpecies
 
         Get the ListOfSpecies object in this Model.
 
@@ -8973,8 +8981,8 @@ class Model(SBase):
 
     def getListOfParameters(self, *args):
         """
-        getListOfParameters(self) -> ListOfParameters
-        getListOfParameters(self) -> ListOfParameters
+        getListOfParameters(Model self) -> ListOfParameters
+        getListOfParameters(Model self) -> ListOfParameters
 
         Get the ListOfParameters object in this Model.
 
@@ -8985,8 +8993,8 @@ class Model(SBase):
 
     def getListOfInitialAssignments(self, *args):
         """
-        getListOfInitialAssignments(self) -> ListOfInitialAssignments
-        getListOfInitialAssignments(self) -> ListOfInitialAssignments
+        getListOfInitialAssignments(Model self) -> ListOfInitialAssignments
+        getListOfInitialAssignments(Model self) -> ListOfInitialAssignments
 
         Get the ListOfInitialAssignments object in this Model.
 
@@ -8997,8 +9005,8 @@ class Model(SBase):
 
     def getListOfRules(self, *args):
         """
-        getListOfRules(self) -> ListOfRules
-        getListOfRules(self) -> ListOfRules
+        getListOfRules(Model self) -> ListOfRules
+        getListOfRules(Model self) -> ListOfRules
 
         Get the ListOfRules object in this Model.
 
@@ -9009,8 +9017,8 @@ class Model(SBase):
 
     def getListOfConstraints(self, *args):
         """
-        getListOfConstraints(self) -> ListOfConstraints
-        getListOfConstraints(self) -> ListOfConstraints
+        getListOfConstraints(Model self) -> ListOfConstraints
+        getListOfConstraints(Model self) -> ListOfConstraints
 
         Get the ListOfConstraints object in this Model.
 
@@ -9021,8 +9029,8 @@ class Model(SBase):
 
     def getListOfReactions(self, *args):
         """
-        getListOfReactions(self) -> ListOfReactions
-        getListOfReactions(self) -> ListOfReactions
+        getListOfReactions(Model self) -> ListOfReactions
+        getListOfReactions(Model self) -> ListOfReactions
 
         Get the ListOfReactions object in this Model.
 
@@ -9033,8 +9041,8 @@ class Model(SBase):
 
     def getListOfEvents(self, *args):
         """
-        getListOfEvents(self) -> ListOfEvents
-        getListOfEvents(self) -> ListOfEvents
+        getListOfEvents(Model self) -> ListOfEvents
+        getListOfEvents(Model self) -> ListOfEvents
 
         Get the ListOfEvents object in this Model.
 
@@ -9045,10 +9053,10 @@ class Model(SBase):
 
     def getFunctionDefinition(self, *args):
         """
-        getFunctionDefinition(self, unsigned int n) -> FunctionDefinition
-        getFunctionDefinition(self, unsigned int n) -> FunctionDefinition
-        getFunctionDefinition(self, string sid) -> FunctionDefinition
-        getFunctionDefinition(self, string sid) -> FunctionDefinition
+        getFunctionDefinition(Model self, unsigned int n) -> FunctionDefinition
+        getFunctionDefinition(Model self, unsigned int n) -> FunctionDefinition
+        getFunctionDefinition(Model self, string sid) -> FunctionDefinition
+        getFunctionDefinition(Model self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9082,10 +9090,10 @@ class Model(SBase):
 
     def getUnitDefinition(self, *args):
         """
-        getUnitDefinition(self, unsigned int n) -> UnitDefinition
-        getUnitDefinition(self, unsigned int n) -> UnitDefinition
-        getUnitDefinition(self, string sid) -> UnitDefinition
-        getUnitDefinition(self, string sid) -> UnitDefinition
+        getUnitDefinition(Model self, unsigned int n) -> UnitDefinition
+        getUnitDefinition(Model self, unsigned int n) -> UnitDefinition
+        getUnitDefinition(Model self, string sid) -> UnitDefinition
+        getUnitDefinition(Model self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9119,10 +9127,10 @@ class Model(SBase):
 
     def getCompartmentType(self, *args):
         """
-        getCompartmentType(self, unsigned int n) -> CompartmentType
-        getCompartmentType(self, unsigned int n) -> CompartmentType
-        getCompartmentType(self, string sid) -> CompartmentType
-        getCompartmentType(self, string sid) -> CompartmentType
+        getCompartmentType(Model self, unsigned int n) -> CompartmentType
+        getCompartmentType(Model self, unsigned int n) -> CompartmentType
+        getCompartmentType(Model self, string sid) -> CompartmentType
+        getCompartmentType(Model self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9164,10 +9172,10 @@ class Model(SBase):
 
     def getSpeciesType(self, *args):
         """
-        getSpeciesType(self, unsigned int n) -> SpeciesType
-        getSpeciesType(self, unsigned int n) -> SpeciesType
-        getSpeciesType(self, string sid) -> SpeciesType
-        getSpeciesType(self, string sid) -> SpeciesType
+        getSpeciesType(Model self, unsigned int n) -> SpeciesType
+        getSpeciesType(Model self, unsigned int n) -> SpeciesType
+        getSpeciesType(Model self, string sid) -> SpeciesType
+        getSpeciesType(Model self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9209,10 +9217,10 @@ class Model(SBase):
 
     def getCompartment(self, *args):
         """
-        getCompartment(self, unsigned int n) -> Compartment
-        getCompartment(self, unsigned int n) -> Compartment
-        getCompartment(self, string sid) -> Compartment
-        getCompartment(self, string sid) -> Compartment
+        getCompartment(Model self, unsigned int n) -> Compartment
+        getCompartment(Model self, unsigned int n) -> Compartment
+        getCompartment(Model self, string sid) -> Compartment
+        getCompartment(Model self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9246,10 +9254,10 @@ class Model(SBase):
 
     def getSpecies(self, *args):
         """
-        getSpecies(self, unsigned int n) -> Species
-        getSpecies(self, unsigned int n) -> Species
-        getSpecies(self, string sid) -> Species
-        getSpecies(self, string sid) -> Species
+        getSpecies(Model self, unsigned int n) -> Species
+        getSpecies(Model self, unsigned int n) -> Species
+        getSpecies(Model self, string sid) -> Species
+        getSpecies(Model self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9283,10 +9291,10 @@ class Model(SBase):
 
     def getParameter(self, *args):
         """
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, string sid) -> Parameter
-        getParameter(self, string sid) -> Parameter
+        getParameter(Model self, unsigned int n) -> Parameter
+        getParameter(Model self, unsigned int n) -> Parameter
+        getParameter(Model self, string sid) -> Parameter
+        getParameter(Model self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9320,10 +9328,10 @@ class Model(SBase):
 
     def getInitialAssignment(self, *args):
         """
-        getInitialAssignment(self, unsigned int n) -> InitialAssignment
-        getInitialAssignment(self, unsigned int n) -> InitialAssignment
-        getInitialAssignment(self, string symbol) -> InitialAssignment
-        getInitialAssignment(self, string symbol) -> InitialAssignment
+        getInitialAssignment(Model self, unsigned int n) -> InitialAssignment
+        getInitialAssignment(Model self, unsigned int n) -> InitialAssignment
+        getInitialAssignment(Model self, string symbol) -> InitialAssignment
+        getInitialAssignment(Model self, string symbol) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9358,8 +9366,8 @@ class Model(SBase):
 
     def getInitialAssignmentBySymbol(self, *args):
         """
-        getInitialAssignmentBySymbol(self, string symbol) -> InitialAssignment
-        getInitialAssignmentBySymbol(self, string symbol) -> InitialAssignment
+        getInitialAssignmentBySymbol(Model self, string symbol) -> InitialAssignment
+        getInitialAssignmentBySymbol(Model self, string symbol) -> InitialAssignment
 
         Get an InitialAssignment object based on the symbol to which it
         assigns a value.
@@ -9374,10 +9382,10 @@ class Model(SBase):
 
     def getRule(self, *args):
         """
-        getRule(self, unsigned int n) -> Rule
-        getRule(self, unsigned int n) -> Rule
-        getRule(self, string variable) -> Rule
-        getRule(self, string variable) -> Rule
+        getRule(Model self, unsigned int n) -> Rule
+        getRule(Model self, unsigned int n) -> Rule
+        getRule(Model self, string variable) -> Rule
+        getRule(Model self, string variable) -> Rule
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9411,8 +9419,8 @@ class Model(SBase):
 
     def getRuleByVariable(self, *args):
         """
-        getRuleByVariable(self, string variable) -> Rule
-        getRuleByVariable(self, string variable) -> Rule
+        getRuleByVariable(Model self, string variable) -> Rule
+        getRuleByVariable(Model self, string variable) -> Rule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -9426,8 +9434,8 @@ class Model(SBase):
 
     def getAssignmentRule(self, *args):
         """
-        getAssignmentRule(self, string variable) -> AssignmentRule
-        getAssignmentRule(self, string variable) -> AssignmentRule
+        getAssignmentRule(Model self, string variable) -> AssignmentRule
+        getAssignmentRule(Model self, string variable) -> AssignmentRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -9441,8 +9449,8 @@ class Model(SBase):
 
     def getRateRule(self, *args):
         """
-        getRateRule(self, string variable) -> RateRule
-        getRateRule(self, string variable) -> RateRule
+        getRateRule(Model self, string variable) -> RateRule
+        getRateRule(Model self, string variable) -> RateRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -9456,8 +9464,8 @@ class Model(SBase):
 
     def getAssignmentRuleByVariable(self, *args):
         """
-        getAssignmentRuleByVariable(self, string variable) -> AssignmentRule
-        getAssignmentRuleByVariable(self, string variable) -> AssignmentRule
+        getAssignmentRuleByVariable(Model self, string variable) -> AssignmentRule
+        getAssignmentRuleByVariable(Model self, string variable) -> AssignmentRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -9471,8 +9479,8 @@ class Model(SBase):
 
     def getRateRuleByVariable(self, *args):
         """
-        getRateRuleByVariable(self, string variable) -> RateRule
-        getRateRuleByVariable(self, string variable) -> RateRule
+        getRateRuleByVariable(Model self, string variable) -> RateRule
+        getRateRuleByVariable(Model self, string variable) -> RateRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -9486,8 +9494,8 @@ class Model(SBase):
 
     def getConstraint(self, *args):
         """
-        getConstraint(self, unsigned int n) -> Constraint
-        getConstraint(self, unsigned int n) -> Constraint
+        getConstraint(Model self, unsigned int n) -> Constraint
+        getConstraint(Model self, unsigned int n) -> Constraint
 
         Get the nth Constraint object in this Model.
 
@@ -9500,10 +9508,10 @@ class Model(SBase):
 
     def getReaction(self, *args):
         """
-        getReaction(self, unsigned int n) -> Reaction
-        getReaction(self, unsigned int n) -> Reaction
-        getReaction(self, string sid) -> Reaction
-        getReaction(self, string sid) -> Reaction
+        getReaction(Model self, unsigned int n) -> Reaction
+        getReaction(Model self, unsigned int n) -> Reaction
+        getReaction(Model self, string sid) -> Reaction
+        getReaction(Model self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9537,8 +9545,8 @@ class Model(SBase):
 
     def getSpeciesReference(self, *args):
         """
-        getSpeciesReference(self, string sid) -> SpeciesReference
-        getSpeciesReference(self, string sid) -> SpeciesReference
+        getSpeciesReference(Model self, string sid) -> SpeciesReference
+        getSpeciesReference(Model self, string sid) -> SpeciesReference
 
         Get a SpeciesReference object based on its identifier.
 
@@ -9552,8 +9560,8 @@ class Model(SBase):
 
     def getModifierSpeciesReference(self, *args):
         """
-        getModifierSpeciesReference(self, string sid) -> ModifierSpeciesReference
-        getModifierSpeciesReference(self, string sid) -> ModifierSpeciesReference
+        getModifierSpeciesReference(Model self, string sid) -> ModifierSpeciesReference
+        getModifierSpeciesReference(Model self, string sid) -> ModifierSpeciesReference
 
         Get a ModifierSpeciesReference object based on its identifier.
 
@@ -9568,10 +9576,10 @@ class Model(SBase):
 
     def getEvent(self, *args):
         """
-        getEvent(self, unsigned int n) -> Event
-        getEvent(self, unsigned int n) -> Event
-        getEvent(self, string sid) -> Event
-        getEvent(self, string sid) -> Event
+        getEvent(Model self, unsigned int n) -> Event
+        getEvent(Model self, unsigned int n) -> Event
+        getEvent(Model self, string sid) -> Event
+        getEvent(Model self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -9605,7 +9613,7 @@ class Model(SBase):
 
     def getNumFunctionDefinitions(self):
         """
-        getNumFunctionDefinitions(self) -> unsigned int
+        getNumFunctionDefinitions(Model self) -> unsigned int
 
         Get the number of FunctionDefinition objects in this Model.
 
@@ -9616,7 +9624,7 @@ class Model(SBase):
 
     def getNumUnitDefinitions(self):
         """
-        getNumUnitDefinitions(self) -> unsigned int
+        getNumUnitDefinitions(Model self) -> unsigned int
 
         Get the number of UnitDefinition objects in this Model.
 
@@ -9627,7 +9635,7 @@ class Model(SBase):
 
     def getNumCompartmentTypes(self):
         """
-        getNumCompartmentTypes(self) -> unsigned int
+        getNumCompartmentTypes(Model self) -> unsigned int
 
         Get the number of CompartmentType objects in this Model.
 
@@ -9642,7 +9650,7 @@ class Model(SBase):
 
     def getNumSpeciesTypes(self):
         """
-        getNumSpeciesTypes(self) -> unsigned int
+        getNumSpeciesTypes(Model self) -> unsigned int
 
         Get the number of SpeciesType objects in this Model.
 
@@ -9657,7 +9665,7 @@ class Model(SBase):
 
     def getNumCompartments(self):
         """
-        getNumCompartments(self) -> unsigned int
+        getNumCompartments(Model self) -> unsigned int
 
         Get the number of Compartment objects in this Model.
 
@@ -9668,7 +9676,7 @@ class Model(SBase):
 
     def getNumSpecies(self):
         """
-        getNumSpecies(self) -> unsigned int
+        getNumSpecies(Model self) -> unsigned int
 
         Get the number of Species objects in this Model.
 
@@ -9679,7 +9687,7 @@ class Model(SBase):
 
     def getNumSpeciesWithBoundaryCondition(self):
         """
-        getNumSpeciesWithBoundaryCondition(self) -> unsigned int
+        getNumSpeciesWithBoundaryCondition(Model self) -> unsigned int
 
         Get the number of Species in this Model having their
         'boundaryCondition' attribute value set to @c True.
@@ -9692,7 +9700,7 @@ class Model(SBase):
 
     def getNumParameters(self):
         """
-        getNumParameters(self) -> unsigned int
+        getNumParameters(Model self) -> unsigned int
 
         Get the number of Parameter objects in this Model.
 
@@ -9704,7 +9712,7 @@ class Model(SBase):
 
     def getNumInitialAssignments(self):
         """
-        getNumInitialAssignments(self) -> unsigned int
+        getNumInitialAssignments(Model self) -> unsigned int
 
         Get the number of InitialAssignment objects in this Model.
 
@@ -9715,7 +9723,7 @@ class Model(SBase):
 
     def getNumRules(self):
         """
-        getNumRules(self) -> unsigned int
+        getNumRules(Model self) -> unsigned int
 
         Get the number of Rule objects in this Model.
 
@@ -9726,7 +9734,7 @@ class Model(SBase):
 
     def getNumConstraints(self):
         """
-        getNumConstraints(self) -> unsigned int
+        getNumConstraints(Model self) -> unsigned int
 
         Get the number of Constraint objects in this Model.
 
@@ -9737,7 +9745,7 @@ class Model(SBase):
 
     def getNumReactions(self):
         """
-        getNumReactions(self) -> unsigned int
+        getNumReactions(Model self) -> unsigned int
 
         Get the number of Reaction objects in this Model.
 
@@ -9748,7 +9756,7 @@ class Model(SBase):
 
     def getNumEvents(self):
         """
-        getNumEvents(self) -> unsigned int
+        getNumEvents(Model self) -> unsigned int
 
         Get the number of Event objects in this Model.
 
@@ -9759,7 +9767,7 @@ class Model(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Model self) -> int
 
         Remove this Model from its parent SBMLDocument object.
 
@@ -9779,8 +9787,8 @@ class Model(SBase):
 
     def renameAllIds(self, *args):
         """
-        renameAllIds(self, IdentifierTransformer idTransformer, ElementFilter filter = None) -> int
-        renameAllIds(self, IdentifierTransformer idTransformer) -> int
+        renameAllIds(Model self, IdentifierTransformer idTransformer, ElementFilter filter=None) -> int
+        renameAllIds(Model self, IdentifierTransformer idTransformer) -> int
 
         @internal
 
@@ -9791,7 +9799,7 @@ class Model(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Model self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -9821,7 +9829,7 @@ class Model(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Model self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -9851,7 +9859,7 @@ class Model(SBase):
 
     def convertL1ToL2(self):
         """
-        convertL1ToL2(self)
+        convertL1ToL2(Model self)
 
         @internal
 
@@ -9860,10 +9868,10 @@ class Model(SBase):
         """
         return _libsbml.Model_convertL1ToL2(self)
 
-    def convertL1ToL3(self, addDefaultUnits = True):
+    def convertL1ToL3(self, addDefaultUnits=True):
         """
-        convertL1ToL3(self, bool addDefaultUnits = True)
-        convertL1ToL3(self)
+        convertL1ToL3(Model self, bool addDefaultUnits=True)
+        convertL1ToL3(Model self)
 
         @internal
 
@@ -9872,11 +9880,11 @@ class Model(SBase):
         """
         return _libsbml.Model_convertL1ToL3(self, addDefaultUnits)
 
-    def convertL2ToL3(self, strict = False, addDefaultUnits = True):
+    def convertL2ToL3(self, strict=False, addDefaultUnits=True):
         """
-        convertL2ToL3(self, bool strict = False, bool addDefaultUnits = True)
-        convertL2ToL3(self, bool strict = False)
-        convertL2ToL3(self)
+        convertL2ToL3(Model self, bool strict=False, bool addDefaultUnits=True)
+        convertL2ToL3(Model self, bool strict=False)
+        convertL2ToL3(Model self)
 
         @internal
 
@@ -9885,10 +9893,10 @@ class Model(SBase):
         """
         return _libsbml.Model_convertL2ToL3(self, strict, addDefaultUnits)
 
-    def convertL2ToL1(self, strict = False):
+    def convertL2ToL1(self, strict=False):
         """
-        convertL2ToL1(self, bool strict = False)
-        convertL2ToL1(self)
+        convertL2ToL1(Model self, bool strict=False)
+        convertL2ToL1(Model self)
 
         @internal
 
@@ -9897,10 +9905,10 @@ class Model(SBase):
         """
         return _libsbml.Model_convertL2ToL1(self, strict)
 
-    def convertL3ToL1(self, strict = False):
+    def convertL3ToL1(self, strict=False):
         """
-        convertL3ToL1(self, bool strict = False)
-        convertL3ToL1(self)
+        convertL3ToL1(Model self, bool strict=False)
+        convertL3ToL1(Model self)
 
         @internal
 
@@ -9909,10 +9917,10 @@ class Model(SBase):
         """
         return _libsbml.Model_convertL3ToL1(self, strict)
 
-    def convertL3ToL2(self, strict = False):
+    def convertL3ToL2(self, strict=False):
         """
-        convertL3ToL2(self, bool strict = False)
-        convertL3ToL2(self)
+        convertL3ToL2(Model self, bool strict=False)
+        convertL3ToL2(Model self)
 
         @internal
 
@@ -9923,7 +9931,7 @@ class Model(SBase):
 
     def addModifiers(self):
         """
-        addModifiers(self)
+        addModifiers(Model self)
 
         @internal
 
@@ -9934,7 +9942,7 @@ class Model(SBase):
 
     def addConstantAttribute(self):
         """
-        addConstantAttribute(self)
+        addConstantAttribute(Model self)
 
         @internal
 
@@ -9943,10 +9951,10 @@ class Model(SBase):
         """
         return _libsbml.Model_addConstantAttribute(self)
 
-    def setSpatialDimensions(self, dims = 3.0):
+    def setSpatialDimensions(self, dims=3.0):
         """
-        setSpatialDimensions(self, double dims = 3.0)
-        setSpatialDimensions(self)
+        setSpatialDimensions(Model self, double dims=3.0)
+        setSpatialDimensions(Model self)
 
         @internal
 
@@ -9957,7 +9965,7 @@ class Model(SBase):
 
     def addDefinitionsForDefaultUnits(self):
         """
-        addDefinitionsForDefaultUnits(self)
+        addDefinitionsForDefaultUnits(Model self)
 
         @internal
 
@@ -9968,7 +9976,7 @@ class Model(SBase):
 
     def dealWithDefaultValues(self):
         """
-        dealWithDefaultValues(self)
+        dealWithDefaultValues(Model self)
 
         @internal
 
@@ -9979,7 +9987,7 @@ class Model(SBase):
 
     def convertParametersToLocals(self, *args):
         """
-        convertParametersToLocals(self, unsigned int level, unsigned int version)
+        convertParametersToLocals(Model self, unsigned int level, unsigned int version)
 
         @internal
 
@@ -9990,7 +9998,7 @@ class Model(SBase):
 
     def setSpeciesReferenceConstantValueAndStoichiometry(self):
         """
-        setSpeciesReferenceConstantValueAndStoichiometry(self)
+        setSpeciesReferenceConstantValueAndStoichiometry(Model self)
 
         @internal
 
@@ -10001,7 +10009,7 @@ class Model(SBase):
 
     def removeParameterRuleUnits(self, *args):
         """
-        removeParameterRuleUnits(self, bool strict)
+        removeParameterRuleUnits(Model self, bool strict)
 
         @internal
 
@@ -10012,7 +10020,7 @@ class Model(SBase):
 
     def convertStoichiometryMath(self):
         """
-        convertStoichiometryMath(self)
+        convertStoichiometryMath(Model self)
 
         @internal
 
@@ -10023,7 +10031,7 @@ class Model(SBase):
 
     def assignRequiredValues(self):
         """
-        assignRequiredValues(self)
+        assignRequiredValues(Model self)
 
         @internal
 
@@ -10032,10 +10040,10 @@ class Model(SBase):
         """
         return _libsbml.Model_assignRequiredValues(self)
 
-    def dealWithModelUnits(self, strict = False):
+    def dealWithModelUnits(self, strict=False):
         """
-        dealWithModelUnits(self, bool strict = False)
-        dealWithModelUnits(self)
+        dealWithModelUnits(Model self, bool strict=False)
+        dealWithModelUnits(Model self)
 
         @internal
 
@@ -10046,7 +10054,7 @@ class Model(SBase):
 
     def dealWithStoichiometry(self):
         """
-        dealWithStoichiometry(self)
+        dealWithStoichiometry(Model self)
 
         @internal
 
@@ -10057,7 +10065,7 @@ class Model(SBase):
 
     def dealWithEvents(self, *args):
         """
-        dealWithEvents(self, bool strict)
+        dealWithEvents(Model self, bool strict)
 
         @internal
 
@@ -10068,7 +10076,7 @@ class Model(SBase):
 
     def removeSpeciesTypes(self):
         """
-        removeSpeciesTypes(self)
+        removeSpeciesTypes(Model self)
 
         @internal
 
@@ -10079,7 +10087,7 @@ class Model(SBase):
 
     def removeCompartmentTypes(self):
         """
-        removeCompartmentTypes(self)
+        removeCompartmentTypes(Model self)
 
         @internal
 
@@ -10089,12 +10097,12 @@ class Model(SBase):
         return _libsbml.Model_removeCompartmentTypes(self)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(Model self)"""
         return _libsbml.Model_connectToChild(self)
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Model self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -10122,9 +10130,9 @@ class Model(SBase):
         @link libsbml#SBML_MODEL SBML_MODEL at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -10134,7 +10142,7 @@ class Model(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Model self) -> string
 
         Returns the XML element name of this object, which for Model, is
         always @c 'model'.
@@ -10146,7 +10154,7 @@ class Model(SBase):
 
     def populateListFormulaUnitsData(self):
         """
-        populateListFormulaUnitsData(self)
+        populateListFormulaUnitsData(Model self)
 
         Populates the internal list of derived units for this Model object.
 
@@ -10184,7 +10192,7 @@ class Model(SBase):
 
     def isPopulatedListFormulaUnitsData(self):
         """
-        isPopulatedListFormulaUnitsData(self) -> bool
+        isPopulatedListFormulaUnitsData(Model self) -> bool
 
         Predicate returning @c True if libSBML has derived units for the
         components of this model.
@@ -10210,7 +10218,7 @@ class Model(SBase):
 
     def getFormulaUnitsDataForVariable(self, *args):
         """
-        getFormulaUnitsDataForVariable(self, string sid) -> FormulaUnitsData
+        getFormulaUnitsDataForVariable(Model self, string sid) -> FormulaUnitsData *
 
         @internal
 
@@ -10221,7 +10229,7 @@ class Model(SBase):
 
     def getFormulaUnitsDataForAssignment(self, *args):
         """
-        getFormulaUnitsDataForAssignment(self, string sid) -> FormulaUnitsData
+        getFormulaUnitsDataForAssignment(Model self, string sid) -> FormulaUnitsData *
 
         @internal
 
@@ -10232,7 +10240,7 @@ class Model(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Model self) -> bool
 
         Predicate returning @c True if all the required elements for this Model
         object have been set.
@@ -10245,8 +10253,8 @@ class Model(SBase):
 
     def removeFunctionDefinition(self, *args):
         """
-        removeFunctionDefinition(self, unsigned int n) -> FunctionDefinition
-        removeFunctionDefinition(self, string sid) -> FunctionDefinition
+        removeFunctionDefinition(Model self, unsigned int n) -> FunctionDefinition
+        removeFunctionDefinition(Model self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10289,8 +10297,8 @@ class Model(SBase):
 
     def removeUnitDefinition(self, *args):
         """
-        removeUnitDefinition(self, unsigned int n) -> UnitDefinition
-        removeUnitDefinition(self, string sid) -> UnitDefinition
+        removeUnitDefinition(Model self, unsigned int n) -> UnitDefinition
+        removeUnitDefinition(Model self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10332,8 +10340,8 @@ class Model(SBase):
 
     def removeCompartmentType(self, *args):
         """
-        removeCompartmentType(self, unsigned int n) -> CompartmentType
-        removeCompartmentType(self, string sid) -> CompartmentType
+        removeCompartmentType(Model self, unsigned int n) -> CompartmentType
+        removeCompartmentType(Model self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10375,8 +10383,8 @@ class Model(SBase):
 
     def removeSpeciesType(self, *args):
         """
-        removeSpeciesType(self, unsigned int n) -> SpeciesType
-        removeSpeciesType(self, string sid) -> SpeciesType
+        removeSpeciesType(Model self, unsigned int n) -> SpeciesType
+        removeSpeciesType(Model self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10418,8 +10426,8 @@ class Model(SBase):
 
     def removeCompartment(self, *args):
         """
-        removeCompartment(self, unsigned int n) -> Compartment
-        removeCompartment(self, string sid) -> Compartment
+        removeCompartment(Model self, unsigned int n) -> Compartment
+        removeCompartment(Model self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10461,8 +10469,8 @@ class Model(SBase):
 
     def removeSpecies(self, *args):
         """
-        removeSpecies(self, unsigned int n) -> Species
-        removeSpecies(self, string sid) -> Species
+        removeSpecies(Model self, unsigned int n) -> Species
+        removeSpecies(Model self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10504,8 +10512,8 @@ class Model(SBase):
 
     def removeParameter(self, *args):
         """
-        removeParameter(self, unsigned int n) -> Parameter
-        removeParameter(self, string sid) -> Parameter
+        removeParameter(Model self, unsigned int n) -> Parameter
+        removeParameter(Model self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10547,8 +10555,8 @@ class Model(SBase):
 
     def removeInitialAssignment(self, *args):
         """
-        removeInitialAssignment(self, unsigned int n) -> InitialAssignment
-        removeInitialAssignment(self, string symbol) -> InitialAssignment
+        removeInitialAssignment(Model self, unsigned int n) -> InitialAssignment
+        removeInitialAssignment(Model self, string symbol) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10590,8 +10598,8 @@ class Model(SBase):
 
     def removeRule(self, *args):
         """
-        removeRule(self, unsigned int n) -> Rule
-        removeRule(self, string variable) -> Rule
+        removeRule(Model self, unsigned int n) -> Rule
+        removeRule(Model self, string variable) -> Rule
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10632,7 +10640,7 @@ class Model(SBase):
 
     def removeRuleByVariable(self, *args):
         """
-        removeRuleByVariable(self, string variable) -> Rule
+        removeRuleByVariable(Model self, string variable) -> Rule
 
         Removes the Rule object with the given 'variable' attribute from this Model 
         object and returns a pointer to it.
@@ -10649,7 +10657,7 @@ class Model(SBase):
 
     def removeConstraint(self, *args):
         """
-        removeConstraint(self, unsigned int n) -> Constraint
+        removeConstraint(Model self, unsigned int n) -> Constraint
 
         Removes the nth Constraint object from this Model object and
         returns a pointer to it.
@@ -10666,8 +10674,8 @@ class Model(SBase):
 
     def removeReaction(self, *args):
         """
-        removeReaction(self, unsigned int n) -> Reaction
-        removeReaction(self, string sid) -> Reaction
+        removeReaction(Model self, unsigned int n) -> Reaction
+        removeReaction(Model self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10709,8 +10717,8 @@ class Model(SBase):
 
     def removeEvent(self, *args):
         """
-        removeEvent(self, unsigned int n) -> Event
-        removeEvent(self, string sid) -> Event
+        removeEvent(Model self, unsigned int n) -> Event
+        removeEvent(Model self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -10752,7 +10760,7 @@ class Model(SBase):
 
     def appendFrom(self, *args):
         """
-        appendFrom(self, Model model) -> int
+        appendFrom(Model self, Model model) -> int
 
         Copies a given Model object's subcomponents and appends the copies to
         the appropriate places in this Model.
@@ -10782,7 +10790,7 @@ class Model(SBase):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(Model self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -10793,7 +10801,7 @@ class Model(SBase):
 
     def renameIDs(self, *args):
         """
-        renameIDs(self, SBaseList elements, IdentifierTransformer idTransformer)
+        renameIDs(Model self, SBaseList elements, IdentifierTransformer idTransformer)
 
         @internal
 
@@ -11112,11 +11120,11 @@ class SBMLDocument(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level = 0, unsigned int version = 0) -> SBMLDocument
-        __init__(self, unsigned int level = 0) -> SBMLDocument
-        __init__(self) -> SBMLDocument
-        __init__(self, SBMLNamespaces sbmlns) -> SBMLDocument
-        __init__(self, SBMLDocument orig) -> SBMLDocument
+        __init__(SBMLDocument self, unsigned int level=0, unsigned int version=0) -> SBMLDocument
+        __init__(SBMLDocument self, unsigned int level=0) -> SBMLDocument
+        __init__(SBMLDocument self) -> SBMLDocument
+        __init__(SBMLDocument self, SBMLNamespaces sbmlns) -> SBMLDocument
+        __init__(SBMLDocument self, SBMLDocument orig) -> SBMLDocument
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -11199,7 +11207,7 @@ class SBMLDocument(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLDocument
+        clone(SBMLDocument self) -> SBMLDocument
 
         Creates and returns a deep copy of this SBMLDocument object.
 
@@ -11210,7 +11218,7 @@ class SBMLDocument(SBase):
 
     def isSetModel(self):
         """
-        isSetModel(self) -> bool
+        isSetModel(SBMLDocument self) -> bool
 
         Returns @c True if the Model object has been set, otherwise 
         returns @c False.
@@ -11222,8 +11230,8 @@ class SBMLDocument(SBase):
 
     def getModel(self, *args):
         """
-        getModel(self) -> Model
-        getModel(self) -> Model
+        getModel(SBMLDocument self) -> Model
+        getModel(SBMLDocument self) -> Model
 
         Returns the Model object stored in this SBMLDocument.
 
@@ -11242,7 +11250,7 @@ class SBMLDocument(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(SBMLDocument self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -11256,7 +11264,7 @@ class SBMLDocument(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(SBMLDocument self, string metaid) -> SBase
 
         Returns the first child element it can find with the given @p metaid, or
         itself if it has the given @p metaid, or @c None if no such object is
@@ -11271,7 +11279,7 @@ class SBMLDocument(SBase):
 
     def expandFunctionDefinitions(self):
         """
-        expandFunctionDefinitions(self) -> bool
+        expandFunctionDefinitions(SBMLDocument self) -> bool
 
         Removes FunctionDefinition constructs from the document and expands
         any instances of their use within <code><math></code> elements.
@@ -11298,7 +11306,7 @@ class SBMLDocument(SBase):
 
     def expandInitialAssignments(self):
         """
-        expandInitialAssignments(self) -> bool
+        expandInitialAssignments(SBMLDocument self) -> bool
 
         Removes InitialAssignment constructs from the document and
         replaces them with appropriate values.
@@ -11327,10 +11335,9 @@ class SBMLDocument(SBase):
 
     def setLevelAndVersion(self, *args):
         """
-        setLevelAndVersion(self, unsigned int level, unsigned int version, bool strict = True, 
-            bool ignorePackages = False) -> bool
-        setLevelAndVersion(self, unsigned int level, unsigned int version, bool strict = True) -> bool
-        setLevelAndVersion(self, unsigned int level, unsigned int version) -> bool
+        setLevelAndVersion(SBMLDocument self, unsigned int level, unsigned int version, bool strict=True, bool ignorePackages=False) -> bool
+        setLevelAndVersion(SBMLDocument self, unsigned int level, unsigned int version, bool strict=True) -> bool
+        setLevelAndVersion(SBMLDocument self, unsigned int level, unsigned int version) -> bool
 
         Sets the SBML Level and Version of this SBMLDocument instance,
         attempting to convert the model as needed.
@@ -11412,7 +11419,7 @@ class SBMLDocument(SBase):
 
     def updateSBMLNamespace(self, *args):
         """
-        updateSBMLNamespace(self, string package, unsigned int level, unsigned int version)
+        updateSBMLNamespace(SBMLDocument self, string package, unsigned int level, unsigned int version)
 
         @internal
 
@@ -11423,7 +11430,7 @@ class SBMLDocument(SBase):
 
     def setModel(self, *args):
         """
-        setModel(self, Model m) -> int
+        setModel(SBMLDocument self, Model m) -> int
 
         Sets the Model for this SBMLDocument to a copy of the given Model.
 
@@ -11443,10 +11450,10 @@ class SBMLDocument(SBase):
         """
         return _libsbml.SBMLDocument_setModel(self, *args)
 
-    def createModel(self, sid = ""):
+    def createModel(self, sid=""):
         """
-        createModel(self, string sid = "") -> Model
-        createModel(self) -> Model
+        createModel(SBMLDocument self, string sid="") -> Model
+        createModel(SBMLDocument self) -> Model
 
         Creates a new Model inside this SBMLDocument, and returns a pointer to
         it.
@@ -11468,7 +11475,7 @@ class SBMLDocument(SBase):
 
     def setLocationURI(self, *args):
         """
-        setLocationURI(self, string uri)
+        setLocationURI(SBMLDocument self, string uri)
 
         Sets the location of this SBMLDocument.
 
@@ -11480,8 +11487,8 @@ class SBMLDocument(SBase):
 
     def getLocationURI(self, *args):
         """
-        getLocationURI(self) -> string
-        getLocationURI(self) -> string
+        getLocationURI(SBMLDocument self) -> string
+        getLocationURI(SBMLDocument self) -> string
 
         Get the location of this SBMLDocument.
 
@@ -11494,7 +11501,7 @@ class SBMLDocument(SBase):
 
     def setConsistencyChecks(self, *args):
         """
-        setConsistencyChecks(self, SBMLErrorCategory_t category, bool apply)
+        setConsistencyChecks(SBMLDocument self, SBMLErrorCategory_t category, bool apply)
 
         Controls the consistency checks that are performed when
         SBMLDocument.checkConsistency() is called.
@@ -11598,7 +11605,7 @@ class SBMLDocument(SBase):
 
     def setConsistencyChecksForConversion(self, *args):
         """
-        setConsistencyChecksForConversion(self, SBMLErrorCategory_t category, bool apply)
+        setConsistencyChecksForConversion(SBMLDocument self, SBMLErrorCategory_t category, bool apply)
 
         Controls the consistency checks that are performed when
         SBMLDocument.setLevelAndVersion() is called.
@@ -11704,7 +11711,7 @@ class SBMLDocument(SBase):
 
     def checkConsistency(self):
         """
-        checkConsistency(self) -> unsigned int
+        checkConsistency(SBMLDocument self) -> unsigned int
 
         Performs consistency checking and validation on this SBML document.
 
@@ -11723,7 +11730,7 @@ class SBMLDocument(SBase):
 
     def checkConsistencyWithStrictUnits(self):
         """
-        checkConsistencyWithStrictUnits(self) -> unsigned int
+        checkConsistencyWithStrictUnits(SBMLDocument self) -> unsigned int
 
         Performs consistency checking and validation on this SBML document
         using the ultra strict units validator that assumes that there
@@ -11744,7 +11751,7 @@ class SBMLDocument(SBase):
 
     def validateSBML(self):
         """
-        validateSBML(self) -> unsigned int
+        validateSBML(SBMLDocument self) -> unsigned int
 
         Performs consistency checking and validation on this SBML document.
 
@@ -11767,7 +11774,7 @@ class SBMLDocument(SBase):
 
     def checkInternalConsistency(self):
         """
-        checkInternalConsistency(self) -> unsigned int
+        checkInternalConsistency(SBMLDocument self) -> unsigned int
 
         Performs consistency checking on libSBML's internal representation of 
         an SBML Model.
@@ -11790,9 +11797,10 @@ class SBMLDocument(SBase):
         """
         return _libsbml.SBMLDocument_checkInternalConsistency(self)
 
-    def checkL1Compatibility(self):
+    def checkL1Compatibility(self, inConversion=False):
         """
-        checkL1Compatibility(self) -> unsigned int
+        checkL1Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL1Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 1 and can be converted
@@ -11804,11 +11812,12 @@ class SBMLDocument(SBase):
         @return the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL1Compatibility(self)
+        return _libsbml.SBMLDocument_checkL1Compatibility(self, inConversion)
 
-    def checkL2v1Compatibility(self):
+    def checkL2v1Compatibility(self, inConversion=False):
         """
-        checkL2v1Compatibility(self) -> unsigned int
+        checkL2v1Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL2v1Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 1 and can
@@ -11820,11 +11829,12 @@ class SBMLDocument(SBase):
         @return the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL2v1Compatibility(self)
+        return _libsbml.SBMLDocument_checkL2v1Compatibility(self, inConversion)
 
-    def checkL2v2Compatibility(self):
+    def checkL2v2Compatibility(self, inConversion=False):
         """
-        checkL2v2Compatibility(self) -> unsigned int
+        checkL2v2Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL2v2Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 2 and can
@@ -11836,11 +11846,12 @@ class SBMLDocument(SBase):
         @return the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL2v2Compatibility(self)
+        return _libsbml.SBMLDocument_checkL2v2Compatibility(self, inConversion)
 
-    def checkL2v3Compatibility(self):
+    def checkL2v3Compatibility(self, inConversion=False):
         """
-        checkL2v3Compatibility(self) -> unsigned int
+        checkL2v3Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL2v3Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 3 and can
@@ -11852,11 +11863,11 @@ class SBMLDocument(SBase):
         @return the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL2v3Compatibility(self)
+        return _libsbml.SBMLDocument_checkL2v3Compatibility(self, inConversion)
 
     def checkL2v4Compatibility(self):
         """
-        checkL2v4Compatibility(self) -> unsigned int
+        checkL2v4Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 4 and can
@@ -11872,7 +11883,7 @@ class SBMLDocument(SBase):
 
     def checkL3v1Compatibility(self):
         """
-        checkL3v1Compatibility(self) -> unsigned int
+        checkL3v1Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 3 Version 1 and can
@@ -11888,7 +11899,7 @@ class SBMLDocument(SBase):
 
     def getError(self, *args):
         """
-        getError(self, unsigned int n) -> SBMLError
+        getError(SBMLDocument self, unsigned int n) -> SBMLError
 
         Returns the nth error or warning encountered during parsing,
         consistency checking, or attempted translation of this model.
@@ -11909,7 +11920,7 @@ class SBMLDocument(SBase):
 
     def getErrorWithSeverity(self, *args):
         """
-        getErrorWithSeverity(self, unsigned int n, unsigned int severity) -> SBMLError
+        getErrorWithSeverity(SBMLDocument self, unsigned int n, unsigned int severity) -> SBMLError
 
         Returns the nth error or warning with the given severity
         encountered during parsing, consistency checking, or attempted
@@ -11928,8 +11939,8 @@ class SBMLDocument(SBase):
 
     def getNumErrors(self, *args):
         """
-        getNumErrors(self) -> unsigned int
-        getNumErrors(self, unsigned int severity) -> unsigned int
+        getNumErrors(SBMLDocument self) -> unsigned int
+        getNumErrors(SBMLDocument self, unsigned int severity) -> unsigned int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -11967,9 +11978,9 @@ class SBMLDocument(SBase):
 
     def printErrors(self, *args):
         """
-        printErrors(self, ostream stream = cerr)
-        printErrors(self)
-        printErrors(self, ostream stream, unsigned int severity)
+        printErrors(SBMLDocument self, ostream stream=cerr)
+        printErrors(SBMLDocument self)
+        printErrors(SBMLDocument self, ostream stream, unsigned int severity)
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -12037,12 +12048,12 @@ class SBMLDocument(SBase):
         return _libsbml.SBMLDocument_printErrors(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(SBMLDocument self)"""
         return _libsbml.SBMLDocument_connectToChild(self)
 
     def convert(self, *args):
         """
-        convert(self, ConversionProperties props) -> int
+        convert(SBMLDocument self, ConversionProperties props) -> int
 
         Converts this document using the converter that best matches
         the given conversion properties. 
@@ -12062,7 +12073,7 @@ class SBMLDocument(SBase):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(SBMLDocument self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -12073,7 +12084,7 @@ class SBMLDocument(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SBMLDocument self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -12101,9 +12112,9 @@ class SBMLDocument(SBase):
         @link libsbml#SBML_DOCUMENT SBML_DOCUMENT at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see SBMLDocument.getElementName()
         @see getPackageName()
@@ -12113,7 +12124,7 @@ class SBMLDocument(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SBMLDocument self) -> string
 
         Returns the XML element name of this object, which for SBMLDocument,
         is always @c 'sbml'.
@@ -12125,8 +12136,8 @@ class SBMLDocument(SBase):
 
     def getErrorLog(self, *args):
         """
-        getErrorLog(self) -> SBMLErrorLog
-        getErrorLog(self) -> SBMLErrorLog
+        getErrorLog(SBMLDocument self) -> SBMLErrorLog
+        getErrorLog(SBMLDocument self) -> SBMLErrorLog
 
         Returns the list of errors or warnings logged during parsing, 
         consistency checking, or attempted translation of this model.
@@ -12140,7 +12151,7 @@ class SBMLDocument(SBase):
 
     def getNamespaces(self):
         """
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(SBMLDocument self) -> XMLNamespaces
 
         Returns a list of XML Namespaces associated with the XML content
         of this SBML document.
@@ -12152,7 +12163,7 @@ class SBMLDocument(SBase):
 
     def enableDefaultNS(self, *args):
         """
-        enableDefaultNS(self, string package, bool flag) -> int
+        enableDefaultNS(SBMLDocument self, string package, bool flag) -> int
 
         Set/unset default namespace to each top-level element defined in the
         given package extension.
@@ -12177,7 +12188,7 @@ class SBMLDocument(SBase):
 
     def isEnabledDefaultNS(self, *args):
         """
-        isEnabledDefaultNS(self, string package) -> bool
+        isEnabledDefaultNS(SBMLDocument self, string package) -> bool
 
         Returns @c True if a default namespace is added to each top-level
         element defined in the given package extension, otherwise returns
@@ -12195,7 +12206,7 @@ class SBMLDocument(SBase):
 
     def setPackageRequired(self, *args):
         """
-        setPackageRequired(self, string package, bool flag) -> int
+        setPackageRequired(SBMLDocument self, string package, bool flag) -> int
 
         Sets the <code>required</code> attribute value of the given package
         extension.
@@ -12218,7 +12229,7 @@ class SBMLDocument(SBase):
 
     def getPackageRequired(self, *args):
         """
-        getPackageRequired(self, string package) -> bool
+        getPackageRequired(SBMLDocument self, string package) -> bool
 
         Returns the <code>required</code> attribute of the given package
         extension.
@@ -12236,7 +12247,7 @@ class SBMLDocument(SBase):
 
     def isSetPackageRequired(self, *args):
         """
-        isSetPackageRequired(self, string package) -> bool
+        isSetPackageRequired(SBMLDocument self, string package) -> bool
 
         Returns @c True if the required attribute of the given package extension
         is defined, otherwise returns @c False.
@@ -12253,7 +12264,7 @@ class SBMLDocument(SBase):
 
     def isIgnoredPackage(self, *args):
         """
-        isIgnoredPackage(self, string pkgURI) -> bool
+        isIgnoredPackage(SBMLDocument self, string pkgURI) -> bool
 
         Returns @c True if the given package extension is one of an ignored
         packages, otherwise returns @c False.
@@ -12271,7 +12282,7 @@ class SBMLDocument(SBase):
 
     def isDisabledIgnoredPackage(self, *args):
         """
-        isDisabledIgnoredPackage(self, string pkgURI) -> bool
+        isDisabledIgnoredPackage(SBMLDocument self, string pkgURI) -> bool
 
         Returns @c True if the given package extension is one of an ignored
         packages that has been disabled, otherwise returns @c False.
@@ -12291,7 +12302,7 @@ class SBMLDocument(SBase):
 
     def setPkgRequired(self, *args):
         """
-        setPkgRequired(self, string package, bool flag) -> int
+        setPkgRequired(SBMLDocument self, string package, bool flag) -> int
 
         Sets the value of the <code>required</code> attribute for the given
         package.
@@ -12317,7 +12328,7 @@ class SBMLDocument(SBase):
 
     def getPkgRequired(self, *args):
         """
-        getPkgRequired(self, string package) -> bool
+        getPkgRequired(SBMLDocument self, string package) -> bool
 
         Returns the <code>required</code> attribute of the given package
         extension.
@@ -12338,7 +12349,7 @@ class SBMLDocument(SBase):
 
     def isSetPkgRequired(self, *args):
         """
-        isSetPkgRequired(self, string package) -> bool
+        isSetPkgRequired(SBMLDocument self, string package) -> bool
 
         Returns @c True if the required attribute of the given package extension
         is defined, otherwise returns @c False.
@@ -12358,7 +12369,7 @@ class SBMLDocument(SBase):
 
     def isIgnoredPkg(self, *args):
         """
-        isIgnoredPkg(self, string pkgURI) -> bool
+        isIgnoredPkg(SBMLDocument self, string pkgURI) -> bool
 
         Returns @c True if the given package extension is one of ignored
         packages, otherwise returns @c False.
@@ -12378,7 +12389,7 @@ class SBMLDocument(SBase):
 
     def getApplicableValidators(self):
         """
-        getApplicableValidators(self) -> unsigned char
+        getApplicableValidators(SBMLDocument self) -> unsigned char
 
         @internal
 
@@ -12389,7 +12400,7 @@ class SBMLDocument(SBase):
 
     def getConversionValidators(self):
         """
-        getConversionValidators(self) -> unsigned char
+        getConversionValidators(SBMLDocument self) -> unsigned char
 
         @internal
 
@@ -12400,7 +12411,7 @@ class SBMLDocument(SBase):
 
     def setApplicableValidators(self, *args):
         """
-        setApplicableValidators(self, unsigned char appl)
+        setApplicableValidators(SBMLDocument self, unsigned char appl)
 
         @internal
 
@@ -12411,7 +12422,7 @@ class SBMLDocument(SBase):
 
     def setConversionValidators(self, *args):
         """
-        setConversionValidators(self, unsigned char appl)
+        setConversionValidators(SBMLDocument self, unsigned char appl)
 
         @internal
 
@@ -12422,7 +12433,7 @@ class SBMLDocument(SBase):
 
     def getNumValidators(self):
         """
-        getNumValidators(self) -> unsigned int
+        getNumValidators(SBMLDocument self) -> unsigned int
 
         @internal
 
@@ -12433,7 +12444,7 @@ class SBMLDocument(SBase):
 
     def clearValidators(self):
         """
-        clearValidators(self) -> int
+        clearValidators(SBMLDocument self) -> int
 
         @internal
 
@@ -12444,7 +12455,7 @@ class SBMLDocument(SBase):
 
     def addValidator(self, *args):
         """
-        addValidator(self, SBMLValidator validator) -> int
+        addValidator(SBMLDocument self, SBMLValidator validator) -> int
 
         @internal
 
@@ -12455,7 +12466,7 @@ class SBMLDocument(SBase):
 
     def getValidator(self, *args):
         """
-        getValidator(self, unsigned int index) -> SBMLValidator
+        getValidator(SBMLDocument self, unsigned int index) -> SBMLValidator
 
         @internal
 
@@ -12466,7 +12477,7 @@ class SBMLDocument(SBase):
 
     def addUnknownPackageRequired(self, *args):
         """
-        addUnknownPackageRequired(self, string pkgURI, string prefix, bool flag) -> int
+        addUnknownPackageRequired(SBMLDocument self, string pkgURI, string prefix, bool flag) -> int
 
         @internal
 
@@ -12477,7 +12488,7 @@ class SBMLDocument(SBase):
 
     def hasUnknownPackage(self, *args):
         """
-        hasUnknownPackage(self, string pkgURI) -> bool
+        hasUnknownPackage(SBMLDocument self, string pkgURI) -> bool
 
         @internal
 
@@ -12488,7 +12499,7 @@ class SBMLDocument(SBase):
 
     def getNumUnknownPackages(self):
         """
-        getNumUnknownPackages(self) -> int
+        getNumUnknownPackages(SBMLDocument self) -> int
 
         @internal
 
@@ -12499,7 +12510,7 @@ class SBMLDocument(SBase):
 
     def getUnknownPackageURI(self, *args):
         """
-        getUnknownPackageURI(self, int index) -> string
+        getUnknownPackageURI(SBMLDocument self, int index) -> string
 
         @internal
 
@@ -12510,7 +12521,7 @@ class SBMLDocument(SBase):
 
     def getUnknownPackagePrefix(self, *args):
         """
-        getUnknownPackagePrefix(self, int index) -> string
+        getUnknownPackagePrefix(SBMLDocument self, int index) -> string
 
         @internal
 
@@ -12660,9 +12671,9 @@ class FunctionDefinition(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> FunctionDefinition
-        __init__(self, SBMLNamespaces sbmlns) -> FunctionDefinition
-        __init__(self, FunctionDefinition orig) -> FunctionDefinition
+        __init__(FunctionDefinition self, unsigned int level, unsigned int version) -> FunctionDefinition
+        __init__(FunctionDefinition self, SBMLNamespaces sbmlns) -> FunctionDefinition
+        __init__(FunctionDefinition self, FunctionDefinition orig) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -12753,7 +12764,7 @@ class FunctionDefinition(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> FunctionDefinition
+        clone(FunctionDefinition self) -> FunctionDefinition
 
         Creates and returns a deep copy of this FunctionDefinition object.
 
@@ -12764,7 +12775,7 @@ class FunctionDefinition(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(FunctionDefinition self) -> string
 
         Returns the value of the 'id' attribute of this FunctionDefinition.
 
@@ -12775,7 +12786,7 @@ class FunctionDefinition(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(FunctionDefinition self) -> string
 
         Returns the value of the 'name' attribute of this FunctionDefinition.
 
@@ -12786,7 +12797,7 @@ class FunctionDefinition(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(FunctionDefinition self) -> ASTNode
 
         Get the mathematical formula of this FunctionDefinition.
 
@@ -12798,7 +12809,7 @@ class FunctionDefinition(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(FunctionDefinition self) -> bool
 
         Predicate returning @c True if this
         FunctionDefinition's 'id' attribute is set.
@@ -12811,7 +12822,7 @@ class FunctionDefinition(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(FunctionDefinition self) -> bool
 
         Predicate returning @c True if this
         FunctionDefinition's 'name' attribute is set.
@@ -12824,7 +12835,7 @@ class FunctionDefinition(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(FunctionDefinition self) -> bool
 
         Predicate returning @c True if this
         FunctionDefinition's 'math' subelement contains a value.
@@ -12837,7 +12848,7 @@ class FunctionDefinition(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(FunctionDefinition self, string sid) -> int
 
         Sets the value of the 'id' attribute of this FunctionDefinition.
 
@@ -12877,7 +12888,7 @@ class FunctionDefinition(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(FunctionDefinition self, string name) -> int
 
         Sets the value of the 'name' attribute of this FunctionDefinition.
 
@@ -12897,7 +12908,7 @@ class FunctionDefinition(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(FunctionDefinition self, ASTNode math) -> int
 
         Sets the 'math' subelement of this FunctionDefinition to the Abstract
         Syntax Tree given in @p math.
@@ -12917,7 +12928,7 @@ class FunctionDefinition(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(FunctionDefinition self) -> int
 
         Unsets the value of the 'name' attribute of this FunctionDefinition.
 
@@ -12933,8 +12944,8 @@ class FunctionDefinition(SBase):
 
     def getArgument(self, *args):
         """
-        getArgument(self, unsigned int n) -> ASTNode
-        getArgument(self, string name) -> ASTNode
+        getArgument(FunctionDefinition self, unsigned int n) -> ASTNode
+        getArgument(FunctionDefinition self, string name) -> ASTNode
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -12975,8 +12986,8 @@ class FunctionDefinition(SBase):
 
     def getBody(self, *args):
         """
-        getBody(self) -> ASTNode
-        getBody(self) -> ASTNode
+        getBody(FunctionDefinition self) -> ASTNode
+        getBody(FunctionDefinition self) -> ASTNode
 
         Get the mathematical expression that is the body of this
         FunctionDefinition object.
@@ -12989,7 +13000,7 @@ class FunctionDefinition(SBase):
 
     def isSetBody(self):
         """
-        isSetBody(self) -> bool
+        isSetBody(FunctionDefinition self) -> bool
 
         Predicate returning @c True if the body of this
         FunctionDefinition has set.
@@ -13002,7 +13013,7 @@ class FunctionDefinition(SBase):
 
     def getNumArguments(self):
         """
-        getNumArguments(self) -> unsigned int
+        getNumArguments(FunctionDefinition self) -> unsigned int
 
         Get the number of arguments (bound variables) taken by this
         FunctionDefinition.
@@ -13015,7 +13026,7 @@ class FunctionDefinition(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(FunctionDefinition self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -13043,9 +13054,9 @@ class FunctionDefinition(SBase):
         @link libsbml#SBML_FUNCTION_DEFINITION SBML_FUNCTION_DEFINITION at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -13055,7 +13066,7 @@ class FunctionDefinition(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(FunctionDefinition self) -> string
 
         Returns the XML element name of this object, which for
         FunctionDefinition, is always @c 'functionDefinition'.
@@ -13067,7 +13078,7 @@ class FunctionDefinition(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(FunctionDefinition self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this FunctionDefinition object
@@ -13084,7 +13095,7 @@ class FunctionDefinition(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(FunctionDefinition self) -> bool
 
         Predicate returning @c True if
         all the required elements for this FunctionDefinition object
@@ -13101,7 +13112,7 @@ class FunctionDefinition(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(FunctionDefinition self, string oldid, string newid)
 
         Renames all the @c UnitSIdRef attributes on this element.
 
@@ -13150,11 +13161,6 @@ class ListOfFunctionDefinitions(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -13197,8 +13203,8 @@ class ListOfFunctionDefinitions(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfFunctionDefinitions
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfFunctionDefinitions
+        __init__(ListOfFunctionDefinitions self, unsigned int level, unsigned int version) -> ListOfFunctionDefinitions
+        __init__(ListOfFunctionDefinitions self, SBMLNamespaces sbmlns) -> ListOfFunctionDefinitions
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -13276,7 +13282,7 @@ class ListOfFunctionDefinitions(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfFunctionDefinitions
+        clone(ListOfFunctionDefinitions self) -> ListOfFunctionDefinitions
 
         Creates and returns a deep copy of this ListOfFunctionDefinitions object.
 
@@ -13287,7 +13293,7 @@ class ListOfFunctionDefinitions(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfFunctionDefinitions self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., FunctionDefinition objects, if the list is non-empty).
@@ -13323,7 +13329,7 @@ class ListOfFunctionDefinitions(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfFunctionDefinitions self) -> string
 
         Returns the XML element name of this object.
 
@@ -13337,10 +13343,10 @@ class ListOfFunctionDefinitions(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> FunctionDefinition
-        get(self, unsigned int n) -> FunctionDefinition
-        get(self, string sid) -> FunctionDefinition
-        get(self, string sid) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, unsigned int n) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, unsigned int n) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, string sid) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -13382,8 +13388,8 @@ class ListOfFunctionDefinitions(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> FunctionDefinition
-        remove(self, string sid) -> FunctionDefinition
+        remove(ListOfFunctionDefinitions self, unsigned int n) -> FunctionDefinition
+        remove(ListOfFunctionDefinitions self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -13501,7 +13507,7 @@ def UnitKind_equals(*args):
 
 def UnitKind_forName(*args):
   """
-    UnitKind_forName(char name) -> UnitKind_t
+    UnitKind_forName(char const * name) -> UnitKind_t
 
     Converts a text string naming a kind of unit to its corresponding
     libSBML <code>UNIT_KIND_</code> constant/enumeration value.
@@ -13529,7 +13535,7 @@ def UnitKind_forName(*args):
 
 def UnitKind_toString(*args):
   """
-    UnitKind_toString(UnitKind_t uk) -> char
+    UnitKind_toString(UnitKind_t uk) -> char const *
 
     Converts a unit code to a text string equivalent.
 
@@ -13557,7 +13563,7 @@ def UnitKind_toString(*args):
 
 def UnitKind_isValidUnitKindString(*args):
   """
-    UnitKind_isValidUnitKindString(char str, unsigned int level, unsigned int version) -> int
+    UnitKind_isValidUnitKindString(char const * str, unsigned int level, unsigned int version) -> int
 
     Predicate for testing whether a given string corresponds to a
     predefined libSBML unit code.
@@ -13745,9 +13751,9 @@ class Unit(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Unit
-        __init__(self, SBMLNamespaces sbmlns) -> Unit
-        __init__(self, Unit orig) -> Unit
+        __init__(Unit self, unsigned int level, unsigned int version) -> Unit
+        __init__(Unit self, SBMLNamespaces sbmlns) -> Unit
+        __init__(Unit self, Unit orig) -> Unit
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -13838,7 +13844,7 @@ class Unit(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Unit
+        clone(Unit self) -> Unit
 
         Creates and returns a deep copy of this Unit object.
 
@@ -13849,7 +13855,7 @@ class Unit(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Unit self)
 
         Initializes the fields of this Unit object to 'typical' default
         values.
@@ -13871,7 +13877,7 @@ class Unit(SBase):
 
     def getKind(self):
         """
-        getKind(self) -> UnitKind_t
+        getKind(Unit self) -> UnitKind_t
 
         Returns the 'kind' of Unit this is.
 
@@ -13895,7 +13901,7 @@ class Unit(SBase):
 
     def getExponent(self):
         """
-        getExponent(self) -> int
+        getExponent(Unit self) -> int
 
         Returns the value of the 'exponent' attribute of this unit.
 
@@ -13906,7 +13912,7 @@ class Unit(SBase):
 
     def getExponentAsDouble(self):
         """
-        getExponentAsDouble(self) -> double
+        getExponentAsDouble(Unit self) -> double
 
         Returns the value of the 'exponent' attribute of this unit.
 
@@ -13917,7 +13923,7 @@ class Unit(SBase):
 
     def getScale(self):
         """
-        getScale(self) -> int
+        getScale(Unit self) -> int
 
         Returns the value of the 'scale' attribute of this unit.
 
@@ -13928,7 +13934,7 @@ class Unit(SBase):
 
     def getMultiplier(self):
         """
-        getMultiplier(self) -> double
+        getMultiplier(Unit self) -> double
 
         Returns the value of the 'multiplier' attribute of this Unit.
 
@@ -13939,7 +13945,7 @@ class Unit(SBase):
 
     def getOffset(self):
         """
-        getOffset(self) -> double
+        getOffset(Unit self) -> double
 
         Returns the value of the 'offset' attribute of this Unit.
 
@@ -13960,7 +13966,7 @@ class Unit(SBase):
 
     def isAmpere(self):
         """
-        isAmpere(self) -> bool
+        isAmpere(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c ampere.
 
@@ -13972,7 +13978,7 @@ class Unit(SBase):
 
     def isAvogadro(self):
         """
-        isAvogadro(self) -> bool
+        isAvogadro(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c avogadro.
 
@@ -13987,7 +13993,7 @@ class Unit(SBase):
 
     def isBecquerel(self):
         """
-        isBecquerel(self) -> bool
+        isBecquerel(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c becquerel
 
@@ -13999,7 +14005,7 @@ class Unit(SBase):
 
     def isCandela(self):
         """
-        isCandela(self) -> bool
+        isCandela(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c candela
 
@@ -14011,7 +14017,7 @@ class Unit(SBase):
 
     def isCelsius(self):
         """
-        isCelsius(self) -> bool
+        isCelsius(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c Celsius
 
@@ -14030,7 +14036,7 @@ class Unit(SBase):
 
     def isCoulomb(self):
         """
-        isCoulomb(self) -> bool
+        isCoulomb(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c coulomb
 
@@ -14042,7 +14048,7 @@ class Unit(SBase):
 
     def isDimensionless(self):
         """
-        isDimensionless(self) -> bool
+        isDimensionless(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c
         dimensionless.
@@ -14056,7 +14062,7 @@ class Unit(SBase):
 
     def isFarad(self):
         """
-        isFarad(self) -> bool
+        isFarad(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c farad
 
@@ -14068,7 +14074,7 @@ class Unit(SBase):
 
     def isGram(self):
         """
-        isGram(self) -> bool
+        isGram(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c gram
 
@@ -14080,7 +14086,7 @@ class Unit(SBase):
 
     def isGray(self):
         """
-        isGray(self) -> bool
+        isGray(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c gray
 
@@ -14092,7 +14098,7 @@ class Unit(SBase):
 
     def isHenry(self):
         """
-        isHenry(self) -> bool
+        isHenry(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c henry
 
@@ -14104,7 +14110,7 @@ class Unit(SBase):
 
     def isHertz(self):
         """
-        isHertz(self) -> bool
+        isHertz(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c hertz
 
@@ -14116,7 +14122,7 @@ class Unit(SBase):
 
     def isItem(self):
         """
-        isItem(self) -> bool
+        isItem(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c item
 
@@ -14128,7 +14134,7 @@ class Unit(SBase):
 
     def isJoule(self):
         """
-        isJoule(self) -> bool
+        isJoule(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c joule
 
@@ -14140,7 +14146,7 @@ class Unit(SBase):
 
     def isKatal(self):
         """
-        isKatal(self) -> bool
+        isKatal(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c katal
 
@@ -14152,7 +14158,7 @@ class Unit(SBase):
 
     def isKelvin(self):
         """
-        isKelvin(self) -> bool
+        isKelvin(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c kelvin
 
@@ -14164,7 +14170,7 @@ class Unit(SBase):
 
     def isKilogram(self):
         """
-        isKilogram(self) -> bool
+        isKilogram(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c kilogram
 
@@ -14176,7 +14182,7 @@ class Unit(SBase):
 
     def isLitre(self):
         """
-        isLitre(self) -> bool
+        isLitre(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c litre
 
@@ -14188,7 +14194,7 @@ class Unit(SBase):
 
     def isLumen(self):
         """
-        isLumen(self) -> bool
+        isLumen(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c lumen
 
@@ -14200,7 +14206,7 @@ class Unit(SBase):
 
     def isLux(self):
         """
-        isLux(self) -> bool
+        isLux(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c lux
 
@@ -14212,7 +14218,7 @@ class Unit(SBase):
 
     def isMetre(self):
         """
-        isMetre(self) -> bool
+        isMetre(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c metre
 
@@ -14224,7 +14230,7 @@ class Unit(SBase):
 
     def isMole(self):
         """
-        isMole(self) -> bool
+        isMole(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c mole
 
@@ -14236,7 +14242,7 @@ class Unit(SBase):
 
     def isNewton(self):
         """
-        isNewton(self) -> bool
+        isNewton(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c newton
 
@@ -14248,7 +14254,7 @@ class Unit(SBase):
 
     def isOhm(self):
         """
-        isOhm(self) -> bool
+        isOhm(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c ohm
 
@@ -14260,7 +14266,7 @@ class Unit(SBase):
 
     def isPascal(self):
         """
-        isPascal(self) -> bool
+        isPascal(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c pascal
 
@@ -14272,7 +14278,7 @@ class Unit(SBase):
 
     def isRadian(self):
         """
-        isRadian(self) -> bool
+        isRadian(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c radian
 
@@ -14284,7 +14290,7 @@ class Unit(SBase):
 
     def isSecond(self):
         """
-        isSecond(self) -> bool
+        isSecond(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c second
 
@@ -14296,7 +14302,7 @@ class Unit(SBase):
 
     def isSiemens(self):
         """
-        isSiemens(self) -> bool
+        isSiemens(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c siemens
 
@@ -14308,7 +14314,7 @@ class Unit(SBase):
 
     def isSievert(self):
         """
-        isSievert(self) -> bool
+        isSievert(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c sievert
 
@@ -14320,7 +14326,7 @@ class Unit(SBase):
 
     def isSteradian(self):
         """
-        isSteradian(self) -> bool
+        isSteradian(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c steradian
 
@@ -14332,7 +14338,7 @@ class Unit(SBase):
 
     def isTesla(self):
         """
-        isTesla(self) -> bool
+        isTesla(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c tesla
 
@@ -14344,7 +14350,7 @@ class Unit(SBase):
 
     def isVolt(self):
         """
-        isVolt(self) -> bool
+        isVolt(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c volt
 
@@ -14356,7 +14362,7 @@ class Unit(SBase):
 
     def isWatt(self):
         """
-        isWatt(self) -> bool
+        isWatt(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c watt
 
@@ -14368,7 +14374,7 @@ class Unit(SBase):
 
     def isWeber(self):
         """
-        isWeber(self) -> bool
+        isWeber(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind @c weber
 
@@ -14380,7 +14386,7 @@ class Unit(SBase):
 
     def isSetKind(self):
         """
-        isSetKind(self) -> bool
+        isSetKind(Unit self) -> bool
 
         Predicate to test whether the 'kind' attribute of this Unit is set.
 
@@ -14391,7 +14397,7 @@ class Unit(SBase):
 
     def isSetExponent(self):
         """
-        isSetExponent(self) -> bool
+        isSetExponent(Unit self) -> bool
 
         Predicate to test whether the 'exponent' attribute of this Unit 
         is set.
@@ -14404,7 +14410,7 @@ class Unit(SBase):
 
     def isSetScale(self):
         """
-        isSetScale(self) -> bool
+        isSetScale(Unit self) -> bool
 
         Predicate to test whether the 'scale' attribute of this Unit 
         is set.
@@ -14417,7 +14423,7 @@ class Unit(SBase):
 
     def isSetMultiplier(self):
         """
-        isSetMultiplier(self) -> bool
+        isSetMultiplier(Unit self) -> bool
 
         Predicate to test whether the 'multiplier' attribute of this Unit 
         is set.
@@ -14430,7 +14436,7 @@ class Unit(SBase):
 
     def isSetOffset(self):
         """
-        isSetOffset(self) -> bool
+        isSetOffset(Unit self) -> bool
 
         Predicate to test whether the 'offset' attribute of this Unit 
         is set.
@@ -14453,7 +14459,7 @@ class Unit(SBase):
 
     def setKind(self, *args):
         """
-        setKind(self, UnitKind_t kind) -> int
+        setKind(Unit self, UnitKind_t kind) -> int
 
         Sets the 'kind' attribute value of this Unit.
 
@@ -14481,8 +14487,8 @@ class Unit(SBase):
 
     def setExponent(self, *args):
         """
-        setExponent(self, int value) -> int
-        setExponent(self, double value) -> int
+        setExponent(Unit self, int value) -> int
+        setExponent(Unit self, double value) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -14524,7 +14530,7 @@ class Unit(SBase):
 
     def setScale(self, *args):
         """
-        setScale(self, int value) -> int
+        setScale(Unit self, int value) -> int
 
         Sets the 'scale' attribute value of this Unit.
 
@@ -14541,7 +14547,7 @@ class Unit(SBase):
 
     def setMultiplier(self, *args):
         """
-        setMultiplier(self, double value) -> int
+        setMultiplier(Unit self, double value) -> int
 
         Sets the 'multipler' attribute value of this Unit.
 
@@ -14560,7 +14566,7 @@ class Unit(SBase):
 
     def setOffset(self, *args):
         """
-        setOffset(self, double value) -> int
+        setOffset(Unit self, double value) -> int
 
         Sets the 'offset' attribute value of this Unit.
 
@@ -14589,7 +14595,7 @@ class Unit(SBase):
 
     def unsetKind(self):
         """
-        unsetKind(self) -> int
+        unsetKind(Unit self) -> int
 
         Unsets the 'kind' attribute value of this Unit.
 
@@ -14605,7 +14611,7 @@ class Unit(SBase):
 
     def unsetExponent(self):
         """
-        unsetExponent(self) -> int
+        unsetExponent(Unit self) -> int
 
         Unsets the 'exponent' attribute value of this Unit.
 
@@ -14621,7 +14627,7 @@ class Unit(SBase):
 
     def unsetScale(self):
         """
-        unsetScale(self) -> int
+        unsetScale(Unit self) -> int
 
         Unsets the 'scale' attribute value of this Unit.
 
@@ -14636,7 +14642,7 @@ class Unit(SBase):
 
     def unsetMultiplier(self):
         """
-        unsetMultiplier(self) -> int
+        unsetMultiplier(Unit self) -> int
 
         Unsets the 'multipler' attribute value of this Unit.
 
@@ -14652,7 +14658,7 @@ class Unit(SBase):
 
     def unsetOffset(self):
         """
-        unsetOffset(self) -> int
+        unsetOffset(Unit self) -> int
 
         Unsets the 'offset' attribute value of this Unit.
 
@@ -14678,7 +14684,7 @@ class Unit(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Unit self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -14706,9 +14712,9 @@ class Unit(SBase):
         @link libsbml#SBML_UNIT SBML_UNIT at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getPackageName()
         @see getElementName()
@@ -14718,7 +14724,7 @@ class Unit(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Unit self) -> string
 
         Returns the XML element name of this object, which for Unit, is
         always @c 'unit'.
@@ -14981,7 +14987,7 @@ class Unit(SBase):
     __swig_getmethods__["convertToSI"] = lambda x: convertToSI
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Unit self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this Unit object
@@ -15260,11 +15266,6 @@ class ListOfUnits(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -15307,8 +15308,8 @@ class ListOfUnits(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfUnits
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfUnits
+        __init__(ListOfUnits self, unsigned int level, unsigned int version) -> ListOfUnits
+        __init__(ListOfUnits self, SBMLNamespaces sbmlns) -> ListOfUnits
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -15386,7 +15387,7 @@ class ListOfUnits(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfUnits
+        clone(ListOfUnits self) -> ListOfUnits
 
         Creates and returns a deep copy of this ListOfUnits object.
 
@@ -15397,7 +15398,7 @@ class ListOfUnits(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfUnits self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Unit objects, if the list is non-empty).
@@ -15433,7 +15434,7 @@ class ListOfUnits(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfUnits self) -> string
 
         Returns the XML element name of this object.
 
@@ -15446,8 +15447,8 @@ class ListOfUnits(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Unit
-        get(self, unsigned int n) -> Unit
+        get(ListOfUnits self, unsigned int n) -> Unit
+        get(ListOfUnits self, unsigned int n) -> Unit
 
         Get a Unit from the ListOfUnits.
 
@@ -15462,7 +15463,7 @@ class ListOfUnits(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Unit
+        remove(ListOfUnits self, unsigned int n) -> Unit
 
         Removes the nth item from this ListOfUnits items and returns a pointer to
         it.
@@ -15719,9 +15720,9 @@ class UnitDefinition(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> UnitDefinition
-        __init__(self, SBMLNamespaces sbmlns) -> UnitDefinition
-        __init__(self, UnitDefinition orig) -> UnitDefinition
+        __init__(UnitDefinition self, unsigned int level, unsigned int version) -> UnitDefinition
+        __init__(UnitDefinition self, SBMLNamespaces sbmlns) -> UnitDefinition
+        __init__(UnitDefinition self, UnitDefinition orig) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -15812,7 +15813,7 @@ class UnitDefinition(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> UnitDefinition
+        clone(UnitDefinition self) -> UnitDefinition
 
         Creates and returns a deep copy of this UnitDefinition object.
 
@@ -15823,7 +15824,7 @@ class UnitDefinition(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(UnitDefinition self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -15837,7 +15838,7 @@ class UnitDefinition(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(UnitDefinition self, string metaid) -> SBase
 
         Returns the first child element it can find with the given @p metaid, or
         @c None if no such object is found.
@@ -15851,7 +15852,7 @@ class UnitDefinition(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(UnitDefinition self) -> string
 
         Returns the value of the 'id' attribute of this UnitDefinition.
 
@@ -15862,7 +15863,7 @@ class UnitDefinition(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(UnitDefinition self) -> string
 
         Returns the value of the 'name' attribute of this UnitDefinition.
 
@@ -15873,7 +15874,7 @@ class UnitDefinition(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(UnitDefinition self) -> bool
 
         Predicate returning @c True if this
         UnitDefinition's 'id' attribute is set.
@@ -15886,7 +15887,7 @@ class UnitDefinition(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(UnitDefinition self) -> bool
 
         Predicate returning @c True if this
         UnitDefinition's 'name' attribute is set.
@@ -15899,7 +15900,7 @@ class UnitDefinition(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(UnitDefinition self, string sid) -> int
 
         Sets the value of the 'id' attribute of this UnitDefinition.
 
@@ -15939,7 +15940,7 @@ class UnitDefinition(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(UnitDefinition self, string name) -> int
 
         Sets the value of the 'name' attribute of this UnitDefinition.
 
@@ -15959,7 +15960,7 @@ class UnitDefinition(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(UnitDefinition self) -> int
 
         Unsets the value of the 'name' attribute of this UnitDefinition.
 
@@ -15975,7 +15976,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfArea(self):
         """
-        isVariantOfArea(self) -> bool
+        isVariantOfArea(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier @c 'area'.
@@ -15989,7 +15990,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfLength(self):
         """
-        isVariantOfLength(self) -> bool
+        isVariantOfLength(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier @c 'length'.
@@ -16003,7 +16004,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfSubstance(self):
         """
-        isVariantOfSubstance(self) -> bool
+        isVariantOfSubstance(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier @c 'substance'.
@@ -16018,7 +16019,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfTime(self):
         """
-        isVariantOfTime(self) -> bool
+        isVariantOfTime(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier @c 'time'.
@@ -16032,7 +16033,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfVolume(self):
         """
-        isVariantOfVolume(self) -> bool
+        isVariantOfVolume(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier @c 'volume'.
@@ -16046,7 +16047,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfDimensionless(self):
         """
-        isVariantOfDimensionless(self) -> bool
+        isVariantOfDimensionless(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the unit @c 'dimensionless'.
@@ -16060,7 +16061,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfMass(self):
         """
-        isVariantOfMass(self) -> bool
+        isVariantOfMass(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier @c 'mass'.
@@ -16074,7 +16075,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfSubstancePerTime(self):
         """
-        isVariantOfSubstancePerTime(self) -> bool
+        isVariantOfSubstancePerTime(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit @c 'substance' divided by the predefined
@@ -16090,7 +16091,7 @@ class UnitDefinition(SBase):
 
     def addUnit(self, *args):
         """
-        addUnit(self, Unit u) -> int
+        addUnit(UnitDefinition self, Unit u) -> int
 
         Adds a copy of the given Unit to this UnitDefinition.
 
@@ -16124,7 +16125,7 @@ class UnitDefinition(SBase):
 
     def createUnit(self):
         """
-        createUnit(self) -> Unit
+        createUnit(UnitDefinition self) -> Unit
 
         Creates a new and empty Unit, adds it to this UnitDefinition's list of
         units, and returns it.
@@ -16145,8 +16146,8 @@ class UnitDefinition(SBase):
 
     def getListOfUnits(self, *args):
         """
-        getListOfUnits(self) -> ListOfUnits
-        getListOfUnits(self) -> ListOfUnits
+        getListOfUnits(UnitDefinition self) -> ListOfUnits
+        getListOfUnits(UnitDefinition self) -> ListOfUnits
 
         Returns the list of Units for this UnitDefinition instance.
         @return the ListOfUnits value for this UnitDefinition.
@@ -16156,8 +16157,8 @@ class UnitDefinition(SBase):
 
     def getUnit(self, *args):
         """
-        getUnit(self, unsigned int n) -> Unit
-        getUnit(self, unsigned int n) -> Unit
+        getUnit(UnitDefinition self, unsigned int n) -> Unit
+        getUnit(UnitDefinition self, unsigned int n) -> Unit
 
         Returns a specific Unit instance belonging to this UnitDefinition.
 
@@ -16172,7 +16173,7 @@ class UnitDefinition(SBase):
 
     def getNumUnits(self):
         """
-        getNumUnits(self) -> unsigned int
+        getNumUnits(UnitDefinition self) -> unsigned int
 
         Returns the number of Unit objects contained within this
         UnitDefinition.
@@ -16185,7 +16186,7 @@ class UnitDefinition(SBase):
 
     def removeUnit(self, *args):
         """
-        removeUnit(self, unsigned int n) -> Unit
+        removeUnit(UnitDefinition self, unsigned int n) -> Unit
 
         Removes the nth Unit object from this UnitDefinition object and
         returns a pointer to it.
@@ -16201,12 +16202,12 @@ class UnitDefinition(SBase):
         return _libsbml.UnitDefinition_removeUnit(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(UnitDefinition self)"""
         return _libsbml.UnitDefinition_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(UnitDefinition self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -16217,7 +16218,7 @@ class UnitDefinition(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(UnitDefinition self) -> int
 
         Returns the libSBML type code for this object instance.
 
@@ -16245,9 +16246,9 @@ class UnitDefinition(SBase):
         @link libsbml#SBML_UNIT_DEFINITION SBML_UNIT_DEFINITION at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getPackageName()
         @see getElementName()
@@ -16257,7 +16258,7 @@ class UnitDefinition(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(UnitDefinition self) -> string
 
         Returns the XML element name of this object, which for UnitDefinition,
         is always @c 'unitDefinition'.
@@ -16489,7 +16490,7 @@ class UnitDefinition(SBase):
     __swig_getmethods__["divide"] = lambda x: divide
     def printUnits(*args):
         """
-        printUnits(UnitDefinition ud, bool compact = False) -> string
+        printUnits(UnitDefinition ud, bool compact=False) -> string
         printUnits(UnitDefinition ud) -> string
 
         Expresses the given definition in a plain-text form.
@@ -16534,7 +16535,7 @@ class UnitDefinition(SBase):
     __swig_getmethods__["printUnits"] = lambda x: printUnits
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(UnitDefinition self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this UnitDefinition object
@@ -16551,7 +16552,7 @@ class UnitDefinition(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(UnitDefinition self) -> bool
 
         Predicate returning @c True if
         all the required elements for this UnitDefinition object
@@ -16777,7 +16778,7 @@ def UnitDefinition_divide(*args):
 
 def UnitDefinition_printUnits(*args):
   """
-    printUnits(UnitDefinition ud, bool compact = False) -> string
+    printUnits(UnitDefinition ud, bool compact=False) -> string
     UnitDefinition_printUnits(UnitDefinition ud) -> string
 
     Expresses the given definition in a plain-text form.
@@ -16837,11 +16838,6 @@ class ListOfUnitDefinitions(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -16884,8 +16880,8 @@ class ListOfUnitDefinitions(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfUnitDefinitions
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfUnitDefinitions
+        __init__(ListOfUnitDefinitions self, unsigned int level, unsigned int version) -> ListOfUnitDefinitions
+        __init__(ListOfUnitDefinitions self, SBMLNamespaces sbmlns) -> ListOfUnitDefinitions
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -16963,7 +16959,7 @@ class ListOfUnitDefinitions(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfUnitDefinitions
+        clone(ListOfUnitDefinitions self) -> ListOfUnitDefinitions
 
         Creates and returns a deep copy of this ListOfUnitDefinitions object.
 
@@ -16974,7 +16970,7 @@ class ListOfUnitDefinitions(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfUnitDefinitions self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., UnitDefinition objects, if the list is non-empty).
@@ -17010,7 +17006,7 @@ class ListOfUnitDefinitions(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfUnitDefinitions self) -> string
 
         Returns the XML element name of this object.
 
@@ -17024,10 +17020,10 @@ class ListOfUnitDefinitions(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> UnitDefinition
-        get(self, unsigned int n) -> UnitDefinition
-        get(self, string sid) -> UnitDefinition
-        get(self, string sid) -> UnitDefinition
+        get(ListOfUnitDefinitions self, unsigned int n) -> UnitDefinition
+        get(ListOfUnitDefinitions self, unsigned int n) -> UnitDefinition
+        get(ListOfUnitDefinitions self, string sid) -> UnitDefinition
+        get(ListOfUnitDefinitions self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -17069,7 +17065,7 @@ class ListOfUnitDefinitions(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfUnitDefinitions self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -17088,8 +17084,8 @@ class ListOfUnitDefinitions(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> UnitDefinition
-        remove(self, string sid) -> UnitDefinition
+        remove(ListOfUnitDefinitions self, unsigned int n) -> UnitDefinition
+        remove(ListOfUnitDefinitions self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -17188,9 +17184,9 @@ class CompartmentType(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> CompartmentType
-        __init__(self, SBMLNamespaces sbmlns) -> CompartmentType
-        __init__(self, CompartmentType orig) -> CompartmentType
+        __init__(CompartmentType self, unsigned int level, unsigned int version) -> CompartmentType
+        __init__(CompartmentType self, SBMLNamespaces sbmlns) -> CompartmentType
+        __init__(CompartmentType self, CompartmentType orig) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -17289,7 +17285,7 @@ class CompartmentType(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> CompartmentType
+        clone(CompartmentType self) -> CompartmentType
 
         Creates and returns a deep copy of this CompartmentType object.
 
@@ -17300,7 +17296,7 @@ class CompartmentType(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(CompartmentType self) -> string
 
         Returns the value of the 'id' attribute of this CompartmentType object.
 
@@ -17316,7 +17312,7 @@ class CompartmentType(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(CompartmentType self) -> string
 
         Returns the value of the 'name' attribute of this CompartmentType
         object.
@@ -17333,7 +17329,7 @@ class CompartmentType(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(CompartmentType self) -> bool
 
         Predicate returning @c True if this CompartmentType object's 'id'
         attribute is set.
@@ -17350,7 +17346,7 @@ class CompartmentType(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(CompartmentType self) -> bool
 
         Predicate returning @c True if this CompartmentType object's 'name'
         attribute is set.
@@ -17367,7 +17363,7 @@ class CompartmentType(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(CompartmentType self, string sid) -> int
 
         Sets the value of the 'id' attribute of this CompartmentType object.
 
@@ -17411,7 +17407,7 @@ class CompartmentType(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(CompartmentType self, string name) -> int
 
         Sets the value of the 'name' attribute of this CompartmentType object.
 
@@ -17435,7 +17431,7 @@ class CompartmentType(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(CompartmentType self) -> int
 
         Unsets the value of the 'name' attribute of this CompartmentType object.
 
@@ -17455,7 +17451,7 @@ class CompartmentType(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(CompartmentType self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -17483,9 +17479,9 @@ class CompartmentType(SBase):
         @link libsbml#SBML_COMPARTMENT_TYPE SBML_COMPARTMENT_TYPE at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -17495,7 +17491,7 @@ class CompartmentType(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(CompartmentType self) -> string
 
         Returns the XML element name of this object
 
@@ -17511,7 +17507,7 @@ class CompartmentType(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(CompartmentType self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         CompartmentType object have been set.
@@ -17547,11 +17543,6 @@ class ListOfCompartmentTypes(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -17594,8 +17585,8 @@ class ListOfCompartmentTypes(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfCompartmentTypes
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfCompartmentTypes
+        __init__(ListOfCompartmentTypes self, unsigned int level, unsigned int version) -> ListOfCompartmentTypes
+        __init__(ListOfCompartmentTypes self, SBMLNamespaces sbmlns) -> ListOfCompartmentTypes
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -17673,7 +17664,7 @@ class ListOfCompartmentTypes(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfCompartmentTypes
+        clone(ListOfCompartmentTypes self) -> ListOfCompartmentTypes
 
         Creates and returns a deep copy of this ListOfCompartmentTypes object.
 
@@ -17684,7 +17675,7 @@ class ListOfCompartmentTypes(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfCompartmentTypes self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., CompartmentType objects, if the list is non-empty).
@@ -17720,7 +17711,7 @@ class ListOfCompartmentTypes(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfCompartmentTypes self) -> string
 
         Returns the XML element name of this object.
 
@@ -17734,10 +17725,10 @@ class ListOfCompartmentTypes(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> CompartmentType
-        get(self, unsigned int n) -> CompartmentType
-        get(self, string sid) -> CompartmentType
-        get(self, string sid) -> CompartmentType
+        get(ListOfCompartmentTypes self, unsigned int n) -> CompartmentType
+        get(ListOfCompartmentTypes self, unsigned int n) -> CompartmentType
+        get(ListOfCompartmentTypes self, string sid) -> CompartmentType
+        get(ListOfCompartmentTypes self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -17779,8 +17770,8 @@ class ListOfCompartmentTypes(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> CompartmentType
-        remove(self, string sid) -> CompartmentType
+        remove(ListOfCompartmentTypes self, unsigned int n) -> CompartmentType
+        remove(ListOfCompartmentTypes self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -17877,9 +17868,9 @@ class SpeciesType(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> SpeciesType
-        __init__(self, SBMLNamespaces sbmlns) -> SpeciesType
-        __init__(self, SpeciesType orig) -> SpeciesType
+        __init__(SpeciesType self, unsigned int level, unsigned int version) -> SpeciesType
+        __init__(SpeciesType self, SBMLNamespaces sbmlns) -> SpeciesType
+        __init__(SpeciesType self, SpeciesType orig) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -17977,7 +17968,7 @@ class SpeciesType(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SpeciesType
+        clone(SpeciesType self) -> SpeciesType
 
         Creates and returns a deep copy of this SpeciesType object.
 
@@ -17988,7 +17979,7 @@ class SpeciesType(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(SpeciesType self) -> string
 
         Returns the value of the 'id' attribute of this SpeciesType.
 
@@ -17999,7 +17990,7 @@ class SpeciesType(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SpeciesType self) -> string
 
         Returns the value of the 'name' attribute of this SpeciesType.
 
@@ -18010,7 +18001,7 @@ class SpeciesType(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(SpeciesType self) -> bool
 
         Predicate returning @c True if this
         SpeciesType's 'id' attribute is set.
@@ -18023,7 +18014,7 @@ class SpeciesType(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(SpeciesType self) -> bool
 
         Predicate returning @c True if this
         SpeciesType's 'name' attribute is set.
@@ -18036,7 +18027,7 @@ class SpeciesType(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(SpeciesType self, string sid) -> int
 
         Sets the value of the 'id' attribute of this SpeciesType.
 
@@ -18076,7 +18067,7 @@ class SpeciesType(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(SpeciesType self, string name) -> int
 
         Sets the value of the 'name' attribute of this SpeciesType.
 
@@ -18096,7 +18087,7 @@ class SpeciesType(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(SpeciesType self) -> int
 
         Unsets the value of the 'name' attribute of this SpeciesType.
 
@@ -18112,7 +18103,7 @@ class SpeciesType(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SpeciesType self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -18140,9 +18131,9 @@ class SpeciesType(SBase):
         @link libsbml#SBML_SPECIES_TYPE SBML_SPECIES_TYPE at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -18152,7 +18143,7 @@ class SpeciesType(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SpeciesType self) -> string
 
         Returns the XML element name of this object, which for
         SpeciesType, is always @c 'compartmentType'.
@@ -18164,7 +18155,7 @@ class SpeciesType(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(SpeciesType self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this SpeciesType object
@@ -18201,11 +18192,6 @@ class ListOfSpeciesTypes(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -18248,8 +18234,8 @@ class ListOfSpeciesTypes(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfSpeciesTypes
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfSpeciesTypes
+        __init__(ListOfSpeciesTypes self, unsigned int level, unsigned int version) -> ListOfSpeciesTypes
+        __init__(ListOfSpeciesTypes self, SBMLNamespaces sbmlns) -> ListOfSpeciesTypes
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -18327,7 +18313,7 @@ class ListOfSpeciesTypes(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfSpeciesTypes
+        clone(ListOfSpeciesTypes self) -> ListOfSpeciesTypes
 
         Creates and returns a deep copy of this ListOfSpeciesTypes object.
 
@@ -18338,7 +18324,7 @@ class ListOfSpeciesTypes(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfSpeciesTypes self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., SpeciesType objects, if the list is non-empty).
@@ -18374,7 +18360,7 @@ class ListOfSpeciesTypes(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfSpeciesTypes self) -> string
 
         Returns the XML element name of this object.
 
@@ -18388,10 +18374,10 @@ class ListOfSpeciesTypes(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> SpeciesType
-        get(self, unsigned int n) -> SpeciesType
-        get(self, string sid) -> SpeciesType
-        get(self, string sid) -> SpeciesType
+        get(ListOfSpeciesTypes self, unsigned int n) -> SpeciesType
+        get(ListOfSpeciesTypes self, unsigned int n) -> SpeciesType
+        get(ListOfSpeciesTypes self, string sid) -> SpeciesType
+        get(ListOfSpeciesTypes self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -18433,8 +18419,8 @@ class ListOfSpeciesTypes(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> SpeciesType
-        remove(self, string sid) -> SpeciesType
+        remove(ListOfSpeciesTypes self, unsigned int n) -> SpeciesType
+        remove(ListOfSpeciesTypes self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -18824,9 +18810,9 @@ class Compartment(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Compartment
-        __init__(self, SBMLNamespaces sbmlns) -> Compartment
-        __init__(self, Compartment orig) -> Compartment
+        __init__(Compartment self, unsigned int level, unsigned int version) -> Compartment
+        __init__(Compartment self, SBMLNamespaces sbmlns) -> Compartment
+        __init__(Compartment self, Compartment orig) -> Compartment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -18926,7 +18912,7 @@ class Compartment(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Compartment
+        clone(Compartment self) -> Compartment
 
         Creates and returns a deep copy of this Compartment object.
 
@@ -18937,7 +18923,7 @@ class Compartment(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Compartment self)
 
         Initializes the fields of this Compartment object to 'typical' default
         values.
@@ -18957,7 +18943,7 @@ class Compartment(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Compartment self) -> string
 
         Returns the value of the 'id' attribute of this Compartment object.
 
@@ -18973,7 +18959,7 @@ class Compartment(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Compartment self) -> string
 
         Returns the value of the 'name' attribute of this Compartment object.
 
@@ -18989,7 +18975,7 @@ class Compartment(SBase):
 
     def getCompartmentType(self):
         """
-        getCompartmentType(self) -> string
+        getCompartmentType(Compartment self) -> string
 
         Get the value of the 'compartmentType' attribute of this Compartment
         object.
@@ -19009,7 +18995,7 @@ class Compartment(SBase):
 
     def getSpatialDimensions(self):
         """
-        getSpatialDimensions(self) -> unsigned int
+        getSpatialDimensions(Compartment self) -> unsigned int
 
         Get the number of spatial dimensions of this Compartment object.
 
@@ -19032,7 +19018,7 @@ class Compartment(SBase):
 
     def getSpatialDimensionsAsDouble(self):
         """
-        getSpatialDimensionsAsDouble(self) -> double
+        getSpatialDimensionsAsDouble(Compartment self) -> double
 
         Get the number of spatial dimensions of this Compartment object,
         as a double.
@@ -19057,7 +19043,7 @@ class Compartment(SBase):
 
     def getSize(self):
         """
-        getSize(self) -> double
+        getSize(Compartment self) -> double
 
         Get the size of this Compartment object.
 
@@ -19086,7 +19072,7 @@ class Compartment(SBase):
 
     def getVolume(self):
         """
-        getVolume(self) -> double
+        getVolume(Compartment self) -> double
 
         Get the volume of this Compartment object.
 
@@ -19124,7 +19110,7 @@ class Compartment(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Compartment self) -> string
 
         Get the units of this Compartment object's size.
 
@@ -19152,7 +19138,7 @@ class Compartment(SBase):
 
     def getOutside(self):
         """
-        getOutside(self) -> string
+        getOutside(Compartment self) -> string
 
         Get the identifier, if any, of the Compartment object that is designated
         as being outside of @em this one.
@@ -19172,7 +19158,7 @@ class Compartment(SBase):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(Compartment self) -> bool
 
         Get the value of the 'constant' attribute of this Compartment object.
 
@@ -19187,7 +19173,7 @@ class Compartment(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's 'id' attribute
         is set.
@@ -19204,7 +19190,7 @@ class Compartment(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's 'name'
         attribute is set.
@@ -19221,7 +19207,7 @@ class Compartment(SBase):
 
     def isSetCompartmentType(self):
         """
-        isSetCompartmentType(self) -> bool
+        isSetCompartmentType(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's
         'compartmentType' attribute is set.
@@ -19241,7 +19227,7 @@ class Compartment(SBase):
 
     def isSetSize(self):
         """
-        isSetSize(self) -> bool
+        isSetSize(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's 'size'
         attribute is set.
@@ -19267,7 +19253,7 @@ class Compartment(SBase):
 
     def isSetVolume(self):
         """
-        isSetVolume(self) -> bool
+        isSetVolume(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's 'volume'
         attribute is set.
@@ -19300,7 +19286,7 @@ class Compartment(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's 'units'
         attribute is set.
@@ -19325,7 +19311,7 @@ class Compartment(SBase):
 
     def isSetOutside(self):
         """
-        isSetOutside(self) -> bool
+        isSetOutside(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's 'outside'
         attribute is set.
@@ -19346,7 +19332,7 @@ class Compartment(SBase):
 
     def isSetSpatialDimensions(self):
         """
-        isSetSpatialDimensions(self) -> bool
+        isSetSpatialDimensions(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's
         'spatialDimensions' attribute is set.
@@ -19363,7 +19349,7 @@ class Compartment(SBase):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(Compartment self) -> bool
 
         Predicate returning @c True if this Compartment object's 'constant'
         attribute is set.
@@ -19379,7 +19365,7 @@ class Compartment(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Compartment self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Compartment object.
 
@@ -19425,7 +19411,7 @@ class Compartment(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Compartment self, string name) -> int
 
         Sets the value of the 'name' attribute of this Compartment object.
 
@@ -19451,7 +19437,7 @@ class Compartment(SBase):
 
     def setCompartmentType(self, *args):
         """
-        setCompartmentType(self, string sid) -> int
+        setCompartmentType(Compartment self, string sid) -> int
 
         Sets the 'compartmentType' attribute of this Compartment object.
 
@@ -19479,8 +19465,8 @@ class Compartment(SBase):
 
     def setSpatialDimensions(self, *args):
         """
-        setSpatialDimensions(self, unsigned int value) -> int
-        setSpatialDimensions(self, double value) -> int
+        setSpatialDimensions(Compartment self, unsigned int value) -> int
+        setSpatialDimensions(Compartment self, double value) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -19535,7 +19521,7 @@ class Compartment(SBase):
 
     def setSize(self, *args):
         """
-        setSize(self, double value) -> int
+        setSize(Compartment self, double value) -> int
 
         Sets the 'size' attribute (or 'volume' in SBML Level 1) of this
         Compartment object.
@@ -19562,7 +19548,7 @@ class Compartment(SBase):
 
     def setVolume(self, *args):
         """
-        setVolume(self, double value) -> int
+        setVolume(Compartment self, double value) -> int
 
         Sets the 'volume' attribute (or 'size' in SBML Level 2) of this
         Compartment object.
@@ -19600,7 +19586,7 @@ class Compartment(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string sid) -> int
+        setUnits(Compartment self, string sid) -> int
 
         Sets the 'units' attribute of this Compartment object.
 
@@ -19624,7 +19610,7 @@ class Compartment(SBase):
 
     def setOutside(self, *args):
         """
-        setOutside(self, string sid) -> int
+        setOutside(Compartment self, string sid) -> int
 
         Sets the 'outside' attribute of this Compartment object.
 
@@ -19652,7 +19638,7 @@ class Compartment(SBase):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool value) -> int
+        setConstant(Compartment self, bool value) -> int
 
         Sets the value of the 'constant' attribute of this Compartment object.
 
@@ -19675,7 +19661,7 @@ class Compartment(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Compartment self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -19705,7 +19691,7 @@ class Compartment(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Compartment self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -19735,7 +19721,7 @@ class Compartment(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Compartment self) -> int
 
         Unsets the value of the 'name' attribute of this Compartment object.
 
@@ -19755,7 +19741,7 @@ class Compartment(SBase):
 
     def unsetCompartmentType(self):
         """
-        unsetCompartmentType(self) -> int
+        unsetCompartmentType(Compartment self) -> int
 
         Unsets the value of the 'compartmentType' attribute of this Compartment object.
 
@@ -19779,7 +19765,7 @@ class Compartment(SBase):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(Compartment self) -> int
 
         Unsets the value of the 'constant' attribute of this Compartment object.
 
@@ -19799,7 +19785,7 @@ class Compartment(SBase):
 
     def unsetSize(self):
         """
-        unsetSize(self) -> int
+        unsetSize(Compartment self) -> int
 
         Unsets the value of the 'size' attribute of this Compartment object.
 
@@ -19830,7 +19816,7 @@ class Compartment(SBase):
 
     def unsetVolume(self):
         """
-        unsetVolume(self) -> int
+        unsetVolume(Compartment self) -> int
 
         Unsets the value of the 'volume' attribute of this Compartment object.
 
@@ -19864,7 +19850,7 @@ class Compartment(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Compartment self) -> int
 
         Unsets the value of the 'units' attribute of this Compartment object.
 
@@ -19884,7 +19870,7 @@ class Compartment(SBase):
 
     def unsetOutside(self):
         """
-        unsetOutside(self) -> int
+        unsetOutside(Compartment self) -> int
 
         Unsets the value of the 'outside' attribute of this Compartment object.
 
@@ -19908,7 +19894,7 @@ class Compartment(SBase):
 
     def unsetSpatialDimensions(self):
         """
-        unsetSpatialDimensions(self) -> int
+        unsetSpatialDimensions(Compartment self) -> int
 
         Unsets the value of the 'spatialDimensions' attribute of this
         Compartment object.
@@ -19937,8 +19923,8 @@ class Compartment(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Compartment self) -> UnitDefinition
+        getDerivedUnitDefinition(Compartment self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this Compartment object's designated size.
@@ -19985,7 +19971,7 @@ class Compartment(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Compartment self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -20013,9 +19999,9 @@ class Compartment(SBase):
         @link libsbml#SBML_COMPARTMENT SBML_COMPARTMENT at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -20025,7 +20011,7 @@ class Compartment(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Compartment self) -> string
 
         Returns the XML element name of this object
 
@@ -20038,7 +20024,7 @@ class Compartment(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Compartment self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         Compartment object have been set.
@@ -20075,11 +20061,6 @@ class ListOfCompartments(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -20122,8 +20103,8 @@ class ListOfCompartments(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfCompartments
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfCompartments
+        __init__(ListOfCompartments self, unsigned int level, unsigned int version) -> ListOfCompartments
+        __init__(ListOfCompartments self, SBMLNamespaces sbmlns) -> ListOfCompartments
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -20201,7 +20182,7 @@ class ListOfCompartments(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfCompartments
+        clone(ListOfCompartments self) -> ListOfCompartments
 
         Creates and returns a deep copy of this ListOfCompartments object.
 
@@ -20212,7 +20193,7 @@ class ListOfCompartments(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfCompartments self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Compartment objects, if the list is non-empty).
@@ -20248,7 +20229,7 @@ class ListOfCompartments(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfCompartments self) -> string
 
         Returns the XML element name of this object.
 
@@ -20262,10 +20243,10 @@ class ListOfCompartments(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Compartment
-        get(self, unsigned int n) -> Compartment
-        get(self, string sid) -> Compartment
-        get(self, string sid) -> Compartment
+        get(ListOfCompartments self, unsigned int n) -> Compartment
+        get(ListOfCompartments self, unsigned int n) -> Compartment
+        get(ListOfCompartments self, string sid) -> Compartment
+        get(ListOfCompartments self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -20307,8 +20288,8 @@ class ListOfCompartments(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Compartment
-        remove(self, string sid) -> Compartment
+        remove(ListOfCompartments self, unsigned int n) -> Compartment
+        remove(ListOfCompartments self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -20668,9 +20649,9 @@ class Species(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Species
-        __init__(self, SBMLNamespaces sbmlns) -> Species
-        __init__(self, Species orig) -> Species
+        __init__(Species self, unsigned int level, unsigned int version) -> Species
+        __init__(Species self, SBMLNamespaces sbmlns) -> Species
+        __init__(Species self, Species orig) -> Species
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -20768,7 +20749,7 @@ class Species(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Species
+        clone(Species self) -> Species
 
         Creates and returns a deep copy of this Species object.
 
@@ -20779,7 +20760,7 @@ class Species(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Species self)
 
         Initializes the fields of this Species object to 'typical' defaults
         values.
@@ -20800,7 +20781,7 @@ class Species(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Species self) -> string
 
         Returns the value of the 'id' attribute of this Species object.
 
@@ -20811,7 +20792,7 @@ class Species(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Species self) -> string
 
         Returns the value of the 'name' attribute of this Species object.
 
@@ -20822,7 +20803,7 @@ class Species(SBase):
 
     def getSpeciesType(self):
         """
-        getSpeciesType(self) -> string
+        getSpeciesType(Species self) -> string
 
         Get the type of this Species object object.
 
@@ -20837,7 +20818,7 @@ class Species(SBase):
 
     def getCompartment(self):
         """
-        getCompartment(self) -> string
+        getCompartment(Species self) -> string
 
         Get the compartment in which this species is located.
 
@@ -20851,7 +20832,7 @@ class Species(SBase):
 
     def getInitialAmount(self):
         """
-        getInitialAmount(self) -> double
+        getInitialAmount(Species self) -> double
 
         Get the value of the 'initialAmount' attribute.
 
@@ -20862,7 +20843,7 @@ class Species(SBase):
 
     def getInitialConcentration(self):
         """
-        getInitialConcentration(self) -> double
+        getInitialConcentration(Species self) -> double
 
         Get the value of the 'initialConcentration' attribute.
 
@@ -20877,7 +20858,7 @@ class Species(SBase):
 
     def getSubstanceUnits(self):
         """
-        getSubstanceUnits(self) -> string
+        getSubstanceUnits(Species self) -> string
 
         Get the value of the 'substanceUnits' attribute.
 
@@ -20901,7 +20882,7 @@ class Species(SBase):
 
     def getSpatialSizeUnits(self):
         """
-        getSpatialSizeUnits(self) -> string
+        getSpatialSizeUnits(Species self) -> string
 
         Get the value of the 'spatialSizeUnits' attribute.
 
@@ -20922,7 +20903,7 @@ class Species(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Species self) -> string
 
         Get the value of the 'units' attribute.
 
@@ -20941,7 +20922,7 @@ class Species(SBase):
 
     def getHasOnlySubstanceUnits(self):
         """
-        getHasOnlySubstanceUnits(self) -> bool
+        getHasOnlySubstanceUnits(Species self) -> bool
 
         Get the value of the 'hasOnlySubstanceUnits' attribute.
 
@@ -20956,7 +20937,7 @@ class Species(SBase):
 
     def getBoundaryCondition(self):
         """
-        getBoundaryCondition(self) -> bool
+        getBoundaryCondition(Species self) -> bool
 
         Get the value of the 'boundaryCondition' attribute.
 
@@ -20968,7 +20949,7 @@ class Species(SBase):
 
     def getCharge(self):
         """
-        getCharge(self) -> int
+        getCharge(Species self) -> int
 
         Get the value of the 'charge' attribute.
 
@@ -20991,7 +20972,7 @@ class Species(SBase):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(Species self) -> bool
 
         Get the value of the 'constant' attribute.
 
@@ -21006,7 +20987,7 @@ class Species(SBase):
 
     def getConversionFactor(self):
         """
-        getConversionFactor(self) -> string
+        getConversionFactor(Species self) -> string
 
         Get the value of the 'conversionFactor' attribute.
 
@@ -21021,7 +21002,7 @@ class Species(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'id' attribute is set.
@@ -21034,7 +21015,7 @@ class Species(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'name' attribute is set.
@@ -21047,7 +21028,7 @@ class Species(SBase):
 
     def isSetSpeciesType(self):
         """
-        isSetSpeciesType(self) -> bool
+        isSetSpeciesType(Species self) -> bool
 
         Predicate returning @c True if this Species object's
         'speciesType' attribute is set.
@@ -21063,7 +21044,7 @@ class Species(SBase):
 
     def isSetCompartment(self):
         """
-        isSetCompartment(self) -> bool
+        isSetCompartment(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'compartment' attribute is set.
@@ -21076,7 +21057,7 @@ class Species(SBase):
 
     def isSetInitialAmount(self):
         """
-        isSetInitialAmount(self) -> bool
+        isSetInitialAmount(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'initialAmount' attribute is set.
@@ -21095,7 +21076,7 @@ class Species(SBase):
 
     def isSetInitialConcentration(self):
         """
-        isSetInitialConcentration(self) -> bool
+        isSetInitialConcentration(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'initialConcentration' attribute is set.
@@ -21111,7 +21092,7 @@ class Species(SBase):
 
     def isSetSubstanceUnits(self):
         """
-        isSetSubstanceUnits(self) -> bool
+        isSetSubstanceUnits(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'substanceUnits' attribute is set.
@@ -21124,7 +21105,7 @@ class Species(SBase):
 
     def isSetSpatialSizeUnits(self):
         """
-        isSetSpatialSizeUnits(self) -> bool
+        isSetSpatialSizeUnits(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'spatialSizeUnits' attribute is set.
@@ -21146,7 +21127,7 @@ class Species(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Species self) -> bool
 
         Predicate returning @c True if
         this Species object's 'units' attribute is set.
@@ -21159,7 +21140,7 @@ class Species(SBase):
 
     def isSetCharge(self):
         """
-        isSetCharge(self) -> bool
+        isSetCharge(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'charge' attribute is set.
@@ -21184,7 +21165,7 @@ class Species(SBase):
 
     def isSetConversionFactor(self):
         """
-        isSetConversionFactor(self) -> bool
+        isSetConversionFactor(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'conversionFactor' attribute is set.
@@ -21201,7 +21182,7 @@ class Species(SBase):
 
     def isSetBoundaryCondition(self):
         """
-        isSetBoundaryCondition(self) -> bool
+        isSetBoundaryCondition(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'boundaryCondition' attribute is set.
@@ -21214,7 +21195,7 @@ class Species(SBase):
 
     def isSetHasOnlySubstanceUnits(self):
         """
-        isSetHasOnlySubstanceUnits(self) -> bool
+        isSetHasOnlySubstanceUnits(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'hasOnlySubstanceUnits' attribute is set.
@@ -21230,7 +21211,7 @@ class Species(SBase):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(Species self) -> bool
 
         Predicate returning @c True if this
         Species object's 'constant' attribute is set.
@@ -21246,7 +21227,7 @@ class Species(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Species self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Species object.
 
@@ -21286,7 +21267,7 @@ class Species(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Species self, string name) -> int
 
         Sets the value of the 'name' attribute of this Species object.
 
@@ -21306,7 +21287,7 @@ class Species(SBase):
 
     def setSpeciesType(self, *args):
         """
-        setSpeciesType(self, string sid) -> int
+        setSpeciesType(Species self, string sid) -> int
 
         Sets the 'speciesType' attribute of this Species object.
 
@@ -21329,7 +21310,7 @@ class Species(SBase):
 
     def setCompartment(self, *args):
         """
-        setCompartment(self, string sid) -> int
+        setCompartment(Species self, string sid) -> int
 
         Sets the 'compartment' attribute of this Species object.
 
@@ -21348,7 +21329,7 @@ class Species(SBase):
 
     def setInitialAmount(self, *args):
         """
-        setInitialAmount(self, double value) -> int
+        setInitialAmount(Species self, double value) -> int
 
         Sets the 'initialAmount' attribute of this Species and marks the field
         as set.
@@ -21369,7 +21350,7 @@ class Species(SBase):
 
     def setInitialConcentration(self, *args):
         """
-        setInitialConcentration(self, double value) -> int
+        setInitialConcentration(Species self, double value) -> int
 
         Sets the 'initialConcentration' attribute of this Species and marks
         the field as set.
@@ -21394,7 +21375,7 @@ class Species(SBase):
 
     def setSubstanceUnits(self, *args):
         """
-        setSubstanceUnits(self, string sid) -> int
+        setSubstanceUnits(Species self, string sid) -> int
 
         Sets the 'substanceUnits' attribute of this Species object.
 
@@ -21412,7 +21393,7 @@ class Species(SBase):
 
     def setSpatialSizeUnits(self, *args):
         """
-        setSpatialSizeUnits(self, string sid) -> int
+        setSpatialSizeUnits(Species self, string sid) -> int
 
         (SBML Level 2 Versions 1–2) Sets the 'spatialSizeUnits' attribute of this Species object.
 
@@ -21440,7 +21421,7 @@ class Species(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string sname) -> int
+        setUnits(Species self, string sname) -> int
 
         (SBML Level 1 only) Sets the units of this Species object.
 
@@ -21458,7 +21439,7 @@ class Species(SBase):
 
     def setHasOnlySubstanceUnits(self, *args):
         """
-        setHasOnlySubstanceUnits(self, bool value) -> int
+        setHasOnlySubstanceUnits(Species self, bool value) -> int
 
         Sets the 'hasOnlySubstanceUnits' attribute of this Species object.
 
@@ -21479,7 +21460,7 @@ class Species(SBase):
 
     def setBoundaryCondition(self, *args):
         """
-        setBoundaryCondition(self, bool value) -> int
+        setBoundaryCondition(Species self, bool value) -> int
 
         Sets the 'boundaryCondition' attribute of this Species object.
 
@@ -21496,7 +21477,7 @@ class Species(SBase):
 
     def setCharge(self, *args):
         """
-        setCharge(self, int value) -> int
+        setCharge(Species self, int value) -> int
 
         Sets the 'charge' attribute of this Species object.
 
@@ -21526,7 +21507,7 @@ class Species(SBase):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool value) -> int
+        setConstant(Species self, bool value) -> int
 
         Sets the 'constant' attribute of this Species object.
 
@@ -21547,7 +21528,7 @@ class Species(SBase):
 
     def setConversionFactor(self, *args):
         """
-        setConversionFactor(self, string sid) -> int
+        setConversionFactor(Species self, string sid) -> int
 
         Sets the value of the 'conversionFactor' attribute of this Species object.
 
@@ -21572,7 +21553,7 @@ class Species(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Species self) -> int
 
         Unsets the value of the 'name' attribute of this Species object.
 
@@ -21588,7 +21569,7 @@ class Species(SBase):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(Species self) -> int
 
         Unsets the value of the 'constant' attribute of this Species object.
 
@@ -21608,7 +21589,7 @@ class Species(SBase):
 
     def unsetSpeciesType(self):
         """
-        unsetSpeciesType(self) -> int
+        unsetSpeciesType(Species self) -> int
 
         Unsets the 'speciesType' attribute value of this Species object.
 
@@ -21627,7 +21608,7 @@ class Species(SBase):
 
     def unsetInitialAmount(self):
         """
-        unsetInitialAmount(self) -> int
+        unsetInitialAmount(Species self) -> int
 
         Unsets the 'initialAmount' attribute value of this Species object.
 
@@ -21643,7 +21624,7 @@ class Species(SBase):
 
     def unsetInitialConcentration(self):
         """
-        unsetInitialConcentration(self) -> int
+        unsetInitialConcentration(Species self) -> int
 
         Unsets the 'initialConcentration' attribute value of this Species object.
 
@@ -21662,7 +21643,7 @@ class Species(SBase):
 
     def unsetSubstanceUnits(self):
         """
-        unsetSubstanceUnits(self) -> int
+        unsetSubstanceUnits(Species self) -> int
 
         Unsets the 'substanceUnits' attribute value of this Species object.
 
@@ -21678,7 +21659,7 @@ class Species(SBase):
 
     def unsetSpatialSizeUnits(self):
         """
-        unsetSpatialSizeUnits(self) -> int
+        unsetSpatialSizeUnits(Species self) -> int
 
         Unsets the 'spatialSizeUnits' attribute value of this Species object.
 
@@ -21703,7 +21684,7 @@ class Species(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Species self) -> int
 
         Unsets the 'units' attribute value of this Species object.
 
@@ -21719,7 +21700,7 @@ class Species(SBase):
 
     def unsetCharge(self):
         """
-        unsetCharge(self) -> int
+        unsetCharge(Species self) -> int
 
         Unsets the 'charge' attribute
         value of this Species object.
@@ -21749,7 +21730,7 @@ class Species(SBase):
 
     def unsetConversionFactor(self):
         """
-        unsetConversionFactor(self) -> int
+        unsetConversionFactor(Species self) -> int
 
         Unsets the 'conversionFactor' attribute value of this Species object.
 
@@ -21770,7 +21751,7 @@ class Species(SBase):
 
     def unsetCompartment(self):
         """
-        unsetCompartment(self) -> int
+        unsetCompartment(Species self) -> int
 
         Unsets the 'compartment' attribute value of this Species object.
 
@@ -21786,7 +21767,7 @@ class Species(SBase):
 
     def unsetBoundaryCondition(self):
         """
-        unsetBoundaryCondition(self) -> int
+        unsetBoundaryCondition(Species self) -> int
 
         Unsets the 'boundaryCondition' attribute value of this Species object.
 
@@ -21802,7 +21783,7 @@ class Species(SBase):
 
     def unsetHasOnlySubstanceUnits(self):
         """
-        unsetHasOnlySubstanceUnits(self) -> int
+        unsetHasOnlySubstanceUnits(Species self) -> int
 
         Unsets the 'hasOnlySubstanceUnits' attribute value of this Species object.
 
@@ -21818,8 +21799,8 @@ class Species(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Species self) -> UnitDefinition
+        getDerivedUnitDefinition(Species self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this Species' amount or concentration.
@@ -21865,7 +21846,7 @@ class Species(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Species self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -21893,9 +21874,9 @@ class Species(SBase):
         @link libsbml#SBML_SPECIES SBML_SPECIES at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -21905,7 +21886,7 @@ class Species(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Species self) -> string
 
         Returns the XML element name of this object, which for Species, is
         always @c 'species'.
@@ -21917,7 +21898,7 @@ class Species(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Species self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this Species object
@@ -21939,7 +21920,7 @@ class Species(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Species self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -21969,7 +21950,7 @@ class Species(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Species self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -22019,11 +22000,6 @@ class ListOfSpecies(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -22066,8 +22042,8 @@ class ListOfSpecies(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfSpecies
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfSpecies
+        __init__(ListOfSpecies self, unsigned int level, unsigned int version) -> ListOfSpecies
+        __init__(ListOfSpecies self, SBMLNamespaces sbmlns) -> ListOfSpecies
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -22145,7 +22121,7 @@ class ListOfSpecies(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfSpecies
+        clone(ListOfSpecies self) -> ListOfSpecies
 
         Creates and returns a deep copy of this ListOfSpecies object.
 
@@ -22156,7 +22132,7 @@ class ListOfSpecies(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfSpecies self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Species objects, if the list is non-empty).
@@ -22192,7 +22168,7 @@ class ListOfSpecies(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfSpecies self) -> string
 
         Returns the XML element name of this object.
 
@@ -22205,10 +22181,10 @@ class ListOfSpecies(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Species
-        get(self, unsigned int n) -> Species
-        get(self, string sid) -> Species
-        get(self, string sid) -> Species
+        get(ListOfSpecies self, unsigned int n) -> Species
+        get(ListOfSpecies self, unsigned int n) -> Species
+        get(ListOfSpecies self, string sid) -> Species
+        get(ListOfSpecies self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -22250,8 +22226,8 @@ class ListOfSpecies(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Species
-        remove(self, string sid) -> Species
+        remove(ListOfSpecies self, unsigned int n) -> Species
+        remove(ListOfSpecies self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -22404,9 +22380,9 @@ class Parameter(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Parameter
-        __init__(self, SBMLNamespaces sbmlns) -> Parameter
-        __init__(self, Parameter orig) -> Parameter
+        __init__(Parameter self, unsigned int level, unsigned int version) -> Parameter
+        __init__(Parameter self, SBMLNamespaces sbmlns) -> Parameter
+        __init__(Parameter self, Parameter orig) -> Parameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -22505,7 +22481,7 @@ class Parameter(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Parameter
+        clone(Parameter self) -> Parameter
 
         Creates and returns a deep copy of this Parameter object.
 
@@ -22516,7 +22492,7 @@ class Parameter(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Parameter self)
 
         Initializes the fields of this Parameter object to 'typical' defaults
         values.
@@ -22537,7 +22513,7 @@ class Parameter(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Parameter self) -> string
 
         Returns the value of the 'id' attribute of this Parameter.
 
@@ -22548,7 +22524,7 @@ class Parameter(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Parameter self) -> string
 
         Returns the value of the 'name' attribute of this Parameter.
 
@@ -22559,7 +22535,7 @@ class Parameter(SBase):
 
     def getValue(self):
         """
-        getValue(self) -> double
+        getValue(Parameter self) -> double
 
         Gets the numerical value of this Parameter.
 
@@ -22584,7 +22560,7 @@ class Parameter(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Parameter self) -> string
 
         Gets the units defined for this Parameter.
 
@@ -22611,7 +22587,7 @@ class Parameter(SBase):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(Parameter self) -> bool
 
         Gets the value of the 'constant' attribute of this Parameter instance.
 
@@ -22640,7 +22616,7 @@ class Parameter(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Parameter self) -> bool
 
         Predicate returning @c True if this
         Parameter's 'id' attribute is set.
@@ -22653,7 +22629,7 @@ class Parameter(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Parameter self) -> bool
 
         Predicate returning @c True if this
         Parameter's 'name' attribute is set.
@@ -22666,7 +22642,7 @@ class Parameter(SBase):
 
     def isSetValue(self):
         """
-        isSetValue(self) -> bool
+        isSetValue(Parameter self) -> bool
 
         Predicate returning @c True if the
         'value' attribute of this Parameter is set.
@@ -22696,7 +22672,7 @@ class Parameter(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Parameter self) -> bool
 
         Predicate returning @c True if the
         'units' attribute of this Parameter is set.
@@ -22717,7 +22693,7 @@ class Parameter(SBase):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(Parameter self) -> bool
 
         Predicate returning @c True if the
         'constant' attribute of this Parameter is set.
@@ -22747,7 +22723,7 @@ class Parameter(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Parameter self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Parameter.
 
@@ -22787,7 +22763,7 @@ class Parameter(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Parameter self, string name) -> int
 
         Sets the value of the 'name' attribute of this Parameter.
 
@@ -22807,7 +22783,7 @@ class Parameter(SBase):
 
     def setValue(self, *args):
         """
-        setValue(self, double value) -> int
+        setValue(Parameter self, double value) -> int
 
         Sets the 'value' attribute of this Parameter to the given @c float
         value and marks the attribute as set.
@@ -22825,7 +22801,7 @@ class Parameter(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string units) -> int
+        setUnits(Parameter self, string units) -> int
 
         Sets the 'units' attribute of this Parameter to a copy of the given
         units identifier @p units.
@@ -22845,7 +22821,7 @@ class Parameter(SBase):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool flag) -> int
+        setConstant(Parameter self, bool flag) -> int
 
         Sets the 'constant' attribute of this Parameter to the given boolean
         @p flag.
@@ -22882,7 +22858,7 @@ class Parameter(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Parameter self) -> int
 
         Unsets the value of the 'name' attribute of this Parameter.
 
@@ -22898,7 +22874,7 @@ class Parameter(SBase):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(Parameter self) -> int
 
         Unsets the value of the 'constant' attribute of this Parameter object.
 
@@ -22918,7 +22894,7 @@ class Parameter(SBase):
 
     def unsetValue(self):
         """
-        unsetValue(self) -> int
+        unsetValue(Parameter self) -> int
 
         Unsets the 'value' attribute of this Parameter instance.
 
@@ -22938,7 +22914,7 @@ class Parameter(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Parameter self) -> int
 
         Unsets the 'units' attribute of this Parameter instance.
 
@@ -22954,8 +22930,8 @@ class Parameter(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Parameter self) -> UnitDefinition
+        getDerivedUnitDefinition(Parameter self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this Parameter's value.
@@ -22993,7 +22969,7 @@ class Parameter(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Parameter self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -23021,9 +22997,9 @@ class Parameter(SBase):
         @link libsbml#SBML_PARAMETER SBML_PARAMETER at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -23033,7 +23009,7 @@ class Parameter(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Parameter self) -> string
 
         Returns the XML element name of this object, which for Parameter, is
         always @c 'parameter'.
@@ -23045,7 +23021,7 @@ class Parameter(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Parameter self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this Parameter object
@@ -23063,7 +23039,7 @@ class Parameter(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Parameter self, string oldid, string newid)
 
         Renames all the @c UnitSIdRef attributes on this element.
 
@@ -23092,7 +23068,7 @@ class Parameter(SBase):
 
     def setCalculatingUnits(self, *args):
         """
-        setCalculatingUnits(self, bool calculatingUnits)
+        setCalculatingUnits(Parameter self, bool calculatingUnits)
 
         @internal
 
@@ -23123,11 +23099,6 @@ class ListOfParameters(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -23170,8 +23141,8 @@ class ListOfParameters(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfParameters
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfParameters
+        __init__(ListOfParameters self, unsigned int level, unsigned int version) -> ListOfParameters
+        __init__(ListOfParameters self, SBMLNamespaces sbmlns) -> ListOfParameters
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -23249,7 +23220,7 @@ class ListOfParameters(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfParameters
+        clone(ListOfParameters self) -> ListOfParameters
 
         Creates and returns a deep copy of this ListOfParameters object.
 
@@ -23260,7 +23231,7 @@ class ListOfParameters(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfParameters self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Parameter objects, if the list is non-empty).
@@ -23296,7 +23267,7 @@ class ListOfParameters(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfParameters self) -> string
 
         Returns the XML element name of this object.
 
@@ -23309,10 +23280,10 @@ class ListOfParameters(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Parameter
-        get(self, unsigned int n) -> Parameter
-        get(self, string sid) -> Parameter
-        get(self, string sid) -> Parameter
+        get(ListOfParameters self, unsigned int n) -> Parameter
+        get(ListOfParameters self, unsigned int n) -> Parameter
+        get(ListOfParameters self, string sid) -> Parameter
+        get(ListOfParameters self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -23356,8 +23327,8 @@ class ListOfParameters(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Parameter
-        remove(self, string sid) -> Parameter
+        remove(ListOfParameters self, unsigned int n) -> Parameter
+        remove(ListOfParameters self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -23480,10 +23451,10 @@ class LocalParameter(Parameter):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> LocalParameter
-        __init__(self, SBMLNamespaces sbmlns) -> LocalParameter
-        __init__(self, LocalParameter orig) -> LocalParameter
-        __init__(self, Parameter orig) -> LocalParameter
+        __init__(LocalParameter self, unsigned int level, unsigned int version) -> LocalParameter
+        __init__(LocalParameter self, SBMLNamespaces sbmlns) -> LocalParameter
+        __init__(LocalParameter self, LocalParameter orig) -> LocalParameter
+        __init__(LocalParameter self, Parameter orig) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -23594,7 +23565,7 @@ class LocalParameter(Parameter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> LocalParameter
+        clone(LocalParameter self) -> LocalParameter
 
         Creates and returns a deep copy of this LocalParameter object.
 
@@ -23605,8 +23576,8 @@ class LocalParameter(Parameter):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(LocalParameter self) -> UnitDefinition
+        getDerivedUnitDefinition(LocalParameter self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this LocalParameter's value.
@@ -23645,7 +23616,7 @@ class LocalParameter(Parameter):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(LocalParameter self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -23673,9 +23644,9 @@ class LocalParameter(Parameter):
         @link libsbml#SBML_LOCAL_PARAMETER SBML_LOCAL_PARAMETER at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -23685,7 +23656,7 @@ class LocalParameter(Parameter):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(LocalParameter self) -> string
 
         Returns the XML element name of this object, which for LocalParameter,
         is always @c 'localParameter'.
@@ -23697,7 +23668,7 @@ class LocalParameter(Parameter):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(LocalParameter self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         LocalParameter object have been set.
@@ -23714,7 +23685,7 @@ class LocalParameter(Parameter):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(LocalParameter self) -> bool
 
         @internal
 
@@ -23725,7 +23696,7 @@ class LocalParameter(Parameter):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(LocalParameter self) -> bool
 
         @internal
 
@@ -23736,7 +23707,7 @@ class LocalParameter(Parameter):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool flag) -> int
+        setConstant(LocalParameter self, bool flag) -> int
 
         @internal
 
@@ -23747,7 +23718,7 @@ class LocalParameter(Parameter):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(LocalParameter self) -> int
 
         @internal
 
@@ -23778,11 +23749,6 @@ class ListOfLocalParameters(ListOfParameters):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -23825,8 +23791,8 @@ class ListOfLocalParameters(ListOfParameters):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfLocalParameters
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfLocalParameters
+        __init__(ListOfLocalParameters self, unsigned int level, unsigned int version) -> ListOfLocalParameters
+        __init__(ListOfLocalParameters self, SBMLNamespaces sbmlns) -> ListOfLocalParameters
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -23904,7 +23870,7 @@ class ListOfLocalParameters(ListOfParameters):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfLocalParameters
+        clone(ListOfLocalParameters self) -> ListOfLocalParameters
 
         Creates and returns a deep copy of this ListOfLocalParameters object.
 
@@ -23915,7 +23881,7 @@ class ListOfLocalParameters(ListOfParameters):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfLocalParameters self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., LocalParameter objects, if the list is non-empty).
@@ -23951,7 +23917,7 @@ class ListOfLocalParameters(ListOfParameters):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfLocalParameters self) -> string
 
         Returns the XML element name of this object.
 
@@ -23964,10 +23930,10 @@ class ListOfLocalParameters(ListOfParameters):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> LocalParameter
-        get(self, unsigned int n) -> LocalParameter
-        get(self, string sid) -> LocalParameter
-        get(self, string sid) -> LocalParameter
+        get(ListOfLocalParameters self, unsigned int n) -> LocalParameter
+        get(ListOfLocalParameters self, unsigned int n) -> LocalParameter
+        get(ListOfLocalParameters self, string sid) -> LocalParameter
+        get(ListOfLocalParameters self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -24012,7 +23978,7 @@ class ListOfLocalParameters(ListOfParameters):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfLocalParameters self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -24031,8 +23997,8 @@ class ListOfLocalParameters(ListOfParameters):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> LocalParameter
-        remove(self, string sid) -> LocalParameter
+        remove(ListOfLocalParameters self, unsigned int n) -> LocalParameter
+        remove(ListOfLocalParameters self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -24231,9 +24197,9 @@ class InitialAssignment(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> InitialAssignment
-        __init__(self, SBMLNamespaces sbmlns) -> InitialAssignment
-        __init__(self, InitialAssignment orig) -> InitialAssignment
+        __init__(InitialAssignment self, unsigned int level, unsigned int version) -> InitialAssignment
+        __init__(InitialAssignment self, SBMLNamespaces sbmlns) -> InitialAssignment
+        __init__(InitialAssignment self, InitialAssignment orig) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -24324,7 +24290,7 @@ class InitialAssignment(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> InitialAssignment
+        clone(InitialAssignment self) -> InitialAssignment
 
         Creates and returns a deep copy of this InitialAssignment object.
 
@@ -24335,7 +24301,7 @@ class InitialAssignment(SBase):
 
     def getSymbol(self):
         """
-        getSymbol(self) -> string
+        getSymbol(InitialAssignment self) -> string
 
         Get the value of the 'symbol' attribute of this InitialAssignment.
 
@@ -24347,7 +24313,7 @@ class InitialAssignment(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(InitialAssignment self) -> ASTNode
 
         Get the mathematical formula of this InitialAssignment.
 
@@ -24359,7 +24325,7 @@ class InitialAssignment(SBase):
 
     def isSetSymbol(self):
         """
-        isSetSymbol(self) -> bool
+        isSetSymbol(InitialAssignment self) -> bool
 
         Predicate returning @c True if this
         InitialAssignment's 'symbol' attribute is set.
@@ -24372,7 +24338,7 @@ class InitialAssignment(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(InitialAssignment self) -> bool
 
         Predicate returning @c True if this
         InitialAssignment's 'math' subelement contains a value.
@@ -24385,7 +24351,7 @@ class InitialAssignment(SBase):
 
     def setSymbol(self, *args):
         """
-        setSymbol(self, string sid) -> int
+        setSymbol(InitialAssignment self, string sid) -> int
 
         Sets the 'symbol' attribute value of this InitialAssignment.
 
@@ -24404,7 +24370,7 @@ class InitialAssignment(SBase):
 
     def unsetSymbol(self):
         """
-        unsetSymbol(self) -> int
+        unsetSymbol(InitialAssignment self) -> int
 
         Unsets the 'symbol' attribute value of this InitialAssignment.
 
@@ -24420,7 +24386,7 @@ class InitialAssignment(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(InitialAssignment self, ASTNode math) -> int
 
         Sets the 'math' subelement of this InitialAssignment.
 
@@ -24441,8 +24407,8 @@ class InitialAssignment(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(InitialAssignment self) -> UnitDefinition
+        getDerivedUnitDefinition(InitialAssignment self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units
         of measurement assumed for the 'math' expression of this
@@ -24484,8 +24450,8 @@ class InitialAssignment(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(InitialAssignment self) -> bool
+        containsUndeclaredUnits(InitialAssignment self) -> bool
 
         Predicate returning @c True if the math expression of this
         InitialAssignment contains parameters/numbers with undeclared units.
@@ -24505,7 +24471,7 @@ class InitialAssignment(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(InitialAssignment self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -24533,9 +24499,9 @@ class InitialAssignment(SBase):
         @link libsbml#SBML_INITIAL_ASSIGNMENT SBML_INITIAL_ASSIGNMENT at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -24545,7 +24511,7 @@ class InitialAssignment(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(InitialAssignment self) -> string
 
         Returns the XML element name of this object, which for
         InitialAssignment, is always @c 'initialAssignment'.
@@ -24557,7 +24523,7 @@ class InitialAssignment(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(InitialAssignment self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         InitialAssignment object have been set.
@@ -24573,7 +24539,7 @@ class InitialAssignment(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(InitialAssignment self) -> bool
 
         Predicate returning @c True if all the required elements for this
         InitialAssignment object have been set.
@@ -24589,7 +24555,7 @@ class InitialAssignment(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(InitialAssignment self) -> string
 
         @internal
 
@@ -24600,7 +24566,7 @@ class InitialAssignment(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(InitialAssignment self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -24630,7 +24596,7 @@ class InitialAssignment(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(InitialAssignment self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -24660,7 +24626,7 @@ class InitialAssignment(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(InitialAssignment self, string id, ASTNode function)
 
         @internal
 
@@ -24671,7 +24637,7 @@ class InitialAssignment(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(InitialAssignment self, string id, ASTNode function)
 
         @internal
 
@@ -24682,7 +24648,7 @@ class InitialAssignment(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(InitialAssignment self, string id, ASTNode function)
 
         @internal
 
@@ -24713,11 +24679,6 @@ class ListOfInitialAssignments(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -24760,8 +24721,8 @@ class ListOfInitialAssignments(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfInitialAssignments
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfInitialAssignments
+        __init__(ListOfInitialAssignments self, unsigned int level, unsigned int version) -> ListOfInitialAssignments
+        __init__(ListOfInitialAssignments self, SBMLNamespaces sbmlns) -> ListOfInitialAssignments
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -24839,7 +24800,7 @@ class ListOfInitialAssignments(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfInitialAssignments
+        clone(ListOfInitialAssignments self) -> ListOfInitialAssignments
 
         Creates and returns a deep copy of this ListOfInitialAssignments object.
 
@@ -24850,7 +24811,7 @@ class ListOfInitialAssignments(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfInitialAssignments self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., InitialAssignment objects, if the list is non-empty).
@@ -24886,7 +24847,7 @@ class ListOfInitialAssignments(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfInitialAssignments self) -> string
 
         Returns the XML element name of this object.
 
@@ -24900,10 +24861,10 @@ class ListOfInitialAssignments(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> InitialAssignment
-        get(self, unsigned int n) -> InitialAssignment
-        get(self, string sid) -> InitialAssignment
-        get(self, string sid) -> InitialAssignment
+        get(ListOfInitialAssignments self, unsigned int n) -> InitialAssignment
+        get(ListOfInitialAssignments self, unsigned int n) -> InitialAssignment
+        get(ListOfInitialAssignments self, string sid) -> InitialAssignment
+        get(ListOfInitialAssignments self, string sid) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -24945,8 +24906,8 @@ class ListOfInitialAssignments(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> InitialAssignment
-        remove(self, string sid) -> InitialAssignment
+        remove(ListOfInitialAssignments self, unsigned int n) -> InitialAssignment
+        remove(ListOfInitialAssignments self, string sid) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -24987,7 +24948,7 @@ class ListOfInitialAssignments(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfInitialAssignments self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -25176,7 +25137,7 @@ class Rule(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, Rule orig) -> Rule
+        __init__(Rule self, Rule orig) -> Rule
 
         @internal
 
@@ -25186,7 +25147,7 @@ class Rule(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Rule
+        clone(Rule self) -> Rule
 
         Creates and returns a deep copy of this Rule object.
 
@@ -25197,7 +25158,7 @@ class Rule(SBase):
 
     def getFormula(self):
         """
-        getFormula(self) -> string
+        getFormula(Rule self) -> string
 
         Returns the mathematical expression of this Rule in text-string form.
 
@@ -25221,7 +25182,7 @@ class Rule(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Rule self) -> ASTNode
 
         Get the mathematical formula of this Rule as an ASTNode tree.
 
@@ -25240,7 +25201,7 @@ class Rule(SBase):
 
     def getVariable(self):
         """
-        getVariable(self) -> string
+        getVariable(Rule self) -> string
 
         Get the value of the 'variable' attribute of this Rule object.
 
@@ -25265,7 +25226,7 @@ class Rule(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Rule self) -> string
 
         Returns the units for the
         mathematical formula of this Rule.
@@ -25280,7 +25241,7 @@ class Rule(SBase):
 
     def isSetFormula(self):
         """
-        isSetFormula(self) -> bool
+        isSetFormula(Rule self) -> bool
 
         Predicate returning @c True if this Rule's mathematical expression is
         set.
@@ -25305,7 +25266,7 @@ class Rule(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Rule self) -> bool
 
         Predicate returning @c True if this Rule's mathematical expression is
         set.
@@ -25328,7 +25289,7 @@ class Rule(SBase):
 
     def isSetVariable(self):
         """
-        isSetVariable(self) -> bool
+        isSetVariable(Rule self) -> bool
 
         Predicate returning @c True if this Rule's 'variable' attribute is set.
 
@@ -25353,7 +25314,7 @@ class Rule(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Rule self) -> bool
 
         Predicate returning @c True if this Rule's 'units' attribute is set.
 
@@ -25368,7 +25329,7 @@ class Rule(SBase):
 
     def setFormula(self, *args):
         """
-        setFormula(self, string formula) -> int
+        setFormula(Rule self, string formula) -> int
 
         Sets the 'math' subelement of this Rule to an expression in text-string
         form.
@@ -25399,7 +25360,7 @@ class Rule(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Rule self, ASTNode math) -> int
 
         Sets the 'math' subelement of this Rule to a copy of the given
         ASTNode.
@@ -25426,7 +25387,7 @@ class Rule(SBase):
 
     def setVariable(self, *args):
         """
-        setVariable(self, string sid) -> int
+        setVariable(Rule self, string sid) -> int
 
         Sets the 'variable' attribute value of this Rule object.
 
@@ -25459,7 +25420,7 @@ class Rule(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string sname) -> int
+        setUnits(Rule self, string sname) -> int
 
         Sets the units for this Rule.
 
@@ -25481,7 +25442,7 @@ class Rule(SBase):
 
     def unsetVariable(self):
         """
-        unsetVariable(self) -> int
+        unsetVariable(Rule self) -> int
 
         Unsets the value of the 'variable' attribute of this Rule object.
 
@@ -25502,7 +25463,7 @@ class Rule(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Rule self) -> int
 
         Unsets the 'units' for this Rule.
 
@@ -25522,8 +25483,8 @@ class Rule(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Rule self) -> UnitDefinition
+        getDerivedUnitDefinition(Rule self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this Rule.
@@ -25563,8 +25524,8 @@ class Rule(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(Rule self) -> bool
+        containsUndeclaredUnits(Rule self) -> bool
 
         Predicate returning @c True if the math expression of this Rule contains
         parameters/numbers with undeclared units.
@@ -25583,7 +25544,7 @@ class Rule(SBase):
 
     def getType(self):
         """
-        getType(self) -> RuleType_t
+        getType(Rule self) -> RuleType_t
 
         Returns a code representing the type of rule this is.
 
@@ -25602,7 +25563,7 @@ class Rule(SBase):
 
     def isAlgebraic(self):
         """
-        isAlgebraic(self) -> bool
+        isAlgebraic(Rule self) -> bool
 
         Predicate returning @c True if this Rule is an AlgebraicRule.
 
@@ -25613,7 +25574,7 @@ class Rule(SBase):
 
     def isAssignment(self):
         """
-        isAssignment(self) -> bool
+        isAssignment(Rule self) -> bool
 
         Predicate returning @c True if this Rule is an AssignmentRule.
 
@@ -25624,7 +25585,7 @@ class Rule(SBase):
 
     def isCompartmentVolume(self):
         """
-        isCompartmentVolume(self) -> bool
+        isCompartmentVolume(Rule self) -> bool
 
         Predicate returning @c True if this Rule is an CompartmentVolumeRule
         or equivalent.
@@ -25643,7 +25604,7 @@ class Rule(SBase):
 
     def isParameter(self):
         """
-        isParameter(self) -> bool
+        isParameter(Rule self) -> bool
 
         Predicate returning @c True if this Rule is an ParameterRule or
         equivalent.
@@ -25662,7 +25623,7 @@ class Rule(SBase):
 
     def isRate(self):
         """
-        isRate(self) -> bool
+        isRate(Rule self) -> bool
 
         Predicate returning @c True if this Rule is a RateRule (SBML
         Levels 2–3) or has a 'type' attribute value of @c 'rate'
@@ -25676,7 +25637,7 @@ class Rule(SBase):
 
     def isScalar(self):
         """
-        isScalar(self) -> bool
+        isScalar(Rule self) -> bool
 
         Predicate returning @c True if this Rule is an AssignmentRule (SBML
         Levels 2–3) or has a 'type' attribute value of @c 'scalar'
@@ -25690,7 +25651,7 @@ class Rule(SBase):
 
     def isSpeciesConcentration(self):
         """
-        isSpeciesConcentration(self) -> bool
+        isSpeciesConcentration(Rule self) -> bool
 
         Predicate returning @c True if this Rule is a SpeciesConcentrationRule
         or equivalent.
@@ -25709,7 +25670,7 @@ class Rule(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Rule self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -25740,9 +25701,9 @@ class Rule(SBase):
         for %SBML Core.
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -25752,7 +25713,7 @@ class Rule(SBase):
 
     def getL1TypeCode(self):
         """
-        getL1TypeCode(self) -> int
+        getL1TypeCode(Rule self) -> int
 
         Returns the SBML Level 1 type code for this Rule object.
 
@@ -25771,7 +25732,7 @@ class Rule(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Rule self) -> string
 
         Returns the XML element name of this object.
 
@@ -25800,7 +25761,7 @@ class Rule(SBase):
 
     def setL1TypeCode(self, *args):
         """
-        setL1TypeCode(self, int type) -> int
+        setL1TypeCode(Rule self, int type) -> int
 
         Sets the SBML Level 1 type code for this Rule.
 
@@ -25822,7 +25783,7 @@ class Rule(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Rule self) -> bool
 
         Predicate returning @c True if all the required elements for this Rule
         object have been set.
@@ -25837,7 +25798,7 @@ class Rule(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Rule self) -> bool
 
         Predicate returning @c True if all the required attributes for this Rule
         object have been set.
@@ -25856,7 +25817,7 @@ class Rule(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Rule self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -25886,7 +25847,7 @@ class Rule(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Rule self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -25916,7 +25877,7 @@ class Rule(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Rule self) -> string
 
         @internal
 
@@ -25927,7 +25888,7 @@ class Rule(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Rule self, string id, ASTNode function)
 
         @internal
 
@@ -25938,7 +25899,7 @@ class Rule(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(Rule self, string id, ASTNode function)
 
         @internal
 
@@ -25949,7 +25910,7 @@ class Rule(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(Rule self, string id, ASTNode function)
 
         @internal
 
@@ -25980,11 +25941,6 @@ class ListOfRules(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -26027,8 +25983,8 @@ class ListOfRules(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfRules
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfRules
+        __init__(ListOfRules self, unsigned int level, unsigned int version) -> ListOfRules
+        __init__(ListOfRules self, SBMLNamespaces sbmlns) -> ListOfRules
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -26106,7 +26062,7 @@ class ListOfRules(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfRules
+        clone(ListOfRules self) -> ListOfRules
 
         Creates and returns a deep copy of this ListOfRules object.
 
@@ -26117,7 +26073,7 @@ class ListOfRules(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfRules self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Rule objects, if the list is non-empty).
@@ -26153,7 +26109,7 @@ class ListOfRules(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfRules self) -> string
 
         Returns the XML element name of this object.
 
@@ -26166,10 +26122,10 @@ class ListOfRules(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Rule
-        get(self, unsigned int n) -> Rule
-        get(self, string sid) -> Rule
-        get(self, string sid) -> Rule
+        get(ListOfRules self, unsigned int n) -> Rule
+        get(ListOfRules self, unsigned int n) -> Rule
+        get(ListOfRules self, string sid) -> Rule
+        get(ListOfRules self, string sid) -> Rule
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -26208,7 +26164,7 @@ class ListOfRules(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfRules self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -26226,8 +26182,8 @@ class ListOfRules(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Rule
-        remove(self, string sid) -> Rule
+        remove(ListOfRules self, unsigned int n) -> Rule
+        remove(ListOfRules self, string sid) -> Rule
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -26460,8 +26416,8 @@ class AlgebraicRule(Rule):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> AlgebraicRule
-        __init__(self, SBMLNamespaces sbmlns) -> AlgebraicRule
+        __init__(AlgebraicRule self, unsigned int level, unsigned int version) -> AlgebraicRule
+        __init__(AlgebraicRule self, SBMLNamespaces sbmlns) -> AlgebraicRule
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -26543,7 +26499,7 @@ class AlgebraicRule(Rule):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> AlgebraicRule
+        clone(AlgebraicRule self) -> AlgebraicRule
 
         Creates and returns a deep copy of this AlgebraicRule object.
 
@@ -26554,7 +26510,7 @@ class AlgebraicRule(Rule):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(AlgebraicRule self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         AlgebraicRule object have been set.
@@ -26816,8 +26772,8 @@ class AssignmentRule(Rule):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> AssignmentRule
-        __init__(self, SBMLNamespaces sbmlns) -> AssignmentRule
+        __init__(AssignmentRule self, unsigned int level, unsigned int version) -> AssignmentRule
+        __init__(AssignmentRule self, SBMLNamespaces sbmlns) -> AssignmentRule
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -26900,7 +26856,7 @@ class AssignmentRule(Rule):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> AssignmentRule
+        clone(AssignmentRule self) -> AssignmentRule
 
         Creates and returns a deep copy of this AssignmentRule object.
 
@@ -26911,7 +26867,7 @@ class AssignmentRule(Rule):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(AssignmentRule self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         AssignmentRule object have been set.
@@ -26930,7 +26886,7 @@ class AssignmentRule(Rule):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(AssignmentRule self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -27172,8 +27128,8 @@ class RateRule(Rule):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> RateRule
-        __init__(self, SBMLNamespaces sbmlns) -> RateRule
+        __init__(RateRule self, unsigned int level, unsigned int version) -> RateRule
+        __init__(RateRule self, SBMLNamespaces sbmlns) -> RateRule
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -27256,7 +27212,7 @@ class RateRule(Rule):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> RateRule
+        clone(RateRule self) -> RateRule
 
         Creates and returns a deep copy of this RateRule object.
 
@@ -27267,7 +27223,7 @@ class RateRule(Rule):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(RateRule self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this RateRule object
@@ -27287,7 +27243,7 @@ class RateRule(Rule):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(RateRule self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -27408,9 +27364,9 @@ class Constraint(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Constraint
-        __init__(self, SBMLNamespaces sbmlns) -> Constraint
-        __init__(self, Constraint orig) -> Constraint
+        __init__(Constraint self, unsigned int level, unsigned int version) -> Constraint
+        __init__(Constraint self, SBMLNamespaces sbmlns) -> Constraint
+        __init__(Constraint self, Constraint orig) -> Constraint
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -27501,7 +27457,7 @@ class Constraint(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Constraint
+        clone(Constraint self) -> Constraint
 
         Creates and returns a deep copy of this Constraint object.
 
@@ -27512,7 +27468,7 @@ class Constraint(SBase):
 
     def getMessage(self):
         """
-        getMessage(self) -> XMLNode
+        getMessage(Constraint self) -> XMLNode
 
         Get the message, if any, associated with this Constraint
 
@@ -27523,7 +27479,7 @@ class Constraint(SBase):
 
     def getMessageString(self):
         """
-        getMessageString(self) -> string
+        getMessageString(Constraint self) -> string
 
         Get the message string, if any, associated with this Constraint
 
@@ -27534,7 +27490,7 @@ class Constraint(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Constraint self) -> ASTNode
 
         Get the mathematical expression of this Constraint
 
@@ -27545,7 +27501,7 @@ class Constraint(SBase):
 
     def isSetMessage(self):
         """
-        isSetMessage(self) -> bool
+        isSetMessage(Constraint self) -> bool
 
         Predicate returning @c True if a
         message is defined for this Constraint.
@@ -27558,7 +27514,7 @@ class Constraint(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Constraint self) -> bool
 
         Predicate returning @c True if a
         mathematical formula is defined for this Constraint.
@@ -27571,9 +27527,9 @@ class Constraint(SBase):
 
     def setMessage(self, *args):
         """
-        setMessage(self, XMLNode xhtml) -> int
-        setMessage(self, string message, bool addXHTMLMarkup = False) -> int
-        setMessage(self, string message) -> int
+        setMessage(Constraint self, XMLNode xhtml) -> int
+        setMessage(Constraint self, string message, bool addXHTMLMarkup=False) -> int
+        setMessage(Constraint self, string message) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -27624,7 +27580,7 @@ class Constraint(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Constraint self, ASTNode math) -> int
 
         Sets the mathematical expression of this Constraint to a copy of the
         AST given as @p math.
@@ -27644,7 +27600,7 @@ class Constraint(SBase):
 
     def unsetMessage(self):
         """
-        unsetMessage(self) -> int
+        unsetMessage(Constraint self) -> int
 
         Unsets the 'message' subelement of this Constraint.
 
@@ -27660,7 +27616,7 @@ class Constraint(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Constraint self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -27690,7 +27646,7 @@ class Constraint(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Constraint self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -27720,7 +27676,7 @@ class Constraint(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Constraint self, string id, ASTNode function)
 
         @internal
 
@@ -27731,7 +27687,7 @@ class Constraint(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Constraint self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -27759,9 +27715,9 @@ class Constraint(SBase):
         @link libsbml#SBML_CONSTRAINT SBML_CONSTRAINT at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -27771,7 +27727,7 @@ class Constraint(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Constraint self) -> string
 
         Returns the XML element name of this object, which for Constraint, is
         always @c 'constraint'.
@@ -27783,7 +27739,7 @@ class Constraint(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Constraint self) -> bool
 
         Predicate returning @c True if
         all the required elements for this Constraint object
@@ -27820,11 +27776,6 @@ class ListOfConstraints(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -27867,8 +27818,8 @@ class ListOfConstraints(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfConstraints
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfConstraints
+        __init__(ListOfConstraints self, unsigned int level, unsigned int version) -> ListOfConstraints
+        __init__(ListOfConstraints self, SBMLNamespaces sbmlns) -> ListOfConstraints
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -27946,7 +27897,7 @@ class ListOfConstraints(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfConstraints
+        clone(ListOfConstraints self) -> ListOfConstraints
 
         Creates and returns a deep copy of this ListOfConstraints object.
 
@@ -27957,7 +27908,7 @@ class ListOfConstraints(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfConstraints self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Constraint objects, if the list is non-empty).
@@ -27993,7 +27944,7 @@ class ListOfConstraints(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfConstraints self) -> string
 
         Returns the XML element name of this object.
 
@@ -28006,8 +27957,8 @@ class ListOfConstraints(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Constraint
-        get(self, unsigned int n) -> Constraint
+        get(ListOfConstraints self, unsigned int n) -> Constraint
+        get(ListOfConstraints self, unsigned int n) -> Constraint
 
         Get a Constraint from the ListOfConstraints.
 
@@ -28022,7 +27973,7 @@ class ListOfConstraints(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Constraint
+        remove(ListOfConstraints self, unsigned int n) -> Constraint
 
         Removes the nth item from this ListOfConstraints items and returns a
         pointer to it.
@@ -28173,9 +28124,9 @@ class Reaction(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Reaction
-        __init__(self, SBMLNamespaces sbmlns) -> Reaction
-        __init__(self, Reaction orig) -> Reaction
+        __init__(Reaction self, unsigned int level, unsigned int version) -> Reaction
+        __init__(Reaction self, SBMLNamespaces sbmlns) -> Reaction
+        __init__(Reaction self, Reaction orig) -> Reaction
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -28266,7 +28217,7 @@ class Reaction(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Reaction
+        clone(Reaction self) -> Reaction
 
         Creates and returns a deep copy of this Reaction object.
 
@@ -28277,7 +28228,7 @@ class Reaction(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(Reaction self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -28291,7 +28242,7 @@ class Reaction(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(Reaction self, string metaid) -> SBase
 
         Returns the first child element it can find with the given @p metaid, or
         @c None if no such object is found.
@@ -28305,7 +28256,7 @@ class Reaction(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Reaction self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -28335,7 +28286,7 @@ class Reaction(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Reaction self)
 
         Initializes the fields of this Reaction object to 'typical' default
         values.
@@ -28367,7 +28318,7 @@ class Reaction(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Reaction self) -> string
 
         Returns the value of the 'id' attribute of this Reaction.
 
@@ -28378,7 +28329,7 @@ class Reaction(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Reaction self) -> string
 
         Returns the value of the 'name' attribute of this Reaction.
 
@@ -28389,8 +28340,8 @@ class Reaction(SBase):
 
     def getKineticLaw(self, *args):
         """
-        getKineticLaw(self) -> KineticLaw
-        getKineticLaw(self) -> KineticLaw
+        getKineticLaw(Reaction self) -> KineticLaw
+        getKineticLaw(Reaction self) -> KineticLaw
 
         Returns the KineticLaw object contained in this Reaction.
 
@@ -28401,7 +28352,7 @@ class Reaction(SBase):
 
     def getReversible(self):
         """
-        getReversible(self) -> bool
+        getReversible(Reaction self) -> bool
 
         Returns the value of the 'reversible' attribute on the Reaction as a
         boolean value.
@@ -28413,7 +28364,7 @@ class Reaction(SBase):
 
     def getFast(self):
         """
-        getFast(self) -> bool
+        getFast(Reaction self) -> bool
 
         Returns the value of the 'fast' attribute of this Reaction.
 
@@ -28437,7 +28388,7 @@ class Reaction(SBase):
 
     def getCompartment(self):
         """
-        getCompartment(self) -> string
+        getCompartment(Reaction self) -> string
 
         (SBML Level 3 only) Returns the value of the 'compartment'
         attribute on the Reaction.
@@ -28453,7 +28404,7 @@ class Reaction(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Reaction self) -> bool
 
         Predicate returning @c True if this
         Reaction's 'id' attribute is set.
@@ -28466,7 +28417,7 @@ class Reaction(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Reaction self) -> bool
 
         Predicate returning @c True if this
         Reaction's 'name' attribute is set.
@@ -28479,7 +28430,7 @@ class Reaction(SBase):
 
     def isSetKineticLaw(self):
         """
-        isSetKineticLaw(self) -> bool
+        isSetKineticLaw(Reaction self) -> bool
 
         Predicate returning @c True if this
         Reaction contains a kinetic law object.
@@ -28492,7 +28443,7 @@ class Reaction(SBase):
 
     def isSetFast(self):
         """
-        isSetFast(self) -> bool
+        isSetFast(Reaction self) -> bool
 
         Predicate returning @c True if the value of
         the 'fast' attribute on this Reaction.
@@ -28517,7 +28468,7 @@ class Reaction(SBase):
 
     def isSetCompartment(self):
         """
-        isSetCompartment(self) -> bool
+        isSetCompartment(Reaction self) -> bool
 
         Predicate returning @c True if this
         Reaction's 'compartment' attribute is set.
@@ -28534,7 +28485,7 @@ class Reaction(SBase):
 
     def isSetReversible(self):
         """
-        isSetReversible(self) -> bool
+        isSetReversible(Reaction self) -> bool
 
         Predicate returning @c True if this
         Reaction's 'reversible' attribute is set.
@@ -28547,7 +28498,7 @@ class Reaction(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Reaction self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Reaction.
 
@@ -28587,7 +28538,7 @@ class Reaction(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Reaction self, string name) -> int
 
         Sets the value of the 'name' attribute of this Reaction.
 
@@ -28607,7 +28558,7 @@ class Reaction(SBase):
 
     def setKineticLaw(self, *args):
         """
-        setKineticLaw(self, KineticLaw kl) -> int
+        setKineticLaw(Reaction self, KineticLaw kl) -> int
 
         Sets the 'kineticLaw' subelement of this Reaction to a copy of the
         given KineticLaw object.
@@ -28627,7 +28578,7 @@ class Reaction(SBase):
 
     def setReversible(self, *args):
         """
-        setReversible(self, bool value) -> int
+        setReversible(Reaction self, bool value) -> int
 
         Sets the value of the 'reversible' attribute of this Reaction.
 
@@ -28644,7 +28595,7 @@ class Reaction(SBase):
 
     def setFast(self, *args):
         """
-        setFast(self, bool value) -> int
+        setFast(Reaction self, bool value) -> int
 
         Sets the value of the 'fast' attribute of this Reaction.
 
@@ -28674,7 +28625,7 @@ class Reaction(SBase):
 
     def setCompartment(self, *args):
         """
-        setCompartment(self, string sid) -> int
+        setCompartment(Reaction self, string sid) -> int
 
         Sets the value of the 'compartment' attribute of this Reaction.
 
@@ -28699,7 +28650,7 @@ class Reaction(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Reaction self) -> int
 
         Unsets the value of the 'name' attribute of this Reaction.
 
@@ -28715,7 +28666,7 @@ class Reaction(SBase):
 
     def unsetKineticLaw(self):
         """
-        unsetKineticLaw(self) -> int
+        unsetKineticLaw(Reaction self) -> int
 
         Unsets the 'kineticLaw' subelement of this Reaction.
 
@@ -28731,7 +28682,7 @@ class Reaction(SBase):
 
     def unsetFast(self):
         """
-        unsetFast(self) -> int
+        unsetFast(Reaction self) -> int
 
         Unsets the value of the 'fast' attribute of this Reaction.
 
@@ -28760,7 +28711,7 @@ class Reaction(SBase):
 
     def unsetCompartment(self):
         """
-        unsetCompartment(self) -> int
+        unsetCompartment(Reaction self) -> int
 
         Unsets the value of the 'compartment' attribute of this Reaction.
 
@@ -28781,7 +28732,7 @@ class Reaction(SBase):
 
     def unsetReversible(self):
         """
-        unsetReversible(self) -> int
+        unsetReversible(Reaction self) -> int
 
         Unsets the value of the 'reversible' attribute of this Reaction.
 
@@ -28798,12 +28749,11 @@ class Reaction(SBase):
 
     def addReactant(self, *args):
         """
-        addReactant(self, SpeciesReference sr) -> int
-        addReactant(self, Species species, double stoichiometry = 1.0, string id = "", 
-            bool constant = True) -> int
-        addReactant(self, Species species, double stoichiometry = 1.0, string id = "") -> int
-        addReactant(self, Species species, double stoichiometry = 1.0) -> int
-        addReactant(self, Species species) -> int
+        addReactant(Reaction self, SpeciesReference sr) -> int
+        addReactant(Reaction self, Species species, double stoichiometry=1.0, string id="", bool constant=True) -> int
+        addReactant(Reaction self, Species species, double stoichiometry=1.0, string id="") -> int
+        addReactant(Reaction self, Species species, double stoichiometry=1.0) -> int
+        addReactant(Reaction self, Species species) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -28892,12 +28842,11 @@ class Reaction(SBase):
 
     def addProduct(self, *args):
         """
-        addProduct(self, SpeciesReference sr) -> int
-        addProduct(self, Species species, double stoichiometry = 1.0, string id = "", 
-            bool constant = True) -> int
-        addProduct(self, Species species, double stoichiometry = 1.0, string id = "") -> int
-        addProduct(self, Species species, double stoichiometry = 1.0) -> int
-        addProduct(self, Species species) -> int
+        addProduct(Reaction self, SpeciesReference sr) -> int
+        addProduct(Reaction self, Species species, double stoichiometry=1.0, string id="", bool constant=True) -> int
+        addProduct(Reaction self, Species species, double stoichiometry=1.0, string id="") -> int
+        addProduct(Reaction self, Species species, double stoichiometry=1.0) -> int
+        addProduct(Reaction self, Species species) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -28984,9 +28933,9 @@ class Reaction(SBase):
 
     def addModifier(self, *args):
         """
-        addModifier(self, ModifierSpeciesReference msr) -> int
-        addModifier(self, Species species, string id = "") -> int
-        addModifier(self, Species species) -> int
+        addModifier(Reaction self, ModifierSpeciesReference msr) -> int
+        addModifier(Reaction self, Species species, string id="") -> int
+        addModifier(Reaction self, Species species) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29070,7 +29019,7 @@ class Reaction(SBase):
 
     def createReactant(self):
         """
-        createReactant(self) -> SpeciesReference
+        createReactant(Reaction self) -> SpeciesReference
 
         Creates a new SpeciesReference, adds it to this Reaction's list of
         reactants, and returns it.
@@ -29082,7 +29031,7 @@ class Reaction(SBase):
 
     def createProduct(self):
         """
-        createProduct(self) -> SpeciesReference
+        createProduct(Reaction self) -> SpeciesReference
 
         Creates a new SpeciesReference, adds it to this Reaction's list of
         products, and returns it.
@@ -29094,7 +29043,7 @@ class Reaction(SBase):
 
     def createModifier(self):
         """
-        createModifier(self) -> ModifierSpeciesReference
+        createModifier(Reaction self) -> ModifierSpeciesReference
 
         Creates a new ModifierSpeciesReference, adds it to this Reaction's
         list of modifiers and returns it.
@@ -29106,7 +29055,7 @@ class Reaction(SBase):
 
     def createKineticLaw(self):
         """
-        createKineticLaw(self) -> KineticLaw
+        createKineticLaw(Reaction self) -> KineticLaw
 
         Creates a new KineticLaw object, installs it as this Reaction's
         'kineticLaw' subelement, and returns it.
@@ -29120,8 +29069,8 @@ class Reaction(SBase):
 
     def getListOfReactants(self, *args):
         """
-        getListOfReactants(self) -> ListOfSpeciesReferences
-        getListOfReactants(self) -> ListOfSpeciesReferences
+        getListOfReactants(Reaction self) -> ListOfSpeciesReferences
+        getListOfReactants(Reaction self) -> ListOfSpeciesReferences
 
         Returns the list of reactants in this Reaction object.
 
@@ -29133,8 +29082,8 @@ class Reaction(SBase):
 
     def getListOfProducts(self, *args):
         """
-        getListOfProducts(self) -> ListOfSpeciesReferences
-        getListOfProducts(self) -> ListOfSpeciesReferences
+        getListOfProducts(Reaction self) -> ListOfSpeciesReferences
+        getListOfProducts(Reaction self) -> ListOfSpeciesReferences
 
         Returns the list of products in this Reaction object.
 
@@ -29146,8 +29095,8 @@ class Reaction(SBase):
 
     def getListOfModifiers(self, *args):
         """
-        getListOfModifiers(self) -> ListOfSpeciesReferences
-        getListOfModifiers(self) -> ListOfSpeciesReferences
+        getListOfModifiers(Reaction self) -> ListOfSpeciesReferences
+        getListOfModifiers(Reaction self) -> ListOfSpeciesReferences
 
         Returns the list of modifiers in this Reaction object.
 
@@ -29159,10 +29108,10 @@ class Reaction(SBase):
 
     def getReactant(self, *args):
         """
-        getReactant(self, unsigned int n) -> SpeciesReference
-        getReactant(self, unsigned int n) -> SpeciesReference
-        getReactant(self, string species) -> SpeciesReference
-        getReactant(self, string species) -> SpeciesReference
+        getReactant(Reaction self, unsigned int n) -> SpeciesReference
+        getReactant(Reaction self, unsigned int n) -> SpeciesReference
+        getReactant(Reaction self, string species) -> SpeciesReference
+        getReactant(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29203,10 +29152,10 @@ class Reaction(SBase):
 
     def getProduct(self, *args):
         """
-        getProduct(self, unsigned int n) -> SpeciesReference
-        getProduct(self, unsigned int n) -> SpeciesReference
-        getProduct(self, string species) -> SpeciesReference
-        getProduct(self, string species) -> SpeciesReference
+        getProduct(Reaction self, unsigned int n) -> SpeciesReference
+        getProduct(Reaction self, unsigned int n) -> SpeciesReference
+        getProduct(Reaction self, string species) -> SpeciesReference
+        getProduct(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29247,10 +29196,10 @@ class Reaction(SBase):
 
     def getModifier(self, *args):
         """
-        getModifier(self, unsigned int n) -> ModifierSpeciesReference
-        getModifier(self, unsigned int n) -> ModifierSpeciesReference
-        getModifier(self, string species) -> ModifierSpeciesReference
-        getModifier(self, string species) -> ModifierSpeciesReference
+        getModifier(Reaction self, unsigned int n) -> ModifierSpeciesReference
+        getModifier(Reaction self, unsigned int n) -> ModifierSpeciesReference
+        getModifier(Reaction self, string species) -> ModifierSpeciesReference
+        getModifier(Reaction self, string species) -> ModifierSpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29292,7 +29241,7 @@ class Reaction(SBase):
 
     def getNumReactants(self):
         """
-        getNumReactants(self) -> unsigned int
+        getNumReactants(Reaction self) -> unsigned int
 
         Returns the number of reactant species in this Reaction.
 
@@ -29303,7 +29252,7 @@ class Reaction(SBase):
 
     def getNumProducts(self):
         """
-        getNumProducts(self) -> unsigned int
+        getNumProducts(Reaction self) -> unsigned int
 
         Returns the number of product species in this Reaction.
 
@@ -29314,7 +29263,7 @@ class Reaction(SBase):
 
     def getNumModifiers(self):
         """
-        getNumModifiers(self) -> unsigned int
+        getNumModifiers(Reaction self) -> unsigned int
 
         Returns the number of modifier species in this Reaction.
 
@@ -29325,8 +29274,8 @@ class Reaction(SBase):
 
     def removeReactant(self, *args):
         """
-        removeReactant(self, unsigned int n) -> SpeciesReference
-        removeReactant(self, string species) -> SpeciesReference
+        removeReactant(Reaction self, unsigned int n) -> SpeciesReference
+        removeReactant(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29371,8 +29320,8 @@ class Reaction(SBase):
 
     def removeProduct(self, *args):
         """
-        removeProduct(self, unsigned int n) -> SpeciesReference
-        removeProduct(self, string species) -> SpeciesReference
+        removeProduct(Reaction self, unsigned int n) -> SpeciesReference
+        removeProduct(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29417,8 +29366,8 @@ class Reaction(SBase):
 
     def removeModifier(self, *args):
         """
-        removeModifier(self, unsigned int n) -> ModifierSpeciesReference
-        removeModifier(self, string species) -> ModifierSpeciesReference
+        removeModifier(Reaction self, unsigned int n) -> ModifierSpeciesReference
+        removeModifier(Reaction self, string species) -> ModifierSpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29462,12 +29411,12 @@ class Reaction(SBase):
         return _libsbml.Reaction_removeModifier(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(Reaction self)"""
         return _libsbml.Reaction_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(Reaction self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -29478,7 +29427,7 @@ class Reaction(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Reaction self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -29506,9 +29455,9 @@ class Reaction(SBase):
         @link libsbml#SBML_REACTION SBML_REACTION at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -29518,7 +29467,7 @@ class Reaction(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Reaction self) -> string
 
         Returns the XML element name of this object, which for Reaction, is
         always @c 'reaction'.
@@ -29530,7 +29479,7 @@ class Reaction(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Reaction self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         Reaction object have been set.
@@ -29568,11 +29517,6 @@ class ListOfReactions(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -29615,8 +29559,8 @@ class ListOfReactions(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfReactions
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfReactions
+        __init__(ListOfReactions self, unsigned int level, unsigned int version) -> ListOfReactions
+        __init__(ListOfReactions self, SBMLNamespaces sbmlns) -> ListOfReactions
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29694,7 +29638,7 @@ class ListOfReactions(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfReactions
+        clone(ListOfReactions self) -> ListOfReactions
 
         Creates and returns a deep copy of this ListOfReactions object.
 
@@ -29705,7 +29649,7 @@ class ListOfReactions(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfReactions self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Reaction objects, if the list is non-empty).
@@ -29741,7 +29685,7 @@ class ListOfReactions(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfReactions self) -> string
 
         Returns the XML element name of this object
 
@@ -29754,10 +29698,10 @@ class ListOfReactions(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Reaction
-        get(self, unsigned int n) -> Reaction
-        get(self, string sid) -> Reaction
-        get(self, string sid) -> Reaction
+        get(ListOfReactions self, unsigned int n) -> Reaction
+        get(ListOfReactions self, unsigned int n) -> Reaction
+        get(ListOfReactions self, string sid) -> Reaction
+        get(ListOfReactions self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29796,8 +29740,8 @@ class ListOfReactions(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Reaction
-        remove(self, string sid) -> Reaction
+        remove(ListOfReactions self, unsigned int n) -> Reaction
+        remove(ListOfReactions self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -29932,9 +29876,9 @@ class KineticLaw(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> KineticLaw
-        __init__(self, SBMLNamespaces sbmlns) -> KineticLaw
-        __init__(self, KineticLaw orig) -> KineticLaw
+        __init__(KineticLaw self, unsigned int level, unsigned int version) -> KineticLaw
+        __init__(KineticLaw self, SBMLNamespaces sbmlns) -> KineticLaw
+        __init__(KineticLaw self, KineticLaw orig) -> KineticLaw
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -30025,7 +29969,7 @@ class KineticLaw(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> KineticLaw
+        clone(KineticLaw self) -> KineticLaw
 
         Creates and returns a deep copy of this KineticLaw object.
 
@@ -30036,7 +29980,7 @@ class KineticLaw(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(KineticLaw self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -30050,7 +29994,7 @@ class KineticLaw(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(KineticLaw self, string metaid) -> SBase
 
         Returns the first child element it can find with the given @p metaid, or
         @c None if no such object is found.
@@ -30064,7 +30008,7 @@ class KineticLaw(SBase):
 
     def getFormula(self):
         """
-        getFormula(self) -> string
+        getFormula(KineticLaw self) -> string
 
         Returns the mathematical formula for this KineticLaw object and return
         it as as a text string.
@@ -30085,7 +30029,7 @@ class KineticLaw(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(KineticLaw self) -> ASTNode
 
         Returns the mathematical formula for this KineticLaw object and return
         it as as an AST.
@@ -30105,7 +30049,7 @@ class KineticLaw(SBase):
 
     def getTimeUnits(self):
         """
-        getTimeUnits(self) -> string
+        getTimeUnits(KineticLaw self) -> string
 
         (SBML Level 2 Version 1 only) Returns the value of the
         'timeUnits' attribute of this KineticLaw object.
@@ -30123,7 +30067,7 @@ class KineticLaw(SBase):
 
     def getSubstanceUnits(self):
         """
-        getSubstanceUnits(self) -> string
+        getSubstanceUnits(KineticLaw self) -> string
 
         (SBML Level 2 Version 1 only) Returns the value of the
         'substanceUnits' attribute of this KineticLaw object.
@@ -30141,7 +30085,7 @@ class KineticLaw(SBase):
 
     def isSetFormula(self):
         """
-        isSetFormula(self) -> bool
+        isSetFormula(KineticLaw self) -> bool
 
         Predicate returning @c True if this KineticLaw's 'formula' attribute is
         set.
@@ -30164,7 +30108,7 @@ class KineticLaw(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(KineticLaw self) -> bool
 
         Predicate returning @c True if this Kinetic's 'math' subelement is set.
 
@@ -30184,7 +30128,7 @@ class KineticLaw(SBase):
 
     def isSetTimeUnits(self):
         """
-        isSetTimeUnits(self) -> bool
+        isSetTimeUnits(KineticLaw self) -> bool
 
         (SBML Level 2 Version 1 only) Predicate returning @c True if
         this SpeciesReference's 'timeUnits' attribute is set.
@@ -30203,7 +30147,7 @@ class KineticLaw(SBase):
 
     def isSetSubstanceUnits(self):
         """
-        isSetSubstanceUnits(self) -> bool
+        isSetSubstanceUnits(KineticLaw self) -> bool
 
         (SBML Level 2 Version 1 only) Predicate returning @c True if
         this SpeciesReference's 'substanceUnits' attribute is set.
@@ -30222,7 +30166,7 @@ class KineticLaw(SBase):
 
     def setFormula(self, *args):
         """
-        setFormula(self, string formula) -> int
+        setFormula(KineticLaw self, string formula) -> int
 
         Sets the mathematical expression of this KineticLaw instance to the
         given @p formula.
@@ -30249,7 +30193,7 @@ class KineticLaw(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(KineticLaw self, ASTNode math) -> int
 
         Sets the mathematical expression of this KineticLaw instance to a copy
         of the given ASTNode.
@@ -30276,7 +30220,7 @@ class KineticLaw(SBase):
 
     def setTimeUnits(self, *args):
         """
-        setTimeUnits(self, string sid) -> int
+        setTimeUnits(KineticLaw self, string sid) -> int
 
         (SBML Level 2 Version 1 only) Sets the 'timeUnits' attribute
         of this KineticLaw object to a copy of the identifier in @p sid.
@@ -30302,7 +30246,7 @@ class KineticLaw(SBase):
 
     def setSubstanceUnits(self, *args):
         """
-        setSubstanceUnits(self, string sid) -> int
+        setSubstanceUnits(KineticLaw self, string sid) -> int
 
         (SBML Level 2 Version 1 only) Sets the 'substanceUnits'
         attribute of this KineticLaw object to a copy of the identifier given
@@ -30329,7 +30273,7 @@ class KineticLaw(SBase):
 
     def unsetTimeUnits(self):
         """
-        unsetTimeUnits(self) -> int
+        unsetTimeUnits(KineticLaw self) -> int
 
         (SBML Level 2 Version 1 only) Unsets the 'timeUnits'
         attribugte of this KineticLaw object.
@@ -30353,7 +30297,7 @@ class KineticLaw(SBase):
 
     def unsetSubstanceUnits(self):
         """
-        unsetSubstanceUnits(self) -> int
+        unsetSubstanceUnits(KineticLaw self) -> int
 
         (SBML Level 2 Version 1 only) Unsets the 'substanceUnits'
         attribute of this KineticLaw object.
@@ -30377,7 +30321,7 @@ class KineticLaw(SBase):
 
     def addParameter(self, *args):
         """
-        addParameter(self, Parameter p) -> int
+        addParameter(KineticLaw self, Parameter p) -> int
 
         Adds a copy of the given Parameter object to the list of local
         parameters in this KineticLaw.
@@ -30413,7 +30357,7 @@ class KineticLaw(SBase):
 
     def addLocalParameter(self, *args):
         """
-        addLocalParameter(self, LocalParameter p) -> int
+        addLocalParameter(KineticLaw self, LocalParameter p) -> int
 
         Adds a copy of the given LocalParameter object to the list of local
         parameters in this KineticLaw.
@@ -30449,7 +30393,7 @@ class KineticLaw(SBase):
 
     def createParameter(self):
         """
-        createParameter(self) -> Parameter
+        createParameter(KineticLaw self) -> Parameter
 
         Creates a new Parameter object, adds it to this KineticLaw's list of
         local parameters, and returns the Parameter object created.
@@ -30463,7 +30407,7 @@ class KineticLaw(SBase):
 
     def createLocalParameter(self):
         """
-        createLocalParameter(self) -> LocalParameter
+        createLocalParameter(KineticLaw self) -> LocalParameter
 
         Creates a new LocalParameter object, adds it to this KineticLaw's list
         of local parameters, and returns the LocalParameter object created.
@@ -30477,8 +30421,8 @@ class KineticLaw(SBase):
 
     def getListOfParameters(self, *args):
         """
-        getListOfParameters(self) -> ListOfParameters
-        getListOfParameters(self) -> ListOfParameters
+        getListOfParameters(KineticLaw self) -> ListOfParameters
+        getListOfParameters(KineticLaw self) -> ListOfParameters
 
         Returns the list of local parameters in this KineticLaw object.
 
@@ -30489,8 +30433,8 @@ class KineticLaw(SBase):
 
     def getListOfLocalParameters(self, *args):
         """
-        getListOfLocalParameters(self) -> ListOfLocalParameters
-        getListOfLocalParameters(self) -> ListOfLocalParameters
+        getListOfLocalParameters(KineticLaw self) -> ListOfLocalParameters
+        getListOfLocalParameters(KineticLaw self) -> ListOfLocalParameters
 
         Returns the list of local parameters in this KineticLaw object.
 
@@ -30501,10 +30445,10 @@ class KineticLaw(SBase):
 
     def getParameter(self, *args):
         """
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, string sid) -> Parameter
-        getParameter(self, string sid) -> Parameter
+        getParameter(KineticLaw self, unsigned int n) -> Parameter
+        getParameter(KineticLaw self, unsigned int n) -> Parameter
+        getParameter(KineticLaw self, string sid) -> Parameter
+        getParameter(KineticLaw self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -30539,10 +30483,10 @@ class KineticLaw(SBase):
 
     def getLocalParameter(self, *args):
         """
-        getLocalParameter(self, unsigned int n) -> LocalParameter
-        getLocalParameter(self, unsigned int n) -> LocalParameter
-        getLocalParameter(self, string sid) -> LocalParameter
-        getLocalParameter(self, string sid) -> LocalParameter
+        getLocalParameter(KineticLaw self, unsigned int n) -> LocalParameter
+        getLocalParameter(KineticLaw self, unsigned int n) -> LocalParameter
+        getLocalParameter(KineticLaw self, string sid) -> LocalParameter
+        getLocalParameter(KineticLaw self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -30577,7 +30521,7 @@ class KineticLaw(SBase):
 
     def getNumParameters(self):
         """
-        getNumParameters(self) -> unsigned int
+        getNumParameters(KineticLaw self) -> unsigned int
 
         Returns the number of local parameters in this KineticLaw instance.
 
@@ -30588,7 +30532,7 @@ class KineticLaw(SBase):
 
     def getNumLocalParameters(self):
         """
-        getNumLocalParameters(self) -> unsigned int
+        getNumLocalParameters(KineticLaw self) -> unsigned int
 
         Returns the number of local parameters in this KineticLaw instance.
 
@@ -30599,8 +30543,8 @@ class KineticLaw(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(KineticLaw self) -> UnitDefinition
+        getDerivedUnitDefinition(KineticLaw self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this KineticLaw.
@@ -30641,8 +30585,8 @@ class KineticLaw(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(KineticLaw self) -> bool
+        containsUndeclaredUnits(KineticLaw self) -> bool
 
         Predicate returning @c True if the math expression of this KineticLaw
         contains parameters/numbers with undeclared units.
@@ -30663,8 +30607,8 @@ class KineticLaw(SBase):
 
     def removeParameter(self, *args):
         """
-        removeParameter(self, unsigned int n) -> Parameter
-        removeParameter(self, string sid) -> Parameter
+        removeParameter(KineticLaw self, unsigned int n) -> Parameter
+        removeParameter(KineticLaw self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -30707,8 +30651,8 @@ class KineticLaw(SBase):
 
     def removeLocalParameter(self, *args):
         """
-        removeLocalParameter(self, unsigned int n) -> LocalParameter
-        removeLocalParameter(self, string sid) -> LocalParameter
+        removeLocalParameter(KineticLaw self, unsigned int n) -> LocalParameter
+        removeLocalParameter(KineticLaw self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -30750,12 +30694,12 @@ class KineticLaw(SBase):
         return _libsbml.KineticLaw_removeLocalParameter(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(KineticLaw self)"""
         return _libsbml.KineticLaw_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(KineticLaw self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -30766,7 +30710,7 @@ class KineticLaw(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(KineticLaw self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -30794,9 +30738,9 @@ class KineticLaw(SBase):
         @link libsbml#SBML_KINETIC_LAW SBML_KINETIC_LAW at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -30806,7 +30750,7 @@ class KineticLaw(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(KineticLaw self) -> string
 
         Returns the XML element name of this object, which for Species, is
         always @c 'kineticLaw'.
@@ -30818,7 +30762,7 @@ class KineticLaw(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(KineticLaw self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         KineticLaw object have been set.
@@ -30834,7 +30778,7 @@ class KineticLaw(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(KineticLaw self) -> bool
 
         Predicate returning @c True if all the required elements for this
         KineticLaw object have been set.
@@ -30850,7 +30794,7 @@ class KineticLaw(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(KineticLaw self) -> int
 
         Finds this KineticLaw's Reaction parent and calls unsetKineticLaw() on
         it, indirectly deleting itself.
@@ -30869,7 +30813,7 @@ class KineticLaw(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(KineticLaw self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -30899,7 +30843,7 @@ class KineticLaw(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(KineticLaw self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -30929,7 +30873,7 @@ class KineticLaw(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(KineticLaw self, string id, ASTNode function)
 
         @internal
 
@@ -30940,7 +30884,7 @@ class KineticLaw(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(KineticLaw self, string id, ASTNode function)
 
         @internal
 
@@ -30951,7 +30895,7 @@ class KineticLaw(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(KineticLaw self, string id, ASTNode function)
 
         @internal
 
@@ -31013,7 +30957,7 @@ class SimpleSpeciesReference(SBase):
     __del__ = lambda self : None;
     def getId(self):
         """
-        getId(self) -> string
+        getId(SimpleSpeciesReference self) -> string
 
         Returns the value of the 'id' attribute of this SimpleSpeciesReference.
 
@@ -31024,7 +30968,7 @@ class SimpleSpeciesReference(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SimpleSpeciesReference self) -> string
 
         Returns the value of the 'name' attribute of this SimpleSpeciesReference.
 
@@ -31035,7 +30979,7 @@ class SimpleSpeciesReference(SBase):
 
     def getSpecies(self):
         """
-        getSpecies(self) -> string
+        getSpecies(SimpleSpeciesReference self) -> string
 
         Get the value of the 'species' attribute.
 
@@ -31047,7 +30991,7 @@ class SimpleSpeciesReference(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(SimpleSpeciesReference self) -> bool
 
         Predicate returning @c True if this
         SimpleSpeciesReference's 'id' attribute is set.
@@ -31060,7 +31004,7 @@ class SimpleSpeciesReference(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(SimpleSpeciesReference self) -> bool
 
         Predicate returning @c True if this
         SimpleSpeciesReference's 'name' attribute is set.
@@ -31073,7 +31017,7 @@ class SimpleSpeciesReference(SBase):
 
     def isSetSpecies(self):
         """
-        isSetSpecies(self) -> bool
+        isSetSpecies(SimpleSpeciesReference self) -> bool
 
         Predicate returning @c True if this
         SimpleSpeciesReference's 'species' attribute is set.
@@ -31086,7 +31030,7 @@ class SimpleSpeciesReference(SBase):
 
     def setSpecies(self, *args):
         """
-        setSpecies(self, string sid) -> int
+        setSpecies(SimpleSpeciesReference self, string sid) -> int
 
         Sets the 'species' attribute of this SimpleSpeciesReference.
 
@@ -31107,7 +31051,7 @@ class SimpleSpeciesReference(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(SimpleSpeciesReference self, string sid) -> int
 
         Sets the value of the 'id' attribute of this SimpleSpeciesReference.
 
@@ -31148,7 +31092,7 @@ class SimpleSpeciesReference(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(SimpleSpeciesReference self, string name) -> int
 
         Sets the value of the 'name' attribute of this SimpleSpeciesReference.
 
@@ -31169,7 +31113,7 @@ class SimpleSpeciesReference(SBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(SimpleSpeciesReference self) -> int
 
         Unsets the value of the 'id' attribute of this SimpleSpeciesReference.
 
@@ -31185,7 +31129,7 @@ class SimpleSpeciesReference(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(SimpleSpeciesReference self) -> int
 
         Unsets the value of the 'name' attribute of this SimpleSpeciesReference.
 
@@ -31201,7 +31145,7 @@ class SimpleSpeciesReference(SBase):
 
     def unsetSpecies(self):
         """
-        unsetSpecies(self) -> int
+        unsetSpecies(SimpleSpeciesReference self) -> int
 
         Unsets the value of the 'species' attribute of this SimpleSpeciesReference.
 
@@ -31217,7 +31161,7 @@ class SimpleSpeciesReference(SBase):
 
     def isModifier(self):
         """
-        isModifier(self) -> bool
+        isModifier(SimpleSpeciesReference self) -> bool
 
         Predicate returning @c True if this
         is a ModifierSpeciesReference.
@@ -31230,7 +31174,7 @@ class SimpleSpeciesReference(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(SimpleSpeciesReference self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -31477,9 +31421,9 @@ class SpeciesReference(SimpleSpeciesReference):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> SpeciesReference
-        __init__(self, SBMLNamespaces sbmlns) -> SpeciesReference
-        __init__(self, SpeciesReference orig) -> SpeciesReference
+        __init__(SpeciesReference self, unsigned int level, unsigned int version) -> SpeciesReference
+        __init__(SpeciesReference self, SBMLNamespaces sbmlns) -> SpeciesReference
+        __init__(SpeciesReference self, SpeciesReference orig) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -31562,7 +31506,7 @@ class SpeciesReference(SimpleSpeciesReference):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SpeciesReference
+        clone(SpeciesReference self) -> SpeciesReference
 
         Creates and returns a deep copy of this SpeciesReference object.
 
@@ -31573,7 +31517,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(SpeciesReference self)
 
         Initializes the fields of this SpeciesReference object to 'typical'
         default values.
@@ -31599,7 +31543,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getStoichiometry(self):
         """
-        getStoichiometry(self) -> double
+        getStoichiometry(SpeciesReference self) -> double
 
         Get the value of the 'stoichiometry' attribute.
 
@@ -31634,8 +31578,8 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getStoichiometryMath(self, *args):
         """
-        getStoichiometryMath(self) -> StoichiometryMath
-        getStoichiometryMath(self) -> StoichiometryMath
+        getStoichiometryMath(SpeciesReference self) -> StoichiometryMath
+        getStoichiometryMath(SpeciesReference self) -> StoichiometryMath
 
         Get the content of the 'stoichiometryMath' subelement as an ASTNode
         tree.
@@ -31666,7 +31610,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getDenominator(self):
         """
-        getDenominator(self) -> int
+        getDenominator(SpeciesReference self) -> int
 
         Get the value of the 'denominator' attribute, for the case of a
         rational-numbered stoichiometry or a model in SBML Level 1.
@@ -31690,7 +31634,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(SpeciesReference self) -> bool
 
         Get the value of the 'constant' attribute.
 
@@ -31702,7 +31646,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def isSetStoichiometryMath(self):
         """
-        isSetStoichiometryMath(self) -> bool
+        isSetStoichiometryMath(SpeciesReference self) -> bool
 
         Predicate returning @c True if this
         SpeciesReference's 'stoichiometryMath' subelement is set
@@ -31715,7 +31659,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(SpeciesReference self) -> bool
 
         Predicate returning @c True if this
         SpeciesReference's 'constant' attribute is set
@@ -31728,7 +31672,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def isSetStoichiometry(self):
         """
-        isSetStoichiometry(self) -> bool
+        isSetStoichiometry(SpeciesReference self) -> bool
 
         Predicate returning @c True if this
         SpeciesReference's 'stoichiometry' attribute is set.
@@ -31741,7 +31685,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setStoichiometry(self, *args):
         """
-        setStoichiometry(self, double value) -> int
+        setStoichiometry(SpeciesReference self, double value) -> int
 
         Sets the value of the 'stoichiometry' attribute of this
         SpeciesReference.
@@ -31785,7 +31729,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setStoichiometryMath(self, *args):
         """
-        setStoichiometryMath(self, StoichiometryMath math) -> int
+        setStoichiometryMath(SpeciesReference self, StoichiometryMath math) -> int
 
         Sets the 'stoichiometryMath' subelement of this SpeciesReference.
 
@@ -31835,7 +31779,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setDenominator(self, *args):
         """
-        setDenominator(self, int value) -> int
+        setDenominator(SpeciesReference self, int value) -> int
 
         Set the value of the 'denominator' attribute, for the case of a
         rational-numbered stoichiometry or a model in SBML Level 1.
@@ -31864,7 +31808,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool flag) -> int
+        setConstant(SpeciesReference self, bool flag) -> int
 
         Sets the 'constant' attribute of this SpeciesReference to the given boolean
         @p flag.
@@ -31884,7 +31828,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def unsetStoichiometryMath(self):
         """
-        unsetStoichiometryMath(self) -> int
+        unsetStoichiometryMath(SpeciesReference self) -> int
 
         Unsets the 'stoichiometryMath' subelement of this SpeciesReference.
 
@@ -31926,7 +31870,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def unsetStoichiometry(self):
         """
-        unsetStoichiometry(self) -> int
+        unsetStoichiometry(SpeciesReference self) -> int
 
         Unsets the 'stoichiometry' attribute of this SpeciesReference.
 
@@ -31954,7 +31898,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(SpeciesReference self) -> int
 
         Unsets the 'constant' attribute of this SpeciesReference.
 
@@ -31970,7 +31914,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def createStoichiometryMath(self):
         """
-        createStoichiometryMath(self) -> StoichiometryMath
+        createStoichiometryMath(SpeciesReference self) -> StoichiometryMath
 
         Creates a new, empty StoichiometryMath object, adds it to this
         SpeciesReference, and returns it.
@@ -31985,8 +31929,8 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setAnnotation(self, *args):
         """
-        setAnnotation(self, XMLNode annotation) -> int
-        setAnnotation(self, string annotation) -> int
+        setAnnotation(SpeciesReference self, XMLNode annotation) -> int
+        setAnnotation(SpeciesReference self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -32052,8 +31996,8 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def appendAnnotation(self, *args):
         """
-        appendAnnotation(self, XMLNode annotation) -> int
-        appendAnnotation(self, string annotation) -> int
+        appendAnnotation(SpeciesReference self, XMLNode annotation) -> int
+        appendAnnotation(SpeciesReference self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -32116,7 +32060,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SpeciesReference self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -32151,7 +32095,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SpeciesReference self) -> string
 
         Returns the XML element name of this object, which for
         SpeciesReference, is always @c 'speciesReference'.
@@ -32163,7 +32107,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(SpeciesReference self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this SpeciesReference object
@@ -32201,11 +32145,6 @@ class ListOfSpeciesReferences(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -32248,8 +32187,8 @@ class ListOfSpeciesReferences(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfSpeciesReferences
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfSpeciesReferences
+        __init__(ListOfSpeciesReferences self, unsigned int level, unsigned int version) -> ListOfSpeciesReferences
+        __init__(ListOfSpeciesReferences self, SBMLNamespaces sbmlns) -> ListOfSpeciesReferences
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -32327,7 +32266,7 @@ class ListOfSpeciesReferences(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfSpeciesReferences
+        clone(ListOfSpeciesReferences self) -> ListOfSpeciesReferences
 
         Creates and returns a deep copy of this ListOfSpeciesReferences object.
 
@@ -32338,7 +32277,7 @@ class ListOfSpeciesReferences(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfSpeciesReferences self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., SpeciesReference objects, if the list is non-empty).
@@ -32374,7 +32313,7 @@ class ListOfSpeciesReferences(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfSpeciesReferences self) -> string
 
         Returns the XML element name of this object.
 
@@ -32388,10 +32327,10 @@ class ListOfSpeciesReferences(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> SimpleSpeciesReference
-        get(self, unsigned int n) -> SimpleSpeciesReference
-        get(self, string sid) -> SimpleSpeciesReference
-        get(self, string sid) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, unsigned int n) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, unsigned int n) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, string sid) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, string sid) -> SimpleSpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -32433,8 +32372,8 @@ class ListOfSpeciesReferences(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> SimpleSpeciesReference
-        remove(self, string sid) -> SimpleSpeciesReference
+        remove(ListOfSpeciesReferences self, unsigned int n) -> SimpleSpeciesReference
+        remove(ListOfSpeciesReferences self, string sid) -> SimpleSpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -32516,8 +32455,8 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ModifierSpeciesReference
-        __init__(self, SBMLNamespaces sbmlns) -> ModifierSpeciesReference
+        __init__(ModifierSpeciesReference self, unsigned int level, unsigned int version) -> ModifierSpeciesReference
+        __init__(ModifierSpeciesReference self, SBMLNamespaces sbmlns) -> ModifierSpeciesReference
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -32593,7 +32532,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> ModifierSpeciesReference
+        clone(ModifierSpeciesReference self) -> ModifierSpeciesReference
 
         Creates and returns a deep copy of this ModifierSpeciesReference object.
 
@@ -32604,7 +32543,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ModifierSpeciesReference self) -> int
 
         Returns the libSBML type code for this %SBML object.
 
@@ -32632,9 +32571,9 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
         @link libsbml#SBML_MODIFIER_SPECIES_REFERENCE SBML_MODIFIER_SPECIES_REFERENCE at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -32644,7 +32583,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ModifierSpeciesReference self) -> string
 
         Returns the XML element name of this object, which for Species, is
         always @c 'modifierSpeciesReference'.
@@ -32656,7 +32595,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(ModifierSpeciesReference self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this ModifierSpeciesReference object
@@ -32863,9 +32802,9 @@ class Event(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Event
-        __init__(self, SBMLNamespaces sbmlns) -> Event
-        __init__(self, Event orig) -> Event
+        __init__(Event self, unsigned int level, unsigned int version) -> Event
+        __init__(Event self, SBMLNamespaces sbmlns) -> Event
+        __init__(Event self, Event orig) -> Event
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -32956,7 +32895,7 @@ class Event(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Event
+        clone(Event self) -> Event
 
         Creates and returns a deep copy of this Event object.
 
@@ -32967,7 +32906,7 @@ class Event(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Event self)
 
         Initializes the fields of this Event object to 'typical' default
         values.
@@ -32984,7 +32923,7 @@ class Event(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(Event self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -32998,7 +32937,7 @@ class Event(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(Event self, string metaid) -> SBase
 
         Returns the first child element it can find with the given @p metaid, or
         @c None if no such object is found.
@@ -33012,7 +32951,7 @@ class Event(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Event self) -> string
 
         Returns the value of the 'id' attribute of this Event.
 
@@ -33023,7 +32962,7 @@ class Event(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Event self) -> string
 
         Returns the value of the 'name' attribute of this Event.
 
@@ -33034,8 +32973,8 @@ class Event(SBase):
 
     def getTrigger(self, *args):
         """
-        getTrigger(self) -> Trigger
-        getTrigger(self) -> Trigger
+        getTrigger(Event self) -> Trigger
+        getTrigger(Event self) -> Trigger
 
         Get the event trigger portion of this Event.
 
@@ -33046,8 +32985,8 @@ class Event(SBase):
 
     def getDelay(self, *args):
         """
-        getDelay(self) -> Delay
-        getDelay(self) -> Delay
+        getDelay(Event self) -> Delay
+        getDelay(Event self) -> Delay
 
         Get the assignment delay portion of this Event, if there is one.
 
@@ -33059,8 +32998,8 @@ class Event(SBase):
 
     def getPriority(self, *args):
         """
-        getPriority(self) -> Priority
-        getPriority(self) -> Priority
+        getPriority(Event self) -> Priority
+        getPriority(Event self) -> Priority
 
         (SBML Level 3 only) Get the event priority portion of this
         Event.
@@ -33075,7 +33014,7 @@ class Event(SBase):
 
     def getTimeUnits(self):
         """
-        getTimeUnits(self) -> string
+        getTimeUnits(Event self) -> string
 
         Get the value of the 'timeUnits' attribute of this Event, if it has one.
 
@@ -33096,7 +33035,7 @@ class Event(SBase):
 
     def getUseValuesFromTriggerTime(self):
         """
-        getUseValuesFromTriggerTime(self) -> bool
+        getUseValuesFromTriggerTime(Event self) -> bool
 
         Get the value of the 'useValuesFromTriggerTime' attribute of this Event.
 
@@ -33144,7 +33083,7 @@ class Event(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Event self) -> bool
 
         Predicate returning @c True if this
         Event's 'id' attribute is set.
@@ -33157,7 +33096,7 @@ class Event(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Event self) -> bool
 
         Predicate returning @c True if this
         Event's 'name' attribute is set.
@@ -33170,7 +33109,7 @@ class Event(SBase):
 
     def isSetTrigger(self):
         """
-        isSetTrigger(self) -> bool
+        isSetTrigger(Event self) -> bool
 
         Predicate for testing whether the trigger for this Event is set.
 
@@ -33182,7 +33121,7 @@ class Event(SBase):
 
     def isSetDelay(self):
         """
-        isSetDelay(self) -> bool
+        isSetDelay(Event self) -> bool
 
         Predicate for testing whether the delay for this Event is set.
 
@@ -33194,7 +33133,7 @@ class Event(SBase):
 
     def isSetPriority(self):
         """
-        isSetPriority(self) -> bool
+        isSetPriority(Event self) -> bool
 
         (SBML Level 3 only) Predicate for testing whether the priority
         for this Event is set.
@@ -33210,7 +33149,7 @@ class Event(SBase):
 
     def isSetTimeUnits(self):
         """
-        isSetTimeUnits(self) -> bool
+        isSetTimeUnits(Event self) -> bool
 
         Predicate for testing whether the 'timeUnits' attribute of this Event
         is set.
@@ -33233,7 +33172,7 @@ class Event(SBase):
 
     def isSetUseValuesFromTriggerTime(self):
         """
-        isSetUseValuesFromTriggerTime(self) -> bool
+        isSetUseValuesFromTriggerTime(Event self) -> bool
 
         Predicate for testing whether the 'useValuesFromTriggerTime' attribute of this Event
         is set.
@@ -33250,7 +33189,7 @@ class Event(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Event self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Event.
 
@@ -33290,7 +33229,7 @@ class Event(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Event self, string name) -> int
 
         Sets the value of the 'name' attribute of this Event.
 
@@ -33310,7 +33249,7 @@ class Event(SBase):
 
     def setTrigger(self, *args):
         """
-        setTrigger(self, Trigger trigger) -> int
+        setTrigger(Event self, Trigger trigger) -> int
 
         Sets the trigger definition of this Event to a copy of the given
         Trigger object instance.
@@ -33330,7 +33269,7 @@ class Event(SBase):
 
     def setDelay(self, *args):
         """
-        setDelay(self, Delay delay) -> int
+        setDelay(Event self, Delay delay) -> int
 
         Sets the delay definition of this Event to a copy of the given Delay
         object instance.
@@ -33350,7 +33289,7 @@ class Event(SBase):
 
     def setPriority(self, *args):
         """
-        setPriority(self, Priority priority) -> int
+        setPriority(Event self, Priority priority) -> int
 
         (SBML Level 3 only) Sets the priority definition of this Event
         to a copy of the given Priority object instance.
@@ -33374,7 +33313,7 @@ class Event(SBase):
 
     def setTimeUnits(self, *args):
         """
-        setTimeUnits(self, string sid) -> int
+        setTimeUnits(Event self, string sid) -> int
 
         Sets the 'timeUnits' attribute of this Event to a copy of @p sid.
 
@@ -33403,7 +33342,7 @@ class Event(SBase):
 
     def setUseValuesFromTriggerTime(self, *args):
         """
-        setUseValuesFromTriggerTime(self, bool value) -> int
+        setUseValuesFromTriggerTime(Event self, bool value) -> int
 
         Sets the 'useValuesFromTriggerTime' attribute of this Event to a @p value.
 
@@ -33458,7 +33397,7 @@ class Event(SBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(Event self) -> int
 
         Unsets the value of the 'id' attribute of this Event.
 
@@ -33474,7 +33413,7 @@ class Event(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Event self) -> int
 
         Unsets the value of the 'name' attribute of this Event.
 
@@ -33490,7 +33429,7 @@ class Event(SBase):
 
     def unsetUseValuesFromTriggerTime(self):
         """
-        unsetUseValuesFromTriggerTime(self) -> int
+        unsetUseValuesFromTriggerTime(Event self) -> int
 
         Unsets the value of the 'useValuesFromTriggerTime' attribute of this Event.
 
@@ -33543,7 +33482,7 @@ class Event(SBase):
 
     def unsetDelay(self):
         """
-        unsetDelay(self) -> int
+        unsetDelay(Event self) -> int
 
         Unsets the Delay of this Event.
 
@@ -33559,7 +33498,7 @@ class Event(SBase):
 
     def unsetPriority(self):
         """
-        unsetPriority(self) -> int
+        unsetPriority(Event self) -> int
 
         (SBML Level 3 only) Unsets the Priority of this Event.
 
@@ -33578,7 +33517,7 @@ class Event(SBase):
 
     def unsetTrigger(self):
         """
-        unsetTrigger(self) -> int
+        unsetTrigger(Event self) -> int
 
         Unsets the Trigger of this Event.
 
@@ -33597,7 +33536,7 @@ class Event(SBase):
 
     def unsetTimeUnits(self):
         """
-        unsetTimeUnits(self) -> int
+        unsetTimeUnits(Event self) -> int
 
         Unsets the 'timeUnits' attribute of this Event.
 
@@ -33624,7 +33563,7 @@ class Event(SBase):
 
     def addEventAssignment(self, *args):
         """
-        addEventAssignment(self, EventAssignment ea) -> int
+        addEventAssignment(Event self, EventAssignment ea) -> int
 
         Appends a copy of the given EventAssignment to this Event.
 
@@ -33658,7 +33597,7 @@ class Event(SBase):
 
     def createEventAssignment(self):
         """
-        createEventAssignment(self) -> EventAssignment
+        createEventAssignment(Event self) -> EventAssignment
 
         Creates a new, empty EventAssignment, adds it to this Event's list of
         event assignments and returns the EventAssignment.
@@ -33672,7 +33611,7 @@ class Event(SBase):
 
     def createTrigger(self):
         """
-        createTrigger(self) -> Trigger
+        createTrigger(Event self) -> Trigger
 
         Creates a new, empty Trigger, adds it to this Event and 
         returns the Trigger.
@@ -33684,7 +33623,7 @@ class Event(SBase):
 
     def createDelay(self):
         """
-        createDelay(self) -> Delay
+        createDelay(Event self) -> Delay
 
         Creates a new, empty Delay, adds it to this Event and 
         returns the Delay.
@@ -33696,7 +33635,7 @@ class Event(SBase):
 
     def createPriority(self):
         """
-        createPriority(self) -> Priority
+        createPriority(Event self) -> Priority
 
         (SBML Level 3 only) Creates a new, empty Priority, adds it to this
         Event and returns the Priority.
@@ -33711,8 +33650,8 @@ class Event(SBase):
 
     def getListOfEventAssignments(self, *args):
         """
-        getListOfEventAssignments(self) -> ListOfEventAssignments
-        getListOfEventAssignments(self) -> ListOfEventAssignments
+        getListOfEventAssignments(Event self) -> ListOfEventAssignments
+        getListOfEventAssignments(Event self) -> ListOfEventAssignments
 
         Returns the list of event assignments for this Event.
 
@@ -33723,10 +33662,10 @@ class Event(SBase):
 
     def getEventAssignment(self, *args):
         """
-        getEventAssignment(self, unsigned int n) -> EventAssignment
-        getEventAssignment(self, unsigned int n) -> EventAssignment
-        getEventAssignment(self, string variable) -> EventAssignment
-        getEventAssignment(self, string variable) -> EventAssignment
+        getEventAssignment(Event self, unsigned int n) -> EventAssignment
+        getEventAssignment(Event self, unsigned int n) -> EventAssignment
+        getEventAssignment(Event self, string variable) -> EventAssignment
+        getEventAssignment(Event self, string variable) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -33761,7 +33700,7 @@ class Event(SBase):
 
     def getNumEventAssignments(self):
         """
-        getNumEventAssignments(self) -> unsigned int
+        getNumEventAssignments(Event self) -> unsigned int
 
         Returns the number of EventAssignment objects attached to this
         Event.
@@ -33773,8 +33712,8 @@ class Event(SBase):
 
     def removeEventAssignment(self, *args):
         """
-        removeEventAssignment(self, unsigned int n) -> EventAssignment
-        removeEventAssignment(self, string variable) -> EventAssignment
+        removeEventAssignment(Event self, unsigned int n) -> EventAssignment
+        removeEventAssignment(Event self, string variable) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -33819,12 +33758,12 @@ class Event(SBase):
         return _libsbml.Event_removeEventAssignment(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(Event self)"""
         return _libsbml.Event_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(Event self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -33835,7 +33774,7 @@ class Event(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Event self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -33863,9 +33802,9 @@ class Event(SBase):
         @link libsbml#SBML_EVENT SBML_EVENT at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -33875,7 +33814,7 @@ class Event(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Event self) -> string
 
         Returns the XML element name of this object, which for Event, is
         always @c 'event'.
@@ -33887,7 +33826,7 @@ class Event(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Event self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         Event object have been set.
@@ -33903,7 +33842,7 @@ class Event(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Event self) -> bool
 
         Predicate returning @c True if all the required elements for this Event
         object have been set.
@@ -33937,11 +33876,6 @@ class ListOfEvents(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -33984,8 +33918,8 @@ class ListOfEvents(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfEvents
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfEvents
+        __init__(ListOfEvents self, unsigned int level, unsigned int version) -> ListOfEvents
+        __init__(ListOfEvents self, SBMLNamespaces sbmlns) -> ListOfEvents
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -34063,7 +33997,7 @@ class ListOfEvents(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfEvents
+        clone(ListOfEvents self) -> ListOfEvents
 
         Creates and returns a deep copy of this ListOfEvents object.
 
@@ -34074,7 +34008,7 @@ class ListOfEvents(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfEvents self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Event objects, if the list is non-empty).
@@ -34110,7 +34044,7 @@ class ListOfEvents(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfEvents self) -> string
 
         Returns the XML element name of this object.
 
@@ -34123,10 +34057,10 @@ class ListOfEvents(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Event
-        get(self, unsigned int n) -> Event
-        get(self, string sid) -> Event
-        get(self, string sid) -> Event
+        get(ListOfEvents self, unsigned int n) -> Event
+        get(ListOfEvents self, unsigned int n) -> Event
+        get(ListOfEvents self, string sid) -> Event
+        get(ListOfEvents self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -34168,8 +34102,8 @@ class ListOfEvents(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Event
-        remove(self, string sid) -> Event
+        remove(ListOfEvents self, unsigned int n) -> Event
+        remove(ListOfEvents self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -34367,9 +34301,9 @@ class EventAssignment(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> EventAssignment
-        __init__(self, SBMLNamespaces sbmlns) -> EventAssignment
-        __init__(self, EventAssignment orig) -> EventAssignment
+        __init__(EventAssignment self, unsigned int level, unsigned int version) -> EventAssignment
+        __init__(EventAssignment self, SBMLNamespaces sbmlns) -> EventAssignment
+        __init__(EventAssignment self, EventAssignment orig) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -34460,7 +34394,7 @@ class EventAssignment(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> EventAssignment
+        clone(EventAssignment self) -> EventAssignment
 
         Creates and returns a deep copy of this EventAssignment object.
 
@@ -34471,7 +34405,7 @@ class EventAssignment(SBase):
 
     def getVariable(self):
         """
-        getVariable(self) -> string
+        getVariable(EventAssignment self) -> string
 
         Get the value of this EventAssignment's 'variable' attribute.
 
@@ -34483,7 +34417,7 @@ class EventAssignment(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(EventAssignment self) -> ASTNode
 
         Get the mathematical expression in this EventAssignment's 'math'
         subelement.
@@ -34496,7 +34430,7 @@ class EventAssignment(SBase):
 
     def isSetVariable(self):
         """
-        isSetVariable(self) -> bool
+        isSetVariable(EventAssignment self) -> bool
 
         Predicate for testing whether the attribute 'variable' of this
         EventAssignment is set.
@@ -34509,7 +34443,7 @@ class EventAssignment(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(EventAssignment self) -> bool
 
         Predicate for testing whether the 'math' subelement of this
         EventAssignment is set.
@@ -34522,7 +34456,7 @@ class EventAssignment(SBase):
 
     def setVariable(self, *args):
         """
-        setVariable(self, string sid) -> int
+        setVariable(EventAssignment self, string sid) -> int
 
         Sets the attribute 'variable' of this EventAssignment to a copy of
         the given identifier string.
@@ -34542,7 +34476,7 @@ class EventAssignment(SBase):
 
     def unsetVariable(self):
         """
-        unsetVariable(self) -> int
+        unsetVariable(EventAssignment self) -> int
 
         Unsets the attribute 'variable' of this EventAssignment.
 
@@ -34558,7 +34492,7 @@ class EventAssignment(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(EventAssignment self, ASTNode math) -> int
 
         Sets the 'math' subelement of this EventAssignment to a copy of the
         given ASTNode.
@@ -34578,8 +34512,8 @@ class EventAssignment(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(EventAssignment self) -> UnitDefinition
+        getDerivedUnitDefinition(EventAssignment self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this EventAssignment.
@@ -34620,8 +34554,8 @@ class EventAssignment(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(EventAssignment self) -> bool
+        containsUndeclaredUnits(EventAssignment self) -> bool
 
         Predicate returning @c True if the math expression of this
         EventAssignment contains literal numbers or parameters with undeclared
@@ -34656,7 +34590,7 @@ class EventAssignment(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(EventAssignment self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -34684,9 +34618,9 @@ class EventAssignment(SBase):
         @link libsbml#SBML_EVENT_ASSIGNMENT SBML_EVENT_ASSIGNMENT at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -34696,7 +34630,7 @@ class EventAssignment(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(EventAssignment self) -> string
 
         Returns the XML element name of this object, which for
         EventAssignment, is always @c 'eventAssignment'.
@@ -34708,7 +34642,7 @@ class EventAssignment(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(EventAssignment self) -> bool
 
         Predicate returning @c True if all the required attributes for this
         EventAssignment object have been set.
@@ -34724,7 +34658,7 @@ class EventAssignment(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(EventAssignment self) -> bool
 
         Predicate returning @c True if all the required elements for this
         EventAssignment object have been set.
@@ -34740,7 +34674,7 @@ class EventAssignment(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(EventAssignment self) -> string
 
         @internal
 
@@ -34751,7 +34685,7 @@ class EventAssignment(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(EventAssignment self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -34781,7 +34715,7 @@ class EventAssignment(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(EventAssignment self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -34811,7 +34745,7 @@ class EventAssignment(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(EventAssignment self, string id, ASTNode function)
 
         @internal
 
@@ -34822,7 +34756,7 @@ class EventAssignment(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(EventAssignment self, string id, ASTNode function)
 
         @internal
 
@@ -34833,7 +34767,7 @@ class EventAssignment(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(EventAssignment self, string id, ASTNode function)
 
         @internal
 
@@ -34864,11 +34798,6 @@ class ListOfEventAssignments(ListOf):
     defined by the SBML specification, such as 'metaid' attributes and
     annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-    @htmlinclude listof-illustration.html
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -34911,8 +34840,8 @@ class ListOfEventAssignments(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfEventAssignments
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfEventAssignments
+        __init__(ListOfEventAssignments self, unsigned int level, unsigned int version) -> ListOfEventAssignments
+        __init__(ListOfEventAssignments self, SBMLNamespaces sbmlns) -> ListOfEventAssignments
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -34990,7 +34919,7 @@ class ListOfEventAssignments(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfEventAssignments
+        clone(ListOfEventAssignments self) -> ListOfEventAssignments
 
         Creates and returns a deep copy of this ListOfEventAssignments object.
 
@@ -35001,7 +34930,7 @@ class ListOfEventAssignments(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfEventAssignments self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., EventAssignment objects, if the list is non-empty).
@@ -35037,7 +34966,7 @@ class ListOfEventAssignments(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfEventAssignments self) -> string
 
         Returns the XML element name of this object.
 
@@ -35051,10 +34980,10 @@ class ListOfEventAssignments(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> EventAssignment
-        get(self, unsigned int n) -> EventAssignment
-        get(self, string sid) -> EventAssignment
-        get(self, string sid) -> EventAssignment
+        get(ListOfEventAssignments self, unsigned int n) -> EventAssignment
+        get(ListOfEventAssignments self, unsigned int n) -> EventAssignment
+        get(ListOfEventAssignments self, string sid) -> EventAssignment
+        get(ListOfEventAssignments self, string sid) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -35096,8 +35025,8 @@ class ListOfEventAssignments(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> EventAssignment
-        remove(self, string sid) -> EventAssignment
+        remove(ListOfEventAssignments self, unsigned int n) -> EventAssignment
+        remove(ListOfEventAssignments self, string sid) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -35139,7 +35068,7 @@ class ListOfEventAssignments(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfEventAssignments self, string id) -> SBase
 
         Returns the first child element found that has the given @p id in the
         model-wide SId namespace, or @c None if no such object is found.
@@ -35272,9 +35201,9 @@ class Trigger(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Trigger
-        __init__(self, SBMLNamespaces sbmlns) -> Trigger
-        __init__(self, Trigger orig) -> Trigger
+        __init__(Trigger self, unsigned int level, unsigned int version) -> Trigger
+        __init__(Trigger self, SBMLNamespaces sbmlns) -> Trigger
+        __init__(Trigger self, Trigger orig) -> Trigger
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -35365,7 +35294,7 @@ class Trigger(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Trigger
+        clone(Trigger self) -> Trigger
 
         Creates and returns a deep copy of this Trigger object.
 
@@ -35376,7 +35305,7 @@ class Trigger(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Trigger self) -> ASTNode
 
         Get the mathematical formula for the trigger and return it
         as an AST.
@@ -35388,7 +35317,7 @@ class Trigger(SBase):
 
     def getInitialValue(self):
         """
-        getInitialValue(self) -> bool
+        getInitialValue(Trigger self) -> bool
 
         (SBML Level 3 only) Get the value of the 'initialValue' attribute
         of this Trigger.
@@ -35404,7 +35333,7 @@ class Trigger(SBase):
 
     def getPersistent(self):
         """
-        getPersistent(self) -> bool
+        getPersistent(Trigger self) -> bool
 
         (SBML Level 3 only) Get the value of the 'persistent' attribute
         of this Trigger.
@@ -35420,7 +35349,7 @@ class Trigger(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Trigger self) -> bool
 
         Predicate to test whether the math for this trigger is set.
 
@@ -35432,7 +35361,7 @@ class Trigger(SBase):
 
     def isSetInitialValue(self):
         """
-        isSetInitialValue(self) -> bool
+        isSetInitialValue(Trigger self) -> bool
 
         (SBML Level 3 only) Predicate to test whether the 'initialValue'
         attribute for this trigger is set.
@@ -35448,7 +35377,7 @@ class Trigger(SBase):
 
     def isSetPersistent(self):
         """
-        isSetPersistent(self) -> bool
+        isSetPersistent(Trigger self) -> bool
 
         (SBML Level 3 only) Predicate to test whether the 'persistent'
         attribute for this trigger is set.
@@ -35464,7 +35393,7 @@ class Trigger(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Trigger self, ASTNode math) -> int
 
         Sets the trigger expression of this Trigger instance to a copy of the given
         ASTNode.
@@ -35483,7 +35412,7 @@ class Trigger(SBase):
 
     def setInitialValue(self, *args):
         """
-        setInitialValue(self, bool initialValue) -> int
+        setInitialValue(Trigger self, bool initialValue) -> int
 
         (SBML Level 3 only) Sets the 'initialValue' attribute of this Trigger instance.
 
@@ -35504,7 +35433,7 @@ class Trigger(SBase):
 
     def setPersistent(self, *args):
         """
-        setPersistent(self, bool persistent) -> int
+        setPersistent(Trigger self, bool persistent) -> int
 
         (SBML Level 3 only) Sets the 'persistent' attribute of this Trigger instance.
 
@@ -35525,7 +35454,7 @@ class Trigger(SBase):
 
     def unsetInitialValue(self):
         """
-        unsetInitialValue(self) -> int
+        unsetInitialValue(Trigger self) -> int
 
         (SBML Level 3 only) Unsets the 'initialValue' attribute of this 
         Trigger instance.
@@ -35545,7 +35474,7 @@ class Trigger(SBase):
 
     def unsetPersistent(self):
         """
-        unsetPersistent(self) -> int
+        unsetPersistent(Trigger self) -> int
 
         (SBML Level 3 only) Unsets the 'persistent' attribute of this 
         Trigger instance.
@@ -35565,7 +35494,7 @@ class Trigger(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Trigger self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -35593,9 +35522,9 @@ class Trigger(SBase):
         @link libsbml#SBML_TRIGGER SBML_TRIGGER at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -35605,7 +35534,7 @@ class Trigger(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Trigger self) -> string
 
         Returns the XML element name of this object, which for Trigger, is
         always @c 'trigger'.
@@ -35617,7 +35546,7 @@ class Trigger(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Trigger self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -35647,7 +35576,7 @@ class Trigger(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Trigger self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -35677,7 +35606,7 @@ class Trigger(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Trigger self, string id, ASTNode function)
 
         @internal
 
@@ -35688,7 +35617,7 @@ class Trigger(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Trigger self) -> bool
 
         Predicate returning @c True if
         all the required elements for this Trigger object
@@ -35705,7 +35634,7 @@ class Trigger(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Trigger self) -> bool
 
         Predicate returning @c True if
         all the required attributes for this Trigger object
@@ -35723,7 +35652,7 @@ class Trigger(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Trigger self) -> int
 
         Finds this Trigger's Event parent and calls unsetTrigger() on it, indirectly deleting itself.  Overridden from the SBase function since the parent is not a ListOf.
 
@@ -35874,9 +35803,9 @@ class Delay(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Delay
-        __init__(self, SBMLNamespaces sbmlns) -> Delay
-        __init__(self, Delay orig) -> Delay
+        __init__(Delay self, unsigned int level, unsigned int version) -> Delay
+        __init__(Delay self, SBMLNamespaces sbmlns) -> Delay
+        __init__(Delay self, Delay orig) -> Delay
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -35967,7 +35896,7 @@ class Delay(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Delay
+        clone(Delay self) -> Delay
 
         Creates and returns a deep copy of this Delay object.
 
@@ -35978,7 +35907,7 @@ class Delay(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Delay self) -> ASTNode
 
         Get the mathematical formula for the delay and return it
         as an AST.
@@ -35990,7 +35919,7 @@ class Delay(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Delay self) -> bool
 
         Predicate to test whether the formula for this delay is set.
 
@@ -36002,7 +35931,7 @@ class Delay(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Delay self, ASTNode math) -> int
 
         Sets the delay expression of this Delay instance to a copy of the given
         ASTNode.
@@ -36021,8 +35950,8 @@ class Delay(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Delay self) -> UnitDefinition
+        getDerivedUnitDefinition(Delay self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units
         of measurement assumed for the 'math' expression of this Delay.
@@ -36067,8 +35996,8 @@ class Delay(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(Delay self) -> bool
+        containsUndeclaredUnits(Delay self) -> bool
 
         Predicate returning @c True if the 'math' expression in this Delay
         instance contains parameters with undeclared units or literal numbers.
@@ -36105,7 +36034,7 @@ class Delay(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Delay self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -36133,9 +36062,9 @@ class Delay(SBase):
         @link libsbml#SBML_DELAY SBML_DELAY at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -36145,7 +36074,7 @@ class Delay(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Delay self) -> string
 
         Returns the XML element name of this object, which for Delay, is
         always @c 'delay'.
@@ -36159,7 +36088,7 @@ class Delay(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Delay self) -> bool
 
         Predicate returning @c True if
         all the required elements for this Delay object
@@ -36176,7 +36105,7 @@ class Delay(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Delay self) -> int
 
         Finds this Delay's Event parent and calls unsetDelay() on it, indirectly
         deleting itself.
@@ -36195,7 +36124,7 @@ class Delay(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Delay self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -36225,7 +36154,7 @@ class Delay(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Delay self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -36255,7 +36184,7 @@ class Delay(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Delay self, string id, ASTNode function)
 
         @internal
 
@@ -36408,9 +36337,9 @@ class Priority(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Priority
-        __init__(self, SBMLNamespaces sbmlns) -> Priority
-        __init__(self, Priority orig) -> Priority
+        __init__(Priority self, unsigned int level, unsigned int version) -> Priority
+        __init__(Priority self, SBMLNamespaces sbmlns) -> Priority
+        __init__(Priority self, Priority orig) -> Priority
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -36508,7 +36437,7 @@ class Priority(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Priority
+        clone(Priority self) -> Priority
 
         Creates and returns a deep copy of this Priority object.
 
@@ -36519,7 +36448,7 @@ class Priority(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Priority self) -> ASTNode
 
         Get the mathematical formula for the priority and return it
         as an AST.
@@ -36531,7 +36460,7 @@ class Priority(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Priority self) -> bool
 
         Predicate to test whether the formula for this delay is set.
 
@@ -36543,7 +36472,7 @@ class Priority(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Priority self, ASTNode math) -> int
 
         Sets the math expression of this Priority instance to a copy of the given
         ASTNode.
@@ -36562,7 +36491,7 @@ class Priority(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Priority self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -36589,9 +36518,9 @@ class Priority(SBase):
         @return the SBML type code for this object:
         @link libsbml#SBML_PRIORITY SBML_PRIORITY at endlink (default).
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -36601,7 +36530,7 @@ class Priority(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Priority self) -> string
 
         Returns the XML element name of this object, which for Priority, is
         always @c 'priority'.
@@ -36615,7 +36544,7 @@ class Priority(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Priority self) -> bool
 
         Predicate returning @c True if all the required elements for this
         Priority object have been set.
@@ -36631,7 +36560,7 @@ class Priority(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Priority self) -> int
 
         Finds this Priority's Event parent and calls unsetPriority() on it,
         indirectly deleting itself.
@@ -36650,7 +36579,7 @@ class Priority(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Priority self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -36680,7 +36609,7 @@ class Priority(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Priority self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -36710,7 +36639,7 @@ class Priority(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Priority self, string id, ASTNode function)
 
         @internal
 
@@ -37565,9 +37494,22 @@ class SBO(_object):
 
     if _newclass:checkTerm = staticmethod(checkTerm)
     __swig_getmethods__["checkTerm"] = lambda x: checkTerm
+    def getParentBranch(*args):
+        """
+        getParentBranch(unsigned int term) -> unsigned int
+
+        @internal
+
+        @internal
+
+        """
+        return _libsbml.SBO_getParentBranch(*args)
+
+    if _newclass:getParentBranch = staticmethod(getParentBranch)
+    __swig_getmethods__["getParentBranch"] = lambda x: getParentBranch
     def __init__(self): 
         """
-        __init__(self) -> SBO
+        __init__(SBO self) -> SBO
 
         @internal
 
@@ -38206,6 +38148,17 @@ def SBO_checkTerm(*args):
     """
   return _libsbml.SBO_checkTerm(*args)
 
+def SBO_getParentBranch(*args):
+  """
+    SBO_getParentBranch(unsigned int term) -> unsigned int
+
+    @internal
+
+    @internal
+
+    """
+  return _libsbml.SBO_getParentBranch(*args)
+
 class SyntaxChecker(_object):
     """
     @sbmlpackage{core}
@@ -38430,7 +38383,7 @@ class SyntaxChecker(_object):
     __swig_getmethods__["isValidUnitSId"] = lambda x: isValidUnitSId
     def hasExpectedXHTMLSyntax(*args):
         """
-        hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns = None) -> bool
+        hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns=None) -> bool
         hasExpectedXHTMLSyntax(XMLNode xhtml) -> bool
 
         Returns @c True or @c False depending on whether the given XMLNode
@@ -38561,7 +38514,7 @@ class SyntaxChecker(_object):
     __swig_getmethods__["isValidInternalUnitSId"] = lambda x: isValidInternalUnitSId
     def __init__(self): 
         """
-        __init__(self) -> SyntaxChecker
+        __init__(SyntaxChecker self) -> SyntaxChecker
 
         @internal
 
@@ -38771,7 +38724,7 @@ def SyntaxChecker_isValidUnitSId(*args):
 
 def SyntaxChecker_hasExpectedXHTMLSyntax(*args):
   """
-    hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns = None) -> bool
+    hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns=None) -> bool
     SyntaxChecker_hasExpectedXHTMLSyntax(XMLNode xhtml) -> bool
 
     Returns @c True or @c False depending on whether the given XMLNode
@@ -39037,9 +38990,9 @@ class StoichiometryMath(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> StoichiometryMath
-        __init__(self, SBMLNamespaces sbmlns) -> StoichiometryMath
-        __init__(self, StoichiometryMath orig) -> StoichiometryMath
+        __init__(StoichiometryMath self, unsigned int level, unsigned int version) -> StoichiometryMath
+        __init__(StoichiometryMath self, SBMLNamespaces sbmlns) -> StoichiometryMath
+        __init__(StoichiometryMath self, StoichiometryMath orig) -> StoichiometryMath
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -39146,7 +39099,7 @@ class StoichiometryMath(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> StoichiometryMath
+        clone(StoichiometryMath self) -> StoichiometryMath
 
         Creates and returns a deep copy of this StoichiometryMath object.
 
@@ -39157,7 +39110,7 @@ class StoichiometryMath(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(StoichiometryMath self) -> ASTNode
 
         Retrieves the mathematical formula within this StoichiometryMath and
         return it as an AST.
@@ -39177,7 +39130,7 @@ class StoichiometryMath(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(StoichiometryMath self) -> bool
 
         Predicate to test whether the math for this StoichiometryMath object
         is set.
@@ -39198,7 +39151,7 @@ class StoichiometryMath(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(StoichiometryMath self, ASTNode math) -> int
 
         Sets the 'math' expression of this StoichiometryMath instance to a
         copy of the given ASTNode.
@@ -39225,8 +39178,8 @@ class StoichiometryMath(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(StoichiometryMath self) -> UnitDefinition
+        getDerivedUnitDefinition(StoichiometryMath self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition object that expresses the
         units returned by the math expression in this StoichiometryMath
@@ -39267,8 +39220,8 @@ class StoichiometryMath(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(StoichiometryMath self) -> bool
+        containsUndeclaredUnits(StoichiometryMath self) -> bool
 
         Predicate returning @c True if the math
         expression of this StoichiometryMath object contains literal numbers
@@ -39298,7 +39251,7 @@ class StoichiometryMath(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(StoichiometryMath self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -39326,9 +39279,9 @@ class StoichiometryMath(SBase):
         @link libsbml#SBML_STOICHIOMETRY_MATH SBML_STOICHIOMETRY_MATH at endlink (default).
 
         @warning <span class='warning'>The specific integer values of the possible
-        type codes may be reused by different Level 3 package plug-ins.
-        Thus, to identifiy the correct code, <strong>it is necessary to invoke
-        both getTypeCode() and getPackageName()</strong>.</span>
+        type codes may be reused by different libSBML plug-ins for SBML Level 3.
+        packages,  To fully identify the correct code, <strong>it is necessary to
+        invoke both getTypeCode() and getPackageName()</strong>.</span>
 
         @see getElementName()
         @see getPackageName()
@@ -39338,7 +39291,7 @@ class StoichiometryMath(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(StoichiometryMath self) -> string
 
         Returns the XML element name of this object, which for StoichiometryMath, is
         always @c 'stoichiometryMath'.
@@ -39350,7 +39303,7 @@ class StoichiometryMath(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(StoichiometryMath self) -> bool
 
         Predicate returning @c True if
         all the required elements for this StoichiometryMath object
@@ -39367,7 +39320,7 @@ class StoichiometryMath(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(StoichiometryMath self) -> int
 
         Finds this StoichiometryMath's SpeciesReference parent and calls
         unsetStoichiometryMath() on it, indirectly deleting itself.
@@ -39386,7 +39339,7 @@ class StoichiometryMath(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(StoichiometryMath self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -39416,7 +39369,7 @@ class StoichiometryMath(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(StoichiometryMath self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -39446,7 +39399,7 @@ class StoichiometryMath(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(StoichiometryMath self, string id, ASTNode function)
 
         @internal
 
@@ -39502,14 +39455,13 @@ class SBMLNamespaces(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL, unsigned int version = SBML_DEFAULT_VERSION) -> SBMLNamespaces
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL) -> SBMLNamespaces
-        __init__(self) -> SBMLNamespaces
-        __init__(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion, string pkgPrefix = "") -> SBMLNamespaces
-        __init__(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion) -> SBMLNamespaces
-        __init__(self, SBMLNamespaces orig) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level=SBML_DEFAULT_LEVEL, unsigned int version=SBML_DEFAULT_VERSION) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level=SBML_DEFAULT_LEVEL) -> SBMLNamespaces
+        __init__(SBMLNamespaces self) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion, 
+            string pkgPrefix="") -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, SBMLNamespaces orig) -> SBMLNamespaces
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -39602,7 +39554,7 @@ class SBMLNamespaces(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLNamespaces
+        clone(SBMLNamespaces self) -> SBMLNamespaces
 
         Creates and returns a deep copy of this SBMLNamespaces object.
 
@@ -39639,7 +39591,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["getSBMLNamespaceURI"] = lambda x: getSBMLNamespaceURI
     def getSupportedNamespaces():
         """
-        getSupportedNamespaces() -> List
+        getSupportedNamespaces() -> List const *
 
         Returns a list of all supported SBMLNamespaces in this version of 
         libsbml. 
@@ -39661,7 +39613,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["getSupportedNamespaces"] = lambda x: getSupportedNamespaces
     def freeSBMLNamespaces(*args):
         """
-        freeSBMLNamespaces(List supportedNS)
+        freeSBMLNamespaces(List * supportedNS)
 
         Frees the list of supported namespaces as generated by
         getSupportedNamespaces().
@@ -39683,7 +39635,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["freeSBMLNamespaces"] = lambda x: freeSBMLNamespaces
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(SBMLNamespaces self) -> string
 
         Returns a string representing the SBML XML namespace of this
         object.
@@ -39696,8 +39648,8 @@ class SBMLNamespaces(_object):
 
     def getLevel(self, *args):
         """
-        getLevel(self) -> unsigned int
-        getLevel(self) -> unsigned int
+        getLevel(SBMLNamespaces self) -> unsigned int
+        getLevel(SBMLNamespaces self) -> unsigned int
 
         Get the SBML Level of this SBMLNamespaces object.
 
@@ -39708,8 +39660,8 @@ class SBMLNamespaces(_object):
 
     def getVersion(self, *args):
         """
-        getVersion(self) -> unsigned int
-        getVersion(self) -> unsigned int
+        getVersion(SBMLNamespaces self) -> unsigned int
+        getVersion(SBMLNamespaces self) -> unsigned int
 
         Get the SBML Version of this SBMLNamespaces object.
 
@@ -39720,8 +39672,8 @@ class SBMLNamespaces(_object):
 
     def getNamespaces(self, *args):
         """
-        getNamespaces(self) -> XMLNamespaces
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(SBMLNamespaces self) -> XMLNamespaces
+        getNamespaces(SBMLNamespaces self) -> XMLNamespaces
 
         Get the XML namespaces list for this SBMLNamespaces object.
 
@@ -39751,7 +39703,7 @@ class SBMLNamespaces(_object):
 
     def addNamespaces(self, *args):
         """
-        addNamespaces(self, XMLNamespaces xmlns) -> int
+        addNamespaces(SBMLNamespaces self, XMLNamespaces xmlns) -> int
 
         Add the given XML namespaces list to the set of namespaces within this
         SBMLNamespaces object.
@@ -39874,7 +39826,7 @@ class SBMLNamespaces(_object):
 
     def addNamespace(self, *args):
         """
-        addNamespace(self, string uri, string prefix) -> int
+        addNamespace(SBMLNamespaces self, string uri, string prefix) -> int
 
         Add an XML namespace (a pair of URI and prefix) to the set of namespaces
         within this SBMLNamespaces object.
@@ -39895,7 +39847,7 @@ class SBMLNamespaces(_object):
 
     def removeNamespace(self, *args):
         """
-        removeNamespace(self, string uri) -> int
+        removeNamespace(SBMLNamespaces self, string uri) -> int
 
         Removes an XML namespace from the set of namespaces within this 
         SBMLNamespaces object.
@@ -39914,8 +39866,8 @@ class SBMLNamespaces(_object):
 
     def addPackageNamespace(self, *args):
         """
-        addPackageNamespace(self, string pkgName, unsigned int pkgVersion, string prefix = "") -> int
-        addPackageNamespace(self, string pkgName, unsigned int pkgVersion) -> int
+        addPackageNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion, string prefix="") -> int
+        addPackageNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion) -> int
 
         Add an XML namespace (a pair of URI and prefix) of a package extension
         to the set of namespaces within this SBMLNamespaces object.
@@ -39945,7 +39897,7 @@ class SBMLNamespaces(_object):
 
     def addPackageNamespaces(self, *args):
         """
-        addPackageNamespaces(self, XMLNamespaces xmlns) -> int
+        addPackageNamespaces(SBMLNamespaces self, XMLNamespaces xmlns) -> int
 
         Add the XML namespaces of package extensions in the given XMLNamespace
         object to the set of namespaces within this SBMLNamespaces object
@@ -39969,8 +39921,7 @@ class SBMLNamespaces(_object):
 
     def removePackageNamespace(self, *args):
         """
-        removePackageNamespace(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion) -> int
+        removePackageNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> int
 
         Removes an XML namespace of a package extension from the set of namespaces 
         within this SBMLNamespaces object.
@@ -39993,8 +39944,8 @@ class SBMLNamespaces(_object):
 
     def addPkgNamespace(self, *args):
         """
-        addPkgNamespace(self, string pkgName, unsigned int pkgVersion, string prefix = "") -> int
-        addPkgNamespace(self, string pkgName, unsigned int pkgVersion) -> int
+        addPkgNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion, string prefix="") -> int
+        addPkgNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion) -> int
 
         @internal
 
@@ -40005,7 +39956,7 @@ class SBMLNamespaces(_object):
 
     def addPkgNamespaces(self, *args):
         """
-        addPkgNamespaces(self, XMLNamespaces xmlns) -> int
+        addPkgNamespaces(SBMLNamespaces self, XMLNamespaces xmlns) -> int
 
         @internal
 
@@ -40016,8 +39967,7 @@ class SBMLNamespaces(_object):
 
     def removePkgNamespace(self, *args):
         """
-        removePkgNamespace(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion) -> int
+        removePkgNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> int
 
         @internal
 
@@ -40052,7 +40002,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["isSBMLNamespace"] = lambda x: isSBMLNamespace
     def isValidCombination(self):
         """
-        isValidCombination(self) -> bool
+        isValidCombination(SBMLNamespaces self) -> bool
 
         Predicate returning @c True if the given set of namespaces represent a
         valid set
@@ -40064,7 +40014,7 @@ class SBMLNamespaces(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBMLNamespaces self) -> string
 
         Returns the name of the main package for this namespace.
 
@@ -40120,7 +40070,7 @@ def SBMLNamespaces_getSBMLNamespaceURI(*args):
 
 def SBMLNamespaces_getSupportedNamespaces():
   """
-    SBMLNamespaces_getSupportedNamespaces() -> List
+    SBMLNamespaces_getSupportedNamespaces() -> List const *
 
     Returns a list of all supported SBMLNamespaces in this version of 
     libsbml. 
@@ -40140,7 +40090,7 @@ def SBMLNamespaces_getSupportedNamespaces():
 
 def SBMLNamespaces_freeSBMLNamespaces(*args):
   """
-    SBMLNamespaces_freeSBMLNamespaces(List supportedNS)
+    SBMLNamespaces_freeSBMLNamespaces(List * supportedNS)
 
     Frees the list of supported namespaces as generated by
     getSupportedNamespaces().
@@ -40196,9 +40146,9 @@ class SBMLTransforms(_object):
     __repr__ = _swig_repr
     def replaceFD(*args):
         """
-        replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude = None)
+        replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude=None)
         replaceFD(ASTNode math, FunctionDefinition fd)
-        replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude = None)
+        replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude=None)
         replaceFD(ASTNode math, ListOfFunctionDefinitions lofd)
         """
         return _libsbml.SBMLTransforms_replaceFD(*args)
@@ -40220,7 +40170,7 @@ class SBMLTransforms(_object):
     __swig_getmethods__["expandInitialAssignments"] = lambda x: expandInitialAssignments
     def evaluateASTNode(*args):
         """
-        evaluateASTNode(ASTNode node, Model m = None) -> double
+        evaluateASTNode(ASTNode node, Model m=None) -> double
         evaluateASTNode(ASTNode node) -> double
 
         @internal
@@ -40245,7 +40195,7 @@ class SBMLTransforms(_object):
     if _newclass:clearComponentValues = staticmethod(clearComponentValues)
     __swig_getmethods__["clearComponentValues"] = lambda x: clearComponentValues
     def __init__(self): 
-        """__init__(self) -> SBMLTransforms"""
+        """__init__(SBMLTransforms self) -> SBMLTransforms"""
         this = _libsbml.new_SBMLTransforms()
         try: self.this.append(this)
         except: self.this = this
@@ -40256,9 +40206,9 @@ SBMLTransforms_swigregister(SBMLTransforms)
 
 def SBMLTransforms_replaceFD(*args):
   """
-    replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude = None)
+    replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude=None)
     replaceFD(ASTNode math, FunctionDefinition fd)
-    replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude = None)
+    replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude=None)
     SBMLTransforms_replaceFD(ASTNode math, ListOfFunctionDefinitions lofd)
     """
   return _libsbml.SBMLTransforms_replaceFD(*args)
@@ -40276,7 +40226,7 @@ def SBMLTransforms_expandInitialAssignments(*args):
 
 def SBMLTransforms_evaluateASTNode(*args):
   """
-    evaluateASTNode(ASTNode node, Model m = None) -> double
+    evaluateASTNode(ASTNode node, Model m=None) -> double
     SBMLTransforms_evaluateASTNode(ASTNode node) -> double
 
     @internal
@@ -40378,22 +40328,21 @@ class ConversionOption(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING, 
-            string description = "") -> ConversionOption
-        __init__(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING) -> ConversionOption
-        __init__(self, string key, string value = "") -> ConversionOption
-        __init__(self, string key) -> ConversionOption
-        __init__(self, string key, char value, string description = "") -> ConversionOption
-        __init__(self, string key, char value) -> ConversionOption
-        __init__(self, string key, bool value, string description = "") -> ConversionOption
-        __init__(self, string key, bool value) -> ConversionOption
-        __init__(self, string key, double value, string description = "") -> ConversionOption
-        __init__(self, string key, double value) -> ConversionOption
-        __init__(self, string key, float value, string description = "") -> ConversionOption
-        __init__(self, string key, float value) -> ConversionOption
-        __init__(self, string key, int value, string description = "") -> ConversionOption
-        __init__(self, string key, int value) -> ConversionOption
-        __init__(self, ConversionOption orig) -> ConversionOption
+        __init__(ConversionOption self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING) -> ConversionOption
+        __init__(ConversionOption self, string key, string value="") -> ConversionOption
+        __init__(ConversionOption self, string key) -> ConversionOption
+        __init__(ConversionOption self, string key, char const * value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, char const * value) -> ConversionOption
+        __init__(ConversionOption self, string key, bool value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, bool value) -> ConversionOption
+        __init__(ConversionOption self, string key, double value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, double value) -> ConversionOption
+        __init__(ConversionOption self, string key, float value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, float value) -> ConversionOption
+        __init__(ConversionOption self, string key, int value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, int value) -> ConversionOption
+        __init__(ConversionOption self, ConversionOption orig) -> ConversionOption
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -40512,7 +40461,7 @@ class ConversionOption(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> ConversionOption
+        clone(ConversionOption self) -> ConversionOption
 
         Creates and returns a deep copy of this ConversionOption object.
 
@@ -40523,7 +40472,7 @@ class ConversionOption(_object):
 
     def getKey(self):
         """
-        getKey(self) -> string
+        getKey(ConversionOption self) -> string
 
         Returns the key for this option.
 
@@ -40534,7 +40483,7 @@ class ConversionOption(_object):
 
     def setKey(self, *args):
         """
-        setKey(self, string key)
+        setKey(ConversionOption self, string key)
 
         Sets the key for this option.
 
@@ -40545,7 +40494,7 @@ class ConversionOption(_object):
 
     def getValue(self):
         """
-        getValue(self) -> string
+        getValue(ConversionOption self) -> string
 
         Returns the value of this option.
 
@@ -40556,7 +40505,7 @@ class ConversionOption(_object):
 
     def setValue(self, *args):
         """
-        setValue(self, string value)
+        setValue(ConversionOption self, string value)
 
         Sets the value for this option.
 
@@ -40567,7 +40516,7 @@ class ConversionOption(_object):
 
     def getDescription(self):
         """
-        getDescription(self) -> string
+        getDescription(ConversionOption self) -> string
 
         Returns the description string for this option.
 
@@ -40578,7 +40527,7 @@ class ConversionOption(_object):
 
     def setDescription(self, *args):
         """
-        setDescription(self, string description)
+        setDescription(ConversionOption self, string description)
 
         Sets the description text for this option.
 
@@ -40589,7 +40538,7 @@ class ConversionOption(_object):
 
     def getType(self):
         """
-        getType(self) -> ConversionOptionType_t
+        getType(ConversionOption self) -> ConversionOptionType_t
 
         Returns the type of this option
 
@@ -40600,7 +40549,7 @@ class ConversionOption(_object):
 
     def setType(self, *args):
         """
-        setType(self, ConversionOptionType_t type)
+        setType(ConversionOption self, ConversionOptionType_t type)
 
         Sets the type of this option.
 
@@ -40620,7 +40569,7 @@ class ConversionOption(_object):
 
     def getBoolValue(self):
         """
-        getBoolValue(self) -> bool
+        getBoolValue(ConversionOption self) -> bool
 
         Returns the value of this option as a Boolean.
 
@@ -40631,7 +40580,7 @@ class ConversionOption(_object):
 
     def setBoolValue(self, *args):
         """
-        setBoolValue(self, bool value)
+        setBoolValue(ConversionOption self, bool value)
 
         Set the value of this option to a given Boolean value.
 
@@ -40645,7 +40594,7 @@ class ConversionOption(_object):
 
     def getDoubleValue(self):
         """
-        getDoubleValue(self) -> double
+        getDoubleValue(ConversionOption self) -> double
 
         Returns the value of this option as a @c float.
 
@@ -40656,7 +40605,7 @@ class ConversionOption(_object):
 
     def setDoubleValue(self, *args):
         """
-        setDoubleValue(self, double value)
+        setDoubleValue(ConversionOption self, double value)
 
         Set the value of this option to a given @c float value.
 
@@ -40670,7 +40619,7 @@ class ConversionOption(_object):
 
     def getFloatValue(self):
         """
-        getFloatValue(self) -> float
+        getFloatValue(ConversionOption self) -> float
 
         Returns the value of this option as a @c float.
 
@@ -40681,7 +40630,7 @@ class ConversionOption(_object):
 
     def setFloatValue(self, *args):
         """
-        setFloatValue(self, float value)
+        setFloatValue(ConversionOption self, float value)
 
         Set the value of this option to a given @c float value.
 
@@ -40695,7 +40644,7 @@ class ConversionOption(_object):
 
     def getIntValue(self):
         """
-        getIntValue(self) -> int
+        getIntValue(ConversionOption self) -> int
 
         Returns the value of this option as an @c integer.
 
@@ -40706,7 +40655,7 @@ class ConversionOption(_object):
 
     def setIntValue(self, *args):
         """
-        setIntValue(self, int value)
+        setIntValue(ConversionOption self, int value)
 
         Set the value of this option to a given @c int value.
 
@@ -40895,21 +40844,7 @@ class ConversionProperties(_object):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     @see ConversionOption
     @see SBMLNamespaces
@@ -40922,9 +40857,9 @@ class ConversionProperties(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, SBMLNamespaces targetNS = None) -> ConversionProperties
-        __init__(self) -> ConversionProperties
-        __init__(self, ConversionProperties orig) -> ConversionProperties
+        __init__(ConversionProperties self, SBMLNamespaces targetNS=None) -> ConversionProperties
+        __init__(ConversionProperties self) -> ConversionProperties
+        __init__(ConversionProperties self, ConversionProperties orig) -> ConversionProperties
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -40957,7 +40892,7 @@ class ConversionProperties(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ConversionProperties
+        clone(ConversionProperties self) -> ConversionProperties
 
         Creates and returns a deep copy of this ConversionProperties object.
 
@@ -40970,7 +40905,7 @@ class ConversionProperties(_object):
     __del__ = lambda self : None;
     def getTargetNamespaces(self):
         """
-        getTargetNamespaces(self) -> SBMLNamespaces
+        getTargetNamespaces(ConversionProperties self) -> SBMLNamespaces
 
         Returns the current target SBML namespace.
 
@@ -40981,7 +40916,7 @@ class ConversionProperties(_object):
 
     def hasTargetNamespaces(self):
         """
-        hasTargetNamespaces(self) -> bool
+        hasTargetNamespaces(ConversionProperties self) -> bool
 
         Returns @c True if the target SBML namespace has been set.
 
@@ -40993,7 +40928,7 @@ class ConversionProperties(_object):
 
     def setTargetNamespaces(self, *args):
         """
-        setTargetNamespaces(self, SBMLNamespaces targetNS)
+        setTargetNamespaces(ConversionProperties self, SBMLNamespaces targetNS)
 
         Sets the target namespace.
 
@@ -41004,7 +40939,7 @@ class ConversionProperties(_object):
 
     def getDescription(self, *args):
         """
-        getDescription(self, string key) -> string
+        getDescription(ConversionProperties self, string key) -> string
 
         Returns the description string for a given option in this properties
         object.
@@ -41018,7 +40953,7 @@ class ConversionProperties(_object):
 
     def getType(self, *args):
         """
-        getType(self, string key) -> ConversionOptionType_t
+        getType(ConversionProperties self, string key) -> ConversionOptionType_t
 
         Returns the type of a given option in this properties object.
 
@@ -41031,8 +40966,8 @@ class ConversionProperties(_object):
 
     def getOption(self, *args):
         """
-        getOption(self, string key) -> ConversionOption
-        getOption(self, int index) -> ConversionOption
+        getOption(ConversionProperties self, string key) -> ConversionOption
+        getOption(ConversionProperties self, int index) -> ConversionOption
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -41065,22 +41000,21 @@ class ConversionProperties(_object):
 
     def addOption(self, *args):
         """
-        addOption(self, ConversionOption option)
-        addOption(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING, 
-            string description = "")
-        addOption(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING)
-        addOption(self, string key, string value = "")
-        addOption(self, string key)
-        addOption(self, string key, char value, string description = "")
-        addOption(self, string key, char value)
-        addOption(self, string key, bool value, string description = "")
-        addOption(self, string key, bool value)
-        addOption(self, string key, double value, string description = "")
-        addOption(self, string key, double value)
-        addOption(self, string key, float value, string description = "")
-        addOption(self, string key, float value)
-        addOption(self, string key, int value, string description = "")
-        addOption(self, string key, int value)
+        addOption(ConversionProperties self, ConversionOption option)
+        addOption(ConversionProperties self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING, string description="")
+        addOption(ConversionProperties self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING)
+        addOption(ConversionProperties self, string key, string value="")
+        addOption(ConversionProperties self, string key)
+        addOption(ConversionProperties self, string key, char const * value, string description="")
+        addOption(ConversionProperties self, string key, char const * value)
+        addOption(ConversionProperties self, string key, bool value, string description="")
+        addOption(ConversionProperties self, string key, bool value)
+        addOption(ConversionProperties self, string key, double value, string description="")
+        addOption(ConversionProperties self, string key, double value)
+        addOption(ConversionProperties self, string key, float value, string description="")
+        addOption(ConversionProperties self, string key, float value)
+        addOption(ConversionProperties self, string key, int value, string description="")
+        addOption(ConversionProperties self, string key, int value)
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -41185,7 +41119,7 @@ class ConversionProperties(_object):
 
     def removeOption(self, *args):
         """
-        removeOption(self, string key) -> ConversionOption
+        removeOption(ConversionProperties self, string key) -> ConversionOption
 
         Removes the option with the given key from this properties object.
 
@@ -41197,7 +41131,7 @@ class ConversionProperties(_object):
 
     def hasOption(self, *args):
         """
-        hasOption(self, string key) -> bool
+        hasOption(ConversionProperties self, string key) -> bool
 
         Returns @c True if this properties object contains an option with
         the given key.
@@ -41212,7 +41146,7 @@ class ConversionProperties(_object):
 
     def getValue(self, *args):
         """
-        getValue(self, string key) -> string
+        getValue(ConversionProperties self, string key) -> string
 
         Returns the value of the given option as a string.
 
@@ -41225,7 +41159,7 @@ class ConversionProperties(_object):
 
     def setValue(self, *args):
         """
-        setValue(self, string key, string value)
+        setValue(ConversionProperties self, string key, string value)
 
         Sets the value of the given option to a string.
 
@@ -41237,7 +41171,7 @@ class ConversionProperties(_object):
 
     def getBoolValue(self, *args):
         """
-        getBoolValue(self, string key) -> bool
+        getBoolValue(ConversionProperties self, string key) -> bool
 
         Returns the value of the given option as a Boolean.
 
@@ -41250,7 +41184,7 @@ class ConversionProperties(_object):
 
     def setBoolValue(self, *args):
         """
-        setBoolValue(self, string key, bool value)
+        setBoolValue(ConversionProperties self, string key, bool value)
 
         Sets the value of the given option to a Boolean.
 
@@ -41263,7 +41197,7 @@ class ConversionProperties(_object):
 
     def getDoubleValue(self, *args):
         """
-        getDoubleValue(self, string key) -> double
+        getDoubleValue(ConversionProperties self, string key) -> double
 
         Returns the value of the given option as a @c float.
 
@@ -41276,7 +41210,7 @@ class ConversionProperties(_object):
 
     def setDoubleValue(self, *args):
         """
-        setDoubleValue(self, string key, double value)
+        setDoubleValue(ConversionProperties self, string key, double value)
 
         Sets the value of the given option to a @c float.
 
@@ -41289,7 +41223,7 @@ class ConversionProperties(_object):
 
     def getFloatValue(self, *args):
         """
-        getFloatValue(self, string key) -> float
+        getFloatValue(ConversionProperties self, string key) -> float
 
         Returns the value of the given option as a @c float.
 
@@ -41302,7 +41236,7 @@ class ConversionProperties(_object):
 
     def setFloatValue(self, *args):
         """
-        setFloatValue(self, string key, float value)
+        setFloatValue(ConversionProperties self, string key, float value)
 
         Sets the value of the given option to a @c float.
 
@@ -41315,7 +41249,7 @@ class ConversionProperties(_object):
 
     def getIntValue(self, *args):
         """
-        getIntValue(self, string key) -> int
+        getIntValue(ConversionProperties self, string key) -> int
 
         Returns the value of the given option as an integer.
 
@@ -41328,7 +41262,7 @@ class ConversionProperties(_object):
 
     def setIntValue(self, *args):
         """
-        setIntValue(self, string key, int value)
+        setIntValue(ConversionProperties self, string key, int value)
 
         Sets the value of the given option to an integer.
 
@@ -41341,7 +41275,7 @@ class ConversionProperties(_object):
 
     def getNumOptions(self):
         """
-        getNumOptions(self) -> int
+        getNumOptions(ConversionProperties self) -> int
 
         Returns the number of options in this Conversion Properties object
 
@@ -41521,21 +41455,7 @@ class SBMLConverter(_object):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -41545,9 +41465,9 @@ class SBMLConverter(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLConverter
-        __init__(self, string name) -> SBMLConverter
-        __init__(self, SBMLConverter orig) -> SBMLConverter
+        __init__(SBMLConverter self) -> SBMLConverter
+        __init__(SBMLConverter self, string name) -> SBMLConverter
+        __init__(SBMLConverter self, SBMLConverter orig) -> SBMLConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -41593,7 +41513,7 @@ class SBMLConverter(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLConverter
+        clone(SBMLConverter self) -> SBMLConverter
 
         Creates and returns a deep copy of this SBMLConverter object.
 
@@ -41604,8 +41524,8 @@ class SBMLConverter(_object):
 
     def getDocument(self, *args):
         """
-        getDocument(self) -> SBMLDocument
-        getDocument(self) -> SBMLDocument
+        getDocument(SBMLConverter self) -> SBMLDocument
+        getDocument(SBMLConverter self) -> SBMLDocument
 
         Returns the SBML document that is the subject of the conversions.
 
@@ -41616,7 +41536,7 @@ class SBMLConverter(_object):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -41638,7 +41558,7 @@ class SBMLConverter(_object):
 
     def getTargetNamespaces(self):
         """
-        getTargetNamespaces(self) -> SBMLNamespaces
+        getTargetNamespaces(SBMLConverter self) -> SBMLNamespaces
 
         Returns the target SBML namespaces of the currently set properties.
 
@@ -41658,7 +41578,7 @@ class SBMLConverter(_object):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter matches the given properties.
 
@@ -41676,7 +41596,7 @@ class SBMLConverter(_object):
 
     def setDocument(self, *args):
         """
-        setDocument(self, SBMLDocument doc) -> int
+        setDocument(SBMLConverter self, SBMLDocument doc) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -41728,7 +41648,7 @@ class SBMLConverter(_object):
 
     def setProperties(self, *args):
         """
-        setProperties(self, ConversionProperties props) -> int
+        setProperties(SBMLConverter self, ConversionProperties props) -> int
 
         Sets the configuration properties to be used by this converter.
 
@@ -41752,7 +41672,7 @@ class SBMLConverter(_object):
 
     def getProperties(self):
         """
-        getProperties(self) -> ConversionProperties
+        getProperties(SBMLConverter self) -> ConversionProperties
 
         Returns the current properties in effect for this converter.
 
@@ -41772,7 +41692,7 @@ class SBMLConverter(_object):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLConverter self) -> int
 
         Perform the conversion.
 
@@ -41794,7 +41714,7 @@ class SBMLConverter(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SBMLConverter self) -> string
 
         Returns the name of this converter.
 
@@ -41860,7 +41780,7 @@ class SBMLConverterRegistry(_object):
     __swig_getmethods__["getInstance"] = lambda x: getInstance
     def addConverter(self, *args):
         """
-        addConverter(self, SBMLConverter converter) -> int
+        addConverter(SBMLConverterRegistry self, SBMLConverter converter) -> int
 
         Adds the given converter to the registry of SBML converters.
 
@@ -41878,7 +41798,7 @@ class SBMLConverterRegistry(_object):
 
     def getConverterByIndex(self, *args):
         """
-        getConverterByIndex(self, int index) -> SBMLConverter
+        getConverterByIndex(SBMLConverterRegistry self, int index) -> SBMLConverter
 
         Returns the converter with the given index number.
 
@@ -41898,7 +41818,7 @@ class SBMLConverterRegistry(_object):
 
     def getConverterFor(self, *args):
         """
-        getConverterFor(self, ConversionProperties props) -> SBMLConverter
+        getConverterFor(SBMLConverterRegistry self, ConversionProperties props) -> SBMLConverter
 
         Returns the converter that best matches the given configuration
         properties.
@@ -41923,7 +41843,7 @@ class SBMLConverterRegistry(_object):
 
     def getNumConverters(self):
         """
-        getNumConverters(self) -> int
+        getNumConverters(SBMLConverterRegistry self) -> int
 
         Returns the number of converters known by the registry.
 
@@ -42144,21 +42064,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -42183,8 +42089,8 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLFunctionDefinitionConverter
-        __init__(self, SBMLFunctionDefinitionConverter obj) -> SBMLFunctionDefinitionConverter
+        __init__(SBMLFunctionDefinitionConverter self) -> SBMLFunctionDefinitionConverter
+        __init__(SBMLFunctionDefinitionConverter self, SBMLFunctionDefinitionConverter obj) -> SBMLFunctionDefinitionConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -42213,7 +42119,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLFunctionDefinitionConverter
+        clone(SBMLFunctionDefinitionConverter self) -> SBMLFunctionDefinitionConverter
 
         Creates and returns a deep copy of this SBMLFunctionDefinitionConverter
         object.
@@ -42227,7 +42133,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLFunctionDefinitionConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -42250,7 +42156,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLFunctionDefinitionConverter self) -> int
 
         Perform the conversion.
 
@@ -42274,7 +42180,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLFunctionDefinitionConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -42497,21 +42403,7 @@ class SBMLIdConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -42536,8 +42428,8 @@ class SBMLIdConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLIdConverter
-        __init__(self, SBMLIdConverter obj) -> SBMLIdConverter
+        __init__(SBMLIdConverter self) -> SBMLIdConverter
+        __init__(SBMLIdConverter self, SBMLIdConverter obj) -> SBMLIdConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -42566,7 +42458,7 @@ class SBMLIdConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLIdConverter
+        clone(SBMLIdConverter self) -> SBMLIdConverter
 
         Creates and returns a deep copy of this SBMLIdConverter
         object.
@@ -42580,7 +42472,7 @@ class SBMLIdConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLIdConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -42603,7 +42495,7 @@ class SBMLIdConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLIdConverter self) -> int
 
         Perform the conversion.
 
@@ -42628,7 +42520,7 @@ class SBMLIdConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLIdConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -42830,21 +42722,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -42869,8 +42747,8 @@ class SBMLInferUnitsConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLInferUnitsConverter
-        __init__(self, SBMLInferUnitsConverter obj) -> SBMLInferUnitsConverter
+        __init__(SBMLInferUnitsConverter self) -> SBMLInferUnitsConverter
+        __init__(SBMLInferUnitsConverter self, SBMLInferUnitsConverter obj) -> SBMLInferUnitsConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -42901,7 +42779,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLInferUnitsConverter
+        clone(SBMLInferUnitsConverter self) -> SBMLInferUnitsConverter
 
         Creates and returns a deep copy of this SBMLInferUnitsConverter
         object.
@@ -42913,7 +42791,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLInferUnitsConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -42936,7 +42814,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLInferUnitsConverter self) -> int
 
         Perform the conversion.
 
@@ -42960,7 +42838,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLInferUnitsConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -43193,21 +43071,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -43232,8 +43096,8 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLInitialAssignmentConverter
-        __init__(self, SBMLInitialAssignmentConverter obj) -> SBMLInitialAssignmentConverter
+        __init__(SBMLInitialAssignmentConverter self) -> SBMLInitialAssignmentConverter
+        __init__(SBMLInitialAssignmentConverter self, SBMLInitialAssignmentConverter obj) -> SBMLInitialAssignmentConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -43262,7 +43126,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLInitialAssignmentConverter
+        clone(SBMLInitialAssignmentConverter self) -> SBMLInitialAssignmentConverter
 
         Creates and returns a deep copy of this SBMLInitialAssignmentConverter
         object.
@@ -43276,7 +43140,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLInitialAssignmentConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -43299,7 +43163,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLInitialAssignmentConverter self) -> int
 
         Perform the conversion.
 
@@ -43322,7 +43186,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLInitialAssignmentConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -43551,21 +43415,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -43590,8 +43440,8 @@ class SBMLLevelVersionConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLLevelVersionConverter
-        __init__(self, SBMLLevelVersionConverter obj) -> SBMLLevelVersionConverter
+        __init__(SBMLLevelVersionConverter self) -> SBMLLevelVersionConverter
+        __init__(SBMLLevelVersionConverter self, SBMLLevelVersionConverter obj) -> SBMLLevelVersionConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -43622,7 +43472,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLLevelVersionConverter
+        clone(SBMLLevelVersionConverter self) -> SBMLLevelVersionConverter
 
         Creates and returns a deep copy of this SBMLLevelVersionConverter
         object.
@@ -43634,7 +43484,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLLevelVersionConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -43657,7 +43507,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLLevelVersionConverter self) -> int
 
         Perform the conversion.
 
@@ -43682,7 +43532,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLLevelVersionConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -43700,7 +43550,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getTargetLevel(self):
         """
-        getTargetLevel(self) -> unsigned int
+        getTargetLevel(SBMLLevelVersionConverter self) -> unsigned int
 
         Returns the target SBML Level for the conversion.
 
@@ -43711,7 +43561,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getTargetVersion(self):
         """
-        getTargetVersion(self) -> unsigned int
+        getTargetVersion(SBMLLevelVersionConverter self) -> unsigned int
 
         Returns the target SBML Version for the conversion.
 
@@ -43722,7 +43572,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getValidityFlag(self):
         """
-        getValidityFlag(self) -> bool
+        getValidityFlag(SBMLLevelVersionConverter self) -> bool
 
         Returns the flag indicating whether the conversion has been set to 'strict'.
 
@@ -43734,7 +43584,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getAddDefaultUnits(self):
         """
-        getAddDefaultUnits(self) -> bool
+        getAddDefaultUnits(SBMLLevelVersionConverter self) -> bool
 
         Returns the flag indicating whether default units should be added when
         converting to L3 or not.
@@ -43956,21 +43806,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -43995,8 +43831,8 @@ class SBMLLevel1Version1Converter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLLevel1Version1Converter
-        __init__(self, SBMLLevel1Version1Converter obj) -> SBMLLevel1Version1Converter
+        __init__(SBMLLevel1Version1Converter self) -> SBMLLevel1Version1Converter
+        __init__(SBMLLevel1Version1Converter self, SBMLLevel1Version1Converter obj) -> SBMLLevel1Version1Converter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -44027,7 +43863,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLLevel1Version1Converter
+        clone(SBMLLevel1Version1Converter self) -> SBMLLevel1Version1Converter
 
         Creates and returns a deep copy of this SBMLLevel1Version1Converter
         object.
@@ -44039,7 +43875,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLLevel1Version1Converter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -44062,7 +43898,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLLevel1Version1Converter self) -> int
 
         Perform the conversion.
 
@@ -44087,7 +43923,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLLevel1Version1Converter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -44296,21 +44132,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -44335,8 +44157,8 @@ class SBMLLocalParameterConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLLocalParameterConverter
-        __init__(self, SBMLLocalParameterConverter obj) -> SBMLLocalParameterConverter
+        __init__(SBMLLocalParameterConverter self) -> SBMLLocalParameterConverter
+        __init__(SBMLLocalParameterConverter self, SBMLLocalParameterConverter obj) -> SBMLLocalParameterConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -44365,7 +44187,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLLocalParameterConverter
+        clone(SBMLLocalParameterConverter self) -> SBMLLocalParameterConverter
 
         Creates and returns a deep copy of this SBMLLocalParameterConverter
         object.
@@ -44379,7 +44201,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLLocalParameterConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -44402,7 +44224,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLLocalParameterConverter self) -> int
 
         Perform the conversion.
 
@@ -44425,7 +44247,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLLocalParameterConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -44629,21 +44451,7 @@ class SBMLReactionConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -44668,8 +44476,8 @@ class SBMLReactionConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLReactionConverter
-        __init__(self, SBMLReactionConverter obj) -> SBMLReactionConverter
+        __init__(SBMLReactionConverter self) -> SBMLReactionConverter
+        __init__(SBMLReactionConverter self, SBMLReactionConverter obj) -> SBMLReactionConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -44698,7 +44506,7 @@ class SBMLReactionConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLReactionConverter
+        clone(SBMLReactionConverter self) -> SBMLReactionConverter
 
         Creates and returns a deep copy of this SBMLReactionConverter
         object.
@@ -44712,7 +44520,7 @@ class SBMLReactionConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLReactionConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -44735,7 +44543,7 @@ class SBMLReactionConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLReactionConverter self) -> int
 
         Perform the conversion.
 
@@ -44759,7 +44567,7 @@ class SBMLReactionConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLReactionConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -44777,7 +44585,7 @@ class SBMLReactionConverter(SBMLConverter):
 
     def setDocument(self, *args):
         """
-        setDocument(self, SBMLDocument doc) -> int
+        setDocument(SBMLReactionConverter self, SBMLDocument doc) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -45036,21 +44844,7 @@ class SBMLRuleConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -45075,8 +44869,8 @@ class SBMLRuleConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLRuleConverter
-        __init__(self, SBMLRuleConverter obj) -> SBMLRuleConverter
+        __init__(SBMLRuleConverter self) -> SBMLRuleConverter
+        __init__(SBMLRuleConverter self, SBMLRuleConverter obj) -> SBMLRuleConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -45105,7 +44899,7 @@ class SBMLRuleConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLRuleConverter
+        clone(SBMLRuleConverter self) -> SBMLRuleConverter
 
         Creates and returns a deep copy of this SBMLLevelVersionConverter
         object.
@@ -45119,7 +44913,7 @@ class SBMLRuleConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLRuleConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -45142,7 +44936,7 @@ class SBMLRuleConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLRuleConverter self) -> int
 
         Perform the conversion.
 
@@ -45165,7 +44959,7 @@ class SBMLRuleConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLRuleConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -45382,21 +45176,7 @@ class SBMLStripPackageConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -45421,8 +45201,8 @@ class SBMLStripPackageConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLStripPackageConverter
-        __init__(self, SBMLStripPackageConverter obj) -> SBMLStripPackageConverter
+        __init__(SBMLStripPackageConverter self) -> SBMLStripPackageConverter
+        __init__(SBMLStripPackageConverter self, SBMLStripPackageConverter obj) -> SBMLStripPackageConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -45453,7 +45233,7 @@ class SBMLStripPackageConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLStripPackageConverter
+        clone(SBMLStripPackageConverter self) -> SBMLStripPackageConverter
 
         Creates and returns a deep copy of this SBMLStripPackageConverter
         object.
@@ -45465,7 +45245,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLStripPackageConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -45488,7 +45268,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLStripPackageConverter self) -> int
 
         Perform the conversion.
 
@@ -45512,7 +45292,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLStripPackageConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -45530,7 +45310,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def getPackageToStrip(self):
         """
-        getPackageToStrip(self) -> string
+        getPackageToStrip(SBMLStripPackageConverter self) -> string
 
         @return the package to be stripped
 
@@ -45539,7 +45319,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def isStripAllUnrecognizedPackages(self):
         """
-        isStripAllUnrecognizedPackages(self) -> bool
+        isStripAllUnrecognizedPackages(SBMLStripPackageConverter self) -> bool
 
         @return whether all unrecognized packages should be removed
 
@@ -45746,21 +45526,7 @@ class SBMLUnitsConverter(SBMLConverter):
     names end in @em Converter. The following are the built-in converters
     provided by libSBML @htmlinclude libsbml-version.html:
 
-    @par
-    @li CobraToFbcConverter
-    @li CompFlatteningConverter
-    @li FbcToCobraConverter
-    @li SBMLFunctionDefinitionConverter
-    @li SBMLIdConverter
-    @li SBMLInferUnitsConverter
-    @li SBMLInitialAssignmentConverter
-    @li SBMLLevelVersionConverter
-    @li SBMLLocalParameterConverter
-    @li SBMLReactionConverter
-    @li SBMLRuleConverter
-    @li SBMLStripPackageConverter
-    @li SBMLUnitsConverter
-    <p>
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -45785,8 +45551,8 @@ class SBMLUnitsConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLUnitsConverter
-        __init__(self, SBMLUnitsConverter obj) -> SBMLUnitsConverter
+        __init__(SBMLUnitsConverter self) -> SBMLUnitsConverter
+        __init__(SBMLUnitsConverter self, SBMLUnitsConverter obj) -> SBMLUnitsConverter
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -45817,7 +45583,7 @@ class SBMLUnitsConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLUnitsConverter
+        clone(SBMLUnitsConverter self) -> SBMLUnitsConverter
 
         Creates and returns a deep copy of this SBMLUnitsConverter
         object.
@@ -45829,7 +45595,7 @@ class SBMLUnitsConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLUnitsConverter self, ConversionProperties props) -> bool
 
         Returns @c True if this converter object's properties match the given
         properties.
@@ -45852,7 +45618,7 @@ class SBMLUnitsConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLUnitsConverter self) -> int
 
         Perform the conversion.
 
@@ -45877,7 +45643,7 @@ class SBMLUnitsConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLUnitsConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -45954,8 +45720,8 @@ class SBMLValidator(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLValidator
-        __init__(self, SBMLValidator orig) -> SBMLValidator
+        __init__(SBMLValidator self) -> SBMLValidator
+        __init__(SBMLValidator self, SBMLValidator orig) -> SBMLValidator
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -45989,7 +45755,7 @@ class SBMLValidator(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLValidator
+        clone(SBMLValidator self) -> SBMLValidator
 
         Creates and returns a deep copy of this SBMLValidator object.
 
@@ -46000,8 +45766,8 @@ class SBMLValidator(_object):
 
     def getDocument(self, *args):
         """
-        getDocument(self) -> SBMLDocument
-        getDocument(self) -> SBMLDocument
+        getDocument(SBMLValidator self) -> SBMLDocument
+        getDocument(SBMLValidator self) -> SBMLDocument
 
         Returns the current SBML document in use by this validator.
 
@@ -46014,7 +45780,7 @@ class SBMLValidator(_object):
 
     def setDocument(self, *args):
         """
-        setDocument(self, SBMLDocument doc) -> int
+        setDocument(SBMLValidator self, SBMLDocument doc) -> int
 
         Sets the current SBML document to the given SBMLDocument object.
 
@@ -46033,7 +45799,7 @@ class SBMLValidator(_object):
 
     def clearFailures(self):
         """
-        clearFailures(self)
+        clearFailures(SBMLValidator self)
 
         Clears this validator's list of failures.
 
@@ -46048,7 +45814,7 @@ class SBMLValidator(_object):
 
     def logFailure(self, *args):
         """
-        logFailure(self, SBMLError err)
+        logFailure(SBMLValidator self, SBMLError err)
 
         Adds the given failure to this list of Validators failures.
 
@@ -46061,9 +45827,9 @@ class SBMLValidator(_object):
 
     def validate(self, *args):
         """
-        validate(self) -> unsigned int
-        validate(self, SBMLDocument d) -> unsigned int
-        validate(self, string filename) -> unsigned int
+        validate(SBMLValidator self) -> unsigned int
+        validate(SBMLValidator self, SBMLDocument d) -> unsigned int
+        validate(SBMLValidator self, string filename) -> unsigned int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -46117,7 +45883,7 @@ class SBMLValidator(_object):
 
     def getErrorLog(self):
         """
-        getErrorLog(self) -> SBMLErrorLog
+        getErrorLog(SBMLValidator self) -> SBMLErrorLog
 
         Returns the list of errors or warnings logged during parsing,
         consistency checking, or attempted translation of this model.
@@ -46136,8 +45902,8 @@ class SBMLValidator(_object):
 
     def getModel(self, *args):
         """
-        getModel(self) -> Model
-        getModel(self) -> Model
+        getModel(SBMLValidator self) -> Model
+        getModel(SBMLValidator self) -> Model
 
         Returns the Model object stored in the SBMLDocument.
 
@@ -46157,7 +45923,7 @@ class SBMLValidator(_object):
 
     def getNumFailures(self):
         """
-        getNumFailures(self) -> unsigned int
+        getNumFailures(SBMLValidator self) -> unsigned int
 
         Returns the number of failures encountered in the last validation run.
 
@@ -46175,7 +45941,7 @@ class SBMLValidator(_object):
 
     def getFailure(self, *args):
         """
-        getFailure(self, unsigned int n) -> SBMLError
+        getFailure(SBMLValidator self, unsigned int n) -> SBMLError
 
         Returns the failure object at index n in this validator's list of
         failures logged during the last run.
@@ -46217,8 +45983,8 @@ class SBMLExternalValidator(SBMLValidator):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLExternalValidator
-        __init__(self, SBMLExternalValidator arg0) -> SBMLExternalValidator
+        __init__(SBMLExternalValidator self) -> SBMLExternalValidator
+        __init__(SBMLExternalValidator self, SBMLExternalValidator arg2) -> SBMLExternalValidator
 
         @sbmlpackage{core}
 
@@ -46231,7 +45997,7 @@ class SBMLExternalValidator(SBMLValidator):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLValidator
+        clone(SBMLExternalValidator self) -> SBMLValidator
 
         @internal
 
@@ -46244,7 +46010,7 @@ class SBMLExternalValidator(SBMLValidator):
     __del__ = lambda self : None;
     def validate(self):
         """
-        validate(self) -> unsigned int
+        validate(SBMLExternalValidator self) -> unsigned int
 
         @internal
 
@@ -46255,7 +46021,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getProgram(self):
         """
-        getProgram(self) -> string
+        getProgram(SBMLExternalValidator self) -> string
 
         @internal
 
@@ -46266,7 +46032,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def setProgram(self, *args):
         """
-        setProgram(self, string program)
+        setProgram(SBMLExternalValidator self, string program)
 
         @internal
 
@@ -46277,7 +46043,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getOutputFileName(self):
         """
-        getOutputFileName(self) -> string
+        getOutputFileName(SBMLExternalValidator self) -> string
 
         @internal
 
@@ -46288,7 +46054,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def setOutputFileName(self, *args):
         """
-        setOutputFileName(self, string outputFileName)
+        setOutputFileName(SBMLExternalValidator self, string outputFileName)
 
         @internal
 
@@ -46299,7 +46065,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getSBMLFileName(self):
         """
-        getSBMLFileName(self) -> string
+        getSBMLFileName(SBMLExternalValidator self) -> string
 
         @internal
 
@@ -46310,7 +46076,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def setSBMLFileName(self, *args):
         """
-        setSBMLFileName(self, string sbmlFileName)
+        setSBMLFileName(SBMLExternalValidator self, string sbmlFileName)
 
         @internal
 
@@ -46321,7 +46087,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def clearArguments(self):
         """
-        clearArguments(self)
+        clearArguments(SBMLExternalValidator self)
 
         @internal
 
@@ -46332,7 +46098,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def addArgument(self, *args):
         """
-        addArgument(self, string arg)
+        addArgument(SBMLExternalValidator self, string arg)
 
         @internal
 
@@ -46343,7 +46109,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getNumArguments(self):
         """
-        getNumArguments(self) -> unsigned int
+        getNumArguments(SBMLExternalValidator self) -> unsigned int
 
         @internal
 
@@ -46354,7 +46120,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getArgument(self, *args):
         """
-        getArgument(self, unsigned int n) -> string
+        getArgument(SBMLExternalValidator self, unsigned int n) -> string
 
         @internal
 
@@ -46423,8 +46189,8 @@ class XMLAttributes(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLAttributes
-        __init__(self, XMLAttributes orig) -> XMLAttributes
+        __init__(XMLAttributes self) -> XMLAttributes
+        __init__(XMLAttributes self, XMLAttributes orig) -> XMLAttributes
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -46452,7 +46218,7 @@ class XMLAttributes(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLAttributes
+        clone(XMLAttributes self) -> XMLAttributes
 
         Creates and returns a deep copy of this XMLAttributes object.
 
@@ -46463,11 +46229,10 @@ class XMLAttributes(_object):
 
     def add(self, *args):
         """
-        add(self, string name, string value, string namespaceURI = "", 
-            string prefix = "") -> int
-        add(self, string name, string value, string namespaceURI = "") -> int
-        add(self, string name, string value) -> int
-        add(self, XMLTriple triple, string value) -> int
+        add(XMLAttributes self, string name, string value, string namespaceURI="", string prefix="") -> int
+        add(XMLAttributes self, string name, string value, string namespaceURI="") -> int
+        add(XMLAttributes self, string name, string value) -> int
+        add(XMLAttributes self, XMLTriple triple, string value) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -46740,7 +46505,7 @@ class XMLAttributes(_object):
 
     def removeResource(self, *args):
         """
-        removeResource(self, int n) -> int
+        removeResource(XMLAttributes self, int n) -> int
 
         @internal
 
@@ -46751,10 +46516,10 @@ class XMLAttributes(_object):
 
     def remove(self, *args):
         """
-        remove(self, int n) -> int
-        remove(self, string name, string uri = "") -> int
-        remove(self, string name) -> int
-        remove(self, XMLTriple triple) -> int
+        remove(XMLAttributes self, int n) -> int
+        remove(XMLAttributes self, string name, string uri="") -> int
+        remove(XMLAttributes self, string name) -> int
+        remove(XMLAttributes self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -46846,7 +46611,7 @@ class XMLAttributes(_object):
 
     def clear(self):
         """
-        clear(self) -> int
+        clear(XMLAttributes self) -> int
 
         Removes all attributes in this XMLAttributes object.
 
@@ -46865,9 +46630,9 @@ class XMLAttributes(_object):
 
     def getIndex(self, *args):
         """
-        getIndex(self, string name) -> int
-        getIndex(self, string name, string uri) -> int
-        getIndex(self, XMLTriple triple) -> int
+        getIndex(XMLAttributes self, string name) -> int
+        getIndex(XMLAttributes self, string name, string uri) -> int
+        getIndex(XMLAttributes self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -46935,7 +46700,7 @@ class XMLAttributes(_object):
 
     def getLength(self):
         """
-        getLength(self) -> int
+        getLength(XMLAttributes self) -> int
 
         Returns the number of attributes in this list of attributes.
 
@@ -46946,7 +46711,7 @@ class XMLAttributes(_object):
 
     def getNumAttributes(self):
         """
-        getNumAttributes(self) -> int
+        getNumAttributes(XMLAttributes self) -> int
 
         Returns the number of attributes in this list of attributes.
 
@@ -46960,7 +46725,7 @@ class XMLAttributes(_object):
 
     def getName(self, *args):
         """
-        getName(self, int index) -> string
+        getName(XMLAttributes self, int index) -> string
 
         Returns the name of the <em>n</em>th attribute in this list of
         attributes.
@@ -46993,7 +46758,7 @@ class XMLAttributes(_object):
 
     def getPrefix(self, *args):
         """
-        getPrefix(self, int index) -> string
+        getPrefix(XMLAttributes self, int index) -> string
 
         Returns the namespace prefix of the <em>n</em>th attribute in this
         attribute set.
@@ -47026,7 +46791,7 @@ class XMLAttributes(_object):
 
     def getPrefixedName(self, *args):
         """
-        getPrefixedName(self, int index) -> string
+        getPrefixedName(XMLAttributes self, int index) -> string
 
         Returns the prefix name of the <em>n</em>th attribute in this attribute
         set.
@@ -47059,7 +46824,7 @@ class XMLAttributes(_object):
 
     def getURI(self, *args):
         """
-        getURI(self, int index) -> string
+        getURI(XMLAttributes self, int index) -> string
 
         Returns the XML namespace URI of the <em>n</em>th attribute in this
         attribute set.
@@ -47092,10 +46857,10 @@ class XMLAttributes(_object):
 
     def getValue(self, *args):
         """
-        getValue(self, int index) -> string
-        getValue(self, string name) -> string
-        getValue(self, string name, string uri) -> string
-        getValue(self, XMLTriple triple) -> string
+        getValue(XMLAttributes self, int index) -> string
+        getValue(XMLAttributes self, string name) -> string
+        getValue(XMLAttributes self, string name, string uri) -> string
+        getValue(XMLAttributes self, XMLTriple triple) -> string
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -47208,10 +46973,10 @@ class XMLAttributes(_object):
 
     def hasAttribute(self, *args):
         """
-        hasAttribute(self, int index) -> bool
-        hasAttribute(self, string name, string uri = "") -> bool
-        hasAttribute(self, string name) -> bool
-        hasAttribute(self, XMLTriple triple) -> bool
+        hasAttribute(XMLAttributes self, int index) -> bool
+        hasAttribute(XMLAttributes self, string name, string uri="") -> bool
+        hasAttribute(XMLAttributes self, string name) -> bool
+        hasAttribute(XMLAttributes self, XMLTriple triple) -> bool
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -47277,7 +47042,7 @@ class XMLAttributes(_object):
 
     def isEmpty(self):
         """
-        isEmpty(self) -> bool
+        isEmpty(XMLAttributes self) -> bool
 
         Returns @c True if this list of attributes is empty.
 
@@ -47343,8 +47108,8 @@ class XMLNamespaces(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLNamespaces
-        __init__(self, XMLNamespaces orig) -> XMLNamespaces
+        __init__(XMLNamespaces self) -> XMLNamespaces
+        __init__(XMLNamespaces self, XMLNamespaces orig) -> XMLNamespaces
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -47372,7 +47137,7 @@ class XMLNamespaces(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLNamespaces
+        clone(XMLNamespaces self) -> XMLNamespaces
 
         Creates and returns a deep copy of this XMLNamespaces object.
 
@@ -47383,8 +47148,8 @@ class XMLNamespaces(_object):
 
     def add(self, *args):
         """
-        add(self, string uri, string prefix = "") -> int
-        add(self, string uri) -> int
+        add(XMLNamespaces self, string uri, string prefix="") -> int
+        add(XMLNamespaces self, string uri) -> int
 
         Appends an XML namespace prefix and URI pair to this list of namespace
         declarations.
@@ -47422,8 +47187,8 @@ class XMLNamespaces(_object):
 
     def remove(self, *args):
         """
-        remove(self, int index) -> int
-        remove(self, string prefix) -> int
+        remove(XMLNamespaces self, int index) -> int
+        remove(XMLNamespaces self, string prefix) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -47468,7 +47233,7 @@ class XMLNamespaces(_object):
 
     def clear(self):
         """
-        clear(self) -> int
+        clear(XMLNamespaces self) -> int
 
         Clears (deletes) all XML namespace declarations in this XMLNamespaces
         object.
@@ -47487,7 +47252,7 @@ class XMLNamespaces(_object):
 
     def getIndex(self, *args):
         """
-        getIndex(self, string uri) -> int
+        getIndex(XMLNamespaces self, string uri) -> int
 
         Look up the index of an XML namespace declaration by URI.
 
@@ -47505,7 +47270,7 @@ class XMLNamespaces(_object):
 
     def containsUri(self, *args):
         """
-        containsUri(self, string uri) -> bool
+        containsUri(XMLNamespaces self, string uri) -> bool
 
         Tests whether the given uri is contained in this set of namespaces.
 
@@ -47514,7 +47279,7 @@ class XMLNamespaces(_object):
 
     def getIndexByPrefix(self, *args):
         """
-        getIndexByPrefix(self, string prefix) -> int
+        getIndexByPrefix(XMLNamespaces self, string prefix) -> int
 
         Look up the index of an XML namespace declaration by prefix.
 
@@ -47533,7 +47298,7 @@ class XMLNamespaces(_object):
 
     def getLength(self):
         """
-        getLength(self) -> int
+        getLength(XMLNamespaces self) -> int
 
         Returns the total number of URI-and-prefix pairs stored in this
         particular XMLNamespaces instance.
@@ -47545,7 +47310,7 @@ class XMLNamespaces(_object):
 
     def getNumNamespaces(self):
         """
-        getNumNamespaces(self) -> int
+        getNumNamespaces(XMLNamespaces self) -> int
 
         Returns the total number of URI-and-prefix pairs stored in this
         particular XMLNamespaces instance.
@@ -47560,8 +47325,8 @@ class XMLNamespaces(_object):
 
     def getPrefix(self, *args):
         """
-        getPrefix(self, int index) -> string
-        getPrefix(self, string uri) -> string
+        getPrefix(XMLNamespaces self, int index) -> string
+        getPrefix(XMLNamespaces self, string uri) -> string
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -47608,9 +47373,9 @@ class XMLNamespaces(_object):
 
     def getURI(self, *args):
         """
-        getURI(self, int index) -> string
-        getURI(self, string prefix = "") -> string
-        getURI(self) -> string
+        getURI(XMLNamespaces self, int index) -> string
+        getURI(XMLNamespaces self, string prefix="") -> string
+        getURI(XMLNamespaces self) -> string
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -47662,7 +47427,7 @@ class XMLNamespaces(_object):
 
     def isEmpty(self):
         """
-        isEmpty(self) -> bool
+        isEmpty(XMLNamespaces self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         XMLNamespaces list is empty.
@@ -47674,7 +47439,7 @@ class XMLNamespaces(_object):
 
     def hasURI(self, *args):
         """
-        hasURI(self, string uri) -> bool
+        hasURI(XMLNamespaces self, string uri) -> bool
 
         Predicate returning @c True or @c False depending on whether an XML
         Namespace with the given URI is contained in this XMLNamespaces list.
@@ -47689,7 +47454,7 @@ class XMLNamespaces(_object):
 
     def hasPrefix(self, *args):
         """
-        hasPrefix(self, string prefix) -> bool
+        hasPrefix(XMLNamespaces self, string prefix) -> bool
 
         Predicate returning @c True or @c False depending on whether an XML
         Namespace with the given prefix is contained in this XMLNamespaces
@@ -47705,7 +47470,7 @@ class XMLNamespaces(_object):
 
     def hasNS(self, *args):
         """
-        hasNS(self, string uri, string prefix) -> bool
+        hasNS(XMLNamespaces self, string uri, string prefix) -> bool
 
         Predicate returning @c True or @c False depending on whether an XML
         Namespace with the given URI and prefix pair is contained in this
@@ -47797,23 +47562,21 @@ class XMLToken(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0, unsigned int column = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0, 
-            unsigned int column = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes) -> XMLToken
-        __init__(self, XMLTriple triple, unsigned int line = 0, unsigned int column = 0) -> XMLToken
-        __init__(self, XMLTriple triple, unsigned int line = 0) -> XMLToken
-        __init__(self, XMLTriple triple) -> XMLToken
-        __init__(self, string chars, unsigned int line = 0, unsigned int column = 0) -> XMLToken
-        __init__(self, string chars, unsigned int line = 0) -> XMLToken
-        __init__(self, string chars) -> XMLToken
-        __init__(self, XMLToken orig) -> XMLToken
+        __init__(XMLToken self) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0, 
+            unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0, unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, unsigned int const line=0, unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple) -> XMLToken
+        __init__(XMLToken self, string chars, unsigned int const line=0, unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, string chars, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, string chars) -> XMLToken
+        __init__(XMLToken self, XMLToken orig) -> XMLToken
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -47926,7 +47689,7 @@ class XMLToken(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLToken
+        clone(XMLToken self) -> XMLToken
 
         Creates and returns a deep copy of this XMLToken object.
 
@@ -47937,7 +47700,7 @@ class XMLToken(_object):
 
     def getAttributes(self):
         """
-        getAttributes(self) -> XMLAttributes
+        getAttributes(XMLToken self) -> XMLAttributes
 
         Returns the attributes of the XML element represented by this token.
 
@@ -47949,7 +47712,7 @@ class XMLToken(_object):
 
     def setAttributes(self, *args):
         """
-        setAttributes(self, XMLAttributes attributes) -> int
+        setAttributes(XMLToken self, XMLAttributes attributes) -> int
 
         Sets the attributes on the XML element represented by this token.
 
@@ -47979,11 +47742,10 @@ class XMLToken(_object):
 
     def addAttr(self, *args):
         """
-        addAttr(self, string name, string value, string namespaceURI = "", 
-            string prefix = "") -> int
-        addAttr(self, string name, string value, string namespaceURI = "") -> int
-        addAttr(self, string name, string value) -> int
-        addAttr(self, XMLTriple triple, string value) -> int
+        addAttr(XMLToken self, string name, string value, string namespaceURI="", string prefix="") -> int
+        addAttr(XMLToken self, string name, string value, string namespaceURI="") -> int
+        addAttr(XMLToken self, string name, string value) -> int
+        addAttr(XMLToken self, XMLTriple triple, string value) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48069,10 +47831,10 @@ class XMLToken(_object):
 
     def removeAttr(self, *args):
         """
-        removeAttr(self, int n) -> int
-        removeAttr(self, string name, string uri = "") -> int
-        removeAttr(self, string name) -> int
-        removeAttr(self, XMLTriple triple) -> int
+        removeAttr(XMLToken self, int n) -> int
+        removeAttr(XMLToken self, string name, string uri="") -> int
+        removeAttr(XMLToken self, string name) -> int
+        removeAttr(XMLToken self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48169,7 +47931,7 @@ class XMLToken(_object):
 
     def clearAttributes(self):
         """
-        clearAttributes(self) -> int
+        clearAttributes(XMLToken self) -> int
 
         Removes all attributes of this XMLToken object.
 
@@ -48190,9 +47952,9 @@ class XMLToken(_object):
 
     def getAttrIndex(self, *args):
         """
-        getAttrIndex(self, string name, string uri = "") -> int
-        getAttrIndex(self, string name) -> int
-        getAttrIndex(self, XMLTriple triple) -> int
+        getAttrIndex(XMLToken self, string name, string uri="") -> int
+        getAttrIndex(XMLToken self, string name) -> int
+        getAttrIndex(XMLToken self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48233,7 +47995,7 @@ class XMLToken(_object):
 
     def getAttributesLength(self):
         """
-        getAttributesLength(self) -> int
+        getAttributesLength(XMLToken self) -> int
 
         Returns the number of attributes on this XMLToken object.
 
@@ -48246,7 +48008,7 @@ class XMLToken(_object):
 
     def getAttrName(self, *args):
         """
-        getAttrName(self, int index) -> string
+        getAttrName(XMLToken self, int index) -> string
 
         Returns the name of the <em>n</em>th attribute in this token's list of
         attributes.
@@ -48270,7 +48032,7 @@ class XMLToken(_object):
 
     def getAttrPrefix(self, *args):
         """
-        getAttrPrefix(self, int index) -> string
+        getAttrPrefix(XMLToken self, int index) -> string
 
         Returns the prefix of the <em>n</em>th attribute in this token's list of
         attributes.
@@ -48294,7 +48056,7 @@ class XMLToken(_object):
 
     def getAttrPrefixedName(self, *args):
         """
-        getAttrPrefixedName(self, int index) -> string
+        getAttrPrefixedName(XMLToken self, int index) -> string
 
         Returns the prefixed name of the <em>n</em>th attribute in this token's
         list of attributes.
@@ -48319,7 +48081,7 @@ class XMLToken(_object):
 
     def getAttrURI(self, *args):
         """
-        getAttrURI(self, int index) -> string
+        getAttrURI(XMLToken self, int index) -> string
 
         Returns the XML namespace URI of the <em>n</em>th attribute in this
         token's list of attributes.
@@ -48340,10 +48102,10 @@ class XMLToken(_object):
 
     def getAttrValue(self, *args):
         """
-        getAttrValue(self, int index) -> string
-        getAttrValue(self, string name, string uri = "") -> string
-        getAttrValue(self, string name) -> string
-        getAttrValue(self, XMLTriple triple) -> string
+        getAttrValue(XMLToken self, int index) -> string
+        getAttrValue(XMLToken self, string name, string uri="") -> string
+        getAttrValue(XMLToken self, string name) -> string
+        getAttrValue(XMLToken self, XMLTriple triple) -> string
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48414,10 +48176,10 @@ class XMLToken(_object):
 
     def hasAttr(self, *args):
         """
-        hasAttr(self, int index) -> bool
-        hasAttr(self, string name, string uri = "") -> bool
-        hasAttr(self, string name) -> bool
-        hasAttr(self, XMLTriple triple) -> bool
+        hasAttr(XMLToken self, int index) -> bool
+        hasAttr(XMLToken self, string name, string uri="") -> bool
+        hasAttr(XMLToken self, string name) -> bool
+        hasAttr(XMLToken self, XMLTriple triple) -> bool
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48473,7 +48235,7 @@ class XMLToken(_object):
 
     def isAttributesEmpty(self):
         """
-        isAttributesEmpty(self) -> bool
+        isAttributesEmpty(XMLToken self) -> bool
 
         Returns @c True if this token has no attributes.
 
@@ -48485,7 +48247,7 @@ class XMLToken(_object):
 
     def getNamespaces(self):
         """
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(XMLToken self) -> XMLNamespaces
 
         Returns the XML namespaces declared for this token.
 
@@ -48496,7 +48258,7 @@ class XMLToken(_object):
 
     def setNamespaces(self, *args):
         """
-        setNamespaces(self, XMLNamespaces namespaces) -> int
+        setNamespaces(XMLToken self, XMLNamespaces namespaces) -> int
 
         Sets the XML namespaces on this XML element.
 
@@ -48524,8 +48286,8 @@ class XMLToken(_object):
 
     def addNamespace(self, *args):
         """
-        addNamespace(self, string uri, string prefix = "") -> int
-        addNamespace(self, string uri) -> int
+        addNamespace(XMLToken self, string uri, string prefix="") -> int
+        addNamespace(XMLToken self, string uri) -> int
 
         Appends an XML namespace declaration to this token.
 
@@ -48557,8 +48319,8 @@ class XMLToken(_object):
 
     def removeNamespace(self, *args):
         """
-        removeNamespace(self, int index) -> int
-        removeNamespace(self, string prefix) -> int
+        removeNamespace(XMLToken self, int index) -> int
+        removeNamespace(XMLToken self, string prefix) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48627,7 +48389,7 @@ class XMLToken(_object):
 
     def clearNamespaces(self):
         """
-        clearNamespaces(self) -> int
+        clearNamespaces(XMLToken self) -> int
 
         Removes all XML namespace declarations from this token.
 
@@ -48649,7 +48411,7 @@ class XMLToken(_object):
 
     def getNamespaceIndex(self, *args):
         """
-        getNamespaceIndex(self, string uri) -> int
+        getNamespaceIndex(XMLToken self, string uri) -> int
 
         Returns the index of an XML namespace declaration based on its URI.
 
@@ -48663,7 +48425,7 @@ class XMLToken(_object):
 
     def getNamespaceIndexByPrefix(self, *args):
         """
-        getNamespaceIndexByPrefix(self, string prefix) -> int
+        getNamespaceIndexByPrefix(XMLToken self, string prefix) -> int
 
         Returns the index of an XML namespace declaration based on its prefix.
 
@@ -48677,7 +48439,7 @@ class XMLToken(_object):
 
     def getNamespacesLength(self):
         """
-        getNamespacesLength(self) -> int
+        getNamespacesLength(XMLToken self) -> int
 
         Returns the number of XML namespaces declared on this token.
 
@@ -48689,8 +48451,8 @@ class XMLToken(_object):
 
     def getNamespacePrefix(self, *args):
         """
-        getNamespacePrefix(self, int index) -> string
-        getNamespacePrefix(self, string uri) -> string
+        getNamespacePrefix(XMLToken self, int index) -> string
+        getNamespacePrefix(XMLToken self, string uri) -> string
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48735,9 +48497,9 @@ class XMLToken(_object):
 
     def getNamespaceURI(self, *args):
         """
-        getNamespaceURI(self, int index) -> string
-        getNamespaceURI(self, string prefix = "") -> string
-        getNamespaceURI(self) -> string
+        getNamespaceURI(XMLToken self, int index) -> string
+        getNamespaceURI(XMLToken self, string prefix="") -> string
+        getNamespaceURI(XMLToken self) -> string
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -48781,7 +48543,7 @@ class XMLToken(_object):
 
     def isNamespacesEmpty(self):
         """
-        isNamespacesEmpty(self) -> bool
+        isNamespacesEmpty(XMLToken self) -> bool
 
         Returns @c True if there are no namespaces declared on this token.
 
@@ -48793,7 +48555,7 @@ class XMLToken(_object):
 
     def hasNamespaceURI(self, *args):
         """
-        hasNamespaceURI(self, string uri) -> bool
+        hasNamespaceURI(XMLToken self, string uri) -> bool
 
         Returns @c True if this token has an XML namespace with a given URI.
 
@@ -48807,7 +48569,7 @@ class XMLToken(_object):
 
     def hasNamespacePrefix(self, *args):
         """
-        hasNamespacePrefix(self, string prefix) -> bool
+        hasNamespacePrefix(XMLToken self, string prefix) -> bool
 
         Returns @c True if this token has an XML namespace with a given prefix.
 
@@ -48821,7 +48583,7 @@ class XMLToken(_object):
 
     def hasNamespaceNS(self, *args):
         """
-        hasNamespaceNS(self, string uri, string prefix) -> bool
+        hasNamespaceNS(XMLToken self, string uri, string prefix) -> bool
 
         Returns @c True if this token has an XML namespace with a given prefix
         and URI combination.
@@ -48838,7 +48600,7 @@ class XMLToken(_object):
 
     def setTriple(self, *args):
         """
-        setTriple(self, XMLTriple triple) -> int
+        setTriple(XMLToken self, XMLTriple triple) -> int
 
         Sets the name, namespace prefix and namespace URI of this token.
 
@@ -48865,7 +48627,7 @@ class XMLToken(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(XMLToken self) -> string
 
         Returns the (unqualified) name of token.
 
@@ -48876,7 +48638,7 @@ class XMLToken(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(XMLToken self) -> string
 
         Returns the XML namespace prefix of token.
 
@@ -48890,7 +48652,7 @@ class XMLToken(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(XMLToken self) -> string
 
         Returns the XML namespace URI of token.
 
@@ -48901,7 +48663,7 @@ class XMLToken(_object):
 
     def getCharacters(self):
         """
-        getCharacters(self) -> string
+        getCharacters(XMLToken self) -> string
 
         Returns the character text of token.
 
@@ -48917,7 +48679,7 @@ class XMLToken(_object):
 
     def append(self, *args):
         """
-        append(self, string chars) -> int
+        append(XMLToken self, string chars) -> int
 
         Appends characters to the text content of token.
 
@@ -48942,7 +48704,7 @@ class XMLToken(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(XMLToken self) -> unsigned int
 
         Returns the column number at which this token occurs in the input.
 
@@ -48953,7 +48715,7 @@ class XMLToken(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(XMLToken self) -> unsigned int
 
         Returns the line number at which this token occurs in the input.
 
@@ -48964,7 +48726,7 @@ class XMLToken(_object):
 
     def isElement(self):
         """
-        isElement(self) -> bool
+        isElement(XMLToken self) -> bool
 
         Returns @c True if this token represents an XML element.
 
@@ -48984,7 +48746,7 @@ class XMLToken(_object):
 
     def isEnd(self):
         """
-        isEnd(self) -> bool
+        isEnd(XMLToken self) -> bool
 
         Returns @c True if this token represents an XML end element.
 
@@ -49000,7 +48762,7 @@ class XMLToken(_object):
 
     def isEndFor(self, *args):
         """
-        isEndFor(self, XMLToken element) -> bool
+        isEndFor(XMLToken self, XMLToken element) -> bool
 
         Returns @c True if this token represents an XML end element for a
         particular start element.
@@ -49022,7 +48784,7 @@ class XMLToken(_object):
 
     def isEOF(self):
         """
-        isEOF(self) -> bool
+        isEOF(XMLToken self) -> bool
 
         Returns @c True if this token is an end of file marker.
 
@@ -49036,7 +48798,7 @@ class XMLToken(_object):
 
     def isStart(self):
         """
-        isStart(self) -> bool
+        isStart(XMLToken self) -> bool
 
         Returns @c True if this token represents an XML start element.
 
@@ -49051,7 +48813,7 @@ class XMLToken(_object):
 
     def isText(self):
         """
-        isText(self) -> bool
+        isText(XMLToken self) -> bool
 
         Returns @c True if this token represents an XML text element.
 
@@ -49066,7 +48828,7 @@ class XMLToken(_object):
 
     def setEnd(self):
         """
-        setEnd(self) -> int
+        setEnd(XMLToken self) -> int
 
         Declares that this token represents an XML element end tag.
 
@@ -49085,7 +48847,7 @@ class XMLToken(_object):
 
     def setEOF(self):
         """
-        setEOF(self) -> int
+        setEOF(XMLToken self) -> int
 
         Declares that this token is an end-of-file/input marker.
 
@@ -49103,7 +48865,7 @@ class XMLToken(_object):
 
     def unsetEnd(self):
         """
-        unsetEnd(self) -> int
+        unsetEnd(XMLToken self) -> int
 
         Declares that this token no longer represents an XML start/end element.
 
@@ -49119,7 +48881,7 @@ class XMLToken(_object):
 
     def toString(self):
         """
-        toString(self) -> string
+        toString(XMLToken self) -> string
 
         Prints a string representation of the underlying token stream.
 
@@ -49273,25 +49035,23 @@ class XMLNode(XMLToken):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLNode
-        __init__(self, XMLToken token) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0, unsigned int column = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0, 
-            unsigned int column = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes) -> XMLNode
-        __init__(self, XMLTriple triple, unsigned int line = 0, unsigned int column = 0) -> XMLNode
-        __init__(self, XMLTriple triple, unsigned int line = 0) -> XMLNode
-        __init__(self, XMLTriple triple) -> XMLNode
-        __init__(self, string chars, unsigned int line = 0, unsigned int column = 0) -> XMLNode
-        __init__(self, string chars, unsigned int line = 0) -> XMLNode
-        __init__(self, string chars) -> XMLNode
-        __init__(self, XMLInputStream stream) -> XMLNode
-        __init__(self, XMLNode orig) -> XMLNode
+        __init__(XMLNode self) -> XMLNode
+        __init__(XMLNode self, XMLToken token) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0, 
+            unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0, unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, unsigned int const line=0, unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple) -> XMLNode
+        __init__(XMLNode self, string chars, unsigned int const line=0, unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, string chars, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, string chars) -> XMLNode
+        __init__(XMLNode self, XMLInputStream stream) -> XMLNode
+        __init__(XMLNode self, XMLNode orig) -> XMLNode
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -49389,7 +49149,7 @@ class XMLNode(XMLToken):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLNode
+        clone(XMLNode self) -> XMLNode
 
         Creates and returns a deep copy of this XMLNode object.
 
@@ -49400,7 +49160,7 @@ class XMLNode(XMLToken):
 
     def addChild(self, *args):
         """
-        addChild(self, XMLNode node) -> int
+        addChild(XMLNode self, XMLNode node) -> int
 
         Adds a copy of @p node as a child of this XMLNode.
 
@@ -49423,7 +49183,7 @@ class XMLNode(XMLToken):
 
     def insertChild(self, *args):
         """
-        insertChild(self, unsigned int n, XMLNode node) -> XMLNode
+        insertChild(XMLNode self, unsigned int n, XMLNode node) -> XMLNode
 
         Inserts a copy of the given node as the <code>n</code>th child of this
         XMLNode.
@@ -49442,7 +49202,7 @@ class XMLNode(XMLToken):
 
     def removeChild(self, *args):
         """
-        removeChild(self, unsigned int n) -> XMLNode
+        removeChild(XMLNode self, unsigned int n) -> XMLNode
 
         Removes the <code>n</code>th child of this XMLNode and returns the
         removed node.
@@ -49465,7 +49225,7 @@ class XMLNode(XMLToken):
 
     def removeChildren(self):
         """
-        removeChildren(self) -> int
+        removeChildren(XMLNode self) -> int
 
         Removes all children from this node.
         @return integer value indicating success/failure of the
@@ -49479,10 +49239,10 @@ class XMLNode(XMLToken):
 
     def getChild(self, *args):
         """
-        getChild(self, unsigned int n) -> XMLNode
-        getChild(self, unsigned int n) -> XMLNode
-        getChild(self, string name) -> XMLNode
-        getChild(self, string name) -> XMLNode
+        getChild(XMLNode self, unsigned int n) -> XMLNode
+        getChild(XMLNode self, unsigned int n) -> XMLNode
+        getChild(XMLNode self, string name) -> XMLNode
+        getChild(XMLNode self, string name) -> XMLNode
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -49521,7 +49281,7 @@ class XMLNode(XMLToken):
 
     def getIndex(self, *args):
         """
-        getIndex(self, string name) -> int
+        getIndex(XMLNode self, string name) -> int
 
         Return the index of the first child of this XMLNode with the given name.
 
@@ -49536,7 +49296,7 @@ class XMLNode(XMLToken):
 
     def hasChild(self, *args):
         """
-        hasChild(self, string name) -> bool
+        hasChild(XMLNode self, string name) -> bool
 
         Return a boolean indicating whether this XMLNode has a child with the
         given name.
@@ -49551,8 +49311,8 @@ class XMLNode(XMLToken):
 
     def equals(self, *args):
         """
-        equals(self, XMLNode other, bool ignoreURI = False) -> bool
-        equals(self, XMLNode other) -> bool
+        equals(XMLNode self, XMLNode other, bool ignoreURI=False) -> bool
+        equals(XMLNode self, XMLNode other) -> bool
 
         Compare this XMLNode against another XMLNode returning true if both
         nodes represent the same XML tree, or false otherwise.
@@ -49570,7 +49330,7 @@ class XMLNode(XMLToken):
 
     def getNumChildren(self):
         """
-        getNumChildren(self) -> unsigned int
+        getNumChildren(XMLNode self) -> unsigned int
 
         Returns the number of children for this XMLNode.
 
@@ -49581,7 +49341,7 @@ class XMLNode(XMLToken):
 
     def toXMLString(self):
         """
-        toXMLString(self) -> string
+        toXMLString(XMLNode self) -> string
 
         Returns a string representation of this XMLNode.
 
@@ -49607,7 +49367,7 @@ class XMLNode(XMLToken):
     __swig_getmethods__["convertXMLNodeToString"] = lambda x: convertXMLNodeToString
     def convertStringToXMLNode(*args):
         """
-        convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns = None) -> XMLNode
+        convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns=None) -> XMLNode
         convertStringToXMLNode(string xmlstr) -> XMLNode
 
         Returns an XMLNode which is derived from a string containing XML
@@ -49657,7 +49417,7 @@ def XMLNode_convertXMLNodeToString(*args):
 
 def XMLNode_convertStringToXMLNode(*args):
   """
-    convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns = None) -> XMLNode
+    convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns=None) -> XMLNode
     XMLNode_convertStringToXMLNode(string xmlstr) -> XMLNode
 
     Returns an XMLNode which is derived from a string containing XML
@@ -49735,11 +49495,11 @@ class XMLTriple(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLTriple
-        __init__(self, string name, string uri, string prefix) -> XMLTriple
-        __init__(self, string triplet, char sepchar = ' ') -> XMLTriple
-        __init__(self, string triplet) -> XMLTriple
-        __init__(self, XMLTriple orig) -> XMLTriple
+        __init__(XMLTriple self) -> XMLTriple
+        __init__(XMLTriple self, string name, string uri, string prefix) -> XMLTriple
+        __init__(XMLTriple self, string triplet, char const sepchar=' ') -> XMLTriple
+        __init__(XMLTriple self, string triplet) -> XMLTriple
+        __init__(XMLTriple self, XMLTriple orig) -> XMLTriple
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -49805,7 +49565,7 @@ class XMLTriple(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLTriple
+        clone(XMLTriple self) -> XMLTriple
 
         Creates and returns a deep copy of this XMLTriple object.
 
@@ -49816,7 +49576,7 @@ class XMLTriple(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(XMLTriple self) -> string
 
         Returns the @em name portion of this XMLTriple object.
 
@@ -49827,7 +49587,7 @@ class XMLTriple(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(XMLTriple self) -> string
 
         Returns the @em prefix portion of this XMLTriple object.
 
@@ -49838,7 +49598,7 @@ class XMLTriple(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(XMLTriple self) -> string
 
         Returns the @em URI portion of this XMLTriple object.
 
@@ -49849,7 +49609,7 @@ class XMLTriple(_object):
 
     def getPrefixedName(self):
         """
-        getPrefixedName(self) -> string
+        getPrefixedName(XMLTriple self) -> string
 
         Returns the prefixed name from this XMLTriple.
 
@@ -49863,7 +49623,7 @@ class XMLTriple(_object):
 
     def isEmpty(self):
         """
-        isEmpty(self) -> bool
+        isEmpty(XMLTriple self) -> bool
 
         Returns @c True if this XMLTriple object is empty.
 
@@ -50037,13 +49797,12 @@ class XMLOutputStream(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, ostream stream, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "", string programVersion = "") -> XMLOutputStream
-        __init__(self, ostream stream, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "") -> XMLOutputStream
-        __init__(self, ostream stream, string encoding = "UTF-8", bool writeXMLDecl = True) -> XMLOutputStream
-        __init__(self, ostream stream, string encoding = "UTF-8") -> XMLOutputStream
-        __init__(self, ostream stream) -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8", bool writeXMLDecl=True, string programName="", 
+            string programVersion="") -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8", bool writeXMLDecl=True, string programName="") -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8", bool writeXMLDecl=True) -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8") -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream) -> XMLOutputStream
 
         Creates a new XMLOutputStream that wraps the given @p stream.
 
@@ -50095,9 +49854,9 @@ class XMLOutputStream(_object):
     __del__ = lambda self : None;
     def endElement(self, *args):
         """
-        endElement(self, string name, string prefix = "")
-        endElement(self, string name)
-        endElement(self, XMLTriple triple)
+        endElement(XMLOutputStream self, string name, string prefix="")
+        endElement(XMLOutputStream self, string name)
+        endElement(XMLOutputStream self, XMLTriple triple)
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -50132,7 +49891,7 @@ class XMLOutputStream(_object):
 
     def setAutoIndent(self, *args):
         """
-        setAutoIndent(self, bool indent)
+        setAutoIndent(XMLOutputStream self, bool indent)
 
         Turns automatic indentation on or off for this XMLOutputStream.
 
@@ -50143,9 +49902,9 @@ class XMLOutputStream(_object):
 
     def startElement(self, *args):
         """
-        startElement(self, string name, string prefix = "")
-        startElement(self, string name)
-        startElement(self, XMLTriple triple)
+        startElement(XMLOutputStream self, string name, string prefix="")
+        startElement(XMLOutputStream self, string name)
+        startElement(XMLOutputStream self, XMLTriple triple)
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -50181,9 +49940,9 @@ class XMLOutputStream(_object):
 
     def startEndElement(self, *args):
         """
-        startEndElement(self, string name, string prefix = "")
-        startEndElement(self, string name)
-        startEndElement(self, XMLTriple triple)
+        startEndElement(XMLOutputStream self, string name, string prefix="")
+        startEndElement(XMLOutputStream self, string name)
+        startEndElement(XMLOutputStream self, XMLTriple triple)
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -50218,25 +49977,25 @@ class XMLOutputStream(_object):
 
     def writeAttribute(self, *args):
         """
-        writeAttribute(self, string name, string value)
-        writeAttribute(self, string name, string prefix, string value)
-        writeAttribute(self, XMLTriple triple, string value)
-        writeAttribute(self, string name, char value)
-        writeAttribute(self, string name, string prefix, char value)
-        writeAttribute(self, XMLTriple triple, char value)
-        writeAttribute(self, string name, bool value)
-        writeAttribute(self, string name, string prefix, bool value)
-        writeAttribute(self, XMLTriple triple, bool value)
-        writeAttribute(self, string name, double value)
-        writeAttribute(self, string name, string prefix, double value)
-        writeAttribute(self, XMLTriple triple, double value)
-        writeAttribute(self, string name, long value)
-        writeAttribute(self, string name, string prefix, long value)
-        writeAttribute(self, XMLTriple triple, long value)
-        writeAttribute(self, string name, int value)
-        writeAttribute(self, string name, string prefix, int value)
-        writeAttribute(self, XMLTriple triple, int value)
-        writeAttribute(self, string name, string prefix, unsigned int value)
+        writeAttribute(XMLOutputStream self, string name, string value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, string value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, string value)
+        writeAttribute(XMLOutputStream self, string name, char const * value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, char const * value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, char const * value)
+        writeAttribute(XMLOutputStream self, string name, bool const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, bool const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, bool const & value)
+        writeAttribute(XMLOutputStream self, string name, double const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, double const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, double const & value)
+        writeAttribute(XMLOutputStream self, string name, long const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, long const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, long const & value)
+        writeAttribute(XMLOutputStream self, string name, int const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, int const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, int const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, unsigned int const & value)
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -50535,7 +50294,7 @@ class XMLOutputStream(_object):
 
     def writeXMLDecl(self):
         """
-        writeXMLDecl(self)
+        writeXMLDecl(XMLOutputStream self)
 
         Writes a standard XML declaration to this output stream.
 
@@ -50553,7 +50312,8 @@ class XMLOutputStream(_object):
 
     def writeComment(self, *args):
         """
-        writeComment(self, string programName, string programVersion)
+        writeComment(XMLOutputStream self, string programName, string programVersion, bool writeTimestamp=True)
+        writeComment(XMLOutputStream self, string programName, string programVersion)
 
         Writes an XML comment with the name and version of this program.
 
@@ -50572,12 +50332,15 @@ class XMLOutputStream(_object):
         @param programVersion an optional version identification string to write
         as a comment in the output stream.
 
+        @param writeTimestamp an optional flag indicating that a timestamp should
+        be written
+
         """
         return _libsbml.XMLOutputStream_writeComment(self, *args)
 
     def downIndent(self):
         """
-        downIndent(self)
+        downIndent(XMLOutputStream self)
 
         Decreases the indentation level for this XMLOutputStream.
 
@@ -50595,7 +50358,7 @@ class XMLOutputStream(_object):
 
     def upIndent(self):
         """
-        upIndent(self)
+        upIndent(XMLOutputStream self)
 
         Increases the indentation level for this XMLOutputStream.
 
@@ -50613,7 +50376,7 @@ class XMLOutputStream(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(XMLOutputStream self) -> SBMLNamespaces
 
         Returns the SBMLNamespaces object attached to this output stream.
 
@@ -50624,7 +50387,7 @@ class XMLOutputStream(_object):
 
     def setSBMLNamespaces(self, *args):
         """
-        setSBMLNamespaces(self, SBMLNamespaces sbmlns)
+        setSBMLNamespaces(XMLOutputStream self, SBMLNamespaces sbmlns)
 
         Sets the SBMLNamespaces object associated with this output stream.
 
@@ -50633,10 +50396,110 @@ class XMLOutputStream(_object):
         """
         return _libsbml.XMLOutputStream_setSBMLNamespaces(self, *args)
 
+    def getWriteComment():
+        """
+        getWriteComment() -> bool
+
+        @return a boolean, whether the output stream will write an XML
+        comment at the top of the file. (Enabled by default)
+
+        """
+        return _libsbml.XMLOutputStream_getWriteComment()
+
+    if _newclass:getWriteComment = staticmethod(getWriteComment)
+    __swig_getmethods__["getWriteComment"] = lambda x: getWriteComment
+    def setWriteComment(*args):
+        """
+        setWriteComment(bool writeComment)
+
+        sets a flag, whether the output stream will write an XML
+        comment at the top of the file. (Enabled by default)
+
+        @param writeComment the flag
+
+        """
+        return _libsbml.XMLOutputStream_setWriteComment(*args)
+
+    if _newclass:setWriteComment = staticmethod(setWriteComment)
+    __swig_getmethods__["setWriteComment"] = lambda x: setWriteComment
+    def getWriteTimestamp():
+        """
+        getWriteTimestamp() -> bool
+
+        @return a boolean, whether the output stream will write an XML
+        comment with a timestamp at the top of the file. (Enabled by default)
+
+        """
+        return _libsbml.XMLOutputStream_getWriteTimestamp()
+
+    if _newclass:getWriteTimestamp = staticmethod(getWriteTimestamp)
+    __swig_getmethods__["getWriteTimestamp"] = lambda x: getWriteTimestamp
+    def setWriteTimestamp(*args):
+        """
+        setWriteTimestamp(bool writeTimestamp)
+
+        sets a flag, whether the output stream will write an XML
+        comment with a timestamp at the top of the file. (Enabled by default)
+
+        @param writeTimestamp the flag
+
+        """
+        return _libsbml.XMLOutputStream_setWriteTimestamp(*args)
+
+    if _newclass:setWriteTimestamp = staticmethod(setWriteTimestamp)
+    __swig_getmethods__["setWriteTimestamp"] = lambda x: setWriteTimestamp
+    def getLibraryName():
+        """
+        getLibraryName() -> string
+
+        @return the name of the library to be used in comments ('libSBML' by default)
+
+        """
+        return _libsbml.XMLOutputStream_getLibraryName()
+
+    if _newclass:getLibraryName = staticmethod(getLibraryName)
+    __swig_getmethods__["getLibraryName"] = lambda x: getLibraryName
+    def setLibraryName(*args):
+        """
+        setLibraryName(string libraryName)
+
+        sets the name of the library writing the XML
+        @param libraryName the name of the library to be used in comments
+
+        """
+        return _libsbml.XMLOutputStream_setLibraryName(*args)
+
+    if _newclass:setLibraryName = staticmethod(setLibraryName)
+    __swig_getmethods__["setLibraryName"] = lambda x: setLibraryName
+    def getLibraryVersion():
+        """
+        getLibraryVersion() -> string
+
+        @return a string representing the version of the library writing the output.
+        This is the value of getLibSBMLDottedVersion() by default.
+
+        """
+        return _libsbml.XMLOutputStream_getLibraryVersion()
+
+    if _newclass:getLibraryVersion = staticmethod(getLibraryVersion)
+    __swig_getmethods__["getLibraryVersion"] = lambda x: getLibraryVersion
+    def setLibraryVersion(*args):
+        """
+        setLibraryVersion(string libraryVersion)
+
+        sets the name of the library writing the output
+
+        @param libraryVersion the version information as string
+
+        """
+        return _libsbml.XMLOutputStream_setLibraryVersion(*args)
+
+    if _newclass:setLibraryVersion = staticmethod(setLibraryVersion)
+    __swig_getmethods__["setLibraryVersion"] = lambda x: setLibraryVersion
     def writeAttributeBool(self, *args):
         """
-        writeAttributeBool(self, string name, bool value)
-        writeAttributeBool(self, XMLTriple name, bool value)
+        writeAttributeBool(XMLOutputStream self, string name, bool const & value)
+        writeAttributeBool(XMLOutputStream self, XMLTriple name, bool const & value)
 
         @internal
         """
@@ -50659,6 +50522,90 @@ class XMLOutputStream(_object):
 XMLOutputStream_swigregister = _libsbml.XMLOutputStream_swigregister
 XMLOutputStream_swigregister(XMLOutputStream)
 
+def XMLOutputStream_getWriteComment():
+  """
+    XMLOutputStream_getWriteComment() -> bool
+
+    @return a boolean, whether the output stream will write an XML
+    comment at the top of the file. (Enabled by default)
+
+    """
+  return _libsbml.XMLOutputStream_getWriteComment()
+
+def XMLOutputStream_setWriteComment(*args):
+  """
+    XMLOutputStream_setWriteComment(bool writeComment)
+
+    sets a flag, whether the output stream will write an XML
+    comment at the top of the file. (Enabled by default)
+
+    @param writeComment the flag
+
+    """
+  return _libsbml.XMLOutputStream_setWriteComment(*args)
+
+def XMLOutputStream_getWriteTimestamp():
+  """
+    XMLOutputStream_getWriteTimestamp() -> bool
+
+    @return a boolean, whether the output stream will write an XML
+    comment with a timestamp at the top of the file. (Enabled by default)
+
+    """
+  return _libsbml.XMLOutputStream_getWriteTimestamp()
+
+def XMLOutputStream_setWriteTimestamp(*args):
+  """
+    XMLOutputStream_setWriteTimestamp(bool writeTimestamp)
+
+    sets a flag, whether the output stream will write an XML
+    comment with a timestamp at the top of the file. (Enabled by default)
+
+    @param writeTimestamp the flag
+
+    """
+  return _libsbml.XMLOutputStream_setWriteTimestamp(*args)
+
+def XMLOutputStream_getLibraryName():
+  """
+    XMLOutputStream_getLibraryName() -> string
+
+    @return the name of the library to be used in comments ('libSBML' by default)
+
+    """
+  return _libsbml.XMLOutputStream_getLibraryName()
+
+def XMLOutputStream_setLibraryName(*args):
+  """
+    XMLOutputStream_setLibraryName(string libraryName)
+
+    sets the name of the library writing the XML
+    @param libraryName the name of the library to be used in comments
+
+    """
+  return _libsbml.XMLOutputStream_setLibraryName(*args)
+
+def XMLOutputStream_getLibraryVersion():
+  """
+    XMLOutputStream_getLibraryVersion() -> string
+
+    @return a string representing the version of the library writing the output.
+    This is the value of getLibSBMLDottedVersion() by default.
+
+    """
+  return _libsbml.XMLOutputStream_getLibraryVersion()
+
+def XMLOutputStream_setLibraryVersion(*args):
+  """
+    XMLOutputStream_setLibraryVersion(string libraryVersion)
+
+    sets the name of the library writing the output
+
+    @param libraryVersion the version information as string
+
+    """
+  return _libsbml.XMLOutputStream_setLibraryVersion(*args)
+
 class XMLOwningOutputStringStream(_object):
     """Proxy of C++ XMLOwningOutputStringStream class"""
     __swig_setmethods__ = {}
@@ -50666,16 +50613,13 @@ class XMLOwningOutputStringStream(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, XMLOwningOutputStringStream, name)
     __repr__ = _swig_repr
-    def __init__(self, encoding = "UTF-8", writeXMLDecl = True, programName = "", 
-    programVersion = ""): 
+    def __init__(self, encoding="UTF-8", writeXMLDecl=True, programName="", programVersion=""): 
         """
-        __init__(self, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "", string programVersion = "") -> XMLOwningOutputStringStream
-        __init__(self, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "") -> XMLOwningOutputStringStream
-        __init__(self, string encoding = "UTF-8", bool writeXMLDecl = True) -> XMLOwningOutputStringStream
-        __init__(self, string encoding = "UTF-8") -> XMLOwningOutputStringStream
-        __init__(self) -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8", bool writeXMLDecl=True, string programName="", string programVersion="") -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8", bool writeXMLDecl=True, string programName="") -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8", bool writeXMLDecl=True) -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8") -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self) -> XMLOwningOutputStringStream
 
         @internal
 
@@ -50699,13 +50643,12 @@ class XMLOwningOutputFileStream(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string filename, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "", string programVersion = "") -> XMLOwningOutputFileStream
-        __init__(self, string filename, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "") -> XMLOwningOutputFileStream
-        __init__(self, string filename, string encoding = "UTF-8", bool writeXMLDecl = True) -> XMLOwningOutputFileStream
-        __init__(self, string filename, string encoding = "UTF-8") -> XMLOwningOutputFileStream
-        __init__(self, string filename) -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8", bool writeXMLDecl=True, string programName="", 
+            string programVersion="") -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8", bool writeXMLDecl=True, string programName="") -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8", bool writeXMLDecl=True) -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8") -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename) -> XMLOwningOutputFileStream
 
         @internal
 
@@ -50768,11 +50711,10 @@ class XMLInputStream(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, char content, bool isFile = True, string library = "", 
-            XMLErrorLog errorLog = None) -> XMLInputStream
-        __init__(self, char content, bool isFile = True, string library = "") -> XMLInputStream
-        __init__(self, char content, bool isFile = True) -> XMLInputStream
-        __init__(self, char content) -> XMLInputStream
+        __init__(XMLInputStream self, char const * content, bool isFile=True, string library="", XMLErrorLog errorLog=None) -> XMLInputStream
+        __init__(XMLInputStream self, char const * content, bool isFile=True, string library="") -> XMLInputStream
+        __init__(XMLInputStream self, char const * content, bool isFile=True) -> XMLInputStream
+        __init__(XMLInputStream self, char const * content) -> XMLInputStream
 
         Creates a new XMLInputStream.
 
@@ -50797,7 +50739,7 @@ class XMLInputStream(_object):
     __del__ = lambda self : None;
     def getEncoding(self):
         """
-        getEncoding(self) -> string
+        getEncoding(XMLInputStream self) -> string
 
         Returns the encoding of the XML stream.
 
@@ -50820,7 +50762,7 @@ class XMLInputStream(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> string
+        getVersion(XMLInputStream self) -> string
 
         Returns the version of the XML stream.
 
@@ -50843,7 +50785,7 @@ class XMLInputStream(_object):
 
     def getErrorLog(self):
         """
-        getErrorLog(self) -> XMLErrorLog
+        getErrorLog(XMLInputStream self) -> XMLErrorLog
 
         Returns the XMLErrorLog used to log parsing problems.
 
@@ -50855,7 +50797,7 @@ class XMLInputStream(_object):
 
     def isEOF(self):
         """
-        isEOF(self) -> bool
+        isEOF(XMLInputStream self) -> bool
 
         Returns @c True if end of file (stream) has been reached.
 
@@ -50867,7 +50809,7 @@ class XMLInputStream(_object):
 
     def isError(self):
         """
-        isError(self) -> bool
+        isError(XMLInputStream self) -> bool
 
         Returns @c True if a fatal error occurred while reading from this
         stream.
@@ -50880,7 +50822,7 @@ class XMLInputStream(_object):
 
     def isGood(self):
         """
-        isGood(self) -> bool
+        isGood(XMLInputStream self) -> bool
 
         Returns @c True if the stream is in a good state.
 
@@ -50894,7 +50836,7 @@ class XMLInputStream(_object):
 
     def next(self):
         """
-        next(self) -> XMLToken
+        next(XMLInputStream self) -> XMLToken
 
         Returns the next token on this XML input stream.
 
@@ -50910,7 +50852,7 @@ class XMLInputStream(_object):
 
     def peek(self):
         """
-        peek(self) -> XMLToken
+        peek(XMLInputStream self) -> XMLToken
 
         Returns the next token @em without consuming it.
 
@@ -50925,7 +50867,7 @@ class XMLInputStream(_object):
 
     def skipPastEnd(self, *args):
         """
-        skipPastEnd(self, XMLToken element)
+        skipPastEnd(XMLInputStream self, XMLToken element)
 
         Consume zero or more tokens up to and including the corresponding end
         element or EOF.
@@ -50937,7 +50879,7 @@ class XMLInputStream(_object):
 
     def skipText(self):
         """
-        skipText(self)
+        skipText(XMLInputStream self)
 
         Consume zero or more tokens up to but not including the next XML element
         or EOF.
@@ -50947,7 +50889,7 @@ class XMLInputStream(_object):
 
     def setErrorLog(self, *args):
         """
-        setErrorLog(self, XMLErrorLog log) -> int
+        setErrorLog(XMLInputStream self, XMLErrorLog log) -> int
 
         Sets the XMLErrorLog this stream will use to log errors.
 
@@ -50963,7 +50905,7 @@ class XMLInputStream(_object):
 
     def toString(self):
         """
-        toString(self) -> string
+        toString(XMLInputStream self) -> string
 
         Prints a string representation of the underlying token stream.
 
@@ -50976,7 +50918,7 @@ class XMLInputStream(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(XMLInputStream self) -> SBMLNamespaces
 
         Returns the SBMLNamespaces object attached to this XMLInputStream.
 
@@ -50987,7 +50929,7 @@ class XMLInputStream(_object):
 
     def setSBMLNamespaces(self, *args):
         """
-        setSBMLNamespaces(self, SBMLNamespaces sbmlns)
+        setSBMLNamespaces(XMLInputStream self, SBMLNamespaces sbmlns)
 
         Sets the SBML namespaces associated with this XML input stream.
 
@@ -50999,10 +50941,10 @@ class XMLInputStream(_object):
         """
         return _libsbml.XMLInputStream_setSBMLNamespaces(self, *args)
 
-    def determineNumberChildren(self, elementName = ""):
+    def determineNumberChildren(self, elementName=""):
         """
-        determineNumberChildren(self, string elementName = "") -> unsigned int
-        determineNumberChildren(self) -> unsigned int
+        determineNumberChildren(XMLInputStream self, string elementName="") -> unsigned int
+        determineNumberChildren(XMLInputStream self) -> unsigned int
 
         Returns the number of child tokens of the given element in this stream.
 
@@ -51032,7 +50974,7 @@ class XMLInputStream(_object):
 
     def determineNumSpecificChildren(self, *args):
         """
-        determineNumSpecificChildren(self, string childName, string container) -> unsigned int
+        determineNumSpecificChildren(XMLInputStream self, string childName, string container) -> unsigned int
 
         Returns the number of child tokens of the specified type within a
         given container element.
@@ -51061,7 +51003,7 @@ class XMLInputStream(_object):
 
     def containsChild(self, *args):
         """
-        containsChild(self, string childName, string container) -> bool
+        containsChild(XMLInputStream self, string childName, string container) -> bool
 
         Predicate returning @c True if a child token of the specified type occurs 
         within a given container element.
@@ -51451,18 +51393,16 @@ class XMLError(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_FATAL, 
-            unsigned int category = LIBSBML_CAT_INTERNAL) -> XMLError
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_FATAL) -> XMLError
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0, 
-            unsigned int column = 0) -> XMLError
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0) -> XMLError
-        __init__(self, int errorId = 0, string details = "") -> XMLError
-        __init__(self, int errorId = 0) -> XMLError
-        __init__(self) -> XMLError
-        __init__(self, XMLError orig) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_FATAL, unsigned int const category=LIBSBML_CAT_INTERNAL) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_FATAL) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0, unsigned int const column=0) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="") -> XMLError
+        __init__(XMLError self, int const errorId=0) -> XMLError
+        __init__(XMLError self) -> XMLError
+        __init__(XMLError self, XMLError orig) -> XMLError
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -51577,7 +51517,7 @@ class XMLError(_object):
     __del__ = lambda self : None;
     def getErrorId(self):
         """
-        getErrorId(self) -> unsigned int
+        getErrorId(XMLError self) -> unsigned int
 
         Returns the identifier of this error.
 
@@ -51593,7 +51533,7 @@ class XMLError(_object):
 
     def getMessage(self):
         """
-        getMessage(self) -> string
+        getMessage(XMLError self) -> string
 
         Returns the message text of this error.
 
@@ -51618,7 +51558,7 @@ class XMLError(_object):
 
     def getShortMessage(self):
         """
-        getShortMessage(self) -> string
+        getShortMessage(XMLError self) -> string
 
         Returns a brief message for this error.
 
@@ -51641,7 +51581,7 @@ class XMLError(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(XMLError self) -> unsigned int
 
         Returns the line number in the XML input near where the error, warning
         or other diagnostic occurred.
@@ -51669,7 +51609,7 @@ class XMLError(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(XMLError self) -> unsigned int
 
         Returns the column number in the XML input near where the error,
         warning or other diagnostic occurred.
@@ -51697,7 +51637,7 @@ class XMLError(_object):
 
     def getSeverity(self):
         """
-        getSeverity(self) -> unsigned int
+        getSeverity(XMLError self) -> unsigned int
 
         Returns the severity of this error.
 
@@ -51716,7 +51656,7 @@ class XMLError(_object):
 
     def getSeverityAsString(self):
         """
-        getSeverityAsString(self) -> string
+        getSeverityAsString(XMLError self) -> string
 
         Returns a string describing the severity level of this error.
 
@@ -51735,7 +51675,7 @@ class XMLError(_object):
 
     def getCategory(self):
         """
-        getCategory(self) -> unsigned int
+        getCategory(XMLError self) -> unsigned int
 
         Returns the category of this error.
 
@@ -51758,7 +51698,7 @@ class XMLError(_object):
 
     def getCategoryAsString(self):
         """
-        getCategoryAsString(self) -> string
+        getCategoryAsString(XMLError self) -> string
 
         Returns a string describing the category of this error.
 
@@ -51781,7 +51721,7 @@ class XMLError(_object):
 
     def isInfo(self):
         """
-        isInfo(self) -> bool
+        isInfo(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         error object is for information purposes only.
@@ -51804,7 +51744,7 @@ class XMLError(_object):
 
     def isWarning(self):
         """
-        isWarning(self) -> bool
+        isWarning(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether 
         this error object is a warning.
@@ -51826,7 +51766,7 @@ class XMLError(_object):
 
     def isError(self):
         """
-        isError(self) -> bool
+        isError(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         error is a significant error.
@@ -51848,7 +51788,7 @@ class XMLError(_object):
 
     def isFatal(self):
         """
-        isFatal(self) -> bool
+        isFatal(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         error is a fatal run-time error.
@@ -51869,7 +51809,7 @@ class XMLError(_object):
 
     def isInternal(self):
         """
-        isInternal(self) -> bool
+        isInternal(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         error resulted from an internal program error.
@@ -51889,7 +51829,7 @@ class XMLError(_object):
 
     def isSystem(self):
         """
-        isSystem(self) -> bool
+        isSystem(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         error was generated by the operating system.
@@ -51909,7 +51849,7 @@ class XMLError(_object):
 
     def isXML(self):
         """
-        isXML(self) -> bool
+        isXML(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         error resulted from a problem in the XML input (e.g., an XML syntax
@@ -51930,7 +51870,7 @@ class XMLError(_object):
 
     def isValid(self):
         """
-        isValid(self) -> bool
+        isValid(XMLError self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         error resulted from a problem or whether it was logged as an unknown
@@ -51948,7 +51888,7 @@ class XMLError(_object):
 
     def setLine(self, *args):
         """
-        setLine(self, unsigned int line) -> int
+        setLine(XMLError self, unsigned int line) -> int
 
         Sets the line number where this error occurred.
 
@@ -51967,7 +51907,7 @@ class XMLError(_object):
 
     def setColumn(self, *args):
         """
-        setColumn(self, unsigned int column) -> int
+        setColumn(XMLError self, unsigned int column) -> int
 
         Sets the column number where this error occurred.
 
@@ -51986,7 +51926,7 @@ class XMLError(_object):
 
     def getStandardMessage(*args):
         """
-        getStandardMessage(int code) -> string
+        getStandardMessage(int const code) -> string
 
         Returns a copy of the message string associated with the given
         predefined XMLError code.
@@ -52003,7 +51943,7 @@ class XMLError(_object):
     __swig_getmethods__["getStandardMessage"] = lambda x: getStandardMessage
     def getPackage(self):
         """
-        getPackage(self) -> string
+        getPackage(XMLError self) -> string
 
         Returns the SBML Level 3 package extension (if any) that logged
         this error.
@@ -52024,7 +51964,7 @@ class XMLError(_object):
 
     def getErrorIdOffset(self):
         """
-        getErrorIdOffset(self) -> unsigned int
+        getErrorIdOffset(XMLError self) -> unsigned int
 
         Returns libSBML's internal numerical offset for the error code
         associated with this error.
@@ -52080,7 +52020,7 @@ XMLError_swigregister(XMLError)
 
 def XMLError_getStandardMessage(*args):
   """
-    XMLError_getStandardMessage(int code) -> string
+    XMLError_getStandardMessage(int const code) -> string
 
     Returns a copy of the message string associated with the given
     predefined XMLError code.
@@ -52129,7 +52069,7 @@ class XMLErrorLog(_object):
     __repr__ = _swig_repr
     def getNumErrors(self):
         """
-        getNumErrors(self) -> unsigned int
+        getNumErrors(XMLErrorLog self) -> unsigned int
 
         Returns the number of errors that have been logged.
 
@@ -52143,7 +52083,7 @@ class XMLErrorLog(_object):
 
     def getError(self, *args):
         """
-        getError(self, unsigned int n) -> XMLError
+        getError(XMLErrorLog self, unsigned int n) -> XMLError
 
         Returns the <i>n</i>th XMLError object in this log.
 
@@ -52167,7 +52107,7 @@ class XMLErrorLog(_object):
 
     def clearLog(self):
         """
-        clearLog(self)
+        clearLog(XMLErrorLog self)
 
         Deletes all errors from this log.
 
@@ -52176,8 +52116,8 @@ class XMLErrorLog(_object):
 
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLErrorLog
-        __init__(self, XMLErrorLog other) -> XMLErrorLog
+        __init__(XMLErrorLog self) -> XMLErrorLog
+        __init__(XMLErrorLog self, XMLErrorLog other) -> XMLErrorLog
 
         @internal
 
@@ -52189,14 +52129,14 @@ class XMLErrorLog(_object):
     __del__ = lambda self : None;
     def add(self, *args):
         """
-        add(self, XMLError error)
-        add(self, std::vector<(p.XMLError)> errors)
+        add(XMLErrorLog self, XMLError error)
+        add(XMLErrorLog self, std::vector< XMLError * > const & errors)
         """
         return _libsbml.XMLErrorLog_add(self, *args)
 
     def toString(self):
         """
-        toString(self) -> string
+        toString(XMLErrorLog self) -> string
 
         Writes all errors contained in this log to a string and returns it.
 
@@ -52213,9 +52153,9 @@ class XMLErrorLog(_object):
 
     def printErrors(self, *args):
         """
-        printErrors(self, ostream stream = cerr)
-        printErrors(self)
-        printErrors(self, ostream stream, unsigned int severity)
+        printErrors(XMLErrorLog self, ostream stream=cerr)
+        printErrors(XMLErrorLog self)
+        printErrors(XMLErrorLog self, ostream stream, unsigned int severity)
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -52272,7 +52212,7 @@ class XMLErrorLog(_object):
 
     def isSeverityOverridden(self):
         """
-        isSeverityOverridden(self) -> bool
+        isSeverityOverridden(XMLErrorLog self) -> bool
 
         Returns a boolean indicating whether or not the severity has been
         overridden.
@@ -52298,7 +52238,7 @@ class XMLErrorLog(_object):
 
     def unsetSeverityOverride(self):
         """
-        unsetSeverityOverride(self)
+        unsetSeverityOverride(XMLErrorLog self)
 
         Usets an existing override.
 
@@ -52320,7 +52260,7 @@ class XMLErrorLog(_object):
 
     def getSeverityOverride(self):
         """
-        getSeverityOverride(self) -> XMLErrorSeverityOverride_t
+        getSeverityOverride(XMLErrorLog self) -> XMLErrorSeverityOverride_t
 
         Returns the current override.
 
@@ -52350,7 +52290,7 @@ class XMLErrorLog(_object):
 
     def setSeverityOverride(self, *args):
         """
-        setSeverityOverride(self, XMLErrorSeverityOverride_t severity)
+        setSeverityOverride(XMLErrorLog self, XMLErrorSeverityOverride_t severity)
 
         Set the severity override.
 
@@ -52381,9 +52321,8 @@ class XMLErrorLog(_object):
 
     def changeErrorSeverity(self, *args):
         """
-        changeErrorSeverity(self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity, 
-            string package = "all")
-        changeErrorSeverity(self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity)
+        changeErrorSeverity(XMLErrorLog self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity, string package="all")
+        changeErrorSeverity(XMLErrorLog self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity)
 
         Changes the severity override for errors in the log that have a given
         severity.
@@ -52489,7 +52428,7 @@ class SBMLErrorLog(XMLErrorLog):
     __repr__ = _swig_repr
     def getError(self, *args):
         """
-        getError(self, unsigned int n) -> SBMLError
+        getError(SBMLErrorLog self, unsigned int n) -> SBMLError
 
         Returns the <i>n</i>th SBMLError object in this log.
 
@@ -52513,7 +52452,7 @@ class SBMLErrorLog(XMLErrorLog):
 
     def getErrorWithSeverity(self, *args):
         """
-        getErrorWithSeverity(self, unsigned int n, unsigned int severity) -> SBMLError
+        getErrorWithSeverity(SBMLErrorLog self, unsigned int n, unsigned int severity) -> SBMLError
 
         Returns the <i>n</i>th SBMLError object with given severity in this log.
 
@@ -52538,8 +52477,8 @@ class SBMLErrorLog(XMLErrorLog):
 
     def getNumFailsWithSeverity(self, *args):
         """
-        getNumFailsWithSeverity(self, unsigned int severity) -> unsigned int
-        getNumFailsWithSeverity(self, unsigned int severity) -> unsigned int
+        getNumFailsWithSeverity(SBMLErrorLog self, unsigned int severity) -> unsigned int
+        getNumFailsWithSeverity(SBMLErrorLog self, unsigned int severity) -> unsigned int
 
         Returns the number of errors that have been logged with the given
         severity code.
@@ -52572,8 +52511,8 @@ class SBMLErrorLog(XMLErrorLog):
 
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLErrorLog
-        __init__(self, SBMLErrorLog other) -> SBMLErrorLog
+        __init__(SBMLErrorLog self) -> SBMLErrorLog
+        __init__(SBMLErrorLog self, SBMLErrorLog other) -> SBMLErrorLog
 
         @internal
 
@@ -52585,30 +52524,24 @@ class SBMLErrorLog(XMLErrorLog):
     __del__ = lambda self : None;
     def logError(self, *args):
         """
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "")
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL)
-        logError(self, unsigned int errorId = 0)
-        logError(self)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="")
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL)
+        logError(SBMLErrorLog self, unsigned int const errorId=0)
+        logError(SBMLErrorLog self)
 
         @internal
 
@@ -52619,43 +52552,31 @@ class SBMLErrorLog(XMLErrorLog):
 
     def logPackageError(self, *args):
         """
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0, unsigned int column = 0, 
-            unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0, unsigned int column = 0, 
-            unsigned int severity = LIBSBML_SEV_ERROR)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0, unsigned int column = 0)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "")
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1)
-        logPackageError(self, string package = "core", unsigned int errorId = 0)
-        logPackageError(self, string package = "core")
-        logPackageError(self)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_ERROR, unsigned int const category=LIBSBML_CAT_SBML)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_ERROR)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, unsigned int const column=0)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="")
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0)
+        logPackageError(SBMLErrorLog self, string package="core")
+        logPackageError(SBMLErrorLog self)
 
         @internal
 
@@ -52665,12 +52586,12 @@ class SBMLErrorLog(XMLErrorLog):
         return _libsbml.SBMLErrorLog_logPackageError(self, *args)
 
     def add(self, *args):
-        """add(self, SBMLError error)"""
+        """add(SBMLErrorLog self, SBMLError error)"""
         return _libsbml.SBMLErrorLog_add(self, *args)
 
     def remove(self, *args):
         """
-        remove(self, unsigned int errorId)
+        remove(SBMLErrorLog self, unsigned int const errorId)
 
         Removes an error having errorId from the SBMLError list.
 
@@ -52684,7 +52605,7 @@ class SBMLErrorLog(XMLErrorLog):
 
     def removeAll(self, *args):
         """
-        removeAll(self, unsigned int errorId)
+        removeAll(SBMLErrorLog self, unsigned int const errorId)
 
         Removes all errors having errorId from the SBMLError list.
 
@@ -52695,7 +52616,7 @@ class SBMLErrorLog(XMLErrorLog):
 
     def contains(self, *args):
         """
-        contains(self, unsigned int errorId) -> bool
+        contains(SBMLErrorLog self, unsigned int const errorId) -> bool
 
         Returns true if SBMLErrorLog contains an errorId
 
@@ -61802,44 +61723,34 @@ class SBMLError(XMLError):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML, 
-            string package = "core", 
-            unsigned int pkgVersion = 1) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML, 
-            string package = "core") -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "") -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL) -> SBMLError
-        __init__(self, unsigned int errorId = 0) -> SBMLError
-        __init__(self) -> SBMLError
-        __init__(self, SBMLError orig) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML, string package="core", 
+            unsigned int const pkgVersion=1) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML, string package="core") -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="") -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0) -> SBMLError
+        __init__(SBMLError self) -> SBMLError
+        __init__(SBMLError self, SBMLError orig) -> SBMLError
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -62207,10 +62118,10 @@ class CVTerm(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, QualifierType_t type = UNKNOWN_QUALIFIER) -> CVTerm
-        __init__(self) -> CVTerm
-        __init__(self, XMLNode node) -> CVTerm
-        __init__(self, CVTerm orig) -> CVTerm
+        __init__(CVTerm self, QualifierType_t type=UNKNOWN_QUALIFIER) -> CVTerm
+        __init__(CVTerm self) -> CVTerm
+        __init__(CVTerm self, XMLNode node) -> CVTerm
+        __init__(CVTerm self, CVTerm orig) -> CVTerm
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -62304,7 +62215,7 @@ class CVTerm(_object):
         qualifiers web page</a> for an explanation of the meaning of these
         different qualifiers.
 
-        @param type a @if clike #QualifierType_t value at else qualifier type at endif@~
+        @param type a @if clike #QualifierType_t value at else qualifier type at endif@~.
 
         @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
 
@@ -62314,7 +62225,7 @@ class CVTerm(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> CVTerm
+        clone(CVTerm self) -> CVTerm
 
         Creates and returns a deep copy of this CVTerm object.
 
@@ -62325,8 +62236,8 @@ class CVTerm(_object):
 
     def getQualifierType(self, *args):
         """
-        getQualifierType(self) -> QualifierType_t
-        getQualifierType(self) -> QualifierType_t
+        getQualifierType(CVTerm self) -> QualifierType_t
+        getQualifierType(CVTerm self) -> QualifierType_t
 
         Returns the qualifier type of this CVTerm object.
 
@@ -62383,17 +62294,17 @@ class CVTerm(_object):
         of this object or @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
         (the default).
 
-        @see CVTerm.getResources()
-        @see CVTerm.getModelQualifierType()
-        @see CVTerm.getBiologicalQualifierType()
+        @see getResources()
+        @see getModelQualifierType()
+        @see getBiologicalQualifierType()
 
         """
         return _libsbml.CVTerm_getQualifierType(self, *args)
 
     def getModelQualifierType(self, *args):
         """
-        getModelQualifierType(self) -> ModelQualifierType_t
-        getModelQualifierType(self) -> ModelQualifierType_t
+        getModelQualifierType(CVTerm self) -> ModelQualifierType_t
+        getModelQualifierType(CVTerm self) -> ModelQualifierType_t
 
         Returns the model qualifier type of this CVTerm object.
 
@@ -62464,8 +62375,8 @@ class CVTerm(_object):
 
     def getBiologicalQualifierType(self, *args):
         """
-        getBiologicalQualifierType(self) -> BiolQualifierType_t
-        getBiologicalQualifierType(self) -> BiolQualifierType_t
+        getBiologicalQualifierType(CVTerm self) -> BiolQualifierType_t
+        getBiologicalQualifierType(CVTerm self) -> BiolQualifierType_t
 
         Returns the biological qualifier type of this CVTerm object.
 
@@ -62544,8 +62455,8 @@ class CVTerm(_object):
 
     def getResources(self, *args):
         """
-        getResources(self) -> XMLAttributes
-        getResources(self) -> XMLAttributes
+        getResources(CVTerm self) -> XMLAttributes
+        getResources(CVTerm self) -> XMLAttributes
 
         Returns the resource references for this CVTerm object.
 
@@ -62589,17 +62500,17 @@ class CVTerm(_object):
 
         @return the XMLAttributes that store the resources of this CVTerm.
 
-        @see CVTerm.getQualifierType()
-        @see CVTerm.addResource()
-        @see CVTerm.getResourceURI()
+        @see getQualifierType()
+        @see addResource()
+        @see getResourceURI()
 
         """
         return _libsbml.CVTerm_getResources(self, *args)
 
     def getNumResources(self, *args):
         """
-        getNumResources(self) -> unsigned int
-        getNumResources(self) -> unsigned int
+        getNumResources(CVTerm self) -> unsigned int
+        getNumResources(CVTerm self) -> unsigned int
 
         Returns the number of resources for this CVTerm object.
 
@@ -62640,16 +62551,16 @@ class CVTerm(_object):
         @return the number of resources in the set of XMLAttributes
         of this CVTerm.
 
-        @see CVTerm.getResources()
-        @see CVTerm.getResourceURI()
+        @see getResources()
+        @see getResourceURI()
 
         """
         return _libsbml.CVTerm_getNumResources(self, *args)
 
     def getResourceURI(self, *args):
         """
-        getResourceURI(self, unsigned int n) -> string
-        getResourceURI(self, unsigned int n) -> string
+        getResourceURI(CVTerm self, unsigned int n) -> string
+        getResourceURI(CVTerm self, unsigned int n) -> string
 
         Returns the value of the <em>n</em>th resource for this CVTerm object.
 
@@ -62690,20 +62601,20 @@ class CVTerm(_object):
         are stored in this CVTerm object, then call this method to retrieve the
         <em>n</em>th resource URI.
 
-        @param n the index of the resource to query
+        @param n the index of the resource to query.
 
         @return string representing the value of the nth resource
         in the set of XMLAttributes of this CVTerm.
 
-        @see CVTerm.getNumResources()
-        @see CVTerm.getQualifierType()
+        @see getNumResources()
+        @see getQualifierType()
 
         """
         return _libsbml.CVTerm_getResourceURI(self, *args)
 
     def setQualifierType(self, *args):
         """
-        setQualifierType(self, QualifierType_t type) -> int
+        setQualifierType(CVTerm self, QualifierType_t type) -> int
 
         Sets the @if clike #QualifierType_t at else qualifier code at endif@~ of this
         CVTerm object.
@@ -62716,15 +62627,15 @@ class CVTerm(_object):
         returned by this function are:
         @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 
-        @see CVTerm.getQualifierType()
+        @see getQualifierType()
 
         """
         return _libsbml.CVTerm_setQualifierType(self, *args)
 
     def setModelQualifierType(self, *args):
         """
-        setModelQualifierType(self, ModelQualifierType_t type) -> int
-        setModelQualifierType(self, string qualifier) -> int
+        setModelQualifierType(CVTerm self, ModelQualifierType_t type) -> int
+        setModelQualifierType(CVTerm self, string qualifier) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -62737,7 +62648,7 @@ class CVTerm(_object):
         Sets the @if clike #ModelQualifierType_t at else model qualifier
         type at endif@~ value of this CVTerm object.
 
-        @param qualifier the string representing a model qualifier
+        @param qualifier the string representing a model qualifier.
 
         @return integer value indicating success/failure of the
         function.  @if clike The value is drawn from the
@@ -62751,8 +62662,8 @@ class CVTerm(_object):
         then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
         will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
 
-        @see CVTerm.getQualifierType()
-        @see CVTerm.setQualifierType()
+        @see getQualifierType()
+        @see setQualifierType()
            
 
         @par
@@ -62763,7 +62674,7 @@ class CVTerm(_object):
         Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
         of this CVTerm object.
 
-        @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
+        @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~.
 
         @return integer value indicating success/failure of the
         function.  @if clike The value is drawn from the
@@ -62777,16 +62688,16 @@ class CVTerm(_object):
         then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
         will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
 
-        @see CVTerm.getQualifierType()
-        @see CVTerm.setQualifierType()
+        @see getQualifierType()
+        @see setQualifierType()
 
         """
         return _libsbml.CVTerm_setModelQualifierType(self, *args)
 
     def setBiologicalQualifierType(self, *args):
         """
-        setBiologicalQualifierType(self, BiolQualifierType_t type) -> int
-        setBiologicalQualifierType(self, string qualifier) -> int
+        setBiologicalQualifierType(CVTerm self, BiolQualifierType_t type) -> int
+        setBiologicalQualifierType(CVTerm self, string qualifier) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -62799,7 +62710,7 @@ class CVTerm(_object):
         Sets the @if clike #BiolQualifierType_t at else biology qualifier
         type code at endif@~ of this CVTerm object.
 
-        @param qualifier the string representing a biology qualifier
+        @param qualifier the string representing a biology qualifier.
 
         @return integer value indicating success/failure of the
         function.  @if clike The value is drawn from the
@@ -62813,8 +62724,8 @@ class CVTerm(_object):
         then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif@~
         will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
 
-        @see CVTerm.getQualifierType()
-        @see CVTerm.setQualifierType()
+        @see getQualifierType()
+        @see setQualifierType()
            
 
         @par
@@ -62840,15 +62751,15 @@ class CVTerm(_object):
         then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif@~
         will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
 
-        @see CVTerm.getQualifierType()
-        @see CVTerm.setQualifierType()
+        @see getQualifierType()
+        @see setQualifierType()
 
         """
         return _libsbml.CVTerm_setBiologicalQualifierType(self, *args)
 
     def addResource(self, *args):
         """
-        addResource(self, string resource) -> int
+        addResource(CVTerm self, string resource) -> int
 
         Adds a resource reference to this CVTerm object.
 
@@ -62931,18 +62842,18 @@ class CVTerm(_object):
         @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
         @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
 
-        @see CVTerm.getResources()
-        @see CVTerm.removeResource()
-        @see CVTerm.getQualifierType()
-        @see CVTerm.getModelQualifierType()
-        @see CVTerm.getBiologicalQualifierType()
+        @see getResources()
+        @see removeResource()
+        @see getQualifierType()
+        @see getModelQualifierType()
+        @see getBiologicalQualifierType()
 
         """
         return _libsbml.CVTerm_addResource(self, *args)
 
     def removeResource(self, *args):
         """
-        removeResource(self, string resource) -> int
+        removeResource(CVTerm self, string resource) -> int
 
         Removes a resource URI from the set of resources stored in this CVTerm
         object.
@@ -62958,14 +62869,14 @@ class CVTerm(_object):
         @li @link libsbml#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE at endlink
         @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
 
-        @see CVTerm.addResource()
+        @see addResource()
 
         """
         return _libsbml.CVTerm_removeResource(self, *args)
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(CVTerm self) -> bool
 
         @internal
 
@@ -62976,7 +62887,7 @@ class CVTerm(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(CVTerm self)
 
         @internal
 
@@ -62987,8 +62898,8 @@ class CVTerm(_object):
 
     def hasRequiredAttributes(self, *args):
         """
-        hasRequiredAttributes(self) -> bool
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(CVTerm self) -> bool
+        hasRequiredAttributes(CVTerm self) -> bool
 
         Predicate returning @c True if all the required elements for this
         CVTerm object have been set.
@@ -63002,7 +62913,7 @@ class CVTerm(_object):
 
     def getNumNestedCVTerms(self):
         """
-        getNumNestedCVTerms(self) -> unsigned int
+        getNumNestedCVTerms(CVTerm self) -> unsigned int
 
         Returns the number of CVTerm objects nested within this CVTerm
         object.
@@ -63018,13 +62929,13 @@ class CVTerm(_object):
 
     def getNestedCVTerm(self, *args):
         """
-        getNestedCVTerm(self, unsigned int n) -> CVTerm
-        getNestedCVTerm(self, unsigned int n) -> CVTerm
+        getNestedCVTerm(CVTerm self, unsigned int n) -> CVTerm
+        getNestedCVTerm(CVTerm self, unsigned int n) -> CVTerm
 
         Returns the nth CVTerm in the list of CVTerms of this CVTerm
         object.
 
-        @param n long the index of the CVTerm to retrieve
+        @param n long the index of the CVTerm to retrieve.
 
         @return the nth CVTerm in the list of CVTerms for this CVTerm object.
 
@@ -63033,8 +62944,8 @@ class CVTerm(_object):
 
     def getListNestedCVTerms(self, *args):
         """
-        getListNestedCVTerms(self) -> List
-        getListNestedCVTerms(self) -> List
+        getListNestedCVTerms(CVTerm self) -> List
+        getListNestedCVTerms(CVTerm self) -> List const *
 
         Returns a list of CVTerm objects contained within this CVTerm
         object.
@@ -63046,7 +62957,7 @@ class CVTerm(_object):
 
     def addNestedCVTerm(self, *args):
         """
-        addNestedCVTerm(self, CVTerm term) -> int
+        addNestedCVTerm(CVTerm self, CVTerm term) -> int
 
         Adds a copy of the given CVTerm object to the list of nested CVTerm
         objects within this CVTerm object.
@@ -63066,12 +62977,12 @@ class CVTerm(_object):
 
     def removeNestedCVTerm(self, *args):
         """
-        removeNestedCVTerm(self, unsigned int n) -> CVTerm
+        removeNestedCVTerm(CVTerm self, unsigned int n) -> CVTerm
 
         Removes the nth CVTerm in the list of CVTerms of this CVTerm
         object and returns a pointer to it.
 
-        @param n long the index of the CVTerm to retrieve
+        @param n long the index of the CVTerm to retrieve.
 
         @return a pointer to the nth CVTerm in the list of CVTerms for this 
         CVTerm object.
@@ -63098,6 +63009,114 @@ class CVTerm(_object):
 CVTerm_swigregister = _libsbml.CVTerm_swigregister
 CVTerm_swigregister(CVTerm)
 
+
+def ModelQualifierType_toString(*args):
+  """
+    ModelQualifierType_toString(ModelQualifierType_t type) -> char const *
+
+    This method takes a model qualifier type code and returns a string
+    representing the code.
+
+    This method takes a model qualifier type as argument
+    and returns a string name corresponding to that code.  For example,
+    passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+    the string <code>'isDescribedBy'</code>.
+
+    @param type The @if clike ModelQualifierType_t at endif@~ value to
+    translate. @ifnot clike The value should be a libSBML constant whose
+    name begins with @c BQM_, such as (for example)
+    @link libsbml#BQM_IS BQM_IS at endlink.@endif@~
+
+    @return a human readable qualifier name for the given qualifier type.
+
+    @note The caller does not own the returned string and is therefore not
+    allowed to modify it.
+
+    @if conly
+    @memberof CVTerm_t
+    @endif
+
+    """
+  return _libsbml.ModelQualifierType_toString(*args)
+
+def BiolQualifierType_toString(*args):
+  """
+    BiolQualifierType_toString(BiolQualifierType_t type) -> char const *
+
+    This method takes a biol qualifier type code and returns a string
+    representing the code.
+
+    This method takes a biol qualifier type as argument
+    and returns a string name corresponding to that code.  For example,
+    passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+    the string <code>'hasVersion'</code>.
+
+    @param type The @if clike BiolQualifierType_t at endif@~ value to
+    translate. @ifnot clike The value should be a constant whose name
+    begins with @c BQB_, such as (for example)
+    @link libsbml#BQB_IS BQB_IS at endlink.@endif@~
+
+    @return a human readable qualifier name for the given type.
+
+    @note The caller does not own the returned string and is therefore not
+    allowed to modify it.
+
+    @if conly
+    @memberof CVTerm_t
+    @endif
+
+    """
+  return _libsbml.BiolQualifierType_toString(*args)
+
+def ModelQualifierType_fromString(*args):
+  """
+    ModelQualifierType_fromString(char const * s) -> ModelQualifierType_t
+
+    This method takes a a string and returns a model qualifier
+    representing the string.
+
+    This method takes a string as argument and returns a model qualifier type
+    corresponding to that string.  For example, passing it the string
+    <code>'isDescribedBy'</code> will return the qualifier
+    <code>BQM_IS_DESCRIBED_BY</code>.
+
+    @param s The string to translate to a @if clike ModelQualifierType_t
+    value at else libSBML constant value representing a model qualifier at endif.
+
+    @return a libSBML qualifier enumeration value for the given human readable
+    qualifier name.
+
+    @if conly
+    @memberof CVTerm_t
+    @endif
+
+    """
+  return _libsbml.ModelQualifierType_fromString(*args)
+
+def BiolQualifierType_fromString(*args):
+  """
+    BiolQualifierType_fromString(char const * s) -> BiolQualifierType_t
+
+    This method takes a a string and returns a biol qualifier
+    representing the string.
+
+    This method takes a string as argument and returns a biol qualifier type
+    corresponding to that string.  For example, passing it the string
+    <code>'hasVersion'</code> will return the qualifier
+    <code>BQB_HAS_VERSION</code>.
+
+    @param s The string to translate to a @if clike BiolQualifierType_t
+    value at else libSBML constant value representing a biological qualifier at endif.
+
+    @return a libSBML qualifier enumeration value for the given human readable
+    qualifier name.
+
+    @if conly
+    @memberof CVTerm_t
+    @endif
+
+    """
+  return _libsbml.BiolQualifierType_fromString(*args)
 class Date(_object):
     """
     @sbmlpackage{core}
@@ -63201,32 +63220,24 @@ class Date(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0, 
-            unsigned int sign = 0, unsigned int hoursOffset = 0, 
-            unsigned int minutesOffset = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0, 
-            unsigned int sign = 0, unsigned int hoursOffset = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0, 
-            unsigned int sign = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1) -> Date
-        __init__(self, unsigned int year = 2000) -> Date
-        __init__(self) -> Date
-        __init__(self, string date) -> Date
-        __init__(self, Date orig) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0, unsigned int sign=0, unsigned int hoursOffset=0, 
+            unsigned int minutesOffset=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0, unsigned int sign=0, unsigned int hoursOffset=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0, unsigned int sign=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1) -> Date
+        __init__(Date self, unsigned int year=2000) -> Date
+        __init__(Date self) -> Date
+        __init__(Date self, string date) -> Date
+        __init__(Date self, Date orig) -> Date
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -63358,7 +63369,7 @@ class Date(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Date
+        clone(Date self) -> Date
 
         Creates and returns a deep copy of this Date object.
 
@@ -63369,7 +63380,7 @@ class Date(_object):
 
     def getYear(self):
         """
-        getYear(self) -> unsigned int
+        getYear(Date self) -> unsigned int
 
         Returns the year from this Date.
 
@@ -63380,7 +63391,7 @@ class Date(_object):
 
     def getMonth(self):
         """
-        getMonth(self) -> unsigned int
+        getMonth(Date self) -> unsigned int
 
         Returns the month from this Date.
 
@@ -63391,7 +63402,7 @@ class Date(_object):
 
     def getDay(self):
         """
-        getDay(self) -> unsigned int
+        getDay(Date self) -> unsigned int
 
         Returns the day from this Date.
 
@@ -63402,7 +63413,7 @@ class Date(_object):
 
     def getHour(self):
         """
-        getHour(self) -> unsigned int
+        getHour(Date self) -> unsigned int
 
         Returns the hour from this Date.
 
@@ -63413,7 +63424,7 @@ class Date(_object):
 
     def getMinute(self):
         """
-        getMinute(self) -> unsigned int
+        getMinute(Date self) -> unsigned int
 
         Returns the minute from this Date.
 
@@ -63424,7 +63435,7 @@ class Date(_object):
 
     def getSecond(self):
         """
-        getSecond(self) -> unsigned int
+        getSecond(Date self) -> unsigned int
 
         Returns the seconds from this Date.
 
@@ -63435,7 +63446,7 @@ class Date(_object):
 
     def getSignOffset(self):
         """
-        getSignOffset(self) -> unsigned int
+        getSignOffset(Date self) -> unsigned int
 
         Returns the sign of the time zone offset from this Date.
 
@@ -63446,7 +63457,7 @@ class Date(_object):
 
     def getHoursOffset(self):
         """
-        getHoursOffset(self) -> unsigned int
+        getHoursOffset(Date self) -> unsigned int
 
         Returns the hours of the time zone offset from this Date.
 
@@ -63457,7 +63468,7 @@ class Date(_object):
 
     def getMinutesOffset(self):
         """
-        getMinutesOffset(self) -> unsigned int
+        getMinutesOffset(Date self) -> unsigned int
 
         Returns the minutes of the time zone offset from this Date.
 
@@ -63468,7 +63479,7 @@ class Date(_object):
 
     def getDateAsString(self):
         """
-        getDateAsString(self) -> string
+        getDateAsString(Date self) -> string
 
         Returns the current Date value in text-string form.
 
@@ -63520,7 +63531,7 @@ class Date(_object):
 
     def setYear(self, *args):
         """
-        setYear(self, unsigned int year) -> int
+        setYear(Date self, unsigned int year) -> int
 
         Sets the value of the year of this Date object.
 
@@ -63543,7 +63554,7 @@ class Date(_object):
 
     def setMonth(self, *args):
         """
-        setMonth(self, unsigned int month) -> int
+        setMonth(Date self, unsigned int month) -> int
 
         Sets the value of the month of this Date object.
 
@@ -63562,7 +63573,7 @@ class Date(_object):
 
     def setDay(self, *args):
         """
-        setDay(self, unsigned int day) -> int
+        setDay(Date self, unsigned int day) -> int
 
         Sets the value of the day of this Date object.
 
@@ -63581,7 +63592,7 @@ class Date(_object):
 
     def setHour(self, *args):
         """
-        setHour(self, unsigned int hour) -> int
+        setHour(Date self, unsigned int hour) -> int
 
         Sets the value of the hour of this Date object.
 
@@ -63600,7 +63611,7 @@ class Date(_object):
 
     def setMinute(self, *args):
         """
-        setMinute(self, unsigned int minute) -> int
+        setMinute(Date self, unsigned int minute) -> int
 
         Sets the value of the minute of this Date object.
 
@@ -63619,7 +63630,7 @@ class Date(_object):
 
     def setSecond(self, *args):
         """
-        setSecond(self, unsigned int second) -> int
+        setSecond(Date self, unsigned int second) -> int
 
         Sets the value of the second of the Date object.
 
@@ -63638,7 +63649,7 @@ class Date(_object):
 
     def setSignOffset(self, *args):
         """
-        setSignOffset(self, unsigned int sign) -> int
+        setSignOffset(Date self, unsigned int sign) -> int
 
         Sets the value of the sign of the time zone offset of this Date object.
 
@@ -63659,7 +63670,7 @@ class Date(_object):
 
     def setHoursOffset(self, *args):
         """
-        setHoursOffset(self, unsigned int hoursOffset) -> int
+        setHoursOffset(Date self, unsigned int hoursOffset) -> int
 
         Sets the value of this Date object's time zone hour offset.
 
@@ -63679,7 +63690,7 @@ class Date(_object):
 
     def setMinutesOffset(self, *args):
         """
-        setMinutesOffset(self, unsigned int minutesOffset) -> int
+        setMinutesOffset(Date self, unsigned int minutesOffset) -> int
 
         Sets the value of this Date object's time zone minutes offset.
 
@@ -63699,7 +63710,7 @@ class Date(_object):
 
     def setDateAsString(self, *args):
         """
-        setDateAsString(self, string date) -> int
+        setDateAsString(Date self, string date) -> int
 
         Sets the value of this Date object using a date and time value
         expressed as a text string.
@@ -63764,7 +63775,7 @@ class Date(_object):
 
     def representsValidDate(self):
         """
-        representsValidDate(self) -> bool
+        representsValidDate(Date self) -> bool
 
         Returns true or false depending on whether this date object represents
         a valid date and time value.
@@ -63785,7 +63796,7 @@ class Date(_object):
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(Date self) -> bool
 
         @internal
 
@@ -63796,7 +63807,7 @@ class Date(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(Date self)
 
         @internal
 
@@ -63882,9 +63893,9 @@ class ModelCreator(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> ModelCreator
-        __init__(self, XMLNode creator) -> ModelCreator
-        __init__(self, ModelCreator orig) -> ModelCreator
+        __init__(ModelCreator self) -> ModelCreator
+        __init__(ModelCreator self, XMLNode creator) -> ModelCreator
+        __init__(ModelCreator self, ModelCreator orig) -> ModelCreator
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -63922,7 +63933,7 @@ class ModelCreator(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ModelCreator
+        clone(ModelCreator self) -> ModelCreator
 
         Creates and returns a deep copy of this ModelCreator object.
 
@@ -63933,7 +63944,7 @@ class ModelCreator(_object):
 
     def getFamilyName(self):
         """
-        getFamilyName(self) -> string
+        getFamilyName(ModelCreator self) -> string
 
         Returns the 'family name' stored in this ModelCreator object.
 
@@ -63944,7 +63955,7 @@ class ModelCreator(_object):
 
     def getGivenName(self):
         """
-        getGivenName(self) -> string
+        getGivenName(ModelCreator self) -> string
 
         Returns the 'given name' stored in this ModelCreator object.
 
@@ -63955,7 +63966,7 @@ class ModelCreator(_object):
 
     def getEmail(self):
         """
-        getEmail(self) -> string
+        getEmail(ModelCreator self) -> string
 
         Returns the 'email' stored in this ModelCreator object.
 
@@ -63966,7 +63977,7 @@ class ModelCreator(_object):
 
     def getOrganization(self):
         """
-        getOrganization(self) -> string
+        getOrganization(ModelCreator self) -> string
 
         Returns the 'organization' stored in this ModelCreator object.
 
@@ -63977,7 +63988,7 @@ class ModelCreator(_object):
 
     def getOrganisation(self):
         """
-        getOrganisation(self) -> string
+        getOrganisation(ModelCreator self) -> string
 
         (Alternate spelling) Returns the 'organization' stored in this
         ModelCreator object.
@@ -63993,7 +64004,7 @@ class ModelCreator(_object):
 
     def isSetFamilyName(self):
         """
-        isSetFamilyName(self) -> bool
+        isSetFamilyName(ModelCreator self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         ModelCreator's 'family name' part is set.
@@ -64005,7 +64016,7 @@ class ModelCreator(_object):
 
     def isSetGivenName(self):
         """
-        isSetGivenName(self) -> bool
+        isSetGivenName(ModelCreator self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         ModelCreator's 'given name' part is set.
@@ -64017,7 +64028,7 @@ class ModelCreator(_object):
 
     def isSetEmail(self):
         """
-        isSetEmail(self) -> bool
+        isSetEmail(ModelCreator self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         ModelCreator's 'email' part is set.
@@ -64029,7 +64040,7 @@ class ModelCreator(_object):
 
     def isSetOrganization(self):
         """
-        isSetOrganization(self) -> bool
+        isSetOrganization(ModelCreator self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         ModelCreator's 'organization' part is set.
@@ -64041,7 +64052,7 @@ class ModelCreator(_object):
 
     def isSetOrganisation(self):
         """
-        isSetOrganisation(self) -> bool
+        isSetOrganisation(ModelCreator self) -> bool
 
         (Alternate spelling) Predicate returning @c True or @c False depending
         on whether this ModelCreator's 'organization' part is set.
@@ -64057,7 +64068,7 @@ class ModelCreator(_object):
 
     def setFamilyName(self, *args):
         """
-        setFamilyName(self, string familyName) -> int
+        setFamilyName(ModelCreator self, string familyName) -> int
 
         Sets the 'family name' portion of this ModelCreator object.
 
@@ -64075,7 +64086,7 @@ class ModelCreator(_object):
 
     def setGivenName(self, *args):
         """
-        setGivenName(self, string givenName) -> int
+        setGivenName(ModelCreator self, string givenName) -> int
 
         Sets the 'given name' portion of this ModelCreator object.
 
@@ -64093,7 +64104,7 @@ class ModelCreator(_object):
 
     def setEmail(self, *args):
         """
-        setEmail(self, string email) -> int
+        setEmail(ModelCreator self, string email) -> int
 
         Sets the 'email' portion of this ModelCreator object.
 
@@ -64111,7 +64122,7 @@ class ModelCreator(_object):
 
     def setOrganization(self, *args):
         """
-        setOrganization(self, string organization) -> int
+        setOrganization(ModelCreator self, string organization) -> int
 
         Sets the 'organization' portion of this ModelCreator object.
 
@@ -64130,7 +64141,7 @@ class ModelCreator(_object):
 
     def setOrganisation(self, *args):
         """
-        setOrganisation(self, string organization) -> int
+        setOrganisation(ModelCreator self, string organization) -> int
 
         (Alternate spelling) Sets the 'organization' portion of this
         ModelCreator object.
@@ -64154,7 +64165,7 @@ class ModelCreator(_object):
 
     def unsetFamilyName(self):
         """
-        unsetFamilyName(self) -> int
+        unsetFamilyName(ModelCreator self) -> int
 
         Unsets the 'family name' portion of this ModelCreator object.
 
@@ -64170,7 +64181,7 @@ class ModelCreator(_object):
 
     def unsetGivenName(self):
         """
-        unsetGivenName(self) -> int
+        unsetGivenName(ModelCreator self) -> int
 
         Unsets the 'given name' portion of this ModelCreator object.
 
@@ -64186,7 +64197,7 @@ class ModelCreator(_object):
 
     def unsetEmail(self):
         """
-        unsetEmail(self) -> int
+        unsetEmail(ModelCreator self) -> int
 
         Unsets the 'email' portion of this ModelCreator object.
 
@@ -64202,7 +64213,7 @@ class ModelCreator(_object):
 
     def unsetOrganization(self):
         """
-        unsetOrganization(self) -> int
+        unsetOrganization(ModelCreator self) -> int
 
         Unsets the 'organization' portion of this ModelCreator object.
 
@@ -64218,7 +64229,7 @@ class ModelCreator(_object):
 
     def unsetOrganisation(self):
         """
-        unsetOrganisation(self) -> int
+        unsetOrganisation(ModelCreator self) -> int
 
         (Alternate spelling) Unsets the 'organization' portion of this ModelCreator object.
 
@@ -64238,7 +64249,7 @@ class ModelCreator(_object):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(ModelCreator self) -> bool
 
         Predicate returning @c True if all the required elements for this
         ModelCreator object have been set.
@@ -64254,7 +64265,7 @@ class ModelCreator(_object):
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(ModelCreator self) -> bool
 
         @internal
 
@@ -64265,7 +64276,7 @@ class ModelCreator(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(ModelCreator self)
 
         @internal
 
@@ -64373,8 +64384,8 @@ class ModelHistory(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> ModelHistory
-        __init__(self, ModelHistory orig) -> ModelHistory
+        __init__(ModelHistory self) -> ModelHistory
+        __init__(ModelHistory self, ModelHistory orig) -> ModelHistory
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -64402,7 +64413,7 @@ class ModelHistory(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ModelHistory
+        clone(ModelHistory self) -> ModelHistory
 
         Creates and returns a deep copy of this ModelHistory object.
 
@@ -64413,7 +64424,7 @@ class ModelHistory(_object):
 
     def getCreatedDate(self):
         """
-        getCreatedDate(self) -> Date
+        getCreatedDate(ModelHistory self) -> Date
 
         Returns the 'creation date' portion of this ModelHistory object.
 
@@ -64425,7 +64436,7 @@ class ModelHistory(_object):
 
     def isSetCreatedDate(self):
         """
-        isSetCreatedDate(self) -> bool
+        isSetCreatedDate(ModelHistory self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         ModelHistory's 'creation date' is set.
@@ -64438,7 +64449,7 @@ class ModelHistory(_object):
 
     def isSetModifiedDate(self):
         """
-        isSetModifiedDate(self) -> bool
+        isSetModifiedDate(ModelHistory self) -> bool
 
         Predicate returning @c True or @c False depending on whether this
         ModelHistory's 'modified date' is set.
@@ -64451,7 +64462,7 @@ class ModelHistory(_object):
 
     def setCreatedDate(self, *args):
         """
-        setCreatedDate(self, Date date) -> int
+        setCreatedDate(ModelHistory self, Date date) -> int
 
         Sets the creation date of this ModelHistory object.
 
@@ -64470,7 +64481,7 @@ class ModelHistory(_object):
 
     def setModifiedDate(self, *args):
         """
-        setModifiedDate(self, Date date) -> int
+        setModifiedDate(ModelHistory self, Date date) -> int
 
         Sets the modification date of this ModelHistory object.
 
@@ -64490,7 +64501,7 @@ class ModelHistory(_object):
 
     def addModifiedDate(self, *args):
         """
-        addModifiedDate(self, Date date) -> int
+        addModifiedDate(ModelHistory self, Date date) -> int
 
         Adds a copy of a Date object to the list of 'modified date' values
         stored in this ModelHistory object.
@@ -64515,7 +64526,7 @@ class ModelHistory(_object):
 
     def getListModifiedDates(self):
         """
-        getListModifiedDates(self) -> List
+        getListModifiedDates(ModelHistory self) -> List *
 
         Returns the list of 'modified date' values (as Date objects) stored in
         this ModelHistory object.
@@ -64531,8 +64542,8 @@ class ModelHistory(_object):
 
     def getModifiedDate(self, *args):
         """
-        getModifiedDate(self) -> Date
-        getModifiedDate(self, unsigned int n) -> Date
+        getModifiedDate(ModelHistory self) -> Date
+        getModifiedDate(ModelHistory self, unsigned int n) -> Date
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -64574,7 +64585,7 @@ class ModelHistory(_object):
 
     def getNumModifiedDates(self):
         """
-        getNumModifiedDates(self) -> unsigned int
+        getNumModifiedDates(ModelHistory self) -> unsigned int
 
         Get the number of Date objects in this ModelHistory object's list of
         'modified dates'.
@@ -64590,7 +64601,7 @@ class ModelHistory(_object):
 
     def addCreator(self, *args):
         """
-        addCreator(self, ModelCreator mc) -> int
+        addCreator(ModelHistory self, ModelCreator mc) -> int
 
         Adds a copy of a ModelCreator object to the list of 'model creator'
         values stored in this ModelHistory object.
@@ -64614,7 +64625,7 @@ class ModelHistory(_object):
 
     def getListCreators(self):
         """
-        getListCreators(self) -> List
+        getListCreators(ModelHistory self) -> List *
 
         Returns the list of ModelCreator objects stored in this ModelHistory
         object.
@@ -64630,7 +64641,7 @@ class ModelHistory(_object):
 
     def getCreator(self, *args):
         """
-        getCreator(self, unsigned int n) -> ModelCreator
+        getCreator(ModelHistory self, unsigned int n) -> ModelCreator
 
         Get the nth ModelCreator object stored in this ModelHistory object.
 
@@ -64645,7 +64656,7 @@ class ModelHistory(_object):
 
     def getNumCreators(self):
         """
-        getNumCreators(self) -> unsigned int
+        getNumCreators(ModelHistory self) -> unsigned int
 
         Get the number of ModelCreator objects stored in this ModelHistory
         object.
@@ -64661,7 +64672,7 @@ class ModelHistory(_object):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(ModelHistory self) -> bool
 
         Predicate returning @c True if all the required elements for this
         ModelHistory object have been set.
@@ -64677,7 +64688,7 @@ class ModelHistory(_object):
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(ModelHistory self) -> bool
 
         @internal
 
@@ -64688,7 +64699,7 @@ class ModelHistory(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(ModelHistory self)
 
         @internal
 
@@ -64831,10 +64842,10 @@ class RDFAnnotationParser(_object):
 
     if _newclass:createAnnotation = staticmethod(createAnnotation)
     __swig_getmethods__["createAnnotation"] = lambda x: createAnnotation
-    def createRDFAnnotation(level = 3, version = 1):
+    def createRDFAnnotation(level=3, version=1):
         """
-        createRDFAnnotation(unsigned int level = 3, unsigned int version = 1) -> XMLNode
-        createRDFAnnotation(unsigned int level = 3) -> XMLNode
+        createRDFAnnotation(unsigned int level=3, unsigned int version=1) -> XMLNode
+        createRDFAnnotation(unsigned int level=3) -> XMLNode
         createRDFAnnotation() -> XMLNode
 
         Creates a blank RDF element suitable for use in SBML annotations.
@@ -65091,13 +65102,12 @@ class RDFAnnotationParser(_object):
     __swig_getmethods__["deleteRDFCVTermAnnotation"] = lambda x: deleteRDFCVTermAnnotation
     def parseRDFAnnotation(*args):
         """
-        parseRDFAnnotation(XMLNode annotation, char metaId = None, XMLInputStream stream = None) -> ModelHistory
-        parseRDFAnnotation(XMLNode annotation, char metaId = None) -> ModelHistory
+        parseRDFAnnotation(XMLNode annotation, char const * metaId=None, XMLInputStream stream=None) -> ModelHistory
+        parseRDFAnnotation(XMLNode annotation, char const * metaId=None) -> ModelHistory
         parseRDFAnnotation(XMLNode annotation) -> ModelHistory
         parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms)
-        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None, 
-            XMLInputStream stream = None)
-        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None)
+        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None, XMLInputStream stream=None)
+        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None)
 
         Parses an annotation (given as an XMLNode tree) into a list of
         CVTerm objects.
@@ -65122,7 +65132,7 @@ class RDFAnnotationParser(_object):
     __swig_getmethods__["parseRDFAnnotation"] = lambda x: parseRDFAnnotation
     def __init__(self): 
         """
-        __init__(self) -> RDFAnnotationParser
+        __init__(RDFAnnotationParser self) -> RDFAnnotationParser
 
         @internal
 
@@ -65211,10 +65221,10 @@ def RDFAnnotationParser_createAnnotation():
     """
   return _libsbml.RDFAnnotationParser_createAnnotation()
 
-def RDFAnnotationParser_createRDFAnnotation(level = 3, version = 1):
+def RDFAnnotationParser_createRDFAnnotation(level=3, version=1):
   """
-    createRDFAnnotation(unsigned int level = 3, unsigned int version = 1) -> XMLNode
-    createRDFAnnotation(unsigned int level = 3) -> XMLNode
+    createRDFAnnotation(unsigned int level=3, unsigned int version=1) -> XMLNode
+    createRDFAnnotation(unsigned int level=3) -> XMLNode
     RDFAnnotationParser_createRDFAnnotation() -> XMLNode
 
     Creates a blank RDF element suitable for use in SBML annotations.
@@ -65455,13 +65465,12 @@ def RDFAnnotationParser_deleteRDFCVTermAnnotation(*args):
 
 def RDFAnnotationParser_parseRDFAnnotation(*args):
   """
-    parseRDFAnnotation(XMLNode annotation, char metaId = None, XMLInputStream stream = None) -> ModelHistory
-    parseRDFAnnotation(XMLNode annotation, char metaId = None) -> ModelHistory
+    parseRDFAnnotation(XMLNode annotation, char const * metaId=None, XMLInputStream stream=None) -> ModelHistory
+    parseRDFAnnotation(XMLNode annotation, char const * metaId=None) -> ModelHistory
     parseRDFAnnotation(XMLNode annotation) -> ModelHistory
     parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms)
-    parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None, 
-        XMLInputStream stream = None)
-    RDFAnnotationParser_parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None)
+    parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None, XMLInputStream stream=None)
+    RDFAnnotationParser_parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None)
 
     Parses an annotation (given as an XMLNode tree) into a list of
     CVTerm objects.
@@ -65504,7 +65513,7 @@ class ISBMLExtensionNamespaces(SBMLNamespaces):
     __del__ = lambda self : None;
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(ISBMLExtensionNamespaces self) -> string
 
         Returns a string representing the SBML XML namespace of this
         object.
@@ -65516,12 +65525,12 @@ class ISBMLExtensionNamespaces(SBMLNamespaces):
         return _libsbml.ISBMLExtensionNamespaces_getURI(self)
 
     def getPackageVersion(self):
-        """getPackageVersion(self) -> unsigned int"""
+        """getPackageVersion(ISBMLExtensionNamespaces self) -> unsigned int"""
         return _libsbml.ISBMLExtensionNamespaces_getPackageVersion(self)
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ISBMLExtensionNamespaces self) -> string
 
         Returns the name of the main package for this namespace.
 
@@ -65533,7 +65542,7 @@ class ISBMLExtensionNamespaces(SBMLNamespaces):
         return _libsbml.ISBMLExtensionNamespaces_getPackageName(self)
 
     def setPackageVersion(self, *args):
-        """setPackageVersion(self, unsigned int pkgVersion)"""
+        """setPackageVersion(ISBMLExtensionNamespaces self, unsigned int pkgVersion)"""
         return _libsbml.ISBMLExtensionNamespaces_setPackageVersion(self, *args)
 
 ISBMLExtensionNamespaces_swigregister = _libsbml.ISBMLExtensionNamespaces_swigregister
@@ -65608,10 +65617,10 @@ class SBaseExtensionPoint(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, string pkgName, int typeCode) -> SBaseExtensionPoint
-        __init__(self, string pkgName, int typeCode, string elementName, bool elementOnly = False) -> SBaseExtensionPoint
-        __init__(self, string pkgName, int typeCode, string elementName) -> SBaseExtensionPoint
-        __init__(self, SBaseExtensionPoint rhs) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, string pkgName, int typeCode) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, string pkgName, int typeCode, string elementName, bool elementOnly=False) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, string pkgName, int typeCode, string elementName) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, SBaseExtensionPoint rhs) -> SBaseExtensionPoint
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -65697,7 +65706,7 @@ class SBaseExtensionPoint(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBaseExtensionPoint
+        clone(SBaseExtensionPoint self) -> SBaseExtensionPoint
 
         Creates and returns a deep copy of this SBaseExtensionPoint object.
 
@@ -65708,7 +65717,7 @@ class SBaseExtensionPoint(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBaseExtensionPoint self) -> string
 
         Returns the package name of this extension point.
 
@@ -65717,7 +65726,7 @@ class SBaseExtensionPoint(_object):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SBaseExtensionPoint self) -> int
 
         Returns the libSBML type code of this extension point.
 
@@ -65726,7 +65735,7 @@ class SBaseExtensionPoint(_object):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SBaseExtensionPoint self) -> string
 
         the target element name
 
@@ -65735,7 +65744,7 @@ class SBaseExtensionPoint(_object):
 
     def isElementOnly(self):
         """
-        isElementOnly(self) -> bool
+        isElementOnly(SBaseExtensionPoint self) -> bool
 
         """
         return _libsbml.SBaseExtensionPoint_isElementOnly(self)
@@ -65951,7 +65960,7 @@ class SBasePlugin(_object):
     __del__ = lambda self : None;
     def getElementNamespace(self):
         """
-        getElementNamespace(self) -> string
+        getElementNamespace(SBasePlugin self) -> string
 
         Returns the namespace URI of the package to which this plugin object
         belongs.
@@ -65964,7 +65973,7 @@ class SBasePlugin(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(SBasePlugin self) -> string
 
         Returns the XML namespace prefix of the package to which this plugin
         object belongs.
@@ -65977,7 +65986,7 @@ class SBasePlugin(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBasePlugin self) -> string
 
         Returns the short-form name of the package to which this plugin
         object belongs.
@@ -65990,7 +65999,7 @@ class SBasePlugin(_object):
 
     def clone(self):
         """
-        clone(self) -> SBasePlugin
+        clone(SBasePlugin self) -> SBasePlugin
 
         Creates and returns a deep copy of this SBasePlugin object.
 
@@ -66001,7 +66010,7 @@ class SBasePlugin(_object):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(SBasePlugin self, string id) -> SBase
 
         Return the first child object found with a given identifier.
 
@@ -66026,7 +66035,7 @@ class SBasePlugin(_object):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(SBasePlugin self, string metaid) -> SBase
 
         Return the first child object found with a given meta identifier.
 
@@ -66042,7 +66051,7 @@ class SBasePlugin(_object):
 
     def connectToParent(self, *args):
         """
-        connectToParent(self, SBase sbase)
+        connectToParent(SBasePlugin self, SBase sbase)
 
         @internal
 
@@ -66053,7 +66062,7 @@ class SBasePlugin(_object):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(SBasePlugin self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -66064,7 +66073,7 @@ class SBasePlugin(_object):
 
     def stripPackage(self, *args):
         """
-        stripPackage(self, string pkgPrefix, bool flag) -> bool
+        stripPackage(SBasePlugin self, string pkgPrefix, bool flag) -> bool
 
         @internal
 
@@ -66075,8 +66084,8 @@ class SBasePlugin(_object):
 
     def getSBMLDocument(self, *args):
         """
-        getSBMLDocument(self) -> SBMLDocument
-        getSBMLDocument(self) -> SBMLDocument
+        getSBMLDocument(SBasePlugin self) -> SBMLDocument
+        getSBMLDocument(SBasePlugin self) -> SBMLDocument
 
         Returns the SBMLDocument object containing this object instance.
 
@@ -66102,7 +66111,7 @@ class SBasePlugin(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(SBasePlugin self) -> string
 
         Returns the XML namespace URI for the package to which this object belongs.
 
@@ -66127,7 +66136,6 @@ class SBasePlugin(_object):
 
         @see getPackageName()
         @see getElementNamespace()
-        @see SBMLDocument.getSBMLNamespaces()
         @see getSBMLDocument()
 
         """
@@ -66135,8 +66143,8 @@ class SBasePlugin(_object):
 
     def getParentSBMLObject(self, *args):
         """
-        getParentSBMLObject(self) -> SBase
-        getParentSBMLObject(self) -> SBase
+        getParentSBMLObject(SBasePlugin self) -> SBase
+        getParentSBMLObject(SBasePlugin self) -> SBase
 
         Returns the parent object to which this plugin object is connected.
 
@@ -66147,7 +66155,7 @@ class SBasePlugin(_object):
 
     def setElementNamespace(self, *args):
         """
-        setElementNamespace(self, string uri) -> int
+        setElementNamespace(SBasePlugin self, string uri) -> int
 
         Sets the XML namespace to which this object belongs.
 
@@ -66179,7 +66187,7 @@ class SBasePlugin(_object):
 
     def getLevel(self):
         """
-        getLevel(self) -> unsigned int
+        getLevel(SBasePlugin self) -> unsigned int
 
         Returns the SBML Level of the package extension of this plugin object.
 
@@ -66192,7 +66200,7 @@ class SBasePlugin(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> unsigned int
+        getVersion(SBasePlugin self) -> unsigned int
 
         Returns the Version within the SBML Level of the package extension of
         this plugin object.
@@ -66206,7 +66214,7 @@ class SBasePlugin(_object):
 
     def getPackageVersion(self):
         """
-        getPackageVersion(self) -> unsigned int
+        getPackageVersion(SBasePlugin self) -> unsigned int
 
         Returns the package version of the package extension of this plugin
         object.
@@ -66222,7 +66230,7 @@ class SBasePlugin(_object):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(SBasePlugin self, string id, ASTNode function)
 
         @internal
 
@@ -66233,7 +66241,7 @@ class SBasePlugin(_object):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(SBasePlugin self, string id, ASTNode function)
 
         @internal
 
@@ -66244,7 +66252,7 @@ class SBasePlugin(_object):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(SBasePlugin self, string id, ASTNode function)
 
         @internal
 
@@ -66255,7 +66263,7 @@ class SBasePlugin(_object):
 
     def hasIdentifierBeginningWith(self, *args):
         """
-        hasIdentifierBeginningWith(self, string prefix) -> bool
+        hasIdentifierBeginningWith(SBasePlugin self, string prefix) -> bool
 
         @internal
 
@@ -66266,7 +66274,7 @@ class SBasePlugin(_object):
 
     def prependStringToAllIdentifiers(self, *args):
         """
-        prependStringToAllIdentifiers(self, string prefix) -> int
+        prependStringToAllIdentifiers(SBasePlugin self, string prefix) -> int
 
         @internal
 
@@ -66277,7 +66285,7 @@ class SBasePlugin(_object):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(SBasePlugin self, string oldid, string newid)
 
         Replaces all uses of a given @c SIdRef type attribute value with another
         value.
@@ -66307,7 +66315,7 @@ class SBasePlugin(_object):
 
     def renameMetaIdRefs(self, *args):
         """
-        renameMetaIdRefs(self, string oldid, string newid)
+        renameMetaIdRefs(SBasePlugin self, string oldid, string newid)
 
         Replaces all uses of a given meta identifier attribute value with
         another value.
@@ -66333,7 +66341,7 @@ class SBasePlugin(_object):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(SBasePlugin self, string oldid, string newid)
 
         Replaces all uses of a given @c UnitSIdRef type attribute value with
         another value.
@@ -66363,7 +66371,7 @@ class SBasePlugin(_object):
 
     def transformIdentifiers(self, *args):
         """
-        transformIdentifiers(self, IdentifierTransformer sidTransformer) -> int
+        transformIdentifiers(SBasePlugin self, IdentifierTransformer sidTransformer) -> int
 
         @internal
 
@@ -66374,7 +66382,7 @@ class SBasePlugin(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(SBasePlugin self) -> unsigned int
 
         @internal
 
@@ -66385,7 +66393,7 @@ class SBasePlugin(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(SBasePlugin self) -> unsigned int
 
         @internal
 
@@ -66396,7 +66404,7 @@ class SBasePlugin(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(SBasePlugin self) -> SBMLNamespaces
 
         @internal
 
@@ -66407,8 +66415,7 @@ class SBasePlugin(_object):
 
     def logUnknownElement(self, *args):
         """
-        logUnknownElement(self, string element, unsigned int sbmlLevel, unsigned int sbmlVersion, 
-            unsigned int pkgVersion)
+        logUnknownElement(SBasePlugin self, string element, unsigned int const sbmlLevel, unsigned int const sbmlVersion, unsigned int const pkgVersion)
 
         @internal
 
@@ -66419,14 +66426,14 @@ class SBasePlugin(_object):
 
     def isValidTypeForList(self, *args):
         """
-        isValidTypeForList(self, SBase item) -> bool
+        isValidTypeForList(SBasePlugin self, SBase item) -> bool
 
         """
         return _libsbml.SBasePlugin_isValidTypeForList(self, *args)
 
     def getSBMLExtension(self):
         """
-        getSBMLExtension(self) -> SBMLExtension
+        getSBMLExtension(SBasePlugin self) -> SBMLExtension
 
         @internal
 
@@ -66451,10 +66458,10 @@ class SBasePlugin(_object):
         if (self.this == rhs.this): return False
       return True
 
-    def getListOfAllElements(self, filter = None):
+    def getListOfAllElements(self, filter=None):
         """
-        getListOfAllElements(self, ElementFilter filter = None) -> SBaseList
-        getListOfAllElements(self) -> SBaseList
+        getListOfAllElements(SBasePlugin self, ElementFilter filter=None) -> SBaseList
+        getListOfAllElements(SBasePlugin self) -> SBaseList
 
         Returns an SBaseList of all child SBase objects, including those
         nested to an arbitrary depth.
@@ -66697,8 +66704,8 @@ class SBMLDocumentPlugin(SBasePlugin):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string uri, string prefix, SBMLNamespaces sbmlns) -> SBMLDocumentPlugin
-        __init__(self, SBMLDocumentPlugin orig) -> SBMLDocumentPlugin
+        __init__(SBMLDocumentPlugin self, string uri, string prefix, SBMLNamespaces sbmlns) -> SBMLDocumentPlugin
+        __init__(SBMLDocumentPlugin self, SBMLDocumentPlugin orig) -> SBMLDocumentPlugin
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -66758,7 +66765,7 @@ class SBMLDocumentPlugin(SBasePlugin):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLDocumentPlugin
+        clone(SBMLDocumentPlugin self) -> SBMLDocumentPlugin
 
         Creates and returns a deep copy of this SBMLDocumentPlugin object.
 
@@ -66769,7 +66776,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def setRequired(self, *args):
         """
-        setRequired(self, bool value) -> int
+        setRequired(SBMLDocumentPlugin self, bool value) -> int
 
         Sets the SBML 'required' attribute value.
 
@@ -66814,7 +66821,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def getRequired(self):
         """
-        getRequired(self) -> bool
+        getRequired(SBMLDocumentPlugin self) -> bool
 
         Returns the value of the 'required' attribute.
 
@@ -66850,7 +66857,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def isSetRequired(self):
         """
-        isSetRequired(self) -> bool
+        isSetRequired(SBMLDocumentPlugin self) -> bool
 
         Returns the value of the 'required' attribute.
 
@@ -66883,7 +66890,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def unsetRequired(self):
         """
-        unsetRequired(self) -> int
+        unsetRequired(SBMLDocumentPlugin self) -> int
 
         Unsets the value of the 'required' attribute of this SBMLDocumentPlugin.
 
@@ -66898,7 +66905,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def isCompFlatteningImplemented(self):
         """
-        isCompFlatteningImplemented(self) -> bool
+        isCompFlatteningImplemented(SBMLDocumentPlugin self) -> bool
 
         @internal
 
@@ -66909,7 +66916,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def checkConsistency(self):
         """
-        checkConsistency(self) -> unsigned int
+        checkConsistency(SBMLDocumentPlugin self) -> unsigned int
 
         @internal
 
@@ -66990,7 +66997,7 @@ class SBMLExtension(_object):
     combination for which the package can be used.  For instance, if a package
     is only usable in SBML Level 3 Version 1, and the libSBML
     extension for the package implements version 1 of the package, the
-    necessary method is <code>getXmlnsL3V1V1()</code>.  
+    necessary method is <code>getXmlnsL3V1V1()</code>.
     @code{.cpp}
     string GroupsExtension.getXmlnsL3V1V1 ()
     {
@@ -67516,7 +67523,7 @@ class SBMLExtension(_object):
     __del__ = lambda self : None;
     def getNumOfSBasePlugins(self):
         """
-        getNumOfSBasePlugins(self) -> int
+        getNumOfSBasePlugins(SBMLExtension self) -> int
 
         Returns the number of SBasePluginCreatorBase objects stored in this
         object.
@@ -67529,7 +67536,7 @@ class SBMLExtension(_object):
 
     def getNumOfSupportedPackageURI(self):
         """
-        getNumOfSupportedPackageURI(self) -> unsigned int
+        getNumOfSupportedPackageURI(SBMLExtension self) -> unsigned int
 
         Returns the number of supported package namespace URIs.
 
@@ -67541,7 +67548,7 @@ class SBMLExtension(_object):
 
     def isSupported(self, *args):
         """
-        isSupported(self, string uri) -> bool
+        isSupported(SBMLExtension self, string uri) -> bool
 
         Returns @c True if the given XML namespace URI is supported by this
         package extension.
@@ -67554,7 +67561,7 @@ class SBMLExtension(_object):
 
     def getSupportedPackageURI(self, *args):
         """
-        getSupportedPackageURI(self, unsigned int n) -> string
+        getSupportedPackageURI(SBMLExtension self, unsigned int n) -> string
 
         Returns the nth XML namespace URI.
 
@@ -67568,7 +67575,7 @@ class SBMLExtension(_object):
 
     def clone(self):
         """
-        clone(self) -> SBMLExtension
+        clone(SBMLExtension self) -> SBMLExtension
 
         Creates and returns a deep copy of this SBMLExtension object.
 
@@ -67584,7 +67591,7 @@ class SBMLExtension(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SBMLExtension self) -> string
 
         Returns the nickname of this package.
 
@@ -67604,7 +67611,7 @@ class SBMLExtension(_object):
 
     def getURI(self, *args):
         """
-        getURI(self, unsigned int sbmlLevel, unsigned int sbmlVersion, unsigned int pkgVersion) -> string
+        getURI(SBMLExtension self, unsigned int sbmlLevel, unsigned int sbmlVersion, unsigned int pkgVersion) -> string
 
         Returns the XML namespace URI for a given Level and Version.
 
@@ -67625,7 +67632,7 @@ class SBMLExtension(_object):
 
     def getLevel(self, *args):
         """
-        getLevel(self, string uri) -> unsigned int
+        getLevel(SBMLExtension self, string uri) -> unsigned int
 
         Returns the SBML Level associated with the given XML namespace URI.
 
@@ -67643,7 +67650,7 @@ class SBMLExtension(_object):
 
     def getVersion(self, *args):
         """
-        getVersion(self, string uri) -> unsigned int
+        getVersion(SBMLExtension self, string uri) -> unsigned int
 
         Returns the SBML Version associated with the given XML namespace URI.
 
@@ -67661,7 +67668,7 @@ class SBMLExtension(_object):
 
     def getPackageVersion(self, *args):
         """
-        getPackageVersion(self, string uri) -> unsigned int
+        getPackageVersion(SBMLExtension self, string uri) -> unsigned int
 
         Returns the package version associated with the given XML namespace URI.
 
@@ -67679,7 +67686,7 @@ class SBMLExtension(_object):
 
     def getStringFromTypeCode(self, *args):
         """
-        getStringFromTypeCode(self, int typeCode) -> char
+        getStringFromTypeCode(SBMLExtension self, int typeCode) -> char const *
 
         Returns a string representation of a type code.
 
@@ -67701,7 +67708,7 @@ class SBMLExtension(_object):
 
     def getSBMLExtensionNamespaces(self, *args):
         """
-        getSBMLExtensionNamespaces(self, string uri) -> SBMLNamespaces
+        getSBMLExtensionNamespaces(SBMLExtension self, string uri) -> SBMLNamespaces
 
         Returns a specialized SBMLNamespaces object corresponding to a given
         namespace URI.
@@ -67737,7 +67744,7 @@ class SBMLExtension(_object):
 
     def setEnabled(self, *args):
         """
-        setEnabled(self, bool isEnabled) -> bool
+        setEnabled(SBMLExtension self, bool isEnabled) -> bool
 
         Enable or disable this package.
 
@@ -67751,7 +67758,7 @@ class SBMLExtension(_object):
 
     def isEnabled(self):
         """
-        isEnabled(self) -> bool
+        isEnabled(SBMLExtension self) -> bool
 
         Returns @c True if this package is enabled.
 
@@ -67762,7 +67769,7 @@ class SBMLExtension(_object):
 
     def removeL2Namespaces(self, *args):
         """
-        removeL2Namespaces(self, XMLNamespaces xmlns)
+        removeL2Namespaces(SBMLExtension self, XMLNamespaces xmlns)
 
         Removes the package's Level 2 namespace(s).
 
@@ -67814,7 +67821,7 @@ class SBMLExtension(_object):
 
     def addL2Namespaces(self, *args):
         """
-        addL2Namespaces(self, XMLNamespaces xmlns)
+        addL2Namespaces(SBMLExtension self, XMLNamespaces xmlns)
 
         Adds the package's Level 2 namespace(s).
 
@@ -67863,7 +67870,7 @@ class SBMLExtension(_object):
 
     def enableL2NamespaceForDocument(self, *args):
         """
-        enableL2NamespaceForDocument(self, SBMLDocument doc)
+        enableL2NamespaceForDocument(SBMLExtension self, SBMLDocument doc)
 
         Called to enable the package on the SBMLDocument object.
 
@@ -67912,7 +67919,7 @@ class SBMLExtension(_object):
 
     def isInUse(self, *args):
         """
-        isInUse(self, SBMLDocument doc) -> bool
+        isInUse(SBMLExtension self, SBMLDocument doc) -> bool
 
         Indicates whether this extension is being used by the given SBMLDocument.
 
@@ -67931,7 +67938,7 @@ class SBMLExtension(_object):
 
     def hasMultipleVersions(self):
         """
-        hasMultipleVersions(self) -> bool
+        hasMultipleVersions(SBMLExtension self) -> bool
 
         @internal
 
@@ -67942,7 +67949,7 @@ class SBMLExtension(_object):
 
     def getErrorTableIndex(self, *args):
         """
-        getErrorTableIndex(self, unsigned int errorId) -> unsigned int
+        getErrorTableIndex(SBMLExtension self, unsigned int errorId) -> unsigned int
 
         @internal
 
@@ -67953,7 +67960,7 @@ class SBMLExtension(_object):
 
     def getErrorIdOffset(self):
         """
-        getErrorIdOffset(self) -> unsigned int
+        getErrorIdOffset(SBMLExtension self) -> unsigned int
 
         @internal
 
@@ -67964,7 +67971,7 @@ class SBMLExtension(_object):
 
     def getSeverity(self, *args):
         """
-        getSeverity(self, unsigned int index, unsigned int pkgVersion) -> unsigned int
+        getSeverity(SBMLExtension self, unsigned int index, unsigned int pkgVersion) -> unsigned int
 
         @internal
 
@@ -67975,7 +67982,7 @@ class SBMLExtension(_object):
 
     def getCategory(self, *args):
         """
-        getCategory(self, unsigned int index) -> unsigned int
+        getCategory(SBMLExtension self, unsigned int index) -> unsigned int
 
         @internal
 
@@ -67986,7 +67993,7 @@ class SBMLExtension(_object):
 
     def getMessage(self, *args):
         """
-        getMessage(self, unsigned int index, unsigned int pkgVersion, string details) -> string
+        getMessage(SBMLExtension self, unsigned int index, unsigned int pkgVersion, string details) -> string
 
         @internal
 
@@ -67997,7 +68004,7 @@ class SBMLExtension(_object):
 
     def getShortMessage(self, *args):
         """
-        getShortMessage(self, unsigned int index) -> string
+        getShortMessage(SBMLExtension self, unsigned int index) -> string
 
         @internal
 
@@ -68050,7 +68057,7 @@ class SBMLExtensionException(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string errmsg) -> SBMLExtensionException
+        __init__(SBMLExtensionException self, string errmsg) -> SBMLExtensionException
 
         Creates a new SBMLExtensionException object with a given message.
 
@@ -68113,7 +68120,7 @@ class SBMLExtensionRegistry(_object):
     __swig_getmethods__["getInstance"] = lambda x: getInstance
     def addExtension(self, *args):
         """
-        addExtension(self, SBMLExtension ext) -> int
+        addExtension(SBMLExtensionRegistry self, SBMLExtension ext) -> int
 
         Add the given SBMLExtension object to this SBMLExtensionRegistry.
 
@@ -68132,7 +68139,7 @@ class SBMLExtensionRegistry(_object):
 
     def getExtension(self, *args):
         """
-        getExtension(self, string package) -> SBMLExtension
+        getExtension(SBMLExtensionRegistry self, string package) -> SBMLExtension
 
         Returns an SBMLExtension object with the given package URI or package
         name.
@@ -68152,7 +68159,7 @@ class SBMLExtensionRegistry(_object):
 
     def removeL2Namespaces(self, *args):
         """
-        removeL2Namespaces(self, XMLNamespaces xmlns)
+        removeL2Namespaces(SBMLExtensionRegistry self, XMLNamespaces xmlns)
 
         Removes SBML Level 2 namespaces from the namespace list.
 
@@ -68169,7 +68176,7 @@ class SBMLExtensionRegistry(_object):
 
     def addL2Namespaces(self, *args):
         """
-        addL2Namespaces(self, XMLNamespaces xmlns)
+        addL2Namespaces(SBMLExtensionRegistry self, XMLNamespaces xmlns)
 
         Adds SBML Level 2 namespaces to the namespace list.
 
@@ -68186,7 +68193,7 @@ class SBMLExtensionRegistry(_object):
 
     def enableL2NamespaceForDocument(self, *args):
         """
-        enableL2NamespaceForDocument(self, SBMLDocument doc)
+        enableL2NamespaceForDocument(SBMLExtensionRegistry self, SBMLDocument doc)
 
         Enables package extensions that support serialization to SBML annotations.
 
@@ -68202,7 +68209,7 @@ class SBMLExtensionRegistry(_object):
 
     def disableUnusedPackages(self, *args):
         """
-        disableUnusedPackages(self, SBMLDocument doc)
+        disableUnusedPackages(SBMLExtensionRegistry self, SBMLDocument doc)
 
         Disables unused packages.
 
@@ -68259,7 +68266,7 @@ class SBMLExtensionRegistry(_object):
     __swig_getmethods__["enablePackage"] = lambda x: enablePackage
     def getNumExtension(self, *args):
         """
-        getNumExtension(self, SBaseExtensionPoint extPoint) -> unsigned int
+        getNumExtension(SBMLExtensionRegistry self, SBaseExtensionPoint extPoint) -> unsigned int
 
         Returns the number of extensions that have a given extension point.
 
@@ -68273,7 +68280,7 @@ class SBMLExtensionRegistry(_object):
 
     def setEnabled(self, *args):
         """
-        setEnabled(self, string uri, bool isEnabled) -> bool
+        setEnabled(SBMLExtensionRegistry self, string uri, bool isEnabled) -> bool
 
         Enables or disable the package with the given URI.
 
@@ -68288,7 +68295,7 @@ class SBMLExtensionRegistry(_object):
 
     def isEnabled(self, *args):
         """
-        isEnabled(self, string uri) -> bool
+        isEnabled(SBMLExtensionRegistry self, string uri) -> bool
 
         Returns @c True if the given extension is enabled.
 
@@ -68302,7 +68309,7 @@ class SBMLExtensionRegistry(_object):
 
     def isRegistered(self, *args):
         """
-        isRegistered(self, string uri) -> bool
+        isRegistered(SBMLExtensionRegistry self, string uri) -> bool
 
         Returns @c True if a package extension is registered for the
         corresponding package URI.
@@ -68317,7 +68324,7 @@ class SBMLExtensionRegistry(_object):
 
     def getAllRegisteredPackageNames():
         """
-        getAllRegisteredPackageNames() -> std::vector<(std::string)>
+        getAllRegisteredPackageNames() -> std::vector< std::string >
 
         Returns a list of registered packages.
 
@@ -68423,7 +68430,7 @@ def SBMLExtensionRegistry_enablePackage(*args):
 
 def SBMLExtensionRegistry_getAllRegisteredPackageNames():
   """
-    SBMLExtensionRegistry_getAllRegisteredPackageNames() -> std::vector<(std::string)>
+    SBMLExtensionRegistry_getAllRegisteredPackageNames() -> std::vector< std::string >
 
     Returns a list of registered packages.
 
@@ -68574,6 +68581,66 @@ def representsNumber(*args):
     """
   return _libsbml.representsNumber(*args)
 
+def representsFunction(*args):
+  """
+    representsFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsFunction(int type) -> bool
+
+    @internal
+
+    @internal
+
+    """
+  return _libsbml.representsFunction(*args)
+
+def representsUnaryFunction(*args):
+  """
+    representsUnaryFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsUnaryFunction(int type) -> bool
+
+    @internal
+
+    @internal
+
+    """
+  return _libsbml.representsUnaryFunction(*args)
+
+def representsBinaryFunction(*args):
+  """
+    representsBinaryFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsBinaryFunction(int type) -> bool
+
+    @internal
+
+    @internal
+
+    """
+  return _libsbml.representsBinaryFunction(*args)
+
+def representsNaryFunction(*args):
+  """
+    representsNaryFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsNaryFunction(int type) -> bool
+
+    @internal
+
+    @internal
+
+    """
+  return _libsbml.representsNaryFunction(*args)
+
+def representsQualifier(*args):
+  """
+    representsQualifier(int type, ASTBasePlugin plugin=None) -> bool
+    representsQualifier(int type) -> bool
+
+    @internal
+
+    @internal
+
+    """
+  return _libsbml.representsQualifier(*args)
+
 def representsFunctionRequiringAtLeastTwoArguments(*args):
   """
     representsFunctionRequiringAtLeastTwoArguments(int type) -> bool
@@ -68598,7 +68665,7 @@ def getCoreTypeFromName(*args):
 
 def getNameFromCoreType(*args):
   """
-    getNameFromCoreType(int type) -> char
+    getNameFromCoreType(int type) -> char const *
 
     @internal
 
@@ -68646,7 +68713,7 @@ class ASTBase(_object):
     __del__ = lambda self : None;
     def deepCopy(self):
         """
-        deepCopy(self) -> ASTBase
+        deepCopy(ASTBase self) -> ASTBase
 
         @internal
 
@@ -68657,7 +68724,7 @@ class ASTBase(_object):
 
     def loadASTPlugins(self, *args):
         """
-        loadASTPlugins(self, SBMLNamespaces sbmlns)
+        loadASTPlugins(ASTBase self, SBMLNamespaces sbmlns)
 
         @internal
 
@@ -68668,7 +68735,7 @@ class ASTBase(_object):
 
     def getType(self):
         """
-        getType(self) -> ASTNodeType_t
+        getType(ASTBase self) -> ASTNodeType_t
 
         @internal
 
@@ -68679,7 +68746,7 @@ class ASTBase(_object):
 
     def getExtendedType(self):
         """
-        getExtendedType(self) -> int
+        getExtendedType(ASTBase self) -> int
 
         @internal
 
@@ -68690,7 +68757,7 @@ class ASTBase(_object):
 
     def isSetType(self):
         """
-        isSetType(self) -> bool
+        isSetType(ASTBase self) -> bool
 
         @internal
 
@@ -68701,14 +68768,14 @@ class ASTBase(_object):
 
     def setType(self, *args):
         """
-        setType(self, ASTNodeType_t type) -> int
-        setType(self, int type) -> int
+        setType(ASTBase self, ASTNodeType_t type) -> int
+        setType(ASTBase self, int type) -> int
         """
         return _libsbml.ASTBase_setType(self, *args)
 
     def isAvogadro(self):
         """
-        isAvogadro(self) -> bool
+        isAvogadro(ASTBase self) -> bool
 
         @internal
 
@@ -68719,7 +68786,7 @@ class ASTBase(_object):
 
     def isBoolean(self):
         """
-        isBoolean(self) -> bool
+        isBoolean(ASTBase self) -> bool
 
         @internal
 
@@ -68730,7 +68797,7 @@ class ASTBase(_object):
 
     def isBinaryFunction(self):
         """
-        isBinaryFunction(self) -> bool
+        isBinaryFunction(ASTBase self) -> bool
 
         @internal
 
@@ -68741,7 +68808,7 @@ class ASTBase(_object):
 
     def isConstant(self):
         """
-        isConstant(self) -> bool
+        isConstant(ASTBase self) -> bool
 
         @internal
 
@@ -68752,7 +68819,7 @@ class ASTBase(_object):
 
     def isExponential(self):
         """
-        isExponential(self) -> bool
+        isExponential(ASTBase self) -> bool
 
         @internal
 
@@ -68763,7 +68830,7 @@ class ASTBase(_object):
 
     def isCiNumber(self):
         """
-        isCiNumber(self) -> bool
+        isCiNumber(ASTBase self) -> bool
 
         @internal
 
@@ -68774,7 +68841,7 @@ class ASTBase(_object):
 
     def isConstantNumber(self):
         """
-        isConstantNumber(self) -> bool
+        isConstantNumber(ASTBase self) -> bool
 
         @internal
 
@@ -68785,7 +68852,7 @@ class ASTBase(_object):
 
     def isCSymbolFunction(self):
         """
-        isCSymbolFunction(self) -> bool
+        isCSymbolFunction(ASTBase self) -> bool
 
         @internal
 
@@ -68796,7 +68863,7 @@ class ASTBase(_object):
 
     def isCSymbolNumber(self):
         """
-        isCSymbolNumber(self) -> bool
+        isCSymbolNumber(ASTBase self) -> bool
 
         @internal
 
@@ -68807,7 +68874,7 @@ class ASTBase(_object):
 
     def isFunction(self):
         """
-        isFunction(self) -> bool
+        isFunction(ASTBase self) -> bool
 
         @internal
 
@@ -68818,7 +68885,7 @@ class ASTBase(_object):
 
     def isInteger(self):
         """
-        isInteger(self) -> bool
+        isInteger(ASTBase self) -> bool
 
         @internal
 
@@ -68829,7 +68896,7 @@ class ASTBase(_object):
 
     def isLambda(self):
         """
-        isLambda(self) -> bool
+        isLambda(ASTBase self) -> bool
 
         @internal
 
@@ -68840,7 +68907,7 @@ class ASTBase(_object):
 
     def isLogical(self):
         """
-        isLogical(self) -> bool
+        isLogical(ASTBase self) -> bool
 
         @internal
 
@@ -68851,7 +68918,7 @@ class ASTBase(_object):
 
     def isName(self):
         """
-        isName(self) -> bool
+        isName(ASTBase self) -> bool
 
         @internal
 
@@ -68862,7 +68929,7 @@ class ASTBase(_object):
 
     def isNaryFunction(self):
         """
-        isNaryFunction(self) -> bool
+        isNaryFunction(ASTBase self) -> bool
 
         @internal
 
@@ -68873,7 +68940,7 @@ class ASTBase(_object):
 
     def isNumber(self):
         """
-        isNumber(self) -> bool
+        isNumber(ASTBase self) -> bool
 
         @internal
 
@@ -68884,7 +68951,7 @@ class ASTBase(_object):
 
     def isOperator(self):
         """
-        isOperator(self) -> bool
+        isOperator(ASTBase self) -> bool
 
         @internal
 
@@ -68895,7 +68962,7 @@ class ASTBase(_object):
 
     def isPiecewise(self):
         """
-        isPiecewise(self) -> bool
+        isPiecewise(ASTBase self) -> bool
 
         @internal
 
@@ -68906,7 +68973,7 @@ class ASTBase(_object):
 
     def isQualifier(self):
         """
-        isQualifier(self) -> bool
+        isQualifier(ASTBase self) -> bool
 
         @internal
 
@@ -68917,7 +68984,7 @@ class ASTBase(_object):
 
     def isRational(self):
         """
-        isRational(self) -> bool
+        isRational(ASTBase self) -> bool
 
         @internal
 
@@ -68928,7 +68995,7 @@ class ASTBase(_object):
 
     def isReal(self):
         """
-        isReal(self) -> bool
+        isReal(ASTBase self) -> bool
 
         @internal
 
@@ -68939,7 +69006,7 @@ class ASTBase(_object):
 
     def isRelational(self):
         """
-        isRelational(self) -> bool
+        isRelational(ASTBase self) -> bool
 
         @internal
 
@@ -68950,7 +69017,7 @@ class ASTBase(_object):
 
     def isSemantics(self):
         """
-        isSemantics(self) -> bool
+        isSemantics(ASTBase self) -> bool
 
         @internal
 
@@ -68961,7 +69028,7 @@ class ASTBase(_object):
 
     def isUnaryFunction(self):
         """
-        isUnaryFunction(self) -> bool
+        isUnaryFunction(ASTBase self) -> bool
 
         @internal
 
@@ -68972,7 +69039,7 @@ class ASTBase(_object):
 
     def isUnknown(self):
         """
-        isUnknown(self) -> bool
+        isUnknown(ASTBase self) -> bool
 
         @internal
 
@@ -68983,7 +69050,7 @@ class ASTBase(_object):
 
     def isUserFunction(self):
         """
-        isUserFunction(self) -> bool
+        isUserFunction(ASTBase self) -> bool
 
         @internal
 
@@ -68994,7 +69061,7 @@ class ASTBase(_object):
 
     def representsBvar(self):
         """
-        representsBvar(self) -> bool
+        representsBvar(ASTBase self) -> bool
 
         @internal
 
@@ -69005,7 +69072,7 @@ class ASTBase(_object):
 
     def setIsBvar(self, *args):
         """
-        setIsBvar(self, bool isbvar) -> int
+        setIsBvar(ASTBase self, bool isbvar) -> int
 
         @internal
 
@@ -69016,7 +69083,7 @@ class ASTBase(_object):
 
     def isNumberNode(self):
         """
-        isNumberNode(self) -> bool
+        isNumberNode(ASTBase self) -> bool
 
         @internal
 
@@ -69027,7 +69094,7 @@ class ASTBase(_object):
 
     def isFunctionNode(self):
         """
-        isFunctionNode(self) -> bool
+        isFunctionNode(ASTBase self) -> bool
 
         @internal
 
@@ -69038,7 +69105,7 @@ class ASTBase(_object):
 
     def isTopLevelMathMLFunctionNodeTag(self, *args):
         """
-        isTopLevelMathMLFunctionNodeTag(self, string name) -> bool
+        isTopLevelMathMLFunctionNodeTag(ASTBase self, string name) -> bool
 
         @internal
 
@@ -69049,7 +69116,7 @@ class ASTBase(_object):
 
     def isTopLevelMathMLNumberNodeTag(self, *args):
         """
-        isTopLevelMathMLNumberNodeTag(self, string name) -> bool
+        isTopLevelMathMLNumberNodeTag(ASTBase self, string name) -> bool
 
         @internal
 
@@ -69060,7 +69127,7 @@ class ASTBase(_object):
 
     def write(self, *args):
         """
-        write(self, XMLOutputStream stream)
+        write(ASTBase self, XMLOutputStream stream)
 
         @internal
 
@@ -69071,8 +69138,8 @@ class ASTBase(_object):
 
     def read(self, *args):
         """
-        read(self, XMLInputStream stream, string reqd_prefix = "") -> bool
-        read(self, XMLInputStream stream) -> bool
+        read(ASTBase self, XMLInputStream stream, string reqd_prefix="") -> bool
+        read(ASTBase self, XMLInputStream stream) -> bool
 
         @internal
 
@@ -69083,7 +69150,7 @@ class ASTBase(_object):
 
     def addExpectedAttributes(self, *args):
         """
-        addExpectedAttributes(self, ExpectedAttributes attributes, XMLInputStream stream)
+        addExpectedAttributes(ASTBase self, ExpectedAttributes & attributes, XMLInputStream stream)
 
         @internal
 
@@ -69094,8 +69161,8 @@ class ASTBase(_object):
 
     def readAttributes(self, *args):
         """
-        readAttributes(self, XMLAttributes attributes, ExpectedAttributes expectedAttributes, 
-            XMLInputStream stream, XMLToken element) -> bool
+        readAttributes(ASTBase self, XMLAttributes attributes, ExpectedAttributes const & expectedAttributes, XMLInputStream stream, 
+            XMLToken element) -> bool
 
         @internal
 
@@ -69106,9 +69173,8 @@ class ASTBase(_object):
 
     def logError(self, *args):
         """
-        logError(self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code, 
-            string msg = "")
-        logError(self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code)
+        logError(ASTBase self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code, string msg="")
+        logError(ASTBase self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code)
 
         @internal
 
@@ -69118,89 +69184,89 @@ class ASTBase(_object):
         return _libsbml.ASTBase_logError(self, *args)
 
     def setIsChildFlag(self, *args):
-        """setIsChildFlag(self, bool flag)"""
+        """setIsChildFlag(ASTBase self, bool flag)"""
         return _libsbml.ASTBase_setIsChildFlag(self, *args)
 
     def getClass(self):
-        """getClass(self) -> string"""
+        """getClass(ASTBase self) -> string"""
         return _libsbml.ASTBase_getClass(self)
 
     def getId(self):
-        """getId(self) -> string"""
+        """getId(ASTBase self) -> string"""
         return _libsbml.ASTBase_getId(self)
 
     def getStyle(self):
-        """getStyle(self) -> string"""
+        """getStyle(ASTBase self) -> string"""
         return _libsbml.ASTBase_getStyle(self)
 
     def getParentSBMLObject(self):
-        """getParentSBMLObject(self) -> SBase"""
+        """getParentSBMLObject(ASTBase self) -> SBase"""
         return _libsbml.ASTBase_getParentSBMLObject(self)
 
     def isSetClass(self):
-        """isSetClass(self) -> bool"""
+        """isSetClass(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetClass(self)
 
     def isSetId(self):
-        """isSetId(self) -> bool"""
+        """isSetId(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetId(self)
 
     def isSetStyle(self):
-        """isSetStyle(self) -> bool"""
+        """isSetStyle(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetStyle(self)
 
     def isSetParentSBMLObject(self):
-        """isSetParentSBMLObject(self) -> bool"""
+        """isSetParentSBMLObject(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetParentSBMLObject(self)
 
     def setClass(self, *args):
-        """setClass(self, string className) -> int"""
+        """setClass(ASTBase self, string className) -> int"""
         return _libsbml.ASTBase_setClass(self, *args)
 
     def setId(self, *args):
-        """setId(self, string id) -> int"""
+        """setId(ASTBase self, string id) -> int"""
         return _libsbml.ASTBase_setId(self, *args)
 
     def setStyle(self, *args):
-        """setStyle(self, string style) -> int"""
+        """setStyle(ASTBase self, string style) -> int"""
         return _libsbml.ASTBase_setStyle(self, *args)
 
     def unsetClass(self):
-        """unsetClass(self) -> int"""
+        """unsetClass(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetClass(self)
 
     def unsetId(self):
-        """unsetId(self) -> int"""
+        """unsetId(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetId(self)
 
     def unsetStyle(self):
-        """unsetStyle(self) -> int"""
+        """unsetStyle(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetStyle(self)
 
     def unsetParentSBMLObject(self):
-        """unsetParentSBMLObject(self) -> int"""
+        """unsetParentSBMLObject(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetParentSBMLObject(self)
 
     def getFunction(self):
-        """getFunction(self) -> ASTBase"""
+        """getFunction(ASTBase self) -> ASTBase"""
         return _libsbml.ASTBase_getFunction(self)
 
     def addPlugin(self, *args):
-        """addPlugin(self, ASTBasePlugin plugin)"""
+        """addPlugin(ASTBase self, ASTBasePlugin plugin)"""
         return _libsbml.ASTBase_addPlugin(self, *args)
 
     def getPlugin(self, *args):
         """
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTBase self, string package) -> ASTBasePlugin
+        getPlugin(ASTBase self, string package) -> ASTBasePlugin
+        getPlugin(ASTBase self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTBase self, unsigned int n) -> ASTBasePlugin
         """
         return _libsbml.ASTBase_getPlugin(self, *args)
 
     def getNumPlugins(self):
         """
-        getNumPlugins(self) -> unsigned int
+        getNumPlugins(ASTBase self) -> unsigned int
 
         @internal
 
@@ -69211,7 +69277,7 @@ class ASTBase(_object):
 
     def getTypeFromName(self, *args):
         """
-        getTypeFromName(self, string name) -> int
+        getTypeFromName(ASTBase self, string name) -> int
 
         @internal
 
@@ -69222,7 +69288,7 @@ class ASTBase(_object):
 
     def getNameFromType(self, *args):
         """
-        getNameFromType(self, int type) -> char
+        getNameFromType(ASTBase self, int type) -> char const *
 
         @internal
 
@@ -69233,7 +69299,7 @@ class ASTBase(_object):
 
     def isSetUserData(self):
         """
-        isSetUserData(self) -> bool
+        isSetUserData(ASTBase self) -> bool
 
         @internal
 
@@ -69244,7 +69310,7 @@ class ASTBase(_object):
 
     def unsetUserData(self):
         """
-        unsetUserData(self) -> int
+        unsetUserData(ASTBase self) -> int
 
         @internal
 
@@ -69255,8 +69321,8 @@ class ASTBase(_object):
 
     def writeNodeOfType(self, *args):
         """
-        writeNodeOfType(self, XMLOutputStream stream, int type, bool inChildNode = False)
-        writeNodeOfType(self, XMLOutputStream stream, int type)
+        writeNodeOfType(ASTBase self, XMLOutputStream stream, int type, bool inChildNode=False)
+        writeNodeOfType(ASTBase self, XMLOutputStream stream, int type)
 
         @internal
 
@@ -69267,7 +69333,7 @@ class ASTBase(_object):
 
     def isWellFormedNode(self):
         """
-        isWellFormedNode(self) -> bool
+        isWellFormedNode(ASTBase self) -> bool
 
         @internal
 
@@ -69278,7 +69344,7 @@ class ASTBase(_object):
 
     def hasCorrectNumberArguments(self):
         """
-        hasCorrectNumberArguments(self) -> bool
+        hasCorrectNumberArguments(ASTBase self) -> bool
 
         @internal
 
@@ -69289,7 +69355,7 @@ class ASTBase(_object):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ASTBase self) -> int
 
         @internal
 
@@ -69300,7 +69366,7 @@ class ASTBase(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ASTBase self) -> string
 
         @internal
 
@@ -69311,7 +69377,7 @@ class ASTBase(_object):
 
     def setPackageName(self, *args):
         """
-        setPackageName(self, string name) -> int
+        setPackageName(ASTBase self, string name) -> int
 
         @internal
 
@@ -69322,7 +69388,7 @@ class ASTBase(_object):
 
     def hasCnUnits(self):
         """
-        hasCnUnits(self) -> bool
+        hasCnUnits(ASTBase self) -> bool
 
         @internal
 
@@ -69333,7 +69399,7 @@ class ASTBase(_object):
 
     def getUnitsPrefix(self):
         """
-        getUnitsPrefix(self) -> string
+        getUnitsPrefix(ASTBase self) -> string
 
         @internal
 
@@ -69344,7 +69410,7 @@ class ASTBase(_object):
 
     def isPackageInfixFunction(self):
         """
-        isPackageInfixFunction(self) -> bool
+        isPackageInfixFunction(ASTBase self) -> bool
 
         @internal
 
@@ -69355,7 +69421,7 @@ class ASTBase(_object):
 
     def hasPackageOnlyInfixSyntax(self):
         """
-        hasPackageOnlyInfixSyntax(self) -> bool
+        hasPackageOnlyInfixSyntax(ASTBase self) -> bool
 
         @internal
 
@@ -69366,7 +69432,7 @@ class ASTBase(_object):
 
     def getL3PackageInfixPrecedence(self):
         """
-        getL3PackageInfixPrecedence(self) -> int
+        getL3PackageInfixPrecedence(ASTBase self) -> int
 
         @internal
 
@@ -69377,7 +69443,7 @@ class ASTBase(_object):
 
     def hasUnambiguousPackageInfixGrammar(self, *args):
         """
-        hasUnambiguousPackageInfixGrammar(self, ASTNode child) -> bool
+        hasUnambiguousPackageInfixGrammar(ASTBase self, ASTNode child) -> bool
 
         @internal
 
@@ -69388,7 +69454,7 @@ class ASTBase(_object):
 
     def getValue(self):
         """
-        getValue(self) -> double
+        getValue(ASTBase self) -> double
 
         @internal
 
@@ -69400,66 +69466,6 @@ class ASTBase(_object):
 ASTBase_swigregister = _libsbml.ASTBase_swigregister
 ASTBase_swigregister(ASTBase)
 
-def representsFunction(*args):
-  """
-    representsFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsFunction(int type) -> bool
-
-    @internal
-
-    @internal
-
-    """
-  return _libsbml.representsFunction(*args)
-
-def representsUnaryFunction(*args):
-  """
-    representsUnaryFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsUnaryFunction(int type) -> bool
-
-    @internal
-
-    @internal
-
-    """
-  return _libsbml.representsUnaryFunction(*args)
-
-def representsBinaryFunction(*args):
-  """
-    representsBinaryFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsBinaryFunction(int type) -> bool
-
-    @internal
-
-    @internal
-
-    """
-  return _libsbml.representsBinaryFunction(*args)
-
-def representsNaryFunction(*args):
-  """
-    representsNaryFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsNaryFunction(int type) -> bool
-
-    @internal
-
-    @internal
-
-    """
-  return _libsbml.representsNaryFunction(*args)
-
-def representsQualifier(*args):
-  """
-    representsQualifier(int type, ASTBasePlugin plugin = None) -> bool
-    representsQualifier(int type) -> bool
-
-    @internal
-
-    @internal
-
-    """
-  return _libsbml.representsQualifier(*args)
-
 class ASTNode(ASTBase):
     """
     @sbmlpackage{core}
@@ -69638,11 +69644,11 @@ class ASTNode(ASTBase):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, int type = AST_UNKNOWN) -> ASTNode
-        __init__(self) -> ASTNode
-        __init__(self, SBMLNamespaces sbmlns, int type = AST_UNKNOWN) -> ASTNode
-        __init__(self, SBMLNamespaces sbmlns) -> ASTNode
-        __init__(self, ASTNode orig) -> ASTNode
+        __init__(ASTNode self, int type=AST_UNKNOWN) -> ASTNode
+        __init__(ASTNode self) -> ASTNode
+        __init__(ASTNode self, SBMLNamespaces sbmlns, int type=AST_UNKNOWN) -> ASTNode
+        __init__(ASTNode self, SBMLNamespaces sbmlns) -> ASTNode
+        __init__(ASTNode self, ASTNode orig) -> ASTNode
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -69697,7 +69703,7 @@ class ASTNode(ASTBase):
     __del__ = lambda self : None;
     def freeName(self):
         """
-        freeName(self) -> int
+        freeName(ASTNode self) -> int
 
         Frees the name of this ASTNode and sets it to @c None.
 
@@ -69717,7 +69723,7 @@ class ASTNode(ASTBase):
 
     def canonicalize(self):
         """
-        canonicalize(self) -> bool
+        canonicalize(ASTNode self) -> bool
 
         Converts this ASTNode to a canonical form.
 
@@ -69756,7 +69762,7 @@ class ASTNode(ASTBase):
 
     def addChild(self, *args):
         """
-        addChild(self, ASTNode disownedChild) -> int
+        addChild(ASTNode self, ASTNode disownedChild) -> int
 
         Adds the given node as a child of this ASTNode.
 
@@ -69791,7 +69797,7 @@ class ASTNode(ASTBase):
 
     def prependChild(self, *args):
         """
-        prependChild(self, ASTNode disownedChild) -> int
+        prependChild(ASTNode self, ASTNode disownedChild) -> int
 
         Adds the given node as a child of this ASTNode.
 
@@ -69825,7 +69831,7 @@ class ASTNode(ASTBase):
 
     def removeChild(self, *args):
         """
-        removeChild(self, unsigned int n) -> int
+        removeChild(ASTNode self, unsigned int n) -> int
 
         Removes the nth child of this ASTNode object.
 
@@ -69857,8 +69863,8 @@ class ASTNode(ASTBase):
 
     def replaceChild(self, *args):
         """
-        replaceChild(self, unsigned int n, ASTNode disownedChild, bool delreplaced = False) -> int
-        replaceChild(self, unsigned int n, ASTNode disownedChild) -> int
+        replaceChild(ASTNode self, unsigned int n, ASTNode disownedChild, bool delreplaced=False) -> int
+        replaceChild(ASTNode self, unsigned int n, ASTNode disownedChild) -> int
 
         Replaces the nth child of this ASTNode with the given ASTNode.
 
@@ -69893,7 +69899,7 @@ class ASTNode(ASTBase):
 
     def insertChild(self, *args):
         """
-        insertChild(self, unsigned int n, ASTNode disownedChild) -> int
+        insertChild(ASTNode self, unsigned int n, ASTNode disownedChild) -> int
 
         Inserts the given ASTNode node at a given point in the current ASTNode's
         list of children.
@@ -69928,7 +69934,7 @@ class ASTNode(ASTBase):
 
     def deepCopy(self):
         """
-        deepCopy(self) -> ASTNode
+        deepCopy(ASTNode self) -> ASTNode
 
         Creates a recursive copy of this node and all its children.
 
@@ -69940,7 +69946,7 @@ class ASTNode(ASTBase):
 
     def getChild(self, *args):
         """
-        getChild(self, unsigned int n) -> ASTNode
+        getChild(ASTNode self, unsigned int n) -> ASTNode
 
         Returns the child at index n of this node.
 
@@ -69960,7 +69966,7 @@ class ASTNode(ASTBase):
 
     def getLeftChild(self):
         """
-        getLeftChild(self) -> ASTNode
+        getLeftChild(ASTNode self) -> ASTNode
 
         Returns the left child of this node.
 
@@ -69977,7 +69983,7 @@ class ASTNode(ASTBase):
 
     def getRightChild(self):
         """
-        getRightChild(self) -> ASTNode
+        getRightChild(ASTNode self) -> ASTNode
 
         Returns the right child of this node.
 
@@ -69998,7 +70004,7 @@ class ASTNode(ASTBase):
 
     def getNumChildren(self):
         """
-        getNumChildren(self) -> unsigned int
+        getNumChildren(ASTNode self) -> unsigned int
 
         Returns the number of children of this node.
 
@@ -70010,7 +70016,7 @@ class ASTNode(ASTBase):
 
     def addSemanticsAnnotation(self, *args):
         """
-        addSemanticsAnnotation(self, XMLNode disownedAnnotation) -> int
+        addSemanticsAnnotation(ASTNode self, XMLNode disownedAnnotation) -> int
 
         Adds the given XMLNode as a MathML <code><semantics></code>
         element to this ASTNode.
@@ -70053,7 +70059,7 @@ class ASTNode(ASTBase):
 
     def getNumSemanticsAnnotations(self):
         """
-        getNumSemanticsAnnotations(self) -> unsigned int
+        getNumSemanticsAnnotations(ASTNode self) -> unsigned int
 
         Returns the number of MathML <code><semantics></code> element
         elements on this node.
@@ -70089,7 +70095,7 @@ class ASTNode(ASTBase):
 
     def getSemanticsAnnotation(self, *args):
         """
-        getSemanticsAnnotation(self, unsigned int n) -> XMLNode
+        getSemanticsAnnotation(ASTNode self, unsigned int n) -> XMLNode
 
         Returns the nth MathML <code><semantics></code> element on this
         ASTNode.
@@ -70132,7 +70138,7 @@ class ASTNode(ASTBase):
 
     def getCharacter(self):
         """
-        getCharacter(self) -> char
+        getCharacter(ASTNode self) -> char
 
         Returns the value of this node as a single character.
 
@@ -70147,7 +70153,7 @@ class ASTNode(ASTBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(ASTNode self) -> string
 
         Returns the MathML @c id attribute value of this ASTNode.
 
@@ -70162,7 +70168,7 @@ class ASTNode(ASTBase):
 
     def getClass(self):
         """
-        getClass(self) -> string
+        getClass(ASTNode self) -> string
 
         Returns the MathML @c class attribute value of this ASTNode.
 
@@ -70177,7 +70183,7 @@ class ASTNode(ASTBase):
 
     def getStyle(self):
         """
-        getStyle(self) -> string
+        getStyle(ASTNode self) -> string
 
         Returns the MathML @c style attribute value of this ASTNode.
 
@@ -70192,7 +70198,7 @@ class ASTNode(ASTBase):
 
     def getInteger(self):
         """
-        getInteger(self) -> long
+        getInteger(ASTNode self) -> long
 
         Returns the value of this node as an integer.
 
@@ -70215,7 +70221,7 @@ class ASTNode(ASTBase):
 
     def getName(self):
         """
-        getName(self) -> char
+        getName(ASTNode self) -> char const *
 
         Returns the value of this node as a string.
 
@@ -70232,7 +70238,7 @@ class ASTNode(ASTBase):
 
     def getOperatorName(self):
         """
-        getOperatorName(self) -> char
+        getOperatorName(ASTNode self) -> char const *
 
         Returns the value of this operator node as a string.
 
@@ -70248,7 +70254,7 @@ class ASTNode(ASTBase):
 
     def getNumerator(self):
         """
-        getNumerator(self) -> long
+        getNumerator(ASTNode self) -> long
 
         Returns the value of the numerator of this node.
 
@@ -70264,7 +70270,7 @@ class ASTNode(ASTBase):
 
     def getDenominator(self):
         """
-        getDenominator(self) -> long
+        getDenominator(ASTNode self) -> long
 
         Returns the value of the denominator of this node.
 
@@ -70284,7 +70290,7 @@ class ASTNode(ASTBase):
 
     def getReal(self):
         """
-        getReal(self) -> double
+        getReal(ASTNode self) -> double
 
         Returns the real-numbered value of this node.
 
@@ -70308,7 +70314,7 @@ class ASTNode(ASTBase):
 
     def getMantissa(self):
         """
-        getMantissa(self) -> double
+        getMantissa(ASTNode self) -> double
 
         Returns the mantissa value of this node.
 
@@ -70333,7 +70339,7 @@ class ASTNode(ASTBase):
 
     def getExponent(self):
         """
-        getExponent(self) -> long
+        getExponent(ASTNode self) -> long
 
         Returns the exponent value of this ASTNode.
 
@@ -70352,7 +70358,7 @@ class ASTNode(ASTBase):
 
     def getValue(self):
         """
-        getValue(self) -> double
+        getValue(ASTNode self) -> double
 
         Returns the numerical value of this ASTNode.
 
@@ -70377,7 +70383,7 @@ class ASTNode(ASTBase):
 
     def getPrecedence(self):
         """
-        getPrecedence(self) -> int
+        getPrecedence(ASTNode self) -> int
 
         Returns the precedence of this node in the infix math syntax of SBML
         Level 1.
@@ -70393,7 +70399,7 @@ class ASTNode(ASTBase):
 
     def getType(self):
         """
-        getType(self) -> ASTNodeType_t
+        getType(ASTNode self) -> ASTNodeType_t
 
         Returns the type of this ASTNode.
 
@@ -70419,7 +70425,7 @@ class ASTNode(ASTBase):
 
     def getExtendedType(self):
         """
-        getExtendedType(self) -> int
+        getExtendedType(ASTNode self) -> int
 
         Returns the extended type of this ASTNode.
 
@@ -70443,7 +70449,7 @@ class ASTNode(ASTBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(ASTNode self) -> string
 
         Returns the units of this ASTNode.
 
@@ -70461,7 +70467,7 @@ class ASTNode(ASTBase):
 
     def isAvogadro(self):
         """
-        isAvogadro(self) -> bool
+        isAvogadro(ASTNode self) -> bool
 
         Returns @c True if this node represents the predefined
         value for Avogadro's constant.
@@ -70481,7 +70487,7 @@ class ASTNode(ASTBase):
 
     def isBoolean(self):
         """
-        isBoolean(self) -> bool
+        isBoolean(ASTNode self) -> bool
 
         Returns @c True if this node has a Boolean type.
 
@@ -70493,10 +70499,10 @@ class ASTNode(ASTBase):
         """
         return _libsbml.ASTNode_isBoolean(self)
 
-    def returnsBoolean(self, model = None):
+    def returnsBoolean(self, model=None):
         """
-        returnsBoolean(self, Model model = None) -> bool
-        returnsBoolean(self) -> bool
+        returnsBoolean(ASTNode self, Model model=None) -> bool
+        returnsBoolean(ASTNode self) -> bool
 
         Returns @c True if this node returns a Boolean value.
 
@@ -70521,7 +70527,7 @@ class ASTNode(ASTBase):
 
     def isConstant(self):
         """
-        isConstant(self) -> bool
+        isConstant(ASTNode self) -> bool
 
         Returns @c True if this node represents a MathML
         constant.
@@ -70539,7 +70545,7 @@ class ASTNode(ASTBase):
 
     def isFunction(self):
         """
-        isFunction(self) -> bool
+        isFunction(ASTNode self) -> bool
 
         Returns @c True if this node represents a function.
 
@@ -70555,7 +70561,7 @@ class ASTNode(ASTBase):
 
     def isInfinity(self):
         """
-        isInfinity(self) -> bool
+        isInfinity(ASTNode self) -> bool
 
         Returns @c True if this node represents the special IEEE 754
         value for infinity.
@@ -70568,7 +70574,7 @@ class ASTNode(ASTBase):
 
     def isInteger(self):
         """
-        isInteger(self) -> bool
+        isInteger(ASTNode self) -> bool
 
         Returns @c True if this node contains an integer value.
 
@@ -70579,7 +70585,7 @@ class ASTNode(ASTBase):
 
     def isLambda(self):
         """
-        isLambda(self) -> bool
+        isLambda(ASTNode self) -> bool
 
         Returns @c True if this node is a MathML
         <code><lambda></code>.
@@ -70591,7 +70597,7 @@ class ASTNode(ASTBase):
 
     def isLog10(self):
         """
-        isLog10(self) -> bool
+        isLog10(ASTNode self) -> bool
 
         Returns @c True if this node represents a @c log10 function.
 
@@ -70609,7 +70615,7 @@ class ASTNode(ASTBase):
 
     def isLogical(self):
         """
-        isLogical(self) -> bool
+        isLogical(ASTNode self) -> bool
 
         Returns @c True if this node is a MathML logical operator.
 
@@ -70624,7 +70630,7 @@ class ASTNode(ASTBase):
 
     def isName(self):
         """
-        isName(self) -> bool
+        isName(ASTNode self) -> bool
 
         Returns @c True if this node is a user-defined variable name
         or the symbols for time or Avogadro's constant.
@@ -70644,7 +70650,7 @@ class ASTNode(ASTBase):
 
     def isNaN(self):
         """
-        isNaN(self) -> bool
+        isNaN(ASTNode self) -> bool
 
         Returns @c True if this node represents the special IEEE 754
         value 'not a number' (NaN).
@@ -70657,7 +70663,7 @@ class ASTNode(ASTBase):
 
     def isNegInfinity(self):
         """
-        isNegInfinity(self) -> bool
+        isNegInfinity(ASTNode self) -> bool
 
         Returns @c True if this node represents the special IEEE 754
         value 'negative infinity'.
@@ -70670,7 +70676,7 @@ class ASTNode(ASTBase):
 
     def isNumber(self):
         """
-        isNumber(self) -> bool
+        isNumber(ASTNode self) -> bool
 
         Returns @c True if this node contains a number.
 
@@ -70681,7 +70687,7 @@ class ASTNode(ASTBase):
 
     def isOperator(self):
         """
-        isOperator(self) -> bool
+        isOperator(ASTNode self) -> bool
 
         Returns @c True if this node is a mathematical
         operator.
@@ -70697,7 +70703,7 @@ class ASTNode(ASTBase):
 
     def isPiecewise(self):
         """
-        isPiecewise(self) -> bool
+        isPiecewise(ASTNode self) -> bool
 
         Returns @c True if this node is the MathML
         <code><piecewise></code> construct.
@@ -70710,7 +70716,7 @@ class ASTNode(ASTBase):
 
     def isQualifier(self):
         """
-        isQualifier(self) -> bool
+        isQualifier(ASTNode self) -> bool
 
         Predicate returning @c True if this node is a MathML
         qualifier.
@@ -70726,7 +70732,7 @@ class ASTNode(ASTBase):
 
     def isRational(self):
         """
-        isRational(self) -> bool
+        isRational(ASTNode self) -> bool
 
         Returns @c True if this node represents a rational number.
 
@@ -70737,7 +70743,7 @@ class ASTNode(ASTBase):
 
     def isReal(self):
         """
-        isReal(self) -> bool
+        isReal(ASTNode self) -> bool
 
         Returns @c True if this node can represent a real number.
 
@@ -70752,7 +70758,7 @@ class ASTNode(ASTBase):
 
     def isRelational(self):
         """
-        isRelational(self) -> bool
+        isRelational(ASTNode self) -> bool
 
         Returns @c True if this node is a MathML
         relational operator.
@@ -70767,7 +70773,7 @@ class ASTNode(ASTBase):
 
     def isSemantics(self):
         """
-        isSemantics(self) -> bool
+        isSemantics(ASTNode self) -> bool
 
         Predicate returning @c True if this node is a MathML
         semantics node.
@@ -70780,7 +70786,7 @@ class ASTNode(ASTBase):
 
     def isSqrt(self):
         """
-        isSqrt(self) -> bool
+        isSqrt(ASTNode self) -> bool
 
         Returns @c True if this node represents a square root
         function.
@@ -70796,7 +70802,7 @@ class ASTNode(ASTBase):
 
     def isUMinus(self):
         """
-        isUMinus(self) -> bool
+        isUMinus(ASTNode self) -> bool
 
         Returns @c True if this node is a unary minus operator.
 
@@ -70820,7 +70826,7 @@ class ASTNode(ASTBase):
 
     def isUPlus(self):
         """
-        isUPlus(self) -> bool
+        isUPlus(ASTNode self) -> bool
 
         Returns @c True if this node is a unary plus operator.
 
@@ -70834,7 +70840,7 @@ class ASTNode(ASTBase):
 
     def hasTypeAndNumChildren(self, *args):
         """
-        hasTypeAndNumChildren(self, int type, unsigned int numchildren) -> int
+        hasTypeAndNumChildren(ASTNode self, int type, unsigned int numchildren) -> int
 
         Returns @c True if this node is of a certain type with a specific number
         of children.
@@ -70853,7 +70859,7 @@ class ASTNode(ASTBase):
 
     def isUnknown(self):
         """
-        isUnknown(self) -> bool
+        isUnknown(ASTNode self) -> bool
 
         Returns @c True if this node has an unknown type.
 
@@ -70872,7 +70878,7 @@ class ASTNode(ASTBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(ASTNode self) -> bool
 
         Returns @c True if this node has a value for the MathML
         attribute @c id.
@@ -70890,7 +70896,7 @@ class ASTNode(ASTBase):
 
     def isSetClass(self):
         """
-        isSetClass(self) -> bool
+        isSetClass(ASTNode self) -> bool
 
         Returns @c True if this node has a value for the MathML
         attribute @c class.
@@ -70908,7 +70914,7 @@ class ASTNode(ASTBase):
 
     def isSetStyle(self):
         """
-        isSetStyle(self) -> bool
+        isSetStyle(ASTNode self) -> bool
 
         Returns @c True if this node has a value for the MathML
         attribute @c style.
@@ -70926,7 +70932,7 @@ class ASTNode(ASTBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(ASTNode self) -> bool
 
         Returns @c True if this node has the attribute
         <code>sbml:units</code>.
@@ -70947,7 +70953,7 @@ class ASTNode(ASTBase):
 
     def hasUnits(self):
         """
-        hasUnits(self) -> bool
+        hasUnits(ASTNode self) -> bool
 
         Returns @c True if this node or any of its
         children nodes have the attribute <code>sbml:units</code>.
@@ -70968,7 +70974,7 @@ class ASTNode(ASTBase):
 
     def setCharacter(self, *args):
         """
-        setCharacter(self, char value) -> int
+        setCharacter(ASTNode self, char value) -> int
 
         Sets the value of this ASTNode to the given character.  If character
         is one of @c +, @c -, <code>*</code>, <code>/</code> or @c ^, the node
@@ -70989,7 +70995,7 @@ class ASTNode(ASTBase):
 
     def setId(self, *args):
         """
-        setId(self, string id) -> int
+        setId(ASTNode self, string id) -> int
 
         Sets the MathML attribute @c id of this ASTNode.
 
@@ -71010,7 +71016,7 @@ class ASTNode(ASTBase):
 
     def setClass(self, *args):
         """
-        setClass(self, string className) -> int
+        setClass(ASTNode self, string className) -> int
 
         Sets the MathML attribute @c class of this ASTNode.
 
@@ -71038,7 +71044,7 @@ class ASTNode(ASTBase):
 
     def setStyle(self, *args):
         """
-        setStyle(self, string style) -> int
+        setStyle(ASTNode self, string style) -> int
 
         Sets the MathML attribute @c style of this ASTNode.
 
@@ -71059,7 +71065,7 @@ class ASTNode(ASTBase):
 
     def setName(self, *args):
         """
-        setName(self, char name) -> int
+        setName(ASTNode self, char const * name) -> int
 
         Sets the value of this ASTNode to the given name.
 
@@ -71084,10 +71090,10 @@ class ASTNode(ASTBase):
 
     def setValue(self, *args):
         """
-        setValue(self, long value) -> int
-        setValue(self, long numerator, long denominator) -> int
-        setValue(self, double value) -> int
-        setValue(self, double mantissa, long exponent) -> int
+        setValue(ASTNode self, long value) -> int
+        setValue(ASTNode self, long numerator, long denominator) -> int
+        setValue(ASTNode self, double value) -> int
+        setValue(ASTNode self, double mantissa, long exponent) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -71199,7 +71205,7 @@ class ASTNode(ASTBase):
 
     def setType(self, *args):
         """
-        setType(self, int type) -> int
+        setType(ASTNode self, int type) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -71264,7 +71270,7 @@ class ASTNode(ASTBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string units) -> int
+        setUnits(ASTNode self, string units) -> int
 
         Sets the units of this ASTNode to units.
 
@@ -71297,7 +71303,7 @@ class ASTNode(ASTBase):
 
     def swapChildren(self, *args):
         """
-        swapChildren(self, ASTNode that) -> int
+        swapChildren(ASTNode self, ASTNode that) -> int
 
         Swaps the children of this node with the children of another node.
 
@@ -71316,7 +71322,7 @@ class ASTNode(ASTBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(ASTNode self, string oldid, string newid)
 
         Renames all the SIdRef attributes on this node and its child nodes.
 
@@ -71328,7 +71334,7 @@ class ASTNode(ASTBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(ASTNode self, string oldid, string newid)
 
         Renames all the UnitSIdRef attributes on this node and its child nodes.
 
@@ -71343,7 +71349,7 @@ class ASTNode(ASTBase):
 
     def replaceIDWithFunction(self, *args):
         """
-        replaceIDWithFunction(self, string id, ASTNode function)
+        replaceIDWithFunction(ASTNode self, string id, ASTNode function)
 
         @internal
 
@@ -71354,7 +71360,7 @@ class ASTNode(ASTBase):
 
     def setIsChildFlag(self, *args):
         """
-        setIsChildFlag(self, bool flag)
+        setIsChildFlag(ASTNode self, bool flag)
 
         @internal
 
@@ -71365,7 +71371,7 @@ class ASTNode(ASTBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(ASTNode self) -> int
 
         Unsets the units of this ASTNode.
 
@@ -71382,7 +71388,7 @@ class ASTNode(ASTBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(ASTNode self) -> int
 
         Unsets the MathML @c id attribute of this ASTNode.
 
@@ -71398,7 +71404,7 @@ class ASTNode(ASTBase):
 
     def unsetClass(self):
         """
-        unsetClass(self) -> int
+        unsetClass(ASTNode self) -> int
 
         Unsets the MathML @c class attribute of this ASTNode.
 
@@ -71414,7 +71420,7 @@ class ASTNode(ASTBase):
 
     def unsetStyle(self):
         """
-        unsetStyle(self) -> int
+        unsetStyle(ASTNode self) -> int
 
         Unsets the MathML @c style attribute of this ASTNode.
 
@@ -71430,8 +71436,8 @@ class ASTNode(ASTBase):
 
     def setDefinitionURL(self, *args):
         """
-        setDefinitionURL(self, XMLAttributes url) -> int
-        setDefinitionURL(self, string url) -> int
+        setDefinitionURL(ASTNode self, XMLAttributes url) -> int
+        setDefinitionURL(ASTNode self, string url) -> int
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -71482,7 +71488,7 @@ class ASTNode(ASTBase):
 
     def getDefinitionURL(self):
         """
-        getDefinitionURL(self) -> XMLAttributes
+        getDefinitionURL(ASTNode self) -> XMLAttributes
 
         Returns the MathML @c definitionURL attribute value.
 
@@ -71498,7 +71504,7 @@ class ASTNode(ASTBase):
 
     def replaceArgument(self, *args):
         """
-        replaceArgument(self, string bvar, ASTNode arg)
+        replaceArgument(ASTNode self, string bvar, ASTNode arg)
 
         Replaces occurrences of a given name with a given ASTNode.
 
@@ -71517,7 +71523,7 @@ class ASTNode(ASTBase):
 
     def getParentSBMLObject(self):
         """
-        getParentSBMLObject(self) -> SBase
+        getParentSBMLObject(ASTNode self) -> SBase
 
         Returns the parent SBML object.
 
@@ -71531,7 +71537,7 @@ class ASTNode(ASTBase):
 
     def unsetParentSBMLObject(self):
         """
-        unsetParentSBMLObject(self) -> int
+        unsetParentSBMLObject(ASTNode self) -> int
 
         Unsets the parent SBML object.
 
@@ -71550,7 +71556,7 @@ class ASTNode(ASTBase):
 
     def isSetParentSBMLObject(self):
         """
-        isSetParentSBMLObject(self) -> bool
+        isSetParentSBMLObject(ASTNode self) -> bool
 
         Returns @c True if this node has a value for the parent SBML
         object.
@@ -71565,7 +71571,7 @@ class ASTNode(ASTBase):
 
     def reduceToBinary(self):
         """
-        reduceToBinary(self)
+        reduceToBinary(ASTNode self)
 
         Reduces this ASTNode to a binary tree.
 
@@ -71578,7 +71584,7 @@ class ASTNode(ASTBase):
 
     def unsetUserData(self):
         """
-        unsetUserData(self) -> int
+        unsetUserData(ASTNode self) -> int
 
         Unsets the user data of this node.
 
@@ -71604,7 +71610,7 @@ class ASTNode(ASTBase):
 
     def isSetUserData(self):
         """
-        isSetUserData(self) -> bool
+        isSetUserData(ASTNode self) -> bool
 
         Returns @c True if this node has a user data object.
 
@@ -71622,7 +71628,7 @@ class ASTNode(ASTBase):
 
     def isWellFormedASTNode(self):
         """
-        isWellFormedASTNode(self) -> bool
+        isWellFormedASTNode(ASTNode self) -> bool
 
         Returns @c True or @c False depending on whether this
         ASTNode is well-formed.
@@ -71640,7 +71646,7 @@ class ASTNode(ASTBase):
 
     def hasCorrectNumberArguments(self):
         """
-        hasCorrectNumberArguments(self) -> bool
+        hasCorrectNumberArguments(ASTNode self) -> bool
 
         Returns @c True if this ASTNode has the correct number of children for
         its type.
@@ -71661,7 +71667,7 @@ class ASTNode(ASTBase):
 
     def getDefinitionURLString(self):
         """
-        getDefinitionURLString(self) -> string
+        getDefinitionURLString(ASTNode self) -> string
 
         Returns the MathML @c definitionURL attribute value as a string.
 
@@ -71676,7 +71682,7 @@ class ASTNode(ASTBase):
 
     def representsBvar(self):
         """
-        representsBvar(self) -> bool
+        representsBvar(ASTNode self) -> bool
 
         @internal
 
@@ -71687,7 +71693,7 @@ class ASTNode(ASTBase):
 
     def write(self, *args):
         """
-        write(self, XMLOutputStream stream)
+        write(ASTNode self, XMLOutputStream stream)
 
         @internal
 
@@ -71698,8 +71704,8 @@ class ASTNode(ASTBase):
 
     def read(self, *args):
         """
-        read(self, XMLInputStream stream, string reqd_prefix = "") -> bool
-        read(self, XMLInputStream stream) -> bool
+        read(ASTNode self, XMLInputStream stream, string reqd_prefix="") -> bool
+        read(ASTNode self, XMLInputStream stream) -> bool
 
         @internal
 
@@ -71710,8 +71716,8 @@ class ASTNode(ASTBase):
 
     def writeNodeOfType(self, *args):
         """
-        writeNodeOfType(self, XMLOutputStream stream, int type, bool inChildNode = False)
-        writeNodeOfType(self, XMLOutputStream stream, int type)
+        writeNodeOfType(ASTNode self, XMLOutputStream stream, int type, bool inChildNode=False)
+        writeNodeOfType(ASTNode self, XMLOutputStream stream, int type)
 
         @internal
 
@@ -71722,7 +71728,7 @@ class ASTNode(ASTBase):
 
     def getNumBvars(self):
         """
-        getNumBvars(self) -> unsigned int
+        getNumBvars(ASTNode self) -> unsigned int
 
         @internal
 
@@ -71733,7 +71739,7 @@ class ASTNode(ASTBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ASTNode self) -> int
 
         @internal
 
@@ -71744,7 +71750,7 @@ class ASTNode(ASTBase):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ASTNode self) -> string
 
         @internal
 
@@ -71755,13 +71761,24 @@ class ASTNode(ASTBase):
 
     def getPlugin(self, *args):
         """
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTNode self, string package) -> ASTBasePlugin
+        getPlugin(ASTNode self, string package) -> ASTBasePlugin
+        getPlugin(ASTNode self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTNode self, unsigned int n) -> ASTBasePlugin
         """
         return _libsbml.ASTNode_getPlugin(self, *args)
 
+    def getNumPiece(self):
+        """
+        getNumPiece(ASTNode self) -> unsigned int
+
+        @internal
+
+        @internal
+
+        """
+        return _libsbml.ASTNode_getNumPiece(self)
+
     def __eq__(self, rhs):
       if ((self is None) and (rhs is None)): return True
       if ((self is None) or  (rhs is None)): return False
@@ -71778,7 +71795,7 @@ class ASTNode(ASTBase):
 
     def getListOfNodes(self):
         """
-        getListOfNodes(self) -> ASTNodeList
+        getListOfNodes(ASTNode self) -> ASTNodeList
 
         Returns a list of nodes.
 
@@ -71808,8 +71825,8 @@ class MathML(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, SBMLNamespaces sbmlns) -> MathML
-        __init__(self) -> MathML
+        __init__(MathML self, SBMLNamespaces sbmlns) -> MathML
+        __init__(MathML self) -> MathML
         """
         this = _libsbml.new_MathML(*args)
         try: self.this.append(this)
@@ -71818,7 +71835,7 @@ class MathML(_object):
     __del__ = lambda self : None;
     def setPrefix(self, *args):
         """
-        setPrefix(self, string prefix)
+        setPrefix(MathML self, string prefix)
 
         @internal
 
@@ -71833,7 +71850,7 @@ MathML_swigregister(MathML)
 
 def readMathMLFromString(*args):
   """
-    readMathMLFromString(char xml) -> ASTNode_t
+    readMathMLFromString(char const * xml) -> ASTNode
 
     Reads the MathML from the given XML string, constructs a corresponding
     abstract syntax tree, and returns a pointer to the root of the tree.
@@ -71853,7 +71870,7 @@ def readMathMLFromString(*args):
 
 def readMathMLFromStringWithNamespaces(*args):
   """
-    readMathMLFromStringWithNamespaces(char xml, XMLNamespaces_t xmlns) -> ASTNode_t
+    readMathMLFromStringWithNamespaces(char const * xml, XMLNamespaces xmlns) -> ASTNode
 
     Reads the MathML from the given XML string, constructs a corresponding
     abstract syntax tree, and returns a pointer to the root of the tree.
@@ -71876,7 +71893,7 @@ def readMathMLFromStringWithNamespaces(*args):
 
 def writeMathMLToString(*args):
   """
-    writeMathMLToString(ASTNode_t node) -> char
+    writeMathMLToString(ASTNode node) -> char *
 
     Writes the given AST node (and its children) to a string as MathML, and
     returns the string.
@@ -71899,7 +71916,7 @@ def writeMathMLToString(*args):
 
 def parseFormula(*args):
   """
-    parseFormula(char formula) -> ASTNode_t
+    parseFormula(char const * formula) -> ASTNode
 
     Parses a text string as a mathematical formula and returns an AST
     representation of it.
@@ -71986,7 +72003,7 @@ def parseFormula(*args):
     @sbmlfunction{parseL3Formula, String} and
     @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
     system (i.e., what is provided by @sbmlfunction{formulaToString, String}
-    and @sbmlfunction{parseFormula, ASTNode}) is provided 
+    and @sbmlfunction{parseFormula, ASTNode}) is provided
     untouched for backwards compatibility.
 
     @note We urge developers to keep in mind that the text-string formula
@@ -72007,7 +72024,7 @@ def parseFormula(*args):
 
 def formulaToL3String(*args):
   """
-    formulaToL3String(ASTNode_t tree) -> char
+    formulaToL3String(ASTNode tree) -> char *
 
     Converts an AST to a text string representation of a formula using an
     extended syntax.
@@ -72256,7 +72273,7 @@ def formulaToL3String(*args):
 
 def formulaToL3StringWithSettings(*args):
   """
-    formulaToL3StringWithSettings(ASTNode_t tree, L3ParserSettings_t settings) -> char
+    formulaToL3StringWithSettings(ASTNode tree, L3ParserSettings settings) -> char *
 
     Converts an AST to a text string representation of a formula, using
     specific formatter settings.
@@ -72320,7 +72337,7 @@ def formulaToL3StringWithSettings(*args):
 
 def formulaToString(*args):
   """
-    formulaToString(ASTNode_t tree) -> char
+    formulaToString(ASTNode tree) -> char *
 
     Converts an AST to a text string representation of a formula using a
     basic syntax derived from SBML Level 1.
@@ -72406,7 +72423,7 @@ def formulaToString(*args):
     @sbmlfunction{parseL3Formula, String} and
     @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
     system (i.e., what is provided by @sbmlfunction{formulaToString, String}
-    and @sbmlfunction{parseFormula, ASTNode}) is provided 
+    and @sbmlfunction{parseFormula, ASTNode}) is provided
     untouched for backwards compatibility.
 
     @note We urge developers to keep in mind that the text-string formula
@@ -72427,7 +72444,7 @@ def formulaToString(*args):
 
 def parseL3Formula(*args):
   """
-    parseL3Formula(char formula) -> ASTNode_t
+    parseL3Formula(char const * formula) -> ASTNode
 
     Parses a text string as a mathematical formula and returns an AST
     representation of it.
@@ -72685,7 +72702,7 @@ def parseL3Formula(*args):
 
 def parseL3FormulaWithModel(*args):
   """
-    parseL3FormulaWithModel(char formula, Model_t model) -> ASTNode_t
+    parseL3FormulaWithModel(char const * formula, Model model) -> ASTNode
 
     Parses a text string as a mathematical formula using a Model to resolve
     symbols, and returns an AST representation of the result.
@@ -72721,7 +72738,7 @@ def parseL3FormulaWithModel(*args):
 
 def parseL3FormulaWithSettings(*args):
   """
-    parseL3FormulaWithSettings(char formula, L3ParserSettings_t settings) -> ASTNode_t
+    parseL3FormulaWithSettings(char const * formula, L3ParserSettings settings) -> ASTNode
 
     Parses a text string as a mathematical formula using specific parser
     settings and returns an AST representation of the result.
@@ -72769,7 +72786,7 @@ def parseL3FormulaWithSettings(*args):
     @link libsbml#AST_NAME AST_NAME at endlink.
     @li Strings that match built-in functions and constants can either be parsed
     as a match regardless of capitalization, or may be required to be
-    all-lower-case to be considered a match.  
+    all-lower-case to be considered a match.
     @li LibSBML plug-ins implementing support for SBML Level 3 packages
     may introduce extensions to the syntax understood by the parser.  The
     precise nature of the extensions will be documented by the individual
@@ -72806,7 +72823,7 @@ def parseL3FormulaWithSettings(*args):
 
 def getDefaultL3ParserSettings():
   """
-    getDefaultL3ParserSettings() -> L3ParserSettings_t
+    getDefaultL3ParserSettings() -> L3ParserSettings
 
     Returns a copy of the default Level 3 ('L3') formula parser settings.
 
@@ -73048,7 +73065,7 @@ def getDefaultL3ParserSettings():
 
 def getLastParseL3Error():
   """
-    getLastParseL3Error() -> char
+    getLastParseL3Error() -> char *
 
     Returns the last error reported by the 'L3' mathematical formula parser.
 
@@ -73170,7 +73187,7 @@ class L3ParserSettings(_object):
     @link libsbml#AST_NAME AST_NAME at endlink.
     @li Strings that match built-in functions and constants can either be parsed
     as a match regardless of capitalization, or may be required to be
-    all-lower-case to be considered a match.  
+    all-lower-case to be considered a match.
     @li LibSBML plug-ins implementing support for SBML Level 3 packages
     may introduce extensions to the syntax understood by the parser.  The
     precise nature of the extensions will be documented by the individual
@@ -73201,15 +73218,13 @@ class L3ParserSettings(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> L3ParserSettings
-        __init__(self, Model model, ParseLogType_t parselog, bool collapseminus, 
-            bool parseunits, bool avocsymbol, bool caseSensitive = False, 
-            SBMLNamespaces sbmlns = None) -> L3ParserSettings
-        __init__(self, Model model, ParseLogType_t parselog, bool collapseminus, 
-            bool parseunits, bool avocsymbol, bool caseSensitive = False) -> L3ParserSettings
-        __init__(self, Model model, ParseLogType_t parselog, bool collapseminus, 
-            bool parseunits, bool avocsymbol) -> L3ParserSettings
-        __init__(self, L3ParserSettings source) -> L3ParserSettings
+        __init__(L3ParserSettings self) -> L3ParserSettings
+        __init__(L3ParserSettings self, Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol, 
+            bool caseSensitive=False, SBMLNamespaces sbmlns=None) -> L3ParserSettings
+        __init__(L3ParserSettings self, Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol, 
+            bool caseSensitive=False) -> L3ParserSettings
+        __init__(L3ParserSettings self, Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol) -> L3ParserSettings
+        __init__(L3ParserSettings self, L3ParserSettings source) -> L3ParserSettings
 
         This method has multiple variants; they differ in the arguments
          they accept.  Each variant is described separately below.
@@ -73338,7 +73353,7 @@ class L3ParserSettings(_object):
     __del__ = lambda self : None;
     def setModel(self, *args):
         """
-        setModel(self, Model model)
+        setModel(L3ParserSettings self, Model model)
 
         Sets the model reference in this L3ParserSettings object.
 
@@ -73374,7 +73389,7 @@ class L3ParserSettings(_object):
 
     def getModel(self):
         """
-        getModel(self) -> Model
+        getModel(L3ParserSettings self) -> Model
 
         Returns the Model object referenced by this L3ParserSettings object.
 
@@ -73403,7 +73418,7 @@ class L3ParserSettings(_object):
 
     def unsetModel(self):
         """
-        unsetModel(self)
+        unsetModel(L3ParserSettings self)
 
         Unsets the Model reference in this L3ParserSettings object.
 
@@ -73418,7 +73433,7 @@ class L3ParserSettings(_object):
 
     def setParseLog(self, *args):
         """
-        setParseLog(self, ParseLogType_t type)
+        setParseLog(L3ParserSettings self, ParseLogType_t type)
 
         Sets the behavior for handling @c log in mathematical formulas.
 
@@ -73443,7 +73458,7 @@ class L3ParserSettings(_object):
 
     def getParseLog(self):
         """
-        getParseLog(self) -> ParseLogType_t
+        getParseLog(L3ParserSettings self) -> ParseLogType_t
 
         Indicates the current behavior set for handling the function @c log with
         one argument.
@@ -73469,7 +73484,7 @@ class L3ParserSettings(_object):
 
     def setParseCollapseMinus(self, *args):
         """
-        setParseCollapseMinus(self, bool collapseminus)
+        setParseCollapseMinus(L3ParserSettings self, bool collapseminus)
 
         Sets the behavior for handling unary minuses appearing in mathematical
         formulas.
@@ -73510,7 +73525,7 @@ class L3ParserSettings(_object):
 
     def getParseCollapseMinus(self):
         """
-        getParseCollapseMinus(self) -> bool
+        getParseCollapseMinus(L3ParserSettings self) -> bool
 
         Indicates the current behavior set for handling multiple unary minuses
         in formulas.
@@ -73544,7 +73559,7 @@ class L3ParserSettings(_object):
 
     def setParseUnits(self, *args):
         """
-        setParseUnits(self, bool units)
+        setParseUnits(L3ParserSettings self, bool units)
 
         Sets the parser's behavior in handling units associated with numbers
         in a mathematical formula.
@@ -73582,7 +73597,7 @@ class L3ParserSettings(_object):
 
     def getParseUnits(self):
         """
-        getParseUnits(self) -> bool
+        getParseUnits(L3ParserSettings self) -> bool
 
         Indicates the current behavior set for handling units in text-string
         mathematical formulas.
@@ -73623,7 +73638,7 @@ class L3ParserSettings(_object):
 
     def setParseAvogadroCsymbol(self, *args):
         """
-        setParseAvogadroCsymbol(self, bool l2only)
+        setParseAvogadroCsymbol(L3ParserSettings self, bool l2only)
 
         Sets the parser's behavior in handling the symbol @c avogadro in
         mathematical formulas.
@@ -73668,7 +73683,7 @@ class L3ParserSettings(_object):
 
     def getParseAvogadroCsymbol(self):
         """
-        getParseAvogadroCsymbol(self) -> bool
+        getParseAvogadroCsymbol(L3ParserSettings self) -> bool
 
         Indicates the current behavior set for handling @c avogadro for SBML
         Level 3.
@@ -73708,7 +73723,7 @@ class L3ParserSettings(_object):
 
     def setComparisonCaseSensitivity(self, *args):
         """
-        setComparisonCaseSensitivity(self, bool strcmp)
+        setComparisonCaseSensitivity(L3ParserSettings self, bool strcmp)
 
         Sets the parser's behavior with respect to case sensitivity for
         recognizing predefined symbols.
@@ -73733,7 +73748,7 @@ class L3ParserSettings(_object):
 
     def getComparisonCaseSensitivity(self):
         """
-        getComparisonCaseSensitivity(self) -> bool
+        getComparisonCaseSensitivity(L3ParserSettings self) -> bool
 
         Returns @c True if the parser is configured to match built-in symbols
         in a case-insensitive way.
@@ -73760,7 +73775,7 @@ class L3ParserSettings(_object):
 
     def setPlugins(self, *args):
         """
-        setPlugins(self, SBMLNamespaces sbmlns)
+        setPlugins(L3ParserSettings self, SBMLNamespaces sbmlns)
 
         Set up the plugins for this L3ParserSettings, based on the
         SBMLNamespaces object.
@@ -73784,7 +73799,7 @@ class L3ParserSettings(_object):
 
     def visitPackageInfixSyntax(self, *args):
         """
-        visitPackageInfixSyntax(self, ASTNode_t parent, ASTNode_t node, StringBuffer_t sb)
+        visitPackageInfixSyntax(L3ParserSettings self, ASTNode parent, ASTNode node, StringBuffer_t * sb)
 
         @internal
 
@@ -73816,7 +73831,7 @@ class ASTBasePlugin(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> ASTBasePlugin
+        clone(ASTBasePlugin self) -> ASTBasePlugin
 
         @internal
 
@@ -73827,7 +73842,7 @@ class ASTBasePlugin(_object):
 
     def getElementNamespace(self):
         """
-        getElementNamespace(self) -> string
+        getElementNamespace(ASTBasePlugin self) -> string
 
         @internal
 
@@ -73838,7 +73853,7 @@ class ASTBasePlugin(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(ASTBasePlugin self) -> string
 
         @internal
 
@@ -73849,7 +73864,7 @@ class ASTBasePlugin(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ASTBasePlugin self) -> string
 
         @internal
 
@@ -73860,7 +73875,7 @@ class ASTBasePlugin(_object):
 
     def setSBMLExtension(self, *args):
         """
-        setSBMLExtension(self, SBMLExtension ext) -> int
+        setSBMLExtension(ASTBasePlugin self, SBMLExtension ext) -> int
 
         @internal
 
@@ -73871,7 +73886,7 @@ class ASTBasePlugin(_object):
 
     def setPrefix(self, *args):
         """
-        setPrefix(self, string prefix) -> int
+        setPrefix(ASTBasePlugin self, string prefix) -> int
 
         @internal
 
@@ -73882,7 +73897,7 @@ class ASTBasePlugin(_object):
 
     def connectToParent(self, *args):
         """
-        connectToParent(self, ASTBase astbase)
+        connectToParent(ASTBasePlugin self, ASTBase astbase)
 
         @internal
 
@@ -73893,7 +73908,7 @@ class ASTBasePlugin(_object):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(ASTBasePlugin self, string pkgURI, string pkgPrefix, bool flag)
 
         @internal
 
@@ -73904,7 +73919,7 @@ class ASTBasePlugin(_object):
 
     def stripPackage(self, *args):
         """
-        stripPackage(self, string pkgPrefix, bool flag) -> bool
+        stripPackage(ASTBasePlugin self, string pkgPrefix, bool flag) -> bool
 
         @internal
 
@@ -73915,7 +73930,7 @@ class ASTBasePlugin(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(ASTBasePlugin self) -> string
 
         @internal
 
@@ -73926,8 +73941,8 @@ class ASTBasePlugin(_object):
 
     def getParentASTObject(self, *args):
         """
-        getParentASTObject(self) -> ASTBase
-        getParentASTObject(self) -> ASTBase
+        getParentASTObject(ASTBasePlugin self) -> ASTBase
+        getParentASTObject(ASTBasePlugin self) -> ASTBase
 
         @internal
 
@@ -73938,7 +73953,7 @@ class ASTBasePlugin(_object):
 
     def setElementNamespace(self, *args):
         """
-        setElementNamespace(self, string uri) -> int
+        setElementNamespace(ASTBasePlugin self, string uri) -> int
 
         @internal
 
@@ -73949,7 +73964,7 @@ class ASTBasePlugin(_object):
 
     def getLevel(self):
         """
-        getLevel(self) -> unsigned int
+        getLevel(ASTBasePlugin self) -> unsigned int
 
         @internal
 
@@ -73960,7 +73975,7 @@ class ASTBasePlugin(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> unsigned int
+        getVersion(ASTBasePlugin self) -> unsigned int
 
         @internal
 
@@ -73971,7 +73986,7 @@ class ASTBasePlugin(_object):
 
     def getPackageVersion(self):
         """
-        getPackageVersion(self) -> unsigned int
+        getPackageVersion(ASTBasePlugin self) -> unsigned int
 
         @internal
 
@@ -73982,7 +73997,7 @@ class ASTBasePlugin(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(ASTBasePlugin self) -> SBMLNamespaces
 
         @internal
 
@@ -73993,7 +74008,7 @@ class ASTBasePlugin(_object):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(ASTBasePlugin self) -> bool
 
         @internal
 
@@ -74004,7 +74019,7 @@ class ASTBasePlugin(_object):
 
     def getMath(self):
         """
-        getMath(self) -> ASTBase
+        getMath(ASTBasePlugin self) -> ASTBase
 
         @internal
 
@@ -74015,7 +74030,7 @@ class ASTBasePlugin(_object):
 
     def createMath(self, *args):
         """
-        createMath(self, int type)
+        createMath(ASTBasePlugin self, int type)
 
         @internal
 
@@ -74026,7 +74041,7 @@ class ASTBasePlugin(_object):
 
     def addChild(self, *args):
         """
-        addChild(self, ASTBase child) -> int
+        addChild(ASTBasePlugin self, ASTBase child) -> int
 
         @internal
 
@@ -74037,7 +74052,7 @@ class ASTBasePlugin(_object):
 
     def getChild(self, *args):
         """
-        getChild(self, unsigned int n) -> ASTBase
+        getChild(ASTBasePlugin self, unsigned int n) -> ASTBase
 
         @internal
 
@@ -74048,7 +74063,7 @@ class ASTBasePlugin(_object):
 
     def getNumChildren(self):
         """
-        getNumChildren(self) -> unsigned int
+        getNumChildren(ASTBasePlugin self) -> unsigned int
 
         @internal
 
@@ -74059,7 +74074,7 @@ class ASTBasePlugin(_object):
 
     def insertChild(self, *args):
         """
-        insertChild(self, unsigned int n, ASTBase newChild) -> int
+        insertChild(ASTBasePlugin self, unsigned int n, ASTBase newChild) -> int
 
         @internal
 
@@ -74070,7 +74085,7 @@ class ASTBasePlugin(_object):
 
     def prependChild(self, *args):
         """
-        prependChild(self, ASTBase newChild) -> int
+        prependChild(ASTBasePlugin self, ASTBase newChild) -> int
 
         @internal
 
@@ -74081,7 +74096,7 @@ class ASTBasePlugin(_object):
 
     def removeChild(self, *args):
         """
-        removeChild(self, unsigned int n) -> int
+        removeChild(ASTBasePlugin self, unsigned int n) -> int
 
         @internal
 
@@ -74092,7 +74107,7 @@ class ASTBasePlugin(_object):
 
     def replaceChild(self, *args):
         """
-        replaceChild(self, unsigned int n, ASTBase newChild, bool delreplaced) -> int
+        replaceChild(ASTBasePlugin self, unsigned int n, ASTBase newChild, bool delreplaced) -> int
 
         @internal
 
@@ -74103,7 +74118,7 @@ class ASTBasePlugin(_object):
 
     def swapChildren(self, *args):
         """
-        swapChildren(self, ASTFunction that) -> int
+        swapChildren(ASTBasePlugin self, ASTFunction * that) -> int
 
         @internal
 
@@ -74114,7 +74129,7 @@ class ASTBasePlugin(_object):
 
     def read(self, *args):
         """
-        read(self, XMLInputStream stream, string reqd_prefix, XMLToken currentElement) -> bool
+        read(ASTBasePlugin self, XMLInputStream stream, string reqd_prefix, XMLToken currentElement) -> bool
 
         @internal
 
@@ -74125,8 +74140,7 @@ class ASTBasePlugin(_object):
 
     def addExpectedAttributes(self, *args):
         """
-        addExpectedAttributes(self, ExpectedAttributes attributes, XMLInputStream stream, 
-            int type)
+        addExpectedAttributes(ASTBasePlugin self, ExpectedAttributes & attributes, XMLInputStream stream, int type)
 
         @internal
 
@@ -74137,9 +74151,8 @@ class ASTBasePlugin(_object):
 
     def readAttributes(self, *args):
         """
-        readAttributes(self, XMLAttributes attributes, ExpectedAttributes expectedAttributes, 
-            XMLInputStream stream, XMLToken element, 
-            int type) -> bool
+        readAttributes(ASTBasePlugin self, XMLAttributes attributes, ExpectedAttributes const & expectedAttributes, XMLInputStream stream, 
+            XMLToken element, int type) -> bool
 
         @internal
 
@@ -74150,7 +74163,7 @@ class ASTBasePlugin(_object):
 
     def writeAttributes(self, *args):
         """
-        writeAttributes(self, XMLOutputStream stream, int type)
+        writeAttributes(ASTBasePlugin self, XMLOutputStream stream, int type)
 
         @internal
 
@@ -74161,7 +74174,7 @@ class ASTBasePlugin(_object):
 
     def writeXMLNS(self, *args):
         """
-        writeXMLNS(self, XMLOutputStream stream)
+        writeXMLNS(ASTBasePlugin self, XMLOutputStream stream)
 
         @internal
 
@@ -74172,7 +74185,7 @@ class ASTBasePlugin(_object):
 
     def isNumberNode(self, *args):
         """
-        isNumberNode(self, int type) -> bool
+        isNumberNode(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74183,7 +74196,7 @@ class ASTBasePlugin(_object):
 
     def isFunctionNode(self, *args):
         """
-        isFunctionNode(self, int type) -> bool
+        isFunctionNode(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74194,7 +74207,7 @@ class ASTBasePlugin(_object):
 
     def isLogical(self, *args):
         """
-        isLogical(self, int type) -> bool
+        isLogical(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74205,7 +74218,7 @@ class ASTBasePlugin(_object):
 
     def isConstantNumber(self, *args):
         """
-        isConstantNumber(self, int type) -> bool
+        isConstantNumber(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74216,7 +74229,7 @@ class ASTBasePlugin(_object):
 
     def isCSymbolFunction(self, *args):
         """
-        isCSymbolFunction(self, int type) -> bool
+        isCSymbolFunction(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74227,7 +74240,7 @@ class ASTBasePlugin(_object):
 
     def isCSymbolNumber(self, *args):
         """
-        isCSymbolNumber(self, int type) -> bool
+        isCSymbolNumber(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74238,7 +74251,7 @@ class ASTBasePlugin(_object):
 
     def isName(self, *args):
         """
-        isName(self, int type) -> bool
+        isName(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74249,7 +74262,7 @@ class ASTBasePlugin(_object):
 
     def isNumber(self, *args):
         """
-        isNumber(self, int type) -> bool
+        isNumber(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74260,7 +74273,7 @@ class ASTBasePlugin(_object):
 
     def isOperator(self, *args):
         """
-        isOperator(self, int type) -> bool
+        isOperator(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74271,7 +74284,7 @@ class ASTBasePlugin(_object):
 
     def isRelational(self, *args):
         """
-        isRelational(self, int type) -> bool
+        isRelational(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74282,7 +74295,7 @@ class ASTBasePlugin(_object):
 
     def representsQualifier(self, *args):
         """
-        representsQualifier(self, int type) -> bool
+        representsQualifier(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74293,7 +74306,7 @@ class ASTBasePlugin(_object):
 
     def isFunction(self, *args):
         """
-        isFunction(self, int type) -> bool
+        isFunction(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74304,7 +74317,7 @@ class ASTBasePlugin(_object):
 
     def representsUnaryFunction(self, *args):
         """
-        representsUnaryFunction(self, int type) -> bool
+        representsUnaryFunction(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74315,7 +74328,7 @@ class ASTBasePlugin(_object):
 
     def representsBinaryFunction(self, *args):
         """
-        representsBinaryFunction(self, int type) -> bool
+        representsBinaryFunction(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74326,7 +74339,7 @@ class ASTBasePlugin(_object):
 
     def representsNaryFunction(self, *args):
         """
-        representsNaryFunction(self, int type) -> bool
+        representsNaryFunction(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74337,7 +74350,7 @@ class ASTBasePlugin(_object):
 
     def hasCorrectNumberArguments(self, *args):
         """
-        hasCorrectNumberArguments(self, int type) -> bool
+        hasCorrectNumberArguments(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74348,7 +74361,7 @@ class ASTBasePlugin(_object):
 
     def isWellFormedNode(self, *args):
         """
-        isWellFormedNode(self, int type) -> bool
+        isWellFormedNode(ASTBasePlugin self, int type) -> bool
 
         @internal
 
@@ -74359,7 +74372,7 @@ class ASTBasePlugin(_object):
 
     def isTopLevelMathMLFunctionNodeTag(self, *args):
         """
-        isTopLevelMathMLFunctionNodeTag(self, string name) -> bool
+        isTopLevelMathMLFunctionNodeTag(ASTBasePlugin self, string name) -> bool
 
         @internal
 
@@ -74370,7 +74383,7 @@ class ASTBasePlugin(_object):
 
     def isTopLevelMathMLNumberNodeTag(self, *args):
         """
-        isTopLevelMathMLNumberNodeTag(self, string name) -> bool
+        isTopLevelMathMLNumberNodeTag(ASTBasePlugin self, string name) -> bool
 
         @internal
 
@@ -74381,7 +74394,7 @@ class ASTBasePlugin(_object):
 
     def getTypeFromName(self, *args):
         """
-        getTypeFromName(self, string name) -> int
+        getTypeFromName(ASTBasePlugin self, string name) -> int
 
         @internal
 
@@ -74392,7 +74405,7 @@ class ASTBasePlugin(_object):
 
     def getNameFromType(self, *args):
         """
-        getNameFromType(self, int type) -> char
+        getNameFromType(ASTBasePlugin self, int type) -> char const *
 
         @internal
 
@@ -74403,7 +74416,7 @@ class ASTBasePlugin(_object):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(ASTBasePlugin self, string oldid, string newid)
 
         @internal
 
@@ -74414,7 +74427,7 @@ class ASTBasePlugin(_object):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(ASTBasePlugin self, string oldid, string newid)
 
         @internal
 
@@ -74425,7 +74438,7 @@ class ASTBasePlugin(_object):
 
     def replaceIDWithFunction(self, *args):
         """
-        replaceIDWithFunction(self, string id, ASTNode function)
+        replaceIDWithFunction(ASTBasePlugin self, string id, ASTNode function)
 
         @internal
 
diff --git a/src/bindings/python/libsbml.i b/src/bindings/python/libsbml.i
index bdff450..cd6c8b6 100644
--- a/src/bindings/python/libsbml.i
+++ b/src/bindings/python/libsbml.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/python/libsbml.py b/src/bindings/python/libsbml.py
index 8342546..bfe795c 100644
--- a/src/bindings/python/libsbml.py
+++ b/src/bindings/python/libsbml.py
@@ -1,6 +1,6 @@
 from __future__ import generators
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 2.0.4
+# Version 2.0.6
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
@@ -363,75 +363,75 @@ class SwigPyIterator(_object):
     __swig_destroy__ = _libsbml.delete_SwigPyIterator
     __del__ = lambda self : None;
     def value(self):
-        """value(self) -> PyObject"""
+        """value(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator_value(self)
 
-    def incr(self, n = 1):
+    def incr(self, n=1):
         """
-        incr(self, size_t n = 1) -> SwigPyIterator
-        incr(self) -> SwigPyIterator
+        incr(SwigPyIterator self, size_t n=1) -> SwigPyIterator
+        incr(SwigPyIterator self) -> SwigPyIterator
         """
         return _libsbml.SwigPyIterator_incr(self, n)
 
-    def decr(self, n = 1):
+    def decr(self, n=1):
         """
-        decr(self, size_t n = 1) -> SwigPyIterator
-        decr(self) -> SwigPyIterator
+        decr(SwigPyIterator self, size_t n=1) -> SwigPyIterator
+        decr(SwigPyIterator self) -> SwigPyIterator
         """
         return _libsbml.SwigPyIterator_decr(self, n)
 
     def distance(self, *args):
-        """distance(self, SwigPyIterator x) -> ptrdiff_t"""
+        """distance(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t"""
         return _libsbml.SwigPyIterator_distance(self, *args)
 
     def equal(self, *args):
-        """equal(self, SwigPyIterator x) -> bool"""
+        """equal(SwigPyIterator self, SwigPyIterator x) -> bool"""
         return _libsbml.SwigPyIterator_equal(self, *args)
 
     def copy(self):
-        """copy(self) -> SwigPyIterator"""
+        """copy(SwigPyIterator self) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator_copy(self)
 
     def next(self):
-        """next(self) -> PyObject"""
+        """next(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator_next(self)
 
     def __next__(self):
-        """__next__(self) -> PyObject"""
+        """__next__(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator___next__(self)
 
     def previous(self):
-        """previous(self) -> PyObject"""
+        """previous(SwigPyIterator self) -> PyObject *"""
         return _libsbml.SwigPyIterator_previous(self)
 
     def advance(self, *args):
-        """advance(self, ptrdiff_t n) -> SwigPyIterator"""
+        """advance(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator_advance(self, *args)
 
     def __eq__(self, *args):
-        """__eq__(self, SwigPyIterator x) -> bool"""
+        """__eq__(SwigPyIterator self, SwigPyIterator x) -> bool"""
         return _libsbml.SwigPyIterator___eq__(self, *args)
 
     def __ne__(self, *args):
-        """__ne__(self, SwigPyIterator x) -> bool"""
+        """__ne__(SwigPyIterator self, SwigPyIterator x) -> bool"""
         return _libsbml.SwigPyIterator___ne__(self, *args)
 
     def __iadd__(self, *args):
-        """__iadd__(self, ptrdiff_t n) -> SwigPyIterator"""
+        """__iadd__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator___iadd__(self, *args)
 
     def __isub__(self, *args):
-        """__isub__(self, ptrdiff_t n) -> SwigPyIterator"""
+        """__isub__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator___isub__(self, *args)
 
     def __add__(self, *args):
-        """__add__(self, ptrdiff_t n) -> SwigPyIterator"""
+        """__add__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"""
         return _libsbml.SwigPyIterator___add__(self, *args)
 
     def __sub__(self, *args):
         """
-        __sub__(self, ptrdiff_t n) -> SwigPyIterator
-        __sub__(self, SwigPyIterator x) -> ptrdiff_t
+        __sub__(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator
+        __sub__(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t
         """
         return _libsbml.SwigPyIterator___sub__(self, *args)
 
@@ -447,264 +447,276 @@ class string(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, string, name)
     __repr__ = _swig_repr
     def length(self):
-        """length(self) -> size_type"""
+        """length(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string_length(self)
 
     def max_size(self):
-        """max_size(self) -> size_type"""
+        """max_size(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string_max_size(self)
 
     def copy(self, *args):
         """
-        copy(self, char __s, size_type __n, size_type __pos = 0) -> size_type
-        copy(self, char __s, size_type __n) -> size_type
+        copy(string self, char * __s, std::basic_string< char >::size_type __n, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        copy(string self, char * __s, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_copy(self, *args)
 
     def c_str(self):
-        """c_str(self) -> char"""
+        """c_str(string self) -> char const *"""
         return _libsbml.string_c_str(self)
 
     def find(self, *args):
         """
-        find(self, char __s, size_type __pos, size_type __n) -> size_type
-        find(self, string __str, size_type __pos = 0) -> size_type
-        find(self, string __str) -> size_type
-        find(self, char __c, size_type __pos = 0) -> size_type
-        find(self, char __c) -> size_type
+        find(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find(string self, string __str) -> std::basic_string< char >::size_type
+        find(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find(self, *args)
 
     def rfind(self, *args):
         """
-        rfind(self, string __str, size_type __pos = std::basic_string< char >::npos) -> size_type
-        rfind(self, string __str) -> size_type
-        rfind(self, char __s, size_type __pos, size_type __n) -> size_type
-        rfind(self, char __c, size_type __pos = std::basic_string< char >::npos) -> size_type
-        rfind(self, char __c) -> size_type
+        rfind(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        rfind(string self, string __str) -> std::basic_string< char >::size_type
+        rfind(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        rfind(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        rfind(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_rfind(self, *args)
 
     def find_first_of(self, *args):
         """
-        find_first_of(self, string __str, size_type __pos = 0) -> size_type
-        find_first_of(self, string __str) -> size_type
-        find_first_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_first_of(self, char __c, size_type __pos = 0) -> size_type
-        find_first_of(self, char __c) -> size_type
+        find_first_of(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_first_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_first_of(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_first_of(self, *args)
 
     def find_last_of(self, *args):
         """
-        find_last_of(self, string __str, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_of(self, string __str) -> size_type
-        find_last_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_last_of(self, char __c, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_of(self, char __c) -> size_type
+        find_last_of(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_last_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_last_of(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_last_of(self, *args)
 
     def find_first_not_of(self, *args):
         """
-        find_first_not_of(self, string __str, size_type __pos = 0) -> size_type
-        find_first_not_of(self, string __str) -> size_type
-        find_first_not_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_first_not_of(self, char __c, size_type __pos = 0) -> size_type
-        find_first_not_of(self, char __c) -> size_type
+        find_first_not_of(string self, string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type
+        find_first_not_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_first_not_of(self, *args)
 
     def find_last_not_of(self, *args):
         """
-        find_last_not_of(self, string __str, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_not_of(self, string __str) -> size_type
-        find_last_not_of(self, char __s, size_type __pos, size_type __n) -> size_type
-        find_last_not_of(self, char __c, size_type __pos = std::basic_string< char >::npos) -> size_type
-        find_last_not_of(self, char __c) -> size_type
+        find_last_not_of(string self, string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, string __str) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+        find_last_not_of(string self, char __c) -> std::basic_string< char >::size_type
         """
         return _libsbml.string_find_last_not_of(self, *args)
 
     def substr(self, *args):
         """
-        substr(self, size_type __pos = 0, size_type __n = std::basic_string< char >::npos) -> string
-        substr(self, size_type __pos = 0) -> string
-        substr(self) -> string
+        substr(string self, std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string
+        substr(string self, std::basic_string< char >::size_type __pos=0) -> string
+        substr(string self) -> string
         """
         return _libsbml.string_substr(self, *args)
 
     def empty(self):
-        """empty(self) -> bool"""
+        """empty(string self) -> bool"""
         return _libsbml.string_empty(self)
 
     def size(self):
-        """size(self) -> size_type"""
+        """size(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string_size(self)
 
     def swap(self, *args):
-        """swap(self, string v)"""
+        """swap(string self, string v)"""
         return _libsbml.string_swap(self, *args)
 
     def erase(self, *args):
         """
-        erase(self, size_type __pos = 0, size_type __n = std::basic_string< char >::npos) -> string
-        erase(self, size_type __pos = 0) -> string
-        erase(self) -> string
-        erase(self, iterator pos) -> iterator
-        erase(self, iterator first, iterator last) -> iterator
+        erase(string self, std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string
+        erase(string self, std::basic_string< char >::size_type __pos=0) -> string
+        erase(string self) -> string
+        erase(string self, std::basic_string< char >::iterator pos) -> std::basic_string< char >::iterator
+        erase(string self, std::basic_string< char >::iterator first, std::basic_string< char >::iterator last) -> std::basic_string< char >::iterator
         """
         return _libsbml.string_erase(self, *args)
 
     def __init__(self, *args): 
         """
-        __init__(self, char __s, size_type __n) -> string
-        __init__(self) -> string
-        __init__(self, string arg0) -> string
-        __init__(self, size_type size, value_type value) -> string
+        __init__(std::basic_string<(char)> self, char const * __s, std::basic_string< char >::size_type __n) -> string
+        __init__(std::basic_string<(char)> self) -> string
+        __init__(std::basic_string<(char)> self, string arg2) -> string
+        __init__(std::basic_string<(char)> self, std::basic_string< char >::size_type size, std::basic_string< char >::value_type value) -> string
         """
         this = _libsbml.new_string(*args)
         try: self.this.append(this)
         except: self.this = this
     def assign(self, *args):
         """
-        assign(self, string __str) -> string
-        assign(self, string __str, size_type __pos, size_type __n) -> string
-        assign(self, char __s, size_type __n) -> string
-        assign(self, size_type n, value_type x)
+        assign(string self, string __str) -> string
+        assign(string self, string __str, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> string
+        assign(string self, char const * __s, std::basic_string< char >::size_type __n) -> string
+        assign(string self, std::basic_string< char >::size_type n, std::basic_string< char >::value_type x)
         """
         return _libsbml.string_assign(self, *args)
 
     def resize(self, *args):
         """
-        resize(self, size_type new_size)
-        resize(self, size_type new_size, value_type x)
+        resize(string self, std::basic_string< char >::size_type new_size)
+        resize(string self, std::basic_string< char >::size_type new_size, std::basic_string< char >::value_type x)
         """
         return _libsbml.string_resize(self, *args)
 
     def iterator(self):
-        """iterator(self) -> SwigPyIterator"""
+        """iterator(string self) -> SwigPyIterator"""
         return _libsbml.string_iterator(self)
 
     def __iter__(self): return self.iterator()
     def __nonzero__(self):
-        """__nonzero__(self) -> bool"""
+        """__nonzero__(string self) -> bool"""
         return _libsbml.string___nonzero__(self)
 
     def __bool__(self):
-        """__bool__(self) -> bool"""
+        """__bool__(string self) -> bool"""
         return _libsbml.string___bool__(self)
 
     def __len__(self):
-        """__len__(self) -> size_type"""
+        """__len__(string self) -> std::basic_string< char >::size_type"""
         return _libsbml.string___len__(self)
 
     def __getslice__(self, *args):
-        """__getslice__(self, difference_type i, difference_type j) -> string"""
+        """__getslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j) -> string"""
         return _libsbml.string___getslice__(self, *args)
 
     def __setslice__(self, *args):
         """
-        __setslice__(self, difference_type i, difference_type j, string v = std::basic_string< char,std::char_traits< char >,std::allocator< char > >())
-        __setslice__(self, difference_type i, difference_type j)
+        __setslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j, 
+            string v=std::basic_string< char,std::char_traits< char >,std::allocator< char > >())
+        __setslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j)
         """
         return _libsbml.string___setslice__(self, *args)
 
     def __delslice__(self, *args):
-        """__delslice__(self, difference_type i, difference_type j)"""
+        """__delslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j)"""
         return _libsbml.string___delslice__(self, *args)
 
     def __delitem__(self, *args):
         """
-        __delitem__(self, difference_type i)
-        __delitem__(self, PySliceObject slice)
+        __delitem__(string self, std::basic_string< char >::difference_type i)
+        __delitem__(string self, PySliceObject * slice)
         """
         return _libsbml.string___delitem__(self, *args)
 
     def __getitem__(self, *args):
         """
-        __getitem__(self, PySliceObject slice) -> string
-        __getitem__(self, difference_type i) -> value_type
+        __getitem__(string self, PySliceObject * slice) -> string
+        __getitem__(string self, std::basic_string< char >::difference_type i) -> std::basic_string< char >::value_type
         """
         return _libsbml.string___getitem__(self, *args)
 
     def __setitem__(self, *args):
         """
-        __setitem__(self, PySliceObject slice, string v)
-        __setitem__(self, PySliceObject slice)
-        __setitem__(self, difference_type i, value_type x)
+        __setitem__(string self, PySliceObject * slice, string v)
+        __setitem__(string self, PySliceObject * slice)
+        __setitem__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::value_type x)
         """
         return _libsbml.string___setitem__(self, *args)
 
     def insert(self, *args):
         """
-        insert(self, size_type __pos1, string __str) -> string
-        insert(self, size_type __pos1, string __str, size_type __pos2, size_type __n) -> string
-        insert(self, size_type __pos, char __s, size_type __n) -> string
-        insert(self, size_type __pos, size_type __n, char __c) -> string
-        insert(self, iterator pos, value_type x) -> iterator
-        insert(self, iterator pos, size_type n, value_type x)
-        insert(self, iterator __p, size_type __n, char __c)
+        insert(string self, std::basic_string< char >::size_type __pos1, string __str) -> string
+        insert(string self, std::basic_string< char >::size_type __pos1, string __str, std::basic_string< char >::size_type __pos2, 
+            std::basic_string< char >::size_type __n) -> string
+        insert(string self, std::basic_string< char >::size_type __pos, char const * __s, std::basic_string< char >::size_type __n) -> string
+        insert(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, 
+            char __c) -> string
+        insert(string self, std::basic_string< char >::iterator pos, std::basic_string< char >::value_type x) -> std::basic_string< char >::iterator
+        insert(string self, std::basic_string< char >::iterator pos, std::basic_string< char >::size_type n, 
+            std::basic_string< char >::value_type x)
+        insert(string self, std::basic_string< char >::iterator __p, std::basic_string< char >::size_type __n, 
+            char __c)
         """
         return _libsbml.string_insert(self, *args)
 
     def replace(self, *args):
         """
-        replace(self, size_type __pos, size_type __n, string __str) -> string
-        replace(self, size_type __pos1, size_type __n1, string __str, size_type __pos2, 
-            size_type __n2) -> string
-        replace(self, size_type __pos, size_type __n1, char __s, size_type __n2) -> string
-        replace(self, size_type __pos, size_type __n1, size_type __n2, char __c) -> string
-        replace(self, iterator __i1, iterator __i2, string __str) -> string
-        replace(self, iterator __i1, iterator __i2, char __s, size_type __n) -> string
-        replace(self, iterator __i1, iterator __i2, size_type __n, char __c) -> string
-        replace(self, iterator __i1, iterator __i2, char __k1, char __k2) -> string
-        replace(self, iterator __i1, iterator __i2, const_iterator __k1, 
-            const_iterator __k2) -> string
+        replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, 
+            string __str) -> string
+        replace(string self, std::basic_string< char >::size_type __pos1, std::basic_string< char >::size_type __n1, 
+            string __str, std::basic_string< char >::size_type __pos2, std::basic_string< char >::size_type __n2) -> string
+        replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, 
+            char const * __s, std::basic_string< char >::size_type __n2) -> string
+        replace(string self, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, 
+            std::basic_string< char >::size_type __n2, char __c) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            string __str) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            char const * __s, std::basic_string< char >::size_type __n) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            std::basic_string< char >::size_type __n, char __c) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            char const * __k1, char const * __k2) -> string
+        replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, 
+            std::basic_string< char >::const_iterator __k1, std::basic_string< char >::const_iterator __k2) -> string
         """
         return _libsbml.string_replace(self, *args)
 
     def __iadd__(self, *args):
-        """__iadd__(self, string v) -> string"""
+        """__iadd__(string self, string v) -> string"""
         return _libsbml.string___iadd__(self, *args)
 
     def __add__(self, *args):
-        """__add__(self, string v) -> string"""
+        """__add__(string self, string v) -> string"""
         return _libsbml.string___add__(self, *args)
 
     def __radd__(self, *args):
-        """__radd__(self, string v) -> string"""
+        """__radd__(string self, string v) -> string"""
         return _libsbml.string___radd__(self, *args)
 
     def __str__(self):
-        """__str__(self) -> string"""
+        """__str__(string self) -> string"""
         return _libsbml.string___str__(self)
 
     def __rlshift__(self, *args):
-        """__rlshift__(self, ostream out) -> ostream"""
+        """__rlshift__(string self, ostream out) -> ostream"""
         return _libsbml.string___rlshift__(self, *args)
 
     def __eq__(self, *args):
-        """__eq__(self, string v) -> bool"""
+        """__eq__(string self, string v) -> bool"""
         return _libsbml.string___eq__(self, *args)
 
     def __ne__(self, *args):
-        """__ne__(self, string v) -> bool"""
+        """__ne__(string self, string v) -> bool"""
         return _libsbml.string___ne__(self, *args)
 
     def __gt__(self, *args):
-        """__gt__(self, string v) -> bool"""
+        """__gt__(string self, string v) -> bool"""
         return _libsbml.string___gt__(self, *args)
 
     def __lt__(self, *args):
-        """__lt__(self, string v) -> bool"""
+        """__lt__(string self, string v) -> bool"""
         return _libsbml.string___lt__(self, *args)
 
     def __ge__(self, *args):
-        """__ge__(self, string v) -> bool"""
+        """__ge__(string self, string v) -> bool"""
         return _libsbml.string___ge__(self, *args)
 
     def __le__(self, *args):
-        """__le__(self, string v) -> bool"""
+        """__le__(string self, string v) -> bool"""
         return _libsbml.string___le__(self, *args)
 
     __swig_destroy__ = _libsbml.delete_string
@@ -722,7 +734,7 @@ class ostream(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, ostream, name)
     __repr__ = _swig_repr
     def __init__(self, *args): 
-        """__init__(self, std::basic_streambuf<(char,std::char_traits<(char)>)> __sb) -> ostream"""
+        """__init__(std::basic_ostream<(char)> self, std::basic_streambuf< char,std::char_traits< char > > * __sb) -> ostream"""
         this = _libsbml.new_ostream(*args)
         try: self.this.append(this)
         except: self.this = this
@@ -742,8 +754,8 @@ class ostringstream(ostream):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, std::ios_base::openmode __mode = std::ios_base::out) -> ostringstream
-        __init__(self) -> ostringstream
+        __init__(std::basic_ostringstream<(char)> self, std::ios_base::openmode __mode=std::ios_base::out) -> ostringstream
+        __init__(std::basic_ostringstream<(char)> self) -> ostringstream
         """
         this = _libsbml.new_ostringstream(*args)
         try: self.this.append(this)
@@ -752,8 +764,8 @@ class ostringstream(ostream):
     __del__ = lambda self : None;
     def str(self, *args):
         """
-        str(self) -> string
-        str(self, string __s)
+        str(ostringstream self) -> string
+        str(ostringstream self, string __s)
         """
         return _libsbml.ostringstream_str(self, *args)
 
@@ -762,11 +774,11 @@ ostringstream_swigregister(ostringstream)
 
 
 def endl(*args):
-  """endl(ostream arg0) -> ostream"""
+  """endl(ostream arg1) -> ostream"""
   return _libsbml.endl(*args)
 
 def flush(*args):
-  """flush(ostream arg0) -> ostream"""
+  """flush(ostream arg1) -> ostream"""
   return _libsbml.flush(*args)
 import sys
 import os.path
@@ -879,34 +891,34 @@ class ListWrapperSBMLNamespaces(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, ListWrapperSBMLNamespaces, name)
     __repr__ = _swig_repr
     def __init__(self): 
-        """__init__(self) -> ListWrapperSBMLNamespaces"""
+        """__init__(ListWrapper<(SBMLNamespaces)> self) -> ListWrapperSBMLNamespaces"""
         this = _libsbml.new_ListWrapperSBMLNamespaces()
         try: self.this.append(this)
         except: self.this = this
     __swig_destroy__ = _libsbml.delete_ListWrapperSBMLNamespaces
     __del__ = lambda self : None;
     def add(self, *args):
-        """add(self, SBMLNamespaces item)"""
+        """add(ListWrapperSBMLNamespaces self, SBMLNamespaces item)"""
         return _libsbml.ListWrapperSBMLNamespaces_add(self, *args)
 
     def get(self, *args):
-        """get(self, unsigned int n) -> SBMLNamespaces"""
+        """get(ListWrapperSBMLNamespaces self, unsigned int n) -> SBMLNamespaces"""
         return _libsbml.ListWrapperSBMLNamespaces_get(self, *args)
 
     def prepend(self, *args):
-        """prepend(self, SBMLNamespaces item)"""
+        """prepend(ListWrapperSBMLNamespaces self, SBMLNamespaces item)"""
         return _libsbml.ListWrapperSBMLNamespaces_prepend(self, *args)
 
     def remove(self, *args):
-        """remove(self, unsigned int n) -> SBMLNamespaces"""
+        """remove(ListWrapperSBMLNamespaces self, unsigned int n) -> SBMLNamespaces"""
         return _libsbml.ListWrapperSBMLNamespaces_remove(self, *args)
 
     def getSize(self):
-        """getSize(self) -> unsigned int"""
+        """getSize(ListWrapperSBMLNamespaces self) -> unsigned int"""
         return _libsbml.ListWrapperSBMLNamespaces_getSize(self)
 
     def __len__(self):
-        """__len__(self) -> int"""
+        """__len__(ListWrapperSBMLNamespaces self) -> int"""
         return _libsbml.ListWrapperSBMLNamespaces___len__(self)
 
     def __getitem__(self, key):
@@ -966,34 +978,34 @@ class ListWrapperCVTerm(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, ListWrapperCVTerm, name)
     __repr__ = _swig_repr
     def __init__(self): 
-        """__init__(self) -> ListWrapperCVTerm"""
+        """__init__(ListWrapper<(CVTerm)> self) -> ListWrapperCVTerm"""
         this = _libsbml.new_ListWrapperCVTerm()
         try: self.this.append(this)
         except: self.this = this
     __swig_destroy__ = _libsbml.delete_ListWrapperCVTerm
     __del__ = lambda self : None;
     def add(self, *args):
-        """add(self, CVTerm item)"""
+        """add(ListWrapperCVTerm self, CVTerm item)"""
         return _libsbml.ListWrapperCVTerm_add(self, *args)
 
     def get(self, *args):
-        """get(self, unsigned int n) -> CVTerm"""
+        """get(ListWrapperCVTerm self, unsigned int n) -> CVTerm"""
         return _libsbml.ListWrapperCVTerm_get(self, *args)
 
     def prepend(self, *args):
-        """prepend(self, CVTerm item)"""
+        """prepend(ListWrapperCVTerm self, CVTerm item)"""
         return _libsbml.ListWrapperCVTerm_prepend(self, *args)
 
     def remove(self, *args):
-        """remove(self, unsigned int n) -> CVTerm"""
+        """remove(ListWrapperCVTerm self, unsigned int n) -> CVTerm"""
         return _libsbml.ListWrapperCVTerm_remove(self, *args)
 
     def getSize(self):
-        """getSize(self) -> unsigned int"""
+        """getSize(ListWrapperCVTerm self) -> unsigned int"""
         return _libsbml.ListWrapperCVTerm_getSize(self)
 
     def __len__(self):
-        """__len__(self) -> int"""
+        """__len__(ListWrapperCVTerm self) -> int"""
         return _libsbml.ListWrapperCVTerm___len__(self)
 
     def __getitem__(self, key):
@@ -1050,34 +1062,34 @@ class ListWrapperDate(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, ListWrapperDate, name)
     __repr__ = _swig_repr
     def __init__(self): 
-        """__init__(self) -> ListWrapperDate"""
+        """__init__(ListWrapper<(Date)> self) -> ListWrapperDate"""
         this = _libsbml.new_ListWrapperDate()
         try: self.this.append(this)
         except: self.this = this
     __swig_destroy__ = _libsbml.delete_ListWrapperDate
     __del__ = lambda self : None;
     def add(self, *args):
-        """add(self, Date item)"""
+        """add(ListWrapperDate self, Date item)"""
         return _libsbml.ListWrapperDate_add(self, *args)
 
     def get(self, *args):
-        """get(self, unsigned int n) -> Date"""
+        """get(ListWrapperDate self, unsigned int n) -> Date"""
         return _libsbml.ListWrapperDate_get(self, *args)
 
     def prepend(self, *args):
-        """prepend(self, Date item)"""
+        """prepend(ListWrapperDate self, Date item)"""
         return _libsbml.ListWrapperDate_prepend(self, *args)
 
     def remove(self, *args):
-        """remove(self, unsigned int n) -> Date"""
+        """remove(ListWrapperDate self, unsigned int n) -> Date"""
         return _libsbml.ListWrapperDate_remove(self, *args)
 
     def getSize(self):
-        """getSize(self) -> unsigned int"""
+        """getSize(ListWrapperDate self) -> unsigned int"""
         return _libsbml.ListWrapperDate_getSize(self)
 
     def __len__(self):
-        """__len__(self) -> int"""
+        """__len__(ListWrapperDate self) -> int"""
         return _libsbml.ListWrapperDate___len__(self)
 
     def __getitem__(self, key):
@@ -1134,34 +1146,34 @@ class ListWrapperModelCreator(_object):
     __getattr__ = lambda self, name: _swig_getattr(self, ListWrapperModelCreator, name)
     __repr__ = _swig_repr
     def __init__(self): 
-        """__init__(self) -> ListWrapperModelCreator"""
+        """__init__(ListWrapper<(ModelCreator)> self) -> ListWrapperModelCreator"""
         this = _libsbml.new_ListWrapperModelCreator()
         try: self.this.append(this)
         except: self.this = this
     __swig_destroy__ = _libsbml.delete_ListWrapperModelCreator
     __del__ = lambda self : None;
     def add(self, *args):
-        """add(self, ModelCreator item)"""
+        """add(ListWrapperModelCreator self, ModelCreator item)"""
         return _libsbml.ListWrapperModelCreator_add(self, *args)
 
     def get(self, *args):
-        """get(self, unsigned int n) -> ModelCreator"""
+        """get(ListWrapperModelCreator self, unsigned int n) -> ModelCreator"""
         return _libsbml.ListWrapperModelCreator_get(self, *args)
 
     def prepend(self, *args):
-        """prepend(self, ModelCreator item)"""
+        """prepend(ListWrapperModelCreator self, ModelCreator item)"""
         return _libsbml.ListWrapperModelCreator_prepend(self, *args)
 
     def remove(self, *args):
-        """remove(self, unsigned int n) -> ModelCreator"""
+        """remove(ListWrapperModelCreator self, unsigned int n) -> ModelCreator"""
         return _libsbml.ListWrapperModelCreator_remove(self, *args)
 
     def getSize(self):
-        """getSize(self) -> unsigned int"""
+        """getSize(ListWrapperModelCreator self) -> unsigned int"""
         return _libsbml.ListWrapperModelCreator_getSize(self)
 
     def __len__(self):
-        """__len__(self) -> int"""
+        """__len__(ListWrapperModelCreator self) -> int"""
         return _libsbml.ListWrapperModelCreator___len__(self)
 
     def __getitem__(self, key):
@@ -1210,6 +1222,90 @@ class ListWrapperModelCreator(_object):
 ListWrapperModelCreator_swigregister = _libsbml.ListWrapperModelCreator_swigregister
 ListWrapperModelCreator_swigregister(ListWrapperModelCreator)
 
+class ListWrapperSBase(_object):
+    """Proxy of C++ ListWrapper<(SBase)> class"""
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, ListWrapperSBase, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, ListWrapperSBase, name)
+    __repr__ = _swig_repr
+    def __init__(self): 
+        """__init__(ListWrapper<(SBase)> self) -> ListWrapperSBase"""
+        this = _libsbml.new_ListWrapperSBase()
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _libsbml.delete_ListWrapperSBase
+    __del__ = lambda self : None;
+    def add(self, *args):
+        """add(ListWrapperSBase self, SBase item)"""
+        return _libsbml.ListWrapperSBase_add(self, *args)
+
+    def get(self, *args):
+        """get(ListWrapperSBase self, unsigned int n) -> SBase"""
+        return _libsbml.ListWrapperSBase_get(self, *args)
+
+    def prepend(self, *args):
+        """prepend(ListWrapperSBase self, SBase item)"""
+        return _libsbml.ListWrapperSBase_prepend(self, *args)
+
+    def remove(self, *args):
+        """remove(ListWrapperSBase self, unsigned int n) -> SBase"""
+        return _libsbml.ListWrapperSBase_remove(self, *args)
+
+    def getSize(self):
+        """getSize(ListWrapperSBase self) -> unsigned int"""
+        return _libsbml.ListWrapperSBase_getSize(self)
+
+    def __len__(self):
+        """__len__(ListWrapperSBase self) -> int"""
+        return _libsbml.ListWrapperSBase___len__(self)
+
+    def __getitem__(self, key):
+
+      try:
+         keyIsSlice = isinstance(key, slice)
+      except:
+         keyIsSlice = 0
+
+      if keyIsSlice:
+        start = key.start
+        if start is None:
+          start = 0
+        stop = key.stop
+        if stop is None:
+          stop = self.getSize()
+        return [self[i] for i in range(
+          self._fixNegativeIndex(start), self._fixNegativeIndex(stop)
+        )]
+
+      key = self._fixNegativeIndex(key)
+      if key < 0 or key >= self.getSize():
+        raise IndexError(key)
+      return self.get(key)
+
+
+    def _fixNegativeIndex(self, index):
+      if index < 0:
+        return index + self.getSize()
+      else:
+        return index
+
+
+    def __iter__(self):
+      for i in range(self.getSize()):
+        yield self[i]
+
+
+    def __repr__(self):
+      return "[" + ", ".join([repr(self[i]) for i in range(len(self))]) + "]"
+
+
+    def __str__(self):
+      return repr(self)
+
+ListWrapperSBase_swigregister = _libsbml.ListWrapperSBase_swigregister
+ListWrapperSBase_swigregister(ListWrapperSBase)
+
 LIBSBML_DOTTED_VERSION = _libsbml.LIBSBML_DOTTED_VERSION
 LIBSBML_VERSION = _libsbml.LIBSBML_VERSION
 LIBSBML_VERSION_STRING = _libsbml.LIBSBML_VERSION_STRING
@@ -1228,7 +1324,7 @@ def getLibSBMLVersion():
 
 def getLibSBMLDottedVersion():
   """
-    getLibSBMLDottedVersion() -> char
+    getLibSBMLDottedVersion() -> char const *
 
     Returns the version number of this copy of libSBML as a string.
 
@@ -1242,7 +1338,7 @@ def getLibSBMLDottedVersion():
 
 def getLibSBMLVersionString():
   """
-    getLibSBMLVersionString() -> char
+    getLibSBMLVersionString() -> char const *
 
     Returns the version number of this copy of libSBML as a string without
     periods.
@@ -1257,7 +1353,7 @@ def getLibSBMLVersionString():
 
 def isLibSBMLCompiledWith(*args):
   """
-    isLibSBMLCompiledWith(char option) -> int
+    isLibSBMLCompiledWith(char const * option) -> int
 
     Returns an indication whether libSBML has been compiled with against a
     specific library.
@@ -1276,7 +1372,7 @@ def isLibSBMLCompiledWith(*args):
 
 def getLibSBMLDependencyVersionOf(*args):
   """
-    getLibSBMLDependencyVersionOf(char option) -> char
+    getLibSBMLDependencyVersionOf(char const * option) -> char const *
 
     Returns the version string for the dependency library used.
 
@@ -1306,6 +1402,7 @@ LIBSBML_DUPLICATE_ANNOTATION_NS = _libsbml.LIBSBML_DUPLICATE_ANNOTATION_NS
 LIBSBML_ANNOTATION_NAME_NOT_FOUND = _libsbml.LIBSBML_ANNOTATION_NAME_NOT_FOUND
 LIBSBML_ANNOTATION_NS_NOT_FOUND = _libsbml.LIBSBML_ANNOTATION_NS_NOT_FOUND
 LIBSBML_MISSING_METAID = _libsbml.LIBSBML_MISSING_METAID
+LIBSBML_DEPRECATED_ATTRIBUTE = _libsbml.LIBSBML_DEPRECATED_ATTRIBUTE
 LIBSBML_PKG_VERSION_MISMATCH = _libsbml.LIBSBML_PKG_VERSION_MISMATCH
 LIBSBML_PKG_UNKNOWN = _libsbml.LIBSBML_PKG_UNKNOWN
 LIBSBML_PKG_UNKNOWN_VERSION = _libsbml.LIBSBML_PKG_UNKNOWN_VERSION
@@ -1320,7 +1417,7 @@ LIBSBML_CONV_PKG_CONSIDERED_UNKNOWN = _libsbml.LIBSBML_CONV_PKG_CONSIDERED_UNKNO
 
 def OperationReturnValue_toString(*args):
   """
-    OperationReturnValue_toString(int returnValue) -> char
+    OperationReturnValue_toString(int returnValue) -> char const *
 
     This method takes an SBML operation return value and returns a string
     representing the code.
@@ -1349,8 +1446,8 @@ class IdList(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> IdList
-        __init__(self, string commaSeparated) -> IdList
+        __init__(IdList self) -> IdList
+        __init__(IdList self, string commaSeparated) -> IdList
 
         Internal implementation method.
 
@@ -1360,7 +1457,7 @@ class IdList(_object):
         except: self.this = this
     def append(self, *args):
         """
-        append(self, string id)
+        append(IdList self, string id)
 
         Internal implementation method.
 
@@ -1369,7 +1466,7 @@ class IdList(_object):
 
     def contains(self, *args):
         """
-        contains(self, string id) -> bool
+        contains(IdList self, string id) -> bool
 
         Internal implementation method.
 
@@ -1378,7 +1475,7 @@ class IdList(_object):
 
     def removeIdsBefore(self, *args):
         """
-        removeIdsBefore(self, string id)
+        removeIdsBefore(IdList self, string id)
 
         Internal implementation method.
 
@@ -1387,7 +1484,7 @@ class IdList(_object):
 
     def size(self):
         """
-        size(self) -> unsigned int
+        size(IdList self) -> unsigned int
 
         Internal implementation method.
 
@@ -1395,11 +1492,11 @@ class IdList(_object):
         return _libsbml.IdList_size(self)
 
     def clear(self):
-        """clear(self)"""
+        """clear(IdList self)"""
         return _libsbml.IdList_clear(self)
 
     def at(self, *args):
-        """at(self, int n) -> string"""
+        """at(IdList self, int n) -> string"""
         return _libsbml.IdList_at(self, *args)
 
     __swig_destroy__ = _libsbml.delete_IdList
@@ -1419,7 +1516,7 @@ class IdentifierTransformer(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> IdentifierTransformer
+        __init__(IdentifierTransformer self) -> IdentifierTransformer
 
         Internal implementation method.
 
@@ -1434,7 +1531,7 @@ class IdentifierTransformer(_object):
     __swig_destroy__ = _libsbml.delete_IdentifierTransformer
     __del__ = lambda self : None;
     def transform(self, *args):
-        """transform(self, SBase element) -> int"""
+        """transform(IdentifierTransformer self, SBase element) -> int"""
         return _libsbml.IdentifierTransformer_transform(self, *args)
 
     def __disown__(self):
@@ -1466,7 +1563,7 @@ class ElementFilter(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> ElementFilter
+        __init__(ElementFilter self) -> ElementFilter
 
         Creates a new ElementFilter object.
 
@@ -1482,7 +1579,7 @@ class ElementFilter(_object):
     __del__ = lambda self : None;
     def filter(self, *args):
         """
-        filter(self, SBase element) -> bool
+        filter(ElementFilter self, SBase element) -> bool
 
         Predicate to test elements.
 
@@ -1565,7 +1662,7 @@ class SBMLReader(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> SBMLReader
+        __init__(SBMLReader self) -> SBMLReader
 
         Creates a new SBMLReader object and returns it.
 
@@ -1727,7 +1824,7 @@ class SBMLReader(_object):
 
     def readSBMLFromString(self, *args):
         """
-        readSBMLFromString(self, string xml) -> SBMLDocument
+        readSBMLFromString(SBMLReader self, string xml) -> SBMLDocument
 
         Reads an SBML document from a text string.
 
@@ -1887,7 +1984,7 @@ def SBMLReader_hasBzip2():
 
 def readSBMLFromFile(*args):
   """
-    readSBMLFromFile(char filename) -> SBMLDocument_t
+    readSBMLFromFile(char const * filename) -> SBMLDocument
 
     Reads an SBML document from the given file.
 
@@ -1950,7 +2047,7 @@ def readSBMLFromFile(*args):
 
 def readSBMLFromString(*args):
   """
-    readSBMLFromString(char xml) -> SBMLDocument_t
+    readSBMLFromString(char const * xml) -> SBMLDocument
 
     Reads an SBML document from a text string.
 
@@ -2032,7 +2129,7 @@ class SBMLWriter(_object):
     __repr__ = _swig_repr
     def __init__(self): 
         """
-        __init__(self) -> SBMLWriter
+        __init__(SBMLWriter self) -> SBMLWriter
 
         Creates a new SBMLWriter.
 
@@ -2047,7 +2144,7 @@ class SBMLWriter(_object):
     __del__ = lambda self : None;
     def setProgramName(self, *args):
         """
-        setProgramName(self, string name) -> int
+        setProgramName(SBMLWriter self, string name) -> int
 
         Sets the name of this program, i.e., the program that is about to
         write out the SBMLDocument.
@@ -2078,7 +2175,7 @@ class SBMLWriter(_object):
 
     def setProgramVersion(self, *args):
         """
-        setProgramVersion(self, string version) -> int
+        setProgramVersion(SBMLWriter self, string version) -> int
 
         Sets the version of this program, i.e., the program that is about to
         write out the SBMLDocument.
@@ -2109,8 +2206,8 @@ class SBMLWriter(_object):
 
     def writeSBML(self, *args):
         """
-        writeSBML(self, SBMLDocument d, string filename) -> bool
-        writeSBML(self, SBMLDocument d, ostream stream) -> bool
+        writeSBML(SBMLWriter self, SBMLDocument d, string filename) -> bool
+        writeSBML(SBMLWriter self, SBMLDocument d, ostream stream) -> bool
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -2161,7 +2258,7 @@ class SBMLWriter(_object):
 
     def writeToString(self, *args):
         """
-        writeToString(self, SBMLDocument d) -> char
+        writeToString(SBMLWriter self, SBMLDocument d) -> char *
 
         Internal implementation method.
 
@@ -2170,7 +2267,7 @@ class SBMLWriter(_object):
 
     def writeSBMLToFile(self, *args):
         """
-        writeSBMLToFile(self, SBMLDocument d, string filename) -> bool
+        writeSBMLToFile(SBMLWriter self, SBMLDocument d, string filename) -> bool
 
         Writes the given SBML document to filename.
 
@@ -2212,7 +2309,7 @@ class SBMLWriter(_object):
 
     def writeSBMLToString(self, *args):
         """
-        writeSBMLToString(self, SBMLDocument d) -> char
+        writeSBMLToString(SBMLWriter self, SBMLDocument d) -> char *
 
         Writes the given SBML document to an in-memory string and returns a
         pointer to it.
@@ -2374,7 +2471,7 @@ def SBMLWriter_hasBzip2():
 
 def writeSBML(*args):
   """
-    writeSBML(SBMLDocument_t d, char filename) -> int
+    writeSBML(SBMLDocument d, char const * filename) -> int
 
     Writes the given SBML document 'd' to the file named by 'filename'.
     This convenience function is functionally equivalent to:
@@ -2413,7 +2510,7 @@ def writeSBML(*args):
 
 def writeSBMLToString(*args):
   """
-    writeSBMLToString(SBMLDocument_t d) -> char
+    writeSBMLToString(SBMLDocument d) -> char *
 
     Writes the given SBML document 'd' to an in-memory string and returns
     a pointer to it.  The string is owned by the caller and should be
@@ -2435,7 +2532,7 @@ def writeSBMLToString(*args):
 
 def writeSBMLToFile(*args):
   """
-    writeSBMLToFile(SBMLDocument_t d, char filename) -> int
+    writeSBMLToFile(SBMLDocument d, char const * filename) -> int
 
     Writes the given SBML document 'd' to the file 'filename'. This
     convenience function is functionally equivalent to:
@@ -2510,7 +2607,7 @@ SBML_GENERIC_SBASE = _libsbml.SBML_GENERIC_SBASE
 
 def SBMLTypeCode_toString(*args):
   """
-    SBMLTypeCode_toString(int tc, char pkgName) -> char
+    SBMLTypeCode_toString(int tc, char const * pkgName) -> char const *
 
     This method takes an SBML type code and returns a string representing
     the code.
@@ -2628,7 +2725,7 @@ class SBase(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBase
+        clone(SBase self) -> SBase
 
         Creates and returns a deep copy of this SBase object.
 
@@ -2639,8 +2736,8 @@ class SBase(_object):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(SBase self, string id) -> SBase
+        getElementBySId(SBase self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -2655,8 +2752,8 @@ class SBase(_object):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(SBase self, string metaid) -> SBase
+        getElementByMetaId(SBase self, string metaid) -> SBase
 
         Returns the first child element it can find with a specific 'metaid'
         attribute value, or None if no such object is found.
@@ -2689,7 +2786,7 @@ class SBase(_object):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(SBase self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -2717,7 +2814,7 @@ class SBase(_object):
 
     def renameMetaIdRefs(self, *args):
         """
-        renameMetaIdRefs(self, string oldid, string newid)
+        renameMetaIdRefs(SBase self, string oldid, string newid)
 
         Replaces all uses of a given meta identifier attribute value with
         another value.
@@ -2741,7 +2838,7 @@ class SBase(_object):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(SBase self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -2770,7 +2867,7 @@ class SBase(_object):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(SBase self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -2779,7 +2876,7 @@ class SBase(_object):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(SBase self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -2788,7 +2885,7 @@ class SBase(_object):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(SBase self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -2797,7 +2894,7 @@ class SBase(_object):
 
     def getElementFromPluginsBySId(self, *args):
         """
-        getElementFromPluginsBySId(self, string id) -> SBase
+        getElementFromPluginsBySId(SBase self, string id) -> SBase
 
         Internal implementation method.
 
@@ -2806,7 +2903,7 @@ class SBase(_object):
 
     def getElementFromPluginsByMetaId(self, *args):
         """
-        getElementFromPluginsByMetaId(self, string metaid) -> SBase
+        getElementFromPluginsByMetaId(SBase self, string metaid) -> SBase
 
         Internal implementation method.
 
@@ -2815,7 +2912,7 @@ class SBase(_object):
 
     def hasNonstandardIdentifierBeginningWith(self, *args):
         """
-        hasNonstandardIdentifierBeginningWith(self, string prefix) -> bool
+        hasNonstandardIdentifierBeginningWith(SBase self, string prefix) -> bool
 
         Internal implementation method.
 
@@ -2824,7 +2921,7 @@ class SBase(_object):
 
     def prependStringToAllIdentifiers(self, *args):
         """
-        prependStringToAllIdentifiers(self, string prefix) -> int
+        prependStringToAllIdentifiers(SBase self, string prefix) -> int
 
         Internal implementation method.
 
@@ -2833,7 +2930,7 @@ class SBase(_object):
 
     def transformIdentifiers(self, *args):
         """
-        transformIdentifiers(self, IdentifierTransformer idTransformer) -> int
+        transformIdentifiers(SBase self, IdentifierTransformer idTransformer) -> int
 
         Internal implementation method.
 
@@ -2842,7 +2939,7 @@ class SBase(_object):
 
     def getMetaId(self):
         """
-        getMetaId(self) -> string
+        getMetaId(SBase self) -> string
 
         Returns the value of the 'metaid' attribute of this object.
 
@@ -2872,7 +2969,7 @@ class SBase(_object):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(SBase self) -> string
 
         Internal implementation method.
 
@@ -2881,7 +2978,7 @@ class SBase(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SBase self) -> string
 
         Internal implementation method.
 
@@ -2890,8 +2987,8 @@ class SBase(_object):
 
     def getNotes(self, *args):
         """
-        getNotes(self) -> XMLNode
-        getNotes(self) -> XMLNode
+        getNotes(SBase self) -> XMLNode
+        getNotes(SBase self) -> XMLNode
 
         Returns the content of the 'notes' subelement of this object as a tree
         of XMLNode objects.
@@ -2939,8 +3036,8 @@ class SBase(_object):
 
     def getNotesString(self, *args):
         """
-        getNotesString(self) -> string
-        getNotesString(self) -> string
+        getNotesString(SBase self) -> string
+        getNotesString(SBase self) -> string
 
         Returns the content of the 'notes' subelement of this object as a
         string.
@@ -2986,8 +3083,8 @@ class SBase(_object):
 
     def getAnnotation(self, *args):
         """
-        getAnnotation(self) -> XMLNode
-        getAnnotation(self) -> XMLNode
+        getAnnotation(SBase self) -> XMLNode
+        getAnnotation(SBase self) -> XMLNode
 
         Returns the content of the 'annotation' subelement of this object as a
         tree of XMLNode objects.
@@ -3022,8 +3119,8 @@ class SBase(_object):
 
     def getAnnotationString(self, *args):
         """
-        getAnnotationString(self) -> string
-        getAnnotationString(self) -> string
+        getAnnotationString(SBase self) -> string
+        getAnnotationString(SBase self) -> string
 
         Returns the content of the 'annotation' subelement of this object as a
         character string.
@@ -3055,7 +3152,7 @@ class SBase(_object):
 
     def getNamespaces(self):
         """
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(SBase self) -> XMLNamespaces
 
         Returns a list of the XML Namespaces declared on the SBML document
         owning this object.
@@ -3074,8 +3171,8 @@ class SBase(_object):
 
     def getSBMLDocument(self, *args):
         """
-        getSBMLDocument(self) -> SBMLDocument
-        getSBMLDocument(self) -> SBMLDocument
+        getSBMLDocument(SBase self) -> SBMLDocument
+        getSBMLDocument(SBase self) -> SBMLDocument
 
         Returns the SBMLDocument object containing this object instance.
 
@@ -3100,8 +3197,8 @@ class SBase(_object):
 
     def getParentSBMLObject(self, *args):
         """
-        getParentSBMLObject(self) -> SBase
-        getParentSBMLObject(self) -> SBase
+        getParentSBMLObject(SBase self) -> SBase
+        getParentSBMLObject(SBase self) -> SBase
 
         Returns the parent SBML object containing this object.
 
@@ -3118,10 +3215,10 @@ class SBase(_object):
 
     def getAncestorOfType(self, *args):
         """
-        getAncestorOfType(self, int type, string pkgName = "core") -> SBase
-        getAncestorOfType(self, int type) -> SBase
-        getAncestorOfType(self, int type, string pkgName = "core") -> SBase
-        getAncestorOfType(self, int type) -> SBase
+        getAncestorOfType(SBase self, int type, string pkgName="core") -> SBase
+        getAncestorOfType(SBase self, int type) -> SBase
+        getAncestorOfType(SBase self, int type, string pkgName="core") -> SBase
+        getAncestorOfType(SBase self, int type) -> SBase
 
         Returns the first ancestor object that has the given SBML type code
         from the given package.
@@ -3168,7 +3265,7 @@ class SBase(_object):
 
     def getSBOTerm(self):
         """
-        getSBOTerm(self) -> int
+        getSBOTerm(SBase self) -> int
 
         Returns the integer portion of the value of the 'sboTerm' attribute of
         this object.
@@ -3198,7 +3295,7 @@ class SBase(_object):
 
     def getSBOTermID(self):
         """
-        getSBOTermID(self) -> string
+        getSBOTermID(SBase self) -> string
 
         Returns the string representation of the 'sboTerm' attribute of this
         object.
@@ -3228,7 +3325,7 @@ class SBase(_object):
 
     def getSBOTermAsURL(self):
         """
-        getSBOTermAsURL(self) -> string
+        getSBOTermAsURL(SBase self) -> string
 
         Returns the URL representation of the 'sboTerm' attribute of this
         object.
@@ -3250,7 +3347,7 @@ class SBase(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(SBase self) -> unsigned int
 
         Returns the line number where this object first appears in the XML
         representation of the SBML document.
@@ -3280,7 +3377,7 @@ class SBase(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(SBase self) -> unsigned int
 
         Returns the column number where this object first appears in the XML
         representation of the SBML document.
@@ -3310,8 +3407,8 @@ class SBase(_object):
 
     def getModelHistory(self, *args):
         """
-        getModelHistory(self) -> ModelHistory
-        getModelHistory(self) -> ModelHistory
+        getModelHistory(SBase self) -> ModelHistory
+        getModelHistory(SBase self) -> ModelHistory
 
         Returns the ModelHistory object, if any, attached to this object.
 
@@ -3329,7 +3426,7 @@ class SBase(_object):
 
     def isSetMetaId(self):
         """
-        isSetMetaId(self) -> bool
+        isSetMetaId(SBase self) -> bool
 
         Predicate returning True if this object's 'metaid' attribute is set.
 
@@ -3360,7 +3457,7 @@ class SBase(_object):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(SBase self) -> bool
 
         Internal implementation method.
 
@@ -3369,7 +3466,7 @@ class SBase(_object):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(SBase self) -> bool
 
         Internal implementation method.
 
@@ -3378,7 +3475,7 @@ class SBase(_object):
 
     def isSetNotes(self):
         """
-        isSetNotes(self) -> bool
+        isSetNotes(SBase self) -> bool
 
         Predicate returning True if this object's 'notes' subelement exists
         and has content.
@@ -3411,7 +3508,7 @@ class SBase(_object):
 
     def isSetAnnotation(self):
         """
-        isSetAnnotation(self) -> bool
+        isSetAnnotation(SBase self) -> bool
 
         Predicate returning True if this object's 'annotation' subelement
         exists and has content.
@@ -3439,7 +3536,7 @@ class SBase(_object):
 
     def isSetSBOTerm(self):
         """
-        isSetSBOTerm(self) -> bool
+        isSetSBOTerm(SBase self) -> bool
 
         Predicate returning True if this object's 'sboTerm' attribute is set.
 
@@ -3451,7 +3548,7 @@ class SBase(_object):
 
     def setMetaId(self, *args):
         """
-        setMetaId(self, string metaid) -> int
+        setMetaId(SBase self, string metaid) -> int
 
         Sets the value of the meta-identifier attribute of this object.
 
@@ -3493,7 +3590,7 @@ class SBase(_object):
 
     def isSetModelHistory(self):
         """
-        isSetModelHistory(self) -> bool
+        isSetModelHistory(SBase self) -> bool
 
         Predicate returning True if this object has a ModelHistory object
         attached to it.
@@ -3512,7 +3609,7 @@ class SBase(_object):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(SBase self, string sid) -> int
 
         Internal implementation method.
 
@@ -3521,7 +3618,7 @@ class SBase(_object):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(SBase self, string name) -> int
 
         Internal implementation method.
 
@@ -3530,8 +3627,8 @@ class SBase(_object):
 
     def setAnnotation(self, *args):
         """
-        setAnnotation(self, XMLNode annotation) -> int
-        setAnnotation(self, string annotation) -> int
+        setAnnotation(SBase self, XMLNode annotation) -> int
+        setAnnotation(SBase self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -3584,8 +3681,8 @@ class SBase(_object):
 
     def appendAnnotation(self, *args):
         """
-        appendAnnotation(self, XMLNode annotation) -> int
-        appendAnnotation(self, string annotation) -> int
+        appendAnnotation(SBase self, XMLNode annotation) -> int
+        appendAnnotation(SBase self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -3640,9 +3737,9 @@ class SBase(_object):
 
     def removeTopLevelAnnotationElement(self, *args):
         """
-        removeTopLevelAnnotationElement(self, string elementName, string elementURI = "", bool removeEmpty = True) -> int
-        removeTopLevelAnnotationElement(self, string elementName, string elementURI = "") -> int
-        removeTopLevelAnnotationElement(self, string elementName) -> int
+        removeTopLevelAnnotationElement(SBase self, string elementName, string elementURI="", bool removeEmpty=True) -> int
+        removeTopLevelAnnotationElement(SBase self, string elementName, string elementURI="") -> int
+        removeTopLevelAnnotationElement(SBase self, string elementName) -> int
 
         Removes the top-level element within the 'annotation' subelement of
         this SBML object with the given name and optional URI.
@@ -3682,8 +3779,8 @@ class SBase(_object):
 
     def replaceTopLevelAnnotationElement(self, *args):
         """
-        replaceTopLevelAnnotationElement(self, XMLNode annotation) -> int
-        replaceTopLevelAnnotationElement(self, string annotation) -> int
+        replaceTopLevelAnnotationElement(SBase self, XMLNode annotation) -> int
+        replaceTopLevelAnnotationElement(SBase self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -3729,9 +3826,9 @@ class SBase(_object):
 
     def setNotes(self, *args):
         """
-        setNotes(self, XMLNode notes) -> int
-        setNotes(self, string notes, bool addXHTMLMarkup = False) -> int
-        setNotes(self, string notes) -> int
+        setNotes(SBase self, XMLNode notes) -> int
+        setNotes(SBase self, string notes, bool addXHTMLMarkup=False) -> int
+        setNotes(SBase self, string notes) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -3810,8 +3907,8 @@ class SBase(_object):
 
     def appendNotes(self, *args):
         """
-        appendNotes(self, XMLNode notes) -> int
-        appendNotes(self, string notes) -> int
+        appendNotes(SBase self, XMLNode notes) -> int
+        appendNotes(SBase self, string notes) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -3864,7 +3961,7 @@ class SBase(_object):
 
     def setModelHistory(self, *args):
         """
-        setModelHistory(self, ModelHistory history) -> int
+        setModelHistory(SBase self, ModelHistory history) -> int
 
         Sets the ModelHistory of this object.
 
@@ -3893,7 +3990,7 @@ class SBase(_object):
 
     def connectToParent(self, *args):
         """
-        connectToParent(self, SBase parent)
+        connectToParent(SBase self, SBase parent)
 
         Internal implementation method.
 
@@ -3901,13 +3998,13 @@ class SBase(_object):
         return _libsbml.SBase_connectToParent(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(SBase self)"""
         return _libsbml.SBase_connectToChild(self)
 
     def setSBOTerm(self, *args):
         """
-        setSBOTerm(self, int value) -> int
-        setSBOTerm(self, string sboid) -> int
+        setSBOTerm(SBase self, int value) -> int
+        setSBOTerm(SBase self, string sboid) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -3952,7 +4049,7 @@ class SBase(_object):
 
     def setNamespaces(self, *args):
         """
-        setNamespaces(self, XMLNamespaces xmlns) -> int
+        setNamespaces(SBase self, XMLNamespaces xmlns) -> int
 
         Sets the namespaces relevant of this SBML object.
 
@@ -3975,7 +4072,7 @@ class SBase(_object):
 
     def unsetMetaId(self):
         """
-        unsetMetaId(self) -> int
+        unsetMetaId(SBase self) -> int
 
         Unsets the value of the 'metaid' attribute of this SBML object.
 
@@ -4010,7 +4107,7 @@ class SBase(_object):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(SBase self) -> int
 
         Unsets the value of the 'id' attribute of this SBML object.
 
@@ -4031,7 +4128,7 @@ class SBase(_object):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(SBase self) -> int
 
         Unsets the value of the 'name' attribute of this SBML object.
 
@@ -4081,7 +4178,7 @@ class SBase(_object):
 
     def unsetNotes(self):
         """
-        unsetNotes(self) -> int
+        unsetNotes(SBase self) -> int
 
         Unsets the value of the 'notes' subelement of this SBML object.
 
@@ -4115,7 +4212,7 @@ class SBase(_object):
 
     def unsetAnnotation(self):
         """
-        unsetAnnotation(self) -> int
+        unsetAnnotation(SBase self) -> int
 
         Unsets the value of the 'annotation' subelement of this SBML object.
 
@@ -4145,7 +4242,7 @@ class SBase(_object):
 
     def unsetSBOTerm(self):
         """
-        unsetSBOTerm(self) -> int
+        unsetSBOTerm(SBase self) -> int
 
         Unsets the value of the 'sboTerm' attribute of this SBML object.
 
@@ -4161,8 +4258,8 @@ class SBase(_object):
 
     def addCVTerm(self, *args):
         """
-        addCVTerm(self, CVTerm term, bool newBag = False) -> int
-        addCVTerm(self, CVTerm term) -> int
+        addCVTerm(SBase self, CVTerm term, bool newBag=False) -> int
+        addCVTerm(SBase self, CVTerm term) -> int
 
         Adds a copy of the given CVTerm object to this SBML object.
 
@@ -4223,9 +4320,9 @@ class SBase(_object):
       """
       getCVTerms(self) -> CVTermList
 
-      Get the CVTermList of CVTerm objects in this SBase.
+      Get the List of CVTerm objects in this element.
 
-      Returns the CVTermList for this SBase.
+      Returns the CVTermList for this element.
 
 
       """
@@ -4234,7 +4331,7 @@ class SBase(_object):
 
     def getNumCVTerms(self):
         """
-        getNumCVTerms(self) -> unsigned int
+        getNumCVTerms(SBase self) -> unsigned int
 
         Returns the number of CVTerm objects in the annotations of this SBML
         object.
@@ -4246,7 +4343,7 @@ class SBase(_object):
 
     def getCVTerm(self, *args):
         """
-        getCVTerm(self, unsigned int n) -> CVTerm
+        getCVTerm(SBase self, unsigned int n) -> CVTerm
 
         Returns the nth CVTerm in the list of CVTerms of this SBML object.
 
@@ -4259,7 +4356,7 @@ class SBase(_object):
 
     def unsetCVTerms(self):
         """
-        unsetCVTerms(self) -> int
+        unsetCVTerms(SBase self) -> int
 
         Clears the list of CVTerm objects attached to this SBML object.
 
@@ -4275,7 +4372,7 @@ class SBase(_object):
 
     def unsetModelHistory(self):
         """
-        unsetModelHistory(self) -> int
+        unsetModelHistory(SBase self) -> int
 
         Unsets the ModelHistory object attached to this object.
 
@@ -4299,7 +4396,7 @@ class SBase(_object):
 
     def getResourceBiologicalQualifier(self, *args):
         """
-        getResourceBiologicalQualifier(self, string resource) -> BiolQualifierType_t
+        getResourceBiologicalQualifier(SBase self, string resource) -> BiolQualifierType_t
 
         Returns the MIRIAM biological qualifier associated with the given
         resource.
@@ -4343,7 +4440,7 @@ class SBase(_object):
 
     def getResourceModelQualifier(self, *args):
         """
-        getResourceModelQualifier(self, string resource) -> ModelQualifierType_t
+        getResourceModelQualifier(SBase self, string resource) -> ModelQualifierType_t
 
         Returns the MIRIAM model qualifier associated with the given resource.
 
@@ -4387,7 +4484,7 @@ class SBase(_object):
 
     def getModel(self):
         """
-        getModel(self) -> Model
+        getModel(SBase self) -> Model
 
         Returns the Model object for the SBML Document in which the current
         object is located.
@@ -4401,7 +4498,7 @@ class SBase(_object):
 
     def getLevel(self):
         """
-        getLevel(self) -> unsigned int
+        getLevel(SBase self) -> unsigned int
 
         Returns the SBML Level of the SBMLDocument object containing this
         object.
@@ -4424,7 +4521,7 @@ class SBase(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> unsigned int
+        getVersion(SBase self) -> unsigned int
 
         Returns the Version within the SBML Level of the SBMLDocument object
         containing this object.
@@ -4447,7 +4544,7 @@ class SBase(_object):
 
     def getPackageVersion(self):
         """
-        getPackageVersion(self) -> unsigned int
+        getPackageVersion(SBase self) -> unsigned int
 
         Returns the Version of the SBML Level 3 package to which this element
         belongs to.
@@ -4463,7 +4560,7 @@ class SBase(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBase self) -> string
 
         Returns the name of the SBML Level 3 package in which this element is
         defined.
@@ -4478,7 +4575,7 @@ class SBase(_object):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SBase self) -> int
 
         Returns the libSBML type code for this object.
 
@@ -4565,9 +4662,9 @@ class SBase(_object):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getPackageName(), getElementName().
 
@@ -4576,7 +4673,7 @@ class SBase(_object):
 
     def hasValidLevelVersionNamespaceCombination(self):
         """
-        hasValidLevelVersionNamespaceCombination(self) -> bool
+        hasValidLevelVersionNamespaceCombination(SBase self) -> bool
 
         Predicate returning @c true if this object's level/version and namespace
         values correspond to a valid SBML specification.
@@ -4600,7 +4697,7 @@ class SBase(_object):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SBase self) -> string
 
         Returns the XML element name of this object.
 
@@ -4613,7 +4710,7 @@ class SBase(_object):
 
     def toSBML(self):
         """
-        toSBML(self) -> char
+        toSBML(SBase self) -> char *
 
         Returns a string consisting of a partial SBML corresponding to just
         this object.
@@ -4630,7 +4727,7 @@ class SBase(_object):
 
     def toXMLNode(self):
         """
-        toXMLNode(self) -> XMLNode
+        toXMLNode(SBase self) -> XMLNode
 
         Returns this element as an XMLNode.
 
@@ -4648,10 +4745,10 @@ class SBase(_object):
 
     def getPlugin(self, *args):
         """
-        getPlugin(self, string package) -> SBasePlugin
-        getPlugin(self, string package) -> SBasePlugin
-        getPlugin(self, unsigned int n) -> SBasePlugin
-        getPlugin(self, unsigned int n) -> SBasePlugin
+        getPlugin(SBase self, string package) -> SBasePlugin
+        getPlugin(SBase self, string package) -> SBasePlugin
+        getPlugin(SBase self, unsigned int n) -> SBasePlugin
+        getPlugin(SBase self, unsigned int n) -> SBasePlugin
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -4690,8 +4787,8 @@ class SBase(_object):
 
     def getDisabledPlugin(self, *args):
         """
-        getDisabledPlugin(self, unsigned int n) -> SBasePlugin
-        getDisabledPlugin(self, unsigned int n) -> SBasePlugin
+        getDisabledPlugin(SBase self, unsigned int n) -> SBasePlugin
+        getDisabledPlugin(SBase self, unsigned int n) -> SBasePlugin
 
         Returns the nth disabled plug-in object (extension interface) for an
         SBML Level 3 package extension.
@@ -4714,8 +4811,8 @@ class SBase(_object):
         longer considered to be part of the SBML document for the purposes of
         searching the document or writing out the document.  However, the
         information is still retained, so if the plugin is enabled again, the
-        same information  will once again be available, and will be written
-        out to the final model.
+        same information will once again be available, and will be written out
+        to the final model.
 
         Parameter 'n' is the index of the disabled plug-in to return
 
@@ -4729,7 +4826,7 @@ class SBase(_object):
 
     def getNumPlugins(self):
         """
-        getNumPlugins(self) -> unsigned int
+        getNumPlugins(SBase self) -> unsigned int
 
         Returns the number of plug-in objects (extenstion interfaces) for SBML
         Level 3 package extensions known.
@@ -4758,7 +4855,7 @@ class SBase(_object):
 
     def getNumDisabledPlugins(self):
         """
-        getNumDisabledPlugins(self) -> unsigned int
+        getNumDisabledPlugins(SBase self) -> unsigned int
 
         Returns the number of disabled plug-in objects (extension interfaces)
         for SBML Level 3 package extensions known.
@@ -4781,8 +4878,8 @@ class SBase(_object):
         longer considered to be part of the SBML document for the purposes of
         searching the document or writing out the document.  However, the
         information is still retained, so if the plugin is enabled again, the
-        same information  will once again be available, and will be written
-        out to the final model.
+        same information will once again be available, and will be written out
+        to the final model.
 
         Returns the number of disabled plug-in objects (extension interfaces)
         of package extensions known by this instance of libSBML.
@@ -4790,10 +4887,10 @@ class SBase(_object):
         """
         return _libsbml.SBase_getNumDisabledPlugins(self)
 
-    def deleteDisabledPlugins(self, recursive = True):
+    def deleteDisabledPlugins(self, recursive=True):
         """
-        deleteDisabledPlugins(self, bool recursive = True)
-        deleteDisabledPlugins(self)
+        deleteDisabledPlugins(SBase self, bool recursive=True)
+        deleteDisabledPlugins(SBase self)
 
         Deletes all information stored in disabled plugins.  If the plugin is
         re-enabled later, it will then not have any previously-stored
@@ -4817,8 +4914,8 @@ class SBase(_object):
         longer considered to be part of the SBML document for the purposes of
         searching the document or writing out the document.  However, the
         information is still retained, so if the plugin is enabled again, the
-        same information  will once again be available, and will be written
-        out to the final model.
+        same information will once again be available, and will be written out
+        to the final model.
 
         Parameter 'recursive' is if True, the disabled information will be
         deleted also from all child elements, otherwise only from this SBase
@@ -4831,7 +4928,7 @@ class SBase(_object):
 
     def enablePackage(self, *args):
         """
-        enablePackage(self, string pkgURI, string pkgPrefix, bool flag) -> int
+        enablePackage(SBase self, string pkgURI, string pkgPrefix, bool flag) -> int
 
         Enables or disables the given SBML Level 3 package on this object.
 
@@ -4864,7 +4961,7 @@ class SBase(_object):
 
     def disablePackage(self, *args):
         """
-        disablePackage(self, string pkgURI, string pkgPrefix) -> int
+        disablePackage(SBase self, string pkgURI, string pkgPrefix) -> int
 
         Disables the given SBML Level 3 package on this object.
 
@@ -4964,7 +5061,7 @@ class SBase(_object):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(SBase self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -4973,7 +5070,7 @@ class SBase(_object):
 
     def isPackageURIEnabled(self, *args):
         """
-        isPackageURIEnabled(self, string pkgURI) -> bool
+        isPackageURIEnabled(SBase self, string pkgURI) -> bool
 
         Predicate returning True if an SBML Level 3 package with the given URI
         is enabled with this object.
@@ -4990,7 +5087,7 @@ class SBase(_object):
 
     def isPackageEnabled(self, *args):
         """
-        isPackageEnabled(self, string pkgName) -> bool
+        isPackageEnabled(SBase self, string pkgName) -> bool
 
         Predicate returning True if the given SBML Level 3 package is enabled
         with this object.
@@ -5009,7 +5106,7 @@ class SBase(_object):
 
     def isPkgURIEnabled(self, *args):
         """
-        isPkgURIEnabled(self, string pkgURI) -> bool
+        isPkgURIEnabled(SBase self, string pkgURI) -> bool
 
         Predicate returning True if an SBML Level 3 package with the given URI
         is enabled with this object.
@@ -5028,7 +5125,7 @@ class SBase(_object):
 
     def isPkgEnabled(self, *args):
         """
-        isPkgEnabled(self, string pkgName) -> bool
+        isPkgEnabled(SBase self, string pkgName) -> bool
 
         Predicate returning True if the given SBML Level 3 package is enabled
         with this object.
@@ -5049,7 +5146,7 @@ class SBase(_object):
 
     def writeExtensionElements(self, *args):
         """
-        writeExtensionElements(self, XMLOutputStream stream)
+        writeExtensionElements(SBase self, XMLOutputStream stream)
 
         Internal implementation method.
 
@@ -5058,7 +5155,7 @@ class SBase(_object):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(SBase self) -> bool
 
         Internal implementation method.
 
@@ -5067,7 +5164,7 @@ class SBase(_object):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(SBase self) -> bool
 
         Internal implementation method.
 
@@ -5076,7 +5173,7 @@ class SBase(_object):
 
     def checkCompatibility(self, *args):
         """
-        checkCompatibility(self, SBase object) -> int
+        checkCompatibility(SBase self, SBase object) -> int
 
         Internal implementation method.
 
@@ -5085,7 +5182,7 @@ class SBase(_object):
 
     def setSBMLNamespacesAndOwn(self, *args):
         """
-        setSBMLNamespacesAndOwn(self, SBMLNamespaces disownedNs)
+        setSBMLNamespacesAndOwn(SBase self, SBMLNamespaces disownedNs)
 
         Internal implementation method.
 
@@ -5094,7 +5191,7 @@ class SBase(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(SBase self) -> SBMLNamespaces
 
         Internal implementation method.
 
@@ -5103,7 +5200,7 @@ class SBase(_object):
 
     def checkMathMLNamespace(self, *args):
         """
-        checkMathMLNamespace(self, XMLToken elem) -> string
+        checkMathMLNamespace(SBase self, XMLToken elem) -> string
 
         Internal implementation method.
 
@@ -5112,7 +5209,7 @@ class SBase(_object):
 
     def getDerivedUnitDefinition(self):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(SBase self) -> UnitDefinition
 
         Internal implementation method.
 
@@ -5121,7 +5218,7 @@ class SBase(_object):
 
     def containsUndeclaredUnits(self):
         """
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(SBase self) -> bool
 
         Internal implementation method.
 
@@ -5130,7 +5227,7 @@ class SBase(_object):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(SBase self) -> int
 
         Removes this object from its parent.
 
@@ -5154,8 +5251,8 @@ class SBase(_object):
 
     def matchesSBMLNamespaces(self, *args):
         """
-        matchesSBMLNamespaces(self, SBase sb) -> bool
-        matchesSBMLNamespaces(self, SBase sb) -> bool
+        matchesSBMLNamespaces(SBase self, SBase sb) -> bool
+        matchesSBMLNamespaces(SBase self, SBase sb) -> bool
 
         Returns True if this object's set of XML namespaces are the same as
         the given object's XML namespaces.
@@ -5178,8 +5275,8 @@ class SBase(_object):
 
     def matchesRequiredSBMLNamespacesForAddition(self, *args):
         """
-        matchesRequiredSBMLNamespacesForAddition(self, SBase sb) -> bool
-        matchesRequiredSBMLNamespacesForAddition(self, SBase sb) -> bool
+        matchesRequiredSBMLNamespacesForAddition(SBase self, SBase sb) -> bool
+        matchesRequiredSBMLNamespacesForAddition(SBase self, SBase sb) -> bool
 
         Returns True if this object's set of XML namespaces are a subset of
         the given object's XML namespaces.
@@ -5202,7 +5299,7 @@ class SBase(_object):
 
     def isSetUserData(self):
         """
-        isSetUserData(self) -> bool
+        isSetUserData(SBase self) -> bool
 
         Predicate returning true or false depending on whether the user data
         of this element has been set.
@@ -5220,7 +5317,7 @@ class SBase(_object):
 
     def unsetUserData(self):
         """
-        unsetUserData(self) -> int
+        unsetUserData(SBase self) -> int
 
         Unsets the user data of this element.
 
@@ -5241,7 +5338,7 @@ class SBase(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(SBase self) -> string
 
         Gets the namespace URI to which this element belongs to.
 
@@ -5266,7 +5363,7 @@ class SBase(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(SBase self) -> string
 
         Returns the XML namespace prefix of this element.
 
@@ -5298,39 +5395,31 @@ class SBase(_object):
         if (self.this == rhs.this): return False
       return True
 
-    def getListOfAllElements(self, filter = None):
-        """
-        getListOfAllElements(self, ElementFilter filter = None) -> SBaseList
-        getListOfAllElements(self) -> SBaseList
+    def getListOfAllElements(self):
+      """
+      getListOfAllElements(self) -> SBaseList
 
-        Returns an SBaseList of all child SBase objects, including those
-        nested to an arbitrary depth.
+      Get the List of all SBase objects in this element.
 
-        @return a list of all objects that are children of this object.
+      Returns the List of all child elements.
 
-        """
-        return _libsbml.SBase_getListOfAllElements(self, filter)
 
-    def getListOfAllElementsFromPlugins(self, filter = None):
-        """
-        getListOfAllElementsFromPlugins(self, ElementFilter filter = None) -> SBaseList
-        getListOfAllElementsFromPlugins(self) -> SBaseList
+      """
+      return _libsbml.SBase_getListOfAllElements(self)
+
 
-        Returns a List of all child SBase objects contained in SBML package
-        plug-ins.
+    def getListOfAllElementsFromPlugins(self):
+      """
+      getListOfAllElementsFromPlugins(self) -> SBaseList
 
-        @copydetails doc_what_are_plugins
+      Get the List of SBase objects in this elements plugins.
 
-        This method walks down the list of all SBML Level 3 packages used
-        by this object and returns all child objects defined by those packages.
+      Returns the SBaseList of all plugins for this element.
 
-        @return a pointer to a List of pointers to all children objects from
-        plug-ins.
 
-        @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
+      """
+      return _libsbml.SBase_getListOfAllElementsFromPlugins(self)
 
-        """
-        return _libsbml.SBase_getListOfAllElementsFromPlugins(self, filter)
 
 SBase_swigregister = _libsbml.SBase_swigregister
 SBase_swigregister(SBase)
@@ -5360,46 +5449,6 @@ class ListOf(SBase):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -5426,11 +5475,11 @@ class ListOf(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL, unsigned int version = SBML_DEFAULT_VERSION) -> ListOf
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL) -> ListOf
-        __init__(self) -> ListOf
-        __init__(self, SBMLNamespaces sbmlns) -> ListOf
-        __init__(self, ListOf orig) -> ListOf
+        __init__(ListOf self, unsigned int level=SBML_DEFAULT_LEVEL, unsigned int version=SBML_DEFAULT_VERSION) -> ListOf
+        __init__(ListOf self, unsigned int level=SBML_DEFAULT_LEVEL) -> ListOf
+        __init__(ListOf self) -> ListOf
+        __init__(ListOf self, SBMLNamespaces sbmlns) -> ListOf
+        __init__(ListOf self, ListOf orig) -> ListOf
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -5532,7 +5581,7 @@ class ListOf(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOf
+        clone(ListOf self) -> ListOf
 
         Creates and returns a deep copy of this ListOf object.
 
@@ -5543,7 +5592,7 @@ class ListOf(SBase):
 
     def append(self, *args):
         """
-        append(self, SBase item) -> int
+        append(ListOf self, SBase item) -> int
 
         Adds an item to the end of this ListOf's list of items.
 
@@ -5568,7 +5617,7 @@ class ListOf(SBase):
 
     def appendAndOwn(self, *args):
         """
-        appendAndOwn(self, SBase disownedItem) -> int
+        appendAndOwn(ListOf self, SBase disownedItem) -> int
 
         Adds an item to the end of this ListOf's list of items.
 
@@ -5594,7 +5643,7 @@ class ListOf(SBase):
 
     def appendFrom(self, *args):
         """
-        appendFrom(self, ListOf list) -> int
+        appendFrom(ListOf self, ListOf list) -> int
 
         Adds a clone of a list of items to this ListOf's list.
 
@@ -5617,7 +5666,7 @@ class ListOf(SBase):
 
     def insert(self, *args):
         """
-        insert(self, int location, SBase item) -> int
+        insert(ListOf self, int location, SBase item) -> int
 
         Inserts an item at a given position in this ListOf's list of items.
 
@@ -5642,7 +5691,7 @@ class ListOf(SBase):
 
     def insertAndOwn(self, *args):
         """
-        insertAndOwn(self, int location, SBase disownedItem) -> int
+        insertAndOwn(ListOf self, int location, SBase disownedItem) -> int
 
         Inserts an item at a given position in this ListOf's list of items.
 
@@ -5667,8 +5716,8 @@ class ListOf(SBase):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> SBase
-        get(self, unsigned int n) -> SBase
+        get(ListOf self, unsigned int n) -> SBase
+        get(ListOf self, unsigned int n) -> SBase
 
         Get an item from the list.
 
@@ -5684,7 +5733,7 @@ class ListOf(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOf self, string id) -> SBase
 
         Returns the first child element found that has the given identifier.
 
@@ -5702,7 +5751,7 @@ class ListOf(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(ListOf self, string metaid) -> SBase
 
         Returns the first child element found with the given meta-identifier.
 
@@ -5715,10 +5764,10 @@ class ListOf(SBase):
         """
         return _libsbml.ListOf_getElementByMetaId(self, *args)
 
-    def clear(self, doDelete = True):
+    def clear(self, doDelete=True):
         """
-        clear(self, bool doDelete = True)
-        clear(self)
+        clear(ListOf self, bool doDelete=True)
+        clear(ListOf self)
 
         Removes all items in this ListOf object.
 
@@ -5749,7 +5798,7 @@ class ListOf(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(ListOf self) -> int
 
         Removes all items in this ListOf object and deletes its properties
         too.
@@ -5769,7 +5818,7 @@ class ListOf(SBase):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> SBase
+        remove(ListOf self, unsigned int n) -> SBase
 
         Removes the nth item from this ListOf list of items and returns it.
 
@@ -5784,7 +5833,7 @@ class ListOf(SBase):
 
     def size(self):
         """
-        size(self) -> unsigned int
+        size(ListOf self) -> unsigned int
 
         Returns number of items in this ListOf list.
 
@@ -5794,12 +5843,12 @@ class ListOf(SBase):
         return _libsbml.ListOf_size(self)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(ListOf self)"""
         return _libsbml.ListOf_connectToChild(self)
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ListOf self) -> int
 
         Returns the libSBML type code for this object, namely, SBML_LIST_OF.
 
@@ -5823,9 +5872,9 @@ class ListOf(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getItemTypeCode(), getElementName(), getPackageName().
 
@@ -5834,7 +5883,7 @@ class ListOf(SBase):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOf self) -> int
 
         Get the type code of the objects contained in this ListOf.
 
@@ -5861,7 +5910,7 @@ class ListOf(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOf self) -> string
 
         Returns the XML element name of this object, which for ListOf, is
         always 'listOf'.
@@ -5873,7 +5922,7 @@ class ListOf(SBase):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(ListOf self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -5881,7 +5930,7 @@ class ListOf(SBase):
         return _libsbml.ListOf_enablePackageInternal(self, *args)
 
     def __len__(self):
-        """__len__(self) -> int"""
+        """__len__(ListOf self) -> int"""
         return _libsbml.ListOf___len__(self)
 
     def __getitem__(self, key):
@@ -5939,7 +5988,7 @@ class Model(SBase):
     All of the lists are optional, but if a given list container is
     present within the model, the list must not be empty; that is, it must
     have length one or more.  The following are the components and lists
-    permitted in different Levels and Versions of SBML in version 5.12.0
+    permitted in different Levels and Versions of SBML in version 5.13.0
     of libSBML:
 
     * In SBML Level 1, the components are: UnitDefinition, Compartment,
@@ -6058,7 +6107,7 @@ class Model(SBase):
     ======================================================================
 
     To make it easier for applications to do whatever they need, libSBML
-    version 5.12.0 is relatively lax when it comes to enforcing
+    version 5.13.0 is relatively lax when it comes to enforcing
     correctness and completeness of models during model construction and
     editing. Essentially, libSBML will not in most cases check
     automatically that a model's components have valid attribute values,
@@ -6217,9 +6266,9 @@ class Model(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Model
-        __init__(self, SBMLNamespaces sbmlns) -> Model
-        __init__(self, Model orig) -> Model
+        __init__(Model self, unsigned int level, unsigned int version) -> Model
+        __init__(Model self, SBMLNamespaces sbmlns) -> Model
+        __init__(Model self, Model orig) -> Model
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -6310,7 +6359,7 @@ class Model(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Model
+        clone(Model self) -> Model
 
         Creates and returns a deep copy of this Model object.
 
@@ -6321,7 +6370,7 @@ class Model(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(Model self, string id) -> SBase
 
         Returns the first child element found that has the given 'id'.
 
@@ -6337,7 +6386,7 @@ class Model(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(Model self, string metaid) -> SBase
 
         Returns the first child element it can find with the given 'metaid'.
 
@@ -6352,7 +6401,7 @@ class Model(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Model self) -> string
 
         Returns the value of the 'id' attribute of this Model.
 
@@ -6363,7 +6412,7 @@ class Model(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Model self) -> string
 
         Returns the value of the 'name' attribute of this Model.
 
@@ -6374,7 +6423,7 @@ class Model(SBase):
 
     def getSubstanceUnits(self):
         """
-        getSubstanceUnits(self) -> string
+        getSubstanceUnits(Model self) -> string
 
         Returns the value of the 'substanceUnits' attribute of this Model.
 
@@ -6390,7 +6439,7 @@ class Model(SBase):
 
     def getTimeUnits(self):
         """
-        getTimeUnits(self) -> string
+        getTimeUnits(Model self) -> string
 
         Returns the value of the 'timeUnits' attribute of this Model.
 
@@ -6406,7 +6455,7 @@ class Model(SBase):
 
     def getVolumeUnits(self):
         """
-        getVolumeUnits(self) -> string
+        getVolumeUnits(Model self) -> string
 
         Returns the value of the 'volumeUnits' attribute of this Model.
 
@@ -6422,7 +6471,7 @@ class Model(SBase):
 
     def getAreaUnits(self):
         """
-        getAreaUnits(self) -> string
+        getAreaUnits(Model self) -> string
 
         Returns the value of the 'areaUnits' attribute of this Model.
 
@@ -6438,7 +6487,7 @@ class Model(SBase):
 
     def getLengthUnits(self):
         """
-        getLengthUnits(self) -> string
+        getLengthUnits(Model self) -> string
 
         Returns the value of the 'lengthUnits' attribute of this Model.
 
@@ -6454,7 +6503,7 @@ class Model(SBase):
 
     def getExtentUnits(self):
         """
-        getExtentUnits(self) -> string
+        getExtentUnits(Model self) -> string
 
         Returns the value of the 'extentUnits' attribute of this Model.
 
@@ -6470,7 +6519,7 @@ class Model(SBase):
 
     def getConversionFactor(self):
         """
-        getConversionFactor(self) -> string
+        getConversionFactor(Model self) -> string
 
         Returns the value of the 'conversionFactor' attribute of this Model.
 
@@ -6486,7 +6535,7 @@ class Model(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Model self) -> bool
 
         Predicate returning True if this Model's 'id' attribute is set.
 
@@ -6498,7 +6547,7 @@ class Model(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Model self) -> bool
 
         Predicate returning True if this Model's 'name' attribute is set.
 
@@ -6510,7 +6559,7 @@ class Model(SBase):
 
     def isSetSubstanceUnits(self):
         """
-        isSetSubstanceUnits(self) -> bool
+        isSetSubstanceUnits(Model self) -> bool
 
         Predicate returning True if this Model's 'substanceUnits' attribute is
         set.
@@ -6528,7 +6577,7 @@ class Model(SBase):
 
     def isSetTimeUnits(self):
         """
-        isSetTimeUnits(self) -> bool
+        isSetTimeUnits(Model self) -> bool
 
         Predicate returning True if this Model's 'timeUnits' attribute is set.
 
@@ -6545,7 +6594,7 @@ class Model(SBase):
 
     def isSetVolumeUnits(self):
         """
-        isSetVolumeUnits(self) -> bool
+        isSetVolumeUnits(Model self) -> bool
 
         Predicate returning True if this Model's 'volumeUnits' attribute is
         set.
@@ -6563,7 +6612,7 @@ class Model(SBase):
 
     def isSetAreaUnits(self):
         """
-        isSetAreaUnits(self) -> bool
+        isSetAreaUnits(Model self) -> bool
 
         Predicate returning True if this Model's 'areaUnits' attribute is set.
 
@@ -6580,7 +6629,7 @@ class Model(SBase):
 
     def isSetLengthUnits(self):
         """
-        isSetLengthUnits(self) -> bool
+        isSetLengthUnits(Model self) -> bool
 
         Predicate returning True if this Model's 'lengthUnits' attribute is
         set.
@@ -6598,7 +6647,7 @@ class Model(SBase):
 
     def isSetExtentUnits(self):
         """
-        isSetExtentUnits(self) -> bool
+        isSetExtentUnits(Model self) -> bool
 
         Predicate returning True if this Model's 'extentUnits' attribute is
         set.
@@ -6616,7 +6665,7 @@ class Model(SBase):
 
     def isSetConversionFactor(self):
         """
-        isSetConversionFactor(self) -> bool
+        isSetConversionFactor(Model self) -> bool
 
         Predicate returning True if this Model's 'conversionFactor' attribute
         is set.
@@ -6634,7 +6683,7 @@ class Model(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Model self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Model.
 
@@ -6674,7 +6723,7 @@ class Model(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Model self, string name) -> int
 
         Sets the value of the 'name' attribute of this Model.
 
@@ -6694,7 +6743,7 @@ class Model(SBase):
 
     def setSubstanceUnits(self, *args):
         """
-        setSubstanceUnits(self, string units) -> int
+        setSubstanceUnits(Model self, string units) -> int
 
         Sets the value of the 'substanceUnits' attribute of this Model.
 
@@ -6721,7 +6770,7 @@ class Model(SBase):
 
     def setTimeUnits(self, *args):
         """
-        setTimeUnits(self, string units) -> int
+        setTimeUnits(Model self, string units) -> int
 
         Sets the value of the 'timeUnits' attribute of this Model.
 
@@ -6748,7 +6797,7 @@ class Model(SBase):
 
     def setVolumeUnits(self, *args):
         """
-        setVolumeUnits(self, string units) -> int
+        setVolumeUnits(Model self, string units) -> int
 
         Sets the value of the 'volumeUnits' attribute of this Model.
 
@@ -6775,7 +6824,7 @@ class Model(SBase):
 
     def setAreaUnits(self, *args):
         """
-        setAreaUnits(self, string units) -> int
+        setAreaUnits(Model self, string units) -> int
 
         Sets the value of the 'areaUnits' attribute of this Model.
 
@@ -6802,7 +6851,7 @@ class Model(SBase):
 
     def setLengthUnits(self, *args):
         """
-        setLengthUnits(self, string units) -> int
+        setLengthUnits(Model self, string units) -> int
 
         Sets the value of the 'lengthUnits' attribute of this Model.
 
@@ -6829,7 +6878,7 @@ class Model(SBase):
 
     def setExtentUnits(self, *args):
         """
-        setExtentUnits(self, string units) -> int
+        setExtentUnits(Model self, string units) -> int
 
         Sets the value of the 'extentUnits' attribute of this Model.
 
@@ -6856,7 +6905,7 @@ class Model(SBase):
 
     def setConversionFactor(self, *args):
         """
-        setConversionFactor(self, string units) -> int
+        setConversionFactor(Model self, string units) -> int
 
         Sets the value of the 'conversionFactor' attribute of this Model.
 
@@ -6883,7 +6932,7 @@ class Model(SBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(Model self) -> int
 
         Unsets the value of the 'id' attribute of this Model.
 
@@ -6899,7 +6948,7 @@ class Model(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Model self) -> int
 
         Unsets the value of the 'name' attribute of this Model.
 
@@ -6915,7 +6964,7 @@ class Model(SBase):
 
     def unsetSubstanceUnits(self):
         """
-        unsetSubstanceUnits(self) -> int
+        unsetSubstanceUnits(Model self) -> int
 
         Unsets the value of the 'substanceUnits' attribute of this Model.
 
@@ -6936,7 +6985,7 @@ class Model(SBase):
 
     def unsetTimeUnits(self):
         """
-        unsetTimeUnits(self) -> int
+        unsetTimeUnits(Model self) -> int
 
         Unsets the value of the 'timeUnits' attribute of this Model.
 
@@ -6957,7 +7006,7 @@ class Model(SBase):
 
     def unsetVolumeUnits(self):
         """
-        unsetVolumeUnits(self) -> int
+        unsetVolumeUnits(Model self) -> int
 
         Unsets the value of the 'volumeUnits' attribute of this Model.
 
@@ -6978,7 +7027,7 @@ class Model(SBase):
 
     def unsetAreaUnits(self):
         """
-        unsetAreaUnits(self) -> int
+        unsetAreaUnits(Model self) -> int
 
         Unsets the value of the 'areaUnits' attribute of this Model.
 
@@ -7001,7 +7050,7 @@ class Model(SBase):
 
     def unsetLengthUnits(self):
         """
-        unsetLengthUnits(self) -> int
+        unsetLengthUnits(Model self) -> int
 
         Unsets the value of the 'lengthUnits' attribute of this Model.
 
@@ -7024,7 +7073,7 @@ class Model(SBase):
 
     def unsetExtentUnits(self):
         """
-        unsetExtentUnits(self) -> int
+        unsetExtentUnits(Model self) -> int
 
         Unsets the value of the 'extentUnits' attribute of this Model.
 
@@ -7047,7 +7096,7 @@ class Model(SBase):
 
     def unsetConversionFactor(self):
         """
-        unsetConversionFactor(self) -> int
+        unsetConversionFactor(Model self) -> int
 
         Unsets the value of the 'conversionFactor' attribute of this Model.
 
@@ -7070,7 +7119,7 @@ class Model(SBase):
 
     def addFunctionDefinition(self, *args):
         """
-        addFunctionDefinition(self, FunctionDefinition fd) -> int
+        addFunctionDefinition(Model self, FunctionDefinition fd) -> int
 
         Adds a copy of the given FunctionDefinition object to this Model.
 
@@ -7111,7 +7160,7 @@ class Model(SBase):
 
     def addUnitDefinition(self, *args):
         """
-        addUnitDefinition(self, UnitDefinition ud) -> int
+        addUnitDefinition(Model self, UnitDefinition ud) -> int
 
         Adds a copy of the given UnitDefinition object to this Model.
 
@@ -7152,7 +7201,7 @@ class Model(SBase):
 
     def addCompartmentType(self, *args):
         """
-        addCompartmentType(self, CompartmentType ct) -> int
+        addCompartmentType(Model self, CompartmentType ct) -> int
 
         Adds a copy of the given CompartmentType object to this Model.
 
@@ -7198,7 +7247,7 @@ class Model(SBase):
 
     def addSpeciesType(self, *args):
         """
-        addSpeciesType(self, SpeciesType st) -> int
+        addSpeciesType(Model self, SpeciesType st) -> int
 
         Adds a copy of the given SpeciesType object to this Model.
 
@@ -7244,7 +7293,7 @@ class Model(SBase):
 
     def addCompartment(self, *args):
         """
-        addCompartment(self, Compartment c) -> int
+        addCompartment(Model self, Compartment c) -> int
 
         Adds a copy of the given Compartment object to this Model.
 
@@ -7285,7 +7334,7 @@ class Model(SBase):
 
     def addSpecies(self, *args):
         """
-        addSpecies(self, Species s) -> int
+        addSpecies(Model self, Species s) -> int
 
         Adds a copy of the given Species object to this Model.
 
@@ -7326,7 +7375,7 @@ class Model(SBase):
 
     def addParameter(self, *args):
         """
-        addParameter(self, Parameter p) -> int
+        addParameter(Model self, Parameter p) -> int
 
         Adds a copy of the given Parameter object to this Model.
 
@@ -7367,7 +7416,7 @@ class Model(SBase):
 
     def addInitialAssignment(self, *args):
         """
-        addInitialAssignment(self, InitialAssignment ia) -> int
+        addInitialAssignment(Model self, InitialAssignment ia) -> int
 
         Adds a copy of the given InitialAssignment object to this Model.
 
@@ -7408,7 +7457,7 @@ class Model(SBase):
 
     def addRule(self, *args):
         """
-        addRule(self, Rule r) -> int
+        addRule(Model self, Rule r) -> int
 
         Adds a copy of the given Rule object to this Model.
 
@@ -7450,7 +7499,7 @@ class Model(SBase):
 
     def addConstraint(self, *args):
         """
-        addConstraint(self, Constraint c) -> int
+        addConstraint(Model self, Constraint c) -> int
 
         Adds a copy of the given Constraint object to this Model.
 
@@ -7489,7 +7538,7 @@ class Model(SBase):
 
     def addReaction(self, *args):
         """
-        addReaction(self, Reaction r) -> int
+        addReaction(Model self, Reaction r) -> int
 
         Adds a copy of the given Reaction object to this Model.
 
@@ -7530,7 +7579,7 @@ class Model(SBase):
 
     def addEvent(self, *args):
         """
-        addEvent(self, Event e) -> int
+        addEvent(Model self, Event e) -> int
 
         Adds a copy of the given Event object to this Model.
 
@@ -7571,7 +7620,7 @@ class Model(SBase):
 
     def createFunctionDefinition(self):
         """
-        createFunctionDefinition(self) -> FunctionDefinition
+        createFunctionDefinition(Model self) -> FunctionDefinition
 
         Creates a new FunctionDefinition inside this Model and returns it.
 
@@ -7588,7 +7637,7 @@ class Model(SBase):
 
     def createUnitDefinition(self):
         """
-        createUnitDefinition(self) -> UnitDefinition
+        createUnitDefinition(Model self) -> UnitDefinition
 
         Creates a new UnitDefinition inside this Model and returns it.
 
@@ -7605,7 +7654,7 @@ class Model(SBase):
 
     def createUnit(self):
         """
-        createUnit(self) -> Unit
+        createUnit(Model self) -> Unit
 
         Creates a new Unit object within the last UnitDefinition object
         created in this model and returns a pointer to it.
@@ -7627,7 +7676,7 @@ class Model(SBase):
 
     def createCompartmentType(self):
         """
-        createCompartmentType(self) -> CompartmentType
+        createCompartmentType(Model self) -> CompartmentType
 
         Creates a new CompartmentType inside this Model and returns it.
 
@@ -7649,7 +7698,7 @@ class Model(SBase):
 
     def createSpeciesType(self):
         """
-        createSpeciesType(self) -> SpeciesType
+        createSpeciesType(Model self) -> SpeciesType
 
         Creates a new SpeciesType inside this Model and returns it.
 
@@ -7671,7 +7720,7 @@ class Model(SBase):
 
     def createCompartment(self):
         """
-        createCompartment(self) -> Compartment
+        createCompartment(Model self) -> Compartment
 
         Creates a new Compartment inside this Model and returns it.
 
@@ -7688,7 +7737,7 @@ class Model(SBase):
 
     def createSpecies(self):
         """
-        createSpecies(self) -> Species
+        createSpecies(Model self) -> Species
 
         Creates a new Species inside this Model and returns it.
 
@@ -7705,7 +7754,7 @@ class Model(SBase):
 
     def createParameter(self):
         """
-        createParameter(self) -> Parameter
+        createParameter(Model self) -> Parameter
 
         Creates a new Parameter inside this Model and returns it.
 
@@ -7722,7 +7771,7 @@ class Model(SBase):
 
     def createInitialAssignment(self):
         """
-        createInitialAssignment(self) -> InitialAssignment
+        createInitialAssignment(Model self) -> InitialAssignment
 
         Creates a new InitialAssignment inside this Model and returns it.
 
@@ -7739,7 +7788,7 @@ class Model(SBase):
 
     def createAlgebraicRule(self):
         """
-        createAlgebraicRule(self) -> AlgebraicRule
+        createAlgebraicRule(Model self) -> AlgebraicRule
 
         Creates a new AlgebraicRule inside this Model and returns it.
 
@@ -7756,7 +7805,7 @@ class Model(SBase):
 
     def createAssignmentRule(self):
         """
-        createAssignmentRule(self) -> AssignmentRule
+        createAssignmentRule(Model self) -> AssignmentRule
 
         Creates a new AssignmentRule inside this Model and returns it.
 
@@ -7773,7 +7822,7 @@ class Model(SBase):
 
     def createRateRule(self):
         """
-        createRateRule(self) -> RateRule
+        createRateRule(Model self) -> RateRule
 
         Creates a new RateRule inside this Model and returns it.
 
@@ -7790,7 +7839,7 @@ class Model(SBase):
 
     def createConstraint(self):
         """
-        createConstraint(self) -> Constraint
+        createConstraint(Model self) -> Constraint
 
         Creates a new Constraint inside this Model and returns it.
 
@@ -7807,7 +7856,7 @@ class Model(SBase):
 
     def createReaction(self):
         """
-        createReaction(self) -> Reaction
+        createReaction(Model self) -> Reaction
 
         Creates a new Reaction inside this Model and returns it.
 
@@ -7824,7 +7873,7 @@ class Model(SBase):
 
     def createReactant(self):
         """
-        createReactant(self) -> SpeciesReference
+        createReactant(Model self) -> SpeciesReference
 
         Creates a new SpeciesReference object for a reactant inside the last
         Reaction object in this Model, and returns a pointer to it.
@@ -7848,7 +7897,7 @@ class Model(SBase):
 
     def createProduct(self):
         """
-        createProduct(self) -> SpeciesReference
+        createProduct(Model self) -> SpeciesReference
 
         Creates a new SpeciesReference object for a product inside the last
         Reaction object in this Model, and returns a pointer to it.
@@ -7872,7 +7921,7 @@ class Model(SBase):
 
     def createModifier(self):
         """
-        createModifier(self) -> ModifierSpeciesReference
+        createModifier(Model self) -> ModifierSpeciesReference
 
         Creates a new ModifierSpeciesReference object for a modifier species
         inside the last Reaction object in this Model, and returns a pointer
@@ -7897,7 +7946,7 @@ class Model(SBase):
 
     def createKineticLaw(self):
         """
-        createKineticLaw(self) -> KineticLaw
+        createKineticLaw(Model self) -> KineticLaw
 
         Creates a new KineticLaw inside the last Reaction object created in
         this Model, and returns a pointer to it.
@@ -7921,7 +7970,7 @@ class Model(SBase):
 
     def createKineticLawParameter(self):
         """
-        createKineticLawParameter(self) -> Parameter
+        createKineticLawParameter(Model self) -> Parameter
 
         Creates a new local Parameter inside the KineticLaw object of the last
         Reaction created inside this Model, and returns a pointer to it.
@@ -7947,7 +7996,7 @@ class Model(SBase):
 
     def createKineticLawLocalParameter(self):
         """
-        createKineticLawLocalParameter(self) -> LocalParameter
+        createKineticLawLocalParameter(Model self) -> LocalParameter
 
         Creates a new LocalParameter inside the KineticLaw object of the last
         Reaction created inside this Model, and returns a pointer to it.
@@ -7973,7 +8022,7 @@ class Model(SBase):
 
     def createEvent(self):
         """
-        createEvent(self) -> Event
+        createEvent(Model self) -> Event
 
         Creates a new Event inside this Model and returns it.
 
@@ -7988,7 +8037,7 @@ class Model(SBase):
 
     def createEventAssignment(self):
         """
-        createEventAssignment(self) -> EventAssignment
+        createEventAssignment(Model self) -> EventAssignment
 
         Creates a new EventAssignment inside the last Event object created in
         this Model, and returns a pointer to it.
@@ -8010,7 +8059,7 @@ class Model(SBase):
 
     def createTrigger(self):
         """
-        createTrigger(self) -> Trigger
+        createTrigger(Model self) -> Trigger
 
         Creates a new Trigger inside the last Event object created in this
         Model, and returns a pointer to it.
@@ -8032,7 +8081,7 @@ class Model(SBase):
 
     def createDelay(self):
         """
-        createDelay(self) -> Delay
+        createDelay(Model self) -> Delay
 
         Creates a new Delay inside the last Event object created in this
         Model, and returns a pointer to it.
@@ -8054,8 +8103,8 @@ class Model(SBase):
 
     def setAnnotation(self, *args):
         """
-        setAnnotation(self, XMLNode annotation) -> int
-        setAnnotation(self, string annotation) -> int
+        setAnnotation(Model self, XMLNode annotation) -> int
+        setAnnotation(Model self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8090,8 +8139,8 @@ class Model(SBase):
 
     def appendAnnotation(self, *args):
         """
-        appendAnnotation(self, XMLNode annotation) -> int
-        appendAnnotation(self, string annotation) -> int
+        appendAnnotation(Model self, XMLNode annotation) -> int
+        appendAnnotation(Model self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8125,8 +8174,8 @@ class Model(SBase):
 
     def getListOfFunctionDefinitions(self, *args):
         """
-        getListOfFunctionDefinitions(self) -> ListOfFunctionDefinitions
-        getListOfFunctionDefinitions(self) -> ListOfFunctionDefinitions
+        getListOfFunctionDefinitions(Model self) -> ListOfFunctionDefinitions
+        getListOfFunctionDefinitions(Model self) -> ListOfFunctionDefinitions
 
         Get the ListOfFunctionDefinitions object in this Model.
 
@@ -8137,8 +8186,8 @@ class Model(SBase):
 
     def getListOfUnitDefinitions(self, *args):
         """
-        getListOfUnitDefinitions(self) -> ListOfUnitDefinitions
-        getListOfUnitDefinitions(self) -> ListOfUnitDefinitions
+        getListOfUnitDefinitions(Model self) -> ListOfUnitDefinitions
+        getListOfUnitDefinitions(Model self) -> ListOfUnitDefinitions
 
         Get the ListOfUnitDefinitions object in this Model.
 
@@ -8149,8 +8198,8 @@ class Model(SBase):
 
     def getListOfCompartmentTypes(self, *args):
         """
-        getListOfCompartmentTypes(self) -> ListOfCompartmentTypes
-        getListOfCompartmentTypes(self) -> ListOfCompartmentTypes
+        getListOfCompartmentTypes(Model self) -> ListOfCompartmentTypes
+        getListOfCompartmentTypes(Model self) -> ListOfCompartmentTypes
 
         Get the ListOfCompartmentTypes object in this Model.
 
@@ -8166,8 +8215,8 @@ class Model(SBase):
 
     def getListOfSpeciesTypes(self, *args):
         """
-        getListOfSpeciesTypes(self) -> ListOfSpeciesTypes
-        getListOfSpeciesTypes(self) -> ListOfSpeciesTypes
+        getListOfSpeciesTypes(Model self) -> ListOfSpeciesTypes
+        getListOfSpeciesTypes(Model self) -> ListOfSpeciesTypes
 
         Get the ListOfSpeciesTypes object in this Model.
 
@@ -8183,8 +8232,8 @@ class Model(SBase):
 
     def getListOfCompartments(self, *args):
         """
-        getListOfCompartments(self) -> ListOfCompartments
-        getListOfCompartments(self) -> ListOfCompartments
+        getListOfCompartments(Model self) -> ListOfCompartments
+        getListOfCompartments(Model self) -> ListOfCompartments
 
         Get the ListOfCompartments object in this Model.
 
@@ -8195,8 +8244,8 @@ class Model(SBase):
 
     def getListOfSpecies(self, *args):
         """
-        getListOfSpecies(self) -> ListOfSpecies
-        getListOfSpecies(self) -> ListOfSpecies
+        getListOfSpecies(Model self) -> ListOfSpecies
+        getListOfSpecies(Model self) -> ListOfSpecies
 
         Get the ListOfSpecies object in this Model.
 
@@ -8207,8 +8256,8 @@ class Model(SBase):
 
     def getListOfParameters(self, *args):
         """
-        getListOfParameters(self) -> ListOfParameters
-        getListOfParameters(self) -> ListOfParameters
+        getListOfParameters(Model self) -> ListOfParameters
+        getListOfParameters(Model self) -> ListOfParameters
 
         Get the ListOfParameters object in this Model.
 
@@ -8219,8 +8268,8 @@ class Model(SBase):
 
     def getListOfInitialAssignments(self, *args):
         """
-        getListOfInitialAssignments(self) -> ListOfInitialAssignments
-        getListOfInitialAssignments(self) -> ListOfInitialAssignments
+        getListOfInitialAssignments(Model self) -> ListOfInitialAssignments
+        getListOfInitialAssignments(Model self) -> ListOfInitialAssignments
 
         Get the ListOfInitialAssignments object in this Model.
 
@@ -8231,8 +8280,8 @@ class Model(SBase):
 
     def getListOfRules(self, *args):
         """
-        getListOfRules(self) -> ListOfRules
-        getListOfRules(self) -> ListOfRules
+        getListOfRules(Model self) -> ListOfRules
+        getListOfRules(Model self) -> ListOfRules
 
         Get the ListOfRules object in this Model.
 
@@ -8243,8 +8292,8 @@ class Model(SBase):
 
     def getListOfConstraints(self, *args):
         """
-        getListOfConstraints(self) -> ListOfConstraints
-        getListOfConstraints(self) -> ListOfConstraints
+        getListOfConstraints(Model self) -> ListOfConstraints
+        getListOfConstraints(Model self) -> ListOfConstraints
 
         Get the ListOfConstraints object in this Model.
 
@@ -8255,8 +8304,8 @@ class Model(SBase):
 
     def getListOfReactions(self, *args):
         """
-        getListOfReactions(self) -> ListOfReactions
-        getListOfReactions(self) -> ListOfReactions
+        getListOfReactions(Model self) -> ListOfReactions
+        getListOfReactions(Model self) -> ListOfReactions
 
         Get the ListOfReactions object in this Model.
 
@@ -8267,8 +8316,8 @@ class Model(SBase):
 
     def getListOfEvents(self, *args):
         """
-        getListOfEvents(self) -> ListOfEvents
-        getListOfEvents(self) -> ListOfEvents
+        getListOfEvents(Model self) -> ListOfEvents
+        getListOfEvents(Model self) -> ListOfEvents
 
         Get the ListOfEvents object in this Model.
 
@@ -8279,10 +8328,10 @@ class Model(SBase):
 
     def getFunctionDefinition(self, *args):
         """
-        getFunctionDefinition(self, unsigned int n) -> FunctionDefinition
-        getFunctionDefinition(self, unsigned int n) -> FunctionDefinition
-        getFunctionDefinition(self, string sid) -> FunctionDefinition
-        getFunctionDefinition(self, string sid) -> FunctionDefinition
+        getFunctionDefinition(Model self, unsigned int n) -> FunctionDefinition
+        getFunctionDefinition(Model self, unsigned int n) -> FunctionDefinition
+        getFunctionDefinition(Model self, string sid) -> FunctionDefinition
+        getFunctionDefinition(Model self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8315,10 +8364,10 @@ class Model(SBase):
 
     def getUnitDefinition(self, *args):
         """
-        getUnitDefinition(self, unsigned int n) -> UnitDefinition
-        getUnitDefinition(self, unsigned int n) -> UnitDefinition
-        getUnitDefinition(self, string sid) -> UnitDefinition
-        getUnitDefinition(self, string sid) -> UnitDefinition
+        getUnitDefinition(Model self, unsigned int n) -> UnitDefinition
+        getUnitDefinition(Model self, unsigned int n) -> UnitDefinition
+        getUnitDefinition(Model self, string sid) -> UnitDefinition
+        getUnitDefinition(Model self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8351,10 +8400,10 @@ class Model(SBase):
 
     def getCompartmentType(self, *args):
         """
-        getCompartmentType(self, unsigned int n) -> CompartmentType
-        getCompartmentType(self, unsigned int n) -> CompartmentType
-        getCompartmentType(self, string sid) -> CompartmentType
-        getCompartmentType(self, string sid) -> CompartmentType
+        getCompartmentType(Model self, unsigned int n) -> CompartmentType
+        getCompartmentType(Model self, unsigned int n) -> CompartmentType
+        getCompartmentType(Model self, string sid) -> CompartmentType
+        getCompartmentType(Model self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8397,10 +8446,10 @@ class Model(SBase):
 
     def getSpeciesType(self, *args):
         """
-        getSpeciesType(self, unsigned int n) -> SpeciesType
-        getSpeciesType(self, unsigned int n) -> SpeciesType
-        getSpeciesType(self, string sid) -> SpeciesType
-        getSpeciesType(self, string sid) -> SpeciesType
+        getSpeciesType(Model self, unsigned int n) -> SpeciesType
+        getSpeciesType(Model self, unsigned int n) -> SpeciesType
+        getSpeciesType(Model self, string sid) -> SpeciesType
+        getSpeciesType(Model self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8443,10 +8492,10 @@ class Model(SBase):
 
     def getCompartment(self, *args):
         """
-        getCompartment(self, unsigned int n) -> Compartment
-        getCompartment(self, unsigned int n) -> Compartment
-        getCompartment(self, string sid) -> Compartment
-        getCompartment(self, string sid) -> Compartment
+        getCompartment(Model self, unsigned int n) -> Compartment
+        getCompartment(Model self, unsigned int n) -> Compartment
+        getCompartment(Model self, string sid) -> Compartment
+        getCompartment(Model self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8479,10 +8528,10 @@ class Model(SBase):
 
     def getSpecies(self, *args):
         """
-        getSpecies(self, unsigned int n) -> Species
-        getSpecies(self, unsigned int n) -> Species
-        getSpecies(self, string sid) -> Species
-        getSpecies(self, string sid) -> Species
+        getSpecies(Model self, unsigned int n) -> Species
+        getSpecies(Model self, unsigned int n) -> Species
+        getSpecies(Model self, string sid) -> Species
+        getSpecies(Model self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8515,10 +8564,10 @@ class Model(SBase):
 
     def getParameter(self, *args):
         """
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, string sid) -> Parameter
-        getParameter(self, string sid) -> Parameter
+        getParameter(Model self, unsigned int n) -> Parameter
+        getParameter(Model self, unsigned int n) -> Parameter
+        getParameter(Model self, string sid) -> Parameter
+        getParameter(Model self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8551,10 +8600,10 @@ class Model(SBase):
 
     def getInitialAssignment(self, *args):
         """
-        getInitialAssignment(self, unsigned int n) -> InitialAssignment
-        getInitialAssignment(self, unsigned int n) -> InitialAssignment
-        getInitialAssignment(self, string symbol) -> InitialAssignment
-        getInitialAssignment(self, string symbol) -> InitialAssignment
+        getInitialAssignment(Model self, unsigned int n) -> InitialAssignment
+        getInitialAssignment(Model self, unsigned int n) -> InitialAssignment
+        getInitialAssignment(Model self, string symbol) -> InitialAssignment
+        getInitialAssignment(Model self, string symbol) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8588,8 +8637,8 @@ class Model(SBase):
 
     def getInitialAssignmentBySymbol(self, *args):
         """
-        getInitialAssignmentBySymbol(self, string symbol) -> InitialAssignment
-        getInitialAssignmentBySymbol(self, string symbol) -> InitialAssignment
+        getInitialAssignmentBySymbol(Model self, string symbol) -> InitialAssignment
+        getInitialAssignmentBySymbol(Model self, string symbol) -> InitialAssignment
 
         Get an InitialAssignment object based on the symbol to which it
         assigns a value.
@@ -8604,10 +8653,10 @@ class Model(SBase):
 
     def getRule(self, *args):
         """
-        getRule(self, unsigned int n) -> Rule
-        getRule(self, unsigned int n) -> Rule
-        getRule(self, string variable) -> Rule
-        getRule(self, string variable) -> Rule
+        getRule(Model self, unsigned int n) -> Rule
+        getRule(Model self, unsigned int n) -> Rule
+        getRule(Model self, string variable) -> Rule
+        getRule(Model self, string variable) -> Rule
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8640,8 +8689,8 @@ class Model(SBase):
 
     def getRuleByVariable(self, *args):
         """
-        getRuleByVariable(self, string variable) -> Rule
-        getRuleByVariable(self, string variable) -> Rule
+        getRuleByVariable(Model self, string variable) -> Rule
+        getRuleByVariable(Model self, string variable) -> Rule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -8655,8 +8704,8 @@ class Model(SBase):
 
     def getAssignmentRule(self, *args):
         """
-        getAssignmentRule(self, string variable) -> AssignmentRule
-        getAssignmentRule(self, string variable) -> AssignmentRule
+        getAssignmentRule(Model self, string variable) -> AssignmentRule
+        getAssignmentRule(Model self, string variable) -> AssignmentRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -8670,8 +8719,8 @@ class Model(SBase):
 
     def getRateRule(self, *args):
         """
-        getRateRule(self, string variable) -> RateRule
-        getRateRule(self, string variable) -> RateRule
+        getRateRule(Model self, string variable) -> RateRule
+        getRateRule(Model self, string variable) -> RateRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -8685,8 +8734,8 @@ class Model(SBase):
 
     def getAssignmentRuleByVariable(self, *args):
         """
-        getAssignmentRuleByVariable(self, string variable) -> AssignmentRule
-        getAssignmentRuleByVariable(self, string variable) -> AssignmentRule
+        getAssignmentRuleByVariable(Model self, string variable) -> AssignmentRule
+        getAssignmentRuleByVariable(Model self, string variable) -> AssignmentRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -8700,8 +8749,8 @@ class Model(SBase):
 
     def getRateRuleByVariable(self, *args):
         """
-        getRateRuleByVariable(self, string variable) -> RateRule
-        getRateRuleByVariable(self, string variable) -> RateRule
+        getRateRuleByVariable(Model self, string variable) -> RateRule
+        getRateRuleByVariable(Model self, string variable) -> RateRule
 
         Get a Rule object based on the variable to which it assigns a value.
 
@@ -8715,8 +8764,8 @@ class Model(SBase):
 
     def getConstraint(self, *args):
         """
-        getConstraint(self, unsigned int n) -> Constraint
-        getConstraint(self, unsigned int n) -> Constraint
+        getConstraint(Model self, unsigned int n) -> Constraint
+        getConstraint(Model self, unsigned int n) -> Constraint
 
         Get the nth Constraint object in this Model.
 
@@ -8729,10 +8778,10 @@ class Model(SBase):
 
     def getReaction(self, *args):
         """
-        getReaction(self, unsigned int n) -> Reaction
-        getReaction(self, unsigned int n) -> Reaction
-        getReaction(self, string sid) -> Reaction
-        getReaction(self, string sid) -> Reaction
+        getReaction(Model self, unsigned int n) -> Reaction
+        getReaction(Model self, unsigned int n) -> Reaction
+        getReaction(Model self, string sid) -> Reaction
+        getReaction(Model self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8765,8 +8814,8 @@ class Model(SBase):
 
     def getSpeciesReference(self, *args):
         """
-        getSpeciesReference(self, string sid) -> SpeciesReference
-        getSpeciesReference(self, string sid) -> SpeciesReference
+        getSpeciesReference(Model self, string sid) -> SpeciesReference
+        getSpeciesReference(Model self, string sid) -> SpeciesReference
 
         Get a SpeciesReference object based on its identifier.
 
@@ -8780,8 +8829,8 @@ class Model(SBase):
 
     def getModifierSpeciesReference(self, *args):
         """
-        getModifierSpeciesReference(self, string sid) -> ModifierSpeciesReference
-        getModifierSpeciesReference(self, string sid) -> ModifierSpeciesReference
+        getModifierSpeciesReference(Model self, string sid) -> ModifierSpeciesReference
+        getModifierSpeciesReference(Model self, string sid) -> ModifierSpeciesReference
 
         Get a ModifierSpeciesReference object based on its identifier.
 
@@ -8795,10 +8844,10 @@ class Model(SBase):
 
     def getEvent(self, *args):
         """
-        getEvent(self, unsigned int n) -> Event
-        getEvent(self, unsigned int n) -> Event
-        getEvent(self, string sid) -> Event
-        getEvent(self, string sid) -> Event
+        getEvent(Model self, unsigned int n) -> Event
+        getEvent(Model self, unsigned int n) -> Event
+        getEvent(Model self, string sid) -> Event
+        getEvent(Model self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -8831,7 +8880,7 @@ class Model(SBase):
 
     def getNumFunctionDefinitions(self):
         """
-        getNumFunctionDefinitions(self) -> unsigned int
+        getNumFunctionDefinitions(Model self) -> unsigned int
 
         Get the number of FunctionDefinition objects in this Model.
 
@@ -8842,7 +8891,7 @@ class Model(SBase):
 
     def getNumUnitDefinitions(self):
         """
-        getNumUnitDefinitions(self) -> unsigned int
+        getNumUnitDefinitions(Model self) -> unsigned int
 
         Get the number of UnitDefinition objects in this Model.
 
@@ -8853,7 +8902,7 @@ class Model(SBase):
 
     def getNumCompartmentTypes(self):
         """
-        getNumCompartmentTypes(self) -> unsigned int
+        getNumCompartmentTypes(Model self) -> unsigned int
 
         Get the number of CompartmentType objects in this Model.
 
@@ -8869,7 +8918,7 @@ class Model(SBase):
 
     def getNumSpeciesTypes(self):
         """
-        getNumSpeciesTypes(self) -> unsigned int
+        getNumSpeciesTypes(Model self) -> unsigned int
 
         Get the number of SpeciesType objects in this Model.
 
@@ -8885,7 +8934,7 @@ class Model(SBase):
 
     def getNumCompartments(self):
         """
-        getNumCompartments(self) -> unsigned int
+        getNumCompartments(Model self) -> unsigned int
 
         Get the number of Compartment objects in this Model.
 
@@ -8896,7 +8945,7 @@ class Model(SBase):
 
     def getNumSpecies(self):
         """
-        getNumSpecies(self) -> unsigned int
+        getNumSpecies(Model self) -> unsigned int
 
         Get the number of Species objects in this Model.
 
@@ -8907,7 +8956,7 @@ class Model(SBase):
 
     def getNumSpeciesWithBoundaryCondition(self):
         """
-        getNumSpeciesWithBoundaryCondition(self) -> unsigned int
+        getNumSpeciesWithBoundaryCondition(Model self) -> unsigned int
 
         Get the number of Species in this Model having their
         'boundaryCondition' attribute value set to True.
@@ -8920,7 +8969,7 @@ class Model(SBase):
 
     def getNumParameters(self):
         """
-        getNumParameters(self) -> unsigned int
+        getNumParameters(Model self) -> unsigned int
 
         Get the number of Parameter objects in this Model.
 
@@ -8932,7 +8981,7 @@ class Model(SBase):
 
     def getNumInitialAssignments(self):
         """
-        getNumInitialAssignments(self) -> unsigned int
+        getNumInitialAssignments(Model self) -> unsigned int
 
         Get the number of InitialAssignment objects in this Model.
 
@@ -8943,7 +8992,7 @@ class Model(SBase):
 
     def getNumRules(self):
         """
-        getNumRules(self) -> unsigned int
+        getNumRules(Model self) -> unsigned int
 
         Get the number of Rule objects in this Model.
 
@@ -8954,7 +9003,7 @@ class Model(SBase):
 
     def getNumConstraints(self):
         """
-        getNumConstraints(self) -> unsigned int
+        getNumConstraints(Model self) -> unsigned int
 
         Get the number of Constraint objects in this Model.
 
@@ -8965,7 +9014,7 @@ class Model(SBase):
 
     def getNumReactions(self):
         """
-        getNumReactions(self) -> unsigned int
+        getNumReactions(Model self) -> unsigned int
 
         Get the number of Reaction objects in this Model.
 
@@ -8976,7 +9025,7 @@ class Model(SBase):
 
     def getNumEvents(self):
         """
-        getNumEvents(self) -> unsigned int
+        getNumEvents(Model self) -> unsigned int
 
         Get the number of Event objects in this Model.
 
@@ -8987,7 +9036,7 @@ class Model(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Model self) -> int
 
         Remove this Model from its parent SBMLDocument object.
 
@@ -9007,8 +9056,8 @@ class Model(SBase):
 
     def renameAllIds(self, *args):
         """
-        renameAllIds(self, IdentifierTransformer idTransformer, ElementFilter filter = None) -> int
-        renameAllIds(self, IdentifierTransformer idTransformer) -> int
+        renameAllIds(Model self, IdentifierTransformer idTransformer, ElementFilter filter=None) -> int
+        renameAllIds(Model self, IdentifierTransformer idTransformer) -> int
 
         Internal implementation method.
 
@@ -9017,7 +9066,7 @@ class Model(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Model self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -9045,7 +9094,7 @@ class Model(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Model self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -9074,58 +9123,58 @@ class Model(SBase):
 
     def convertL1ToL2(self):
         """
-        convertL1ToL2(self)
+        convertL1ToL2(Model self)
 
         Internal implementation method.
 
         """
         return _libsbml.Model_convertL1ToL2(self)
 
-    def convertL1ToL3(self, addDefaultUnits = True):
+    def convertL1ToL3(self, addDefaultUnits=True):
         """
-        convertL1ToL3(self, bool addDefaultUnits = True)
-        convertL1ToL3(self)
+        convertL1ToL3(Model self, bool addDefaultUnits=True)
+        convertL1ToL3(Model self)
 
         Internal implementation method.
 
         """
         return _libsbml.Model_convertL1ToL3(self, addDefaultUnits)
 
-    def convertL2ToL3(self, strict = False, addDefaultUnits = True):
+    def convertL2ToL3(self, strict=False, addDefaultUnits=True):
         """
-        convertL2ToL3(self, bool strict = False, bool addDefaultUnits = True)
-        convertL2ToL3(self, bool strict = False)
-        convertL2ToL3(self)
+        convertL2ToL3(Model self, bool strict=False, bool addDefaultUnits=True)
+        convertL2ToL3(Model self, bool strict=False)
+        convertL2ToL3(Model self)
 
         Internal implementation method.
 
         """
         return _libsbml.Model_convertL2ToL3(self, strict, addDefaultUnits)
 
-    def convertL2ToL1(self, strict = False):
+    def convertL2ToL1(self, strict=False):
         """
-        convertL2ToL1(self, bool strict = False)
-        convertL2ToL1(self)
+        convertL2ToL1(Model self, bool strict=False)
+        convertL2ToL1(Model self)
 
         Internal implementation method.
 
         """
         return _libsbml.Model_convertL2ToL1(self, strict)
 
-    def convertL3ToL1(self, strict = False):
+    def convertL3ToL1(self, strict=False):
         """
-        convertL3ToL1(self, bool strict = False)
-        convertL3ToL1(self)
+        convertL3ToL1(Model self, bool strict=False)
+        convertL3ToL1(Model self)
 
         Internal implementation method.
 
         """
         return _libsbml.Model_convertL3ToL1(self, strict)
 
-    def convertL3ToL2(self, strict = False):
+    def convertL3ToL2(self, strict=False):
         """
-        convertL3ToL2(self, bool strict = False)
-        convertL3ToL2(self)
+        convertL3ToL2(Model self, bool strict=False)
+        convertL3ToL2(Model self)
 
         Internal implementation method.
 
@@ -9134,7 +9183,7 @@ class Model(SBase):
 
     def addModifiers(self):
         """
-        addModifiers(self)
+        addModifiers(Model self)
 
         Internal implementation method.
 
@@ -9143,17 +9192,17 @@ class Model(SBase):
 
     def addConstantAttribute(self):
         """
-        addConstantAttribute(self)
+        addConstantAttribute(Model self)
 
         Internal implementation method.
 
         """
         return _libsbml.Model_addConstantAttribute(self)
 
-    def setSpatialDimensions(self, dims = 3.0):
+    def setSpatialDimensions(self, dims=3.0):
         """
-        setSpatialDimensions(self, double dims = 3.0)
-        setSpatialDimensions(self)
+        setSpatialDimensions(Model self, double dims=3.0)
+        setSpatialDimensions(Model self)
 
         Internal implementation method.
 
@@ -9162,7 +9211,7 @@ class Model(SBase):
 
     def addDefinitionsForDefaultUnits(self):
         """
-        addDefinitionsForDefaultUnits(self)
+        addDefinitionsForDefaultUnits(Model self)
 
         Internal implementation method.
 
@@ -9171,7 +9220,7 @@ class Model(SBase):
 
     def dealWithDefaultValues(self):
         """
-        dealWithDefaultValues(self)
+        dealWithDefaultValues(Model self)
 
         Internal implementation method.
 
@@ -9180,7 +9229,7 @@ class Model(SBase):
 
     def convertParametersToLocals(self, *args):
         """
-        convertParametersToLocals(self, unsigned int level, unsigned int version)
+        convertParametersToLocals(Model self, unsigned int level, unsigned int version)
 
         Internal implementation method.
 
@@ -9189,7 +9238,7 @@ class Model(SBase):
 
     def setSpeciesReferenceConstantValueAndStoichiometry(self):
         """
-        setSpeciesReferenceConstantValueAndStoichiometry(self)
+        setSpeciesReferenceConstantValueAndStoichiometry(Model self)
 
         Internal implementation method.
 
@@ -9198,7 +9247,7 @@ class Model(SBase):
 
     def removeParameterRuleUnits(self, *args):
         """
-        removeParameterRuleUnits(self, bool strict)
+        removeParameterRuleUnits(Model self, bool strict)
 
         Internal implementation method.
 
@@ -9207,7 +9256,7 @@ class Model(SBase):
 
     def convertStoichiometryMath(self):
         """
-        convertStoichiometryMath(self)
+        convertStoichiometryMath(Model self)
 
         Internal implementation method.
 
@@ -9216,17 +9265,17 @@ class Model(SBase):
 
     def assignRequiredValues(self):
         """
-        assignRequiredValues(self)
+        assignRequiredValues(Model self)
 
         Internal implementation method.
 
         """
         return _libsbml.Model_assignRequiredValues(self)
 
-    def dealWithModelUnits(self, strict = False):
+    def dealWithModelUnits(self, strict=False):
         """
-        dealWithModelUnits(self, bool strict = False)
-        dealWithModelUnits(self)
+        dealWithModelUnits(Model self, bool strict=False)
+        dealWithModelUnits(Model self)
 
         Internal implementation method.
 
@@ -9235,7 +9284,7 @@ class Model(SBase):
 
     def dealWithStoichiometry(self):
         """
-        dealWithStoichiometry(self)
+        dealWithStoichiometry(Model self)
 
         Internal implementation method.
 
@@ -9244,7 +9293,7 @@ class Model(SBase):
 
     def dealWithEvents(self, *args):
         """
-        dealWithEvents(self, bool strict)
+        dealWithEvents(Model self, bool strict)
 
         Internal implementation method.
 
@@ -9253,7 +9302,7 @@ class Model(SBase):
 
     def removeSpeciesTypes(self):
         """
-        removeSpeciesTypes(self)
+        removeSpeciesTypes(Model self)
 
         Internal implementation method.
 
@@ -9262,7 +9311,7 @@ class Model(SBase):
 
     def removeCompartmentTypes(self):
         """
-        removeCompartmentTypes(self)
+        removeCompartmentTypes(Model self)
 
         Internal implementation method.
 
@@ -9270,12 +9319,12 @@ class Model(SBase):
         return _libsbml.Model_removeCompartmentTypes(self)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(Model self)"""
         return _libsbml.Model_connectToChild(self)
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Model self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -9293,9 +9342,9 @@ class Model(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -9304,7 +9353,7 @@ class Model(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Model self) -> string
 
         Returns the XML element name of this object, which for Model, is
         always 'model'.
@@ -9316,7 +9365,7 @@ class Model(SBase):
 
     def populateListFormulaUnitsData(self):
         """
-        populateListFormulaUnitsData(self)
+        populateListFormulaUnitsData(Model self)
 
         Populates the internal list of derived units for this Model object.
 
@@ -9357,7 +9406,7 @@ class Model(SBase):
 
     def isPopulatedListFormulaUnitsData(self):
         """
-        isPopulatedListFormulaUnitsData(self) -> bool
+        isPopulatedListFormulaUnitsData(Model self) -> bool
 
         Predicate returning True if libSBML has derived units for the
         components of this model.
@@ -9382,7 +9431,7 @@ class Model(SBase):
 
     def getFormulaUnitsDataForVariable(self, *args):
         """
-        getFormulaUnitsDataForVariable(self, string sid) -> FormulaUnitsData
+        getFormulaUnitsDataForVariable(Model self, string sid) -> FormulaUnitsData *
 
         Internal implementation method.
 
@@ -9391,7 +9440,7 @@ class Model(SBase):
 
     def getFormulaUnitsDataForAssignment(self, *args):
         """
-        getFormulaUnitsDataForAssignment(self, string sid) -> FormulaUnitsData
+        getFormulaUnitsDataForAssignment(Model self, string sid) -> FormulaUnitsData *
 
         Internal implementation method.
 
@@ -9400,7 +9449,7 @@ class Model(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Model self) -> bool
 
         Predicate returning True if all the required elements for this Model
         object have been set.
@@ -9413,8 +9462,8 @@ class Model(SBase):
 
     def removeFunctionDefinition(self, *args):
         """
-        removeFunctionDefinition(self, unsigned int n) -> FunctionDefinition
-        removeFunctionDefinition(self, string sid) -> FunctionDefinition
+        removeFunctionDefinition(Model self, unsigned int n) -> FunctionDefinition
+        removeFunctionDefinition(Model self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9458,8 +9507,8 @@ class Model(SBase):
 
     def removeUnitDefinition(self, *args):
         """
-        removeUnitDefinition(self, unsigned int n) -> UnitDefinition
-        removeUnitDefinition(self, string sid) -> UnitDefinition
+        removeUnitDefinition(Model self, unsigned int n) -> UnitDefinition
+        removeUnitDefinition(Model self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9502,8 +9551,8 @@ class Model(SBase):
 
     def removeCompartmentType(self, *args):
         """
-        removeCompartmentType(self, unsigned int n) -> CompartmentType
-        removeCompartmentType(self, string sid) -> CompartmentType
+        removeCompartmentType(Model self, unsigned int n) -> CompartmentType
+        removeCompartmentType(Model self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9546,8 +9595,8 @@ class Model(SBase):
 
     def removeSpeciesType(self, *args):
         """
-        removeSpeciesType(self, unsigned int n) -> SpeciesType
-        removeSpeciesType(self, string sid) -> SpeciesType
+        removeSpeciesType(Model self, unsigned int n) -> SpeciesType
+        removeSpeciesType(Model self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9589,8 +9638,8 @@ class Model(SBase):
 
     def removeCompartment(self, *args):
         """
-        removeCompartment(self, unsigned int n) -> Compartment
-        removeCompartment(self, string sid) -> Compartment
+        removeCompartment(Model self, unsigned int n) -> Compartment
+        removeCompartment(Model self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9632,8 +9681,8 @@ class Model(SBase):
 
     def removeSpecies(self, *args):
         """
-        removeSpecies(self, unsigned int n) -> Species
-        removeSpecies(self, string sid) -> Species
+        removeSpecies(Model self, unsigned int n) -> Species
+        removeSpecies(Model self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9675,8 +9724,8 @@ class Model(SBase):
 
     def removeParameter(self, *args):
         """
-        removeParameter(self, unsigned int n) -> Parameter
-        removeParameter(self, string sid) -> Parameter
+        removeParameter(Model self, unsigned int n) -> Parameter
+        removeParameter(Model self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9718,8 +9767,8 @@ class Model(SBase):
 
     def removeInitialAssignment(self, *args):
         """
-        removeInitialAssignment(self, unsigned int n) -> InitialAssignment
-        removeInitialAssignment(self, string symbol) -> InitialAssignment
+        removeInitialAssignment(Model self, unsigned int n) -> InitialAssignment
+        removeInitialAssignment(Model self, string symbol) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9763,8 +9812,8 @@ class Model(SBase):
 
     def removeRule(self, *args):
         """
-        removeRule(self, unsigned int n) -> Rule
-        removeRule(self, string variable) -> Rule
+        removeRule(Model self, unsigned int n) -> Rule
+        removeRule(Model self, string variable) -> Rule
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9807,7 +9856,7 @@ class Model(SBase):
 
     def removeRuleByVariable(self, *args):
         """
-        removeRuleByVariable(self, string variable) -> Rule
+        removeRuleByVariable(Model self, string variable) -> Rule
 
         Removes the Rule object with the given 'variable' attribute from this
         Model  object and returns a pointer to it.
@@ -9826,7 +9875,7 @@ class Model(SBase):
 
     def removeConstraint(self, *args):
         """
-        removeConstraint(self, unsigned int n) -> Constraint
+        removeConstraint(Model self, unsigned int n) -> Constraint
 
         Removes the nth Constraint object from this Model object and returns a
         pointer to it.
@@ -9844,8 +9893,8 @@ class Model(SBase):
 
     def removeReaction(self, *args):
         """
-        removeReaction(self, unsigned int n) -> Reaction
-        removeReaction(self, string sid) -> Reaction
+        removeReaction(Model self, unsigned int n) -> Reaction
+        removeReaction(Model self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9887,8 +9936,8 @@ class Model(SBase):
 
     def removeEvent(self, *args):
         """
-        removeEvent(self, unsigned int n) -> Event
-        removeEvent(self, string sid) -> Event
+        removeEvent(Model self, unsigned int n) -> Event
+        removeEvent(Model self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -9930,7 +9979,7 @@ class Model(SBase):
 
     def appendFrom(self, *args):
         """
-        appendFrom(self, Model model) -> int
+        appendFrom(Model self, Model model) -> int
 
         Copies a given Model object's subcomponents and appends the copies to
         the appropriate places in this Model.
@@ -9959,7 +10008,7 @@ class Model(SBase):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(Model self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -9968,7 +10017,7 @@ class Model(SBase):
 
     def renameIDs(self, *args):
         """
-        renameIDs(self, SBaseList elements, IdentifierTransformer idTransformer)
+        renameIDs(Model self, SBaseList elements, IdentifierTransformer idTransformer)
 
         Internal implementation method.
 
@@ -10188,7 +10237,7 @@ class SBMLDocument(SBase):
         The default SBML Level of new SBMLDocument objects.
 
         This 'default Level' corresponds to the most recent SBML
-        specification Level available at the time libSBML version 5.12.0 was
+        specification Level available at the time libSBML version 5.13.0 was
         released.  The default Level is used by SBMLDocument if no Level is
         explicitly specified at the time of the construction of an
         SBMLDocument instance.
@@ -10220,7 +10269,7 @@ class SBMLDocument(SBase):
 
         This 'default Version' corresponds to the most recent Version within
         the most recent Level of SBML available at the time libSBML version
-        5.12.0 was released.  The default Version is used by SBMLDocument if
+        5.13.0 was released.  The default Version is used by SBMLDocument if
         no Version is explicitly specified at the time of the construction of
         an SBMLDocument instance.
 
@@ -10248,11 +10297,11 @@ class SBMLDocument(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level = 0, unsigned int version = 0) -> SBMLDocument
-        __init__(self, unsigned int level = 0) -> SBMLDocument
-        __init__(self) -> SBMLDocument
-        __init__(self, SBMLNamespaces sbmlns) -> SBMLDocument
-        __init__(self, SBMLDocument orig) -> SBMLDocument
+        __init__(SBMLDocument self, unsigned int level=0, unsigned int version=0) -> SBMLDocument
+        __init__(SBMLDocument self, unsigned int level=0) -> SBMLDocument
+        __init__(SBMLDocument self) -> SBMLDocument
+        __init__(SBMLDocument self, SBMLNamespaces sbmlns) -> SBMLDocument
+        __init__(SBMLDocument self, SBMLDocument orig) -> SBMLDocument
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -10340,7 +10389,7 @@ class SBMLDocument(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLDocument
+        clone(SBMLDocument self) -> SBMLDocument
 
         Creates and returns a deep copy of this SBMLDocument object.
 
@@ -10351,7 +10400,7 @@ class SBMLDocument(SBase):
 
     def isSetModel(self):
         """
-        isSetModel(self) -> bool
+        isSetModel(SBMLDocument self) -> bool
 
         Returns True if the Model object has been set, otherwise  returns
         False.
@@ -10363,8 +10412,8 @@ class SBMLDocument(SBase):
 
     def getModel(self, *args):
         """
-        getModel(self) -> Model
-        getModel(self) -> Model
+        getModel(SBMLDocument self) -> Model
+        getModel(SBMLDocument self) -> Model
 
         Returns the Model object stored in this SBMLDocument.
 
@@ -10383,7 +10432,7 @@ class SBMLDocument(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(SBMLDocument self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -10397,7 +10446,7 @@ class SBMLDocument(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(SBMLDocument self, string metaid) -> SBase
 
         Returns the first child element it can find with the given 'metaid',
         or itself if it has the given 'metaid', or None if no such object is
@@ -10413,7 +10462,7 @@ class SBMLDocument(SBase):
 
     def expandFunctionDefinitions(self):
         """
-        expandFunctionDefinitions(self) -> bool
+        expandFunctionDefinitions(SBMLDocument self) -> bool
 
         Removes FunctionDefinition constructs from the document and expands
         any instances of their use within <math> elements.
@@ -10441,7 +10490,7 @@ class SBMLDocument(SBase):
 
     def expandInitialAssignments(self):
         """
-        expandInitialAssignments(self) -> bool
+        expandInitialAssignments(SBMLDocument self) -> bool
 
         Removes InitialAssignment constructs from the document and replaces
         them with appropriate values.
@@ -10473,10 +10522,9 @@ class SBMLDocument(SBase):
 
     def setLevelAndVersion(self, *args):
         """
-        setLevelAndVersion(self, unsigned int level, unsigned int version, bool strict = True, 
-            bool ignorePackages = False) -> bool
-        setLevelAndVersion(self, unsigned int level, unsigned int version, bool strict = True) -> bool
-        setLevelAndVersion(self, unsigned int level, unsigned int version) -> bool
+        setLevelAndVersion(SBMLDocument self, unsigned int level, unsigned int version, bool strict=True, bool ignorePackages=False) -> bool
+        setLevelAndVersion(SBMLDocument self, unsigned int level, unsigned int version, bool strict=True) -> bool
+        setLevelAndVersion(SBMLDocument self, unsigned int level, unsigned int version) -> bool
 
         Sets the SBML Level and Version of this SBMLDocument instance,
         attempting to convert the model as needed.
@@ -10568,7 +10616,7 @@ class SBMLDocument(SBase):
 
     def updateSBMLNamespace(self, *args):
         """
-        updateSBMLNamespace(self, string package, unsigned int level, unsigned int version)
+        updateSBMLNamespace(SBMLDocument self, string package, unsigned int level, unsigned int version)
 
         Internal implementation method.
 
@@ -10577,7 +10625,7 @@ class SBMLDocument(SBase):
 
     def setModel(self, *args):
         """
-        setModel(self, Model m) -> int
+        setModel(SBMLDocument self, Model m) -> int
 
         Sets the Model for this SBMLDocument to a copy of the given Model.
 
@@ -10597,10 +10645,10 @@ class SBMLDocument(SBase):
         """
         return _libsbml.SBMLDocument_setModel(self, *args)
 
-    def createModel(self, sid = ""):
+    def createModel(self, sid=""):
         """
-        createModel(self, string sid = "") -> Model
-        createModel(self) -> Model
+        createModel(SBMLDocument self, string sid="") -> Model
+        createModel(SBMLDocument self) -> Model
 
         Creates a new Model inside this SBMLDocument, and returns a pointer to
         it.
@@ -10631,7 +10679,7 @@ class SBMLDocument(SBase):
 
     def setLocationURI(self, *args):
         """
-        setLocationURI(self, string uri)
+        setLocationURI(SBMLDocument self, string uri)
 
         Sets the location of this SBMLDocument.
 
@@ -10643,8 +10691,8 @@ class SBMLDocument(SBase):
 
     def getLocationURI(self, *args):
         """
-        getLocationURI(self) -> string
-        getLocationURI(self) -> string
+        getLocationURI(SBMLDocument self) -> string
+        getLocationURI(SBMLDocument self) -> string
 
         Get the location of this SBMLDocument.
 
@@ -10657,7 +10705,7 @@ class SBMLDocument(SBase):
 
     def setConsistencyChecks(self, *args):
         """
-        setConsistencyChecks(self, SBMLErrorCategory_t category, bool apply)
+        setConsistencyChecks(SBMLDocument self, SBMLErrorCategory_t category, bool apply)
 
         Controls the consistency checks that are performed when
         SBMLDocument.checkConsistency() is called.
@@ -10742,7 +10790,7 @@ class SBMLDocument(SBase):
 
     def setConsistencyChecksForConversion(self, *args):
         """
-        setConsistencyChecksForConversion(self, SBMLErrorCategory_t category, bool apply)
+        setConsistencyChecksForConversion(SBMLDocument self, SBMLErrorCategory_t category, bool apply)
 
         Controls the consistency checks that are performed when
         SBMLDocument.setLevelAndVersion() is called.
@@ -10826,7 +10874,7 @@ class SBMLDocument(SBase):
 
     def checkConsistency(self):
         """
-        checkConsistency(self) -> unsigned int
+        checkConsistency(SBMLDocument self) -> unsigned int
 
         Performs consistency checking and validation on this SBML document.
 
@@ -10845,7 +10893,7 @@ class SBMLDocument(SBase):
 
     def checkConsistencyWithStrictUnits(self):
         """
-        checkConsistencyWithStrictUnits(self) -> unsigned int
+        checkConsistencyWithStrictUnits(SBMLDocument self) -> unsigned int
 
         Performs consistency checking and validation on this SBML document
         using the ultra strict units validator that assumes that there are no
@@ -10866,7 +10914,7 @@ class SBMLDocument(SBase):
 
     def validateSBML(self):
         """
-        validateSBML(self) -> unsigned int
+        validateSBML(SBMLDocument self) -> unsigned int
 
         Performs consistency checking and validation on this SBML document.
 
@@ -10891,7 +10939,7 @@ class SBMLDocument(SBase):
 
     def checkInternalConsistency(self):
         """
-        checkInternalConsistency(self) -> unsigned int
+        checkInternalConsistency(SBMLDocument self) -> unsigned int
 
         Performs consistency checking on libSBML's internal representation of
         an SBML Model.
@@ -10914,9 +10962,10 @@ class SBMLDocument(SBase):
         """
         return _libsbml.SBMLDocument_checkInternalConsistency(self)
 
-    def checkL1Compatibility(self):
+    def checkL1Compatibility(self, inConversion=False):
         """
-        checkL1Compatibility(self) -> unsigned int
+        checkL1Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL1Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 1 and can be converted to
@@ -10928,11 +10977,12 @@ class SBMLDocument(SBase):
         Returns the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL1Compatibility(self)
+        return _libsbml.SBMLDocument_checkL1Compatibility(self, inConversion)
 
-    def checkL2v1Compatibility(self):
+    def checkL2v1Compatibility(self, inConversion=False):
         """
-        checkL2v1Compatibility(self) -> unsigned int
+        checkL2v1Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL2v1Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 1 and can be
@@ -10944,11 +10994,12 @@ class SBMLDocument(SBase):
         Returns the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL2v1Compatibility(self)
+        return _libsbml.SBMLDocument_checkL2v1Compatibility(self, inConversion)
 
-    def checkL2v2Compatibility(self):
+    def checkL2v2Compatibility(self, inConversion=False):
         """
-        checkL2v2Compatibility(self) -> unsigned int
+        checkL2v2Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL2v2Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 2 and can be
@@ -10960,11 +11011,12 @@ class SBMLDocument(SBase):
         Returns the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL2v2Compatibility(self)
+        return _libsbml.SBMLDocument_checkL2v2Compatibility(self, inConversion)
 
-    def checkL2v3Compatibility(self):
+    def checkL2v3Compatibility(self, inConversion=False):
         """
-        checkL2v3Compatibility(self) -> unsigned int
+        checkL2v3Compatibility(SBMLDocument self, bool inConversion=False) -> unsigned int
+        checkL2v3Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 3 and can be
@@ -10976,11 +11028,11 @@ class SBMLDocument(SBase):
         Returns the number of failed checks (errors) encountered.
 
         """
-        return _libsbml.SBMLDocument_checkL2v3Compatibility(self)
+        return _libsbml.SBMLDocument_checkL2v3Compatibility(self, inConversion)
 
     def checkL2v4Compatibility(self):
         """
-        checkL2v4Compatibility(self) -> unsigned int
+        checkL2v4Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 2 Version 4 and can be
@@ -10996,7 +11048,7 @@ class SBMLDocument(SBase):
 
     def checkL3v1Compatibility(self):
         """
-        checkL3v1Compatibility(self) -> unsigned int
+        checkL3v1Compatibility(SBMLDocument self) -> unsigned int
 
         Performs a set of consistency checks on the document to establish
         whether it is compatible with SBML Level 3 Version 1 and can be
@@ -11012,7 +11064,7 @@ class SBMLDocument(SBase):
 
     def getError(self, *args):
         """
-        getError(self, unsigned int n) -> SBMLError
+        getError(SBMLDocument self, unsigned int n) -> SBMLError
 
         Returns the nth error or warning encountered during parsing,
         consistency checking, or attempted translation of this model.
@@ -11033,7 +11085,7 @@ class SBMLDocument(SBase):
 
     def getErrorWithSeverity(self, *args):
         """
-        getErrorWithSeverity(self, unsigned int n, unsigned int severity) -> SBMLError
+        getErrorWithSeverity(SBMLDocument self, unsigned int n, unsigned int severity) -> SBMLError
 
         Returns the nth error or warning with the given severity encountered
         during parsing, consistency checking, or attempted translation of this
@@ -11052,8 +11104,8 @@ class SBMLDocument(SBase):
 
     def getNumErrors(self, *args):
         """
-        getNumErrors(self) -> unsigned int
-        getNumErrors(self, unsigned int severity) -> unsigned int
+        getNumErrors(SBMLDocument self) -> unsigned int
+        getNumErrors(SBMLDocument self, unsigned int severity) -> unsigned int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -11078,9 +11130,9 @@ class SBMLDocument(SBase):
 
     def printErrors(self, *args):
         """
-        printErrors(self, ostream stream = cerr)
-        printErrors(self)
-        printErrors(self, ostream stream, unsigned int severity)
+        printErrors(SBMLDocument self, ostream stream=cerr)
+        printErrors(SBMLDocument self)
+        printErrors(SBMLDocument self, ostream stream, unsigned int severity)
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -11115,12 +11167,12 @@ class SBMLDocument(SBase):
         return _libsbml.SBMLDocument_printErrors(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(SBMLDocument self)"""
         return _libsbml.SBMLDocument_connectToChild(self)
 
     def convert(self, *args):
         """
-        convert(self, ConversionProperties props) -> int
+        convert(SBMLDocument self, ConversionProperties props) -> int
 
         Converts this document using the converter that best matches the given
         conversion properties.
@@ -11141,7 +11193,7 @@ class SBMLDocument(SBase):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(SBMLDocument self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -11150,7 +11202,7 @@ class SBMLDocument(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SBMLDocument self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -11168,9 +11220,9 @@ class SBMLDocument(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also SBMLDocument.getElementName(), getPackageName().
 
@@ -11179,7 +11231,7 @@ class SBMLDocument(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SBMLDocument self) -> string
 
         Returns the XML element name of this object, which for SBMLDocument,
         is always 'sbml'.
@@ -11191,8 +11243,8 @@ class SBMLDocument(SBase):
 
     def getErrorLog(self, *args):
         """
-        getErrorLog(self) -> SBMLErrorLog
-        getErrorLog(self) -> SBMLErrorLog
+        getErrorLog(SBMLDocument self) -> SBMLErrorLog
+        getErrorLog(SBMLDocument self) -> SBMLErrorLog
 
         Returns the list of errors or warnings logged during parsing,
         consistency checking, or attempted translation of this model.
@@ -11206,7 +11258,7 @@ class SBMLDocument(SBase):
 
     def getNamespaces(self):
         """
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(SBMLDocument self) -> XMLNamespaces
 
         Returns a list of XML Namespaces associated with the XML content of
         this SBML document.
@@ -11218,7 +11270,7 @@ class SBMLDocument(SBase):
 
     def enableDefaultNS(self, *args):
         """
-        enableDefaultNS(self, string package, bool flag) -> int
+        enableDefaultNS(SBMLDocument self, string package, bool flag) -> int
 
         Set/unset default namespace to each top-level element defined in the
         given package extension.
@@ -11243,7 +11295,7 @@ class SBMLDocument(SBase):
 
     def isEnabledDefaultNS(self, *args):
         """
-        isEnabledDefaultNS(self, string package) -> bool
+        isEnabledDefaultNS(SBMLDocument self, string package) -> bool
 
         Returns True if a default namespace is added to each top-level element
         defined in the given package extension, otherwise returns False.
@@ -11259,7 +11311,7 @@ class SBMLDocument(SBase):
 
     def setPackageRequired(self, *args):
         """
-        setPackageRequired(self, string package, bool flag) -> int
+        setPackageRequired(SBMLDocument self, string package, bool flag) -> int
 
         Sets the required attribute value of the given package extension.
 
@@ -11283,7 +11335,7 @@ class SBMLDocument(SBase):
 
     def getPackageRequired(self, *args):
         """
-        getPackageRequired(self, string package) -> bool
+        getPackageRequired(SBMLDocument self, string package) -> bool
 
         Returns the required attribute of the given package extension.
 
@@ -11301,7 +11353,7 @@ class SBMLDocument(SBase):
 
     def isSetPackageRequired(self, *args):
         """
-        isSetPackageRequired(self, string package) -> bool
+        isSetPackageRequired(SBMLDocument self, string package) -> bool
 
         Returns True if the required attribute of the given package extension
         is defined, otherwise returns False.
@@ -11319,7 +11371,7 @@ class SBMLDocument(SBase):
 
     def isIgnoredPackage(self, *args):
         """
-        isIgnoredPackage(self, string pkgURI) -> bool
+        isIgnoredPackage(SBMLDocument self, string pkgURI) -> bool
 
         Returns True if the given package extension is one of an ignored
         packages, otherwise returns False.
@@ -11337,7 +11389,7 @@ class SBMLDocument(SBase):
 
     def isDisabledIgnoredPackage(self, *args):
         """
-        isDisabledIgnoredPackage(self, string pkgURI) -> bool
+        isDisabledIgnoredPackage(SBMLDocument self, string pkgURI) -> bool
 
         Returns True if the given package extension is one of an ignored
         packages that has been disabled, otherwise returns False.
@@ -11357,7 +11409,7 @@ class SBMLDocument(SBase):
 
     def setPkgRequired(self, *args):
         """
-        setPkgRequired(self, string package, bool flag) -> int
+        setPkgRequired(SBMLDocument self, string package, bool flag) -> int
 
         Sets the value of the required attribute for the given package.
 
@@ -11382,7 +11434,7 @@ class SBMLDocument(SBase):
 
     def getPkgRequired(self, *args):
         """
-        getPkgRequired(self, string package) -> bool
+        getPkgRequired(SBMLDocument self, string package) -> bool
 
         Returns the required attribute of the given package extension.
 
@@ -11402,7 +11454,7 @@ class SBMLDocument(SBase):
 
     def isSetPkgRequired(self, *args):
         """
-        isSetPkgRequired(self, string package) -> bool
+        isSetPkgRequired(SBMLDocument self, string package) -> bool
 
         Returns True if the required attribute of the given package extension
         is defined, otherwise returns False.
@@ -11422,7 +11474,7 @@ class SBMLDocument(SBase):
 
     def isIgnoredPkg(self, *args):
         """
-        isIgnoredPkg(self, string pkgURI) -> bool
+        isIgnoredPkg(SBMLDocument self, string pkgURI) -> bool
 
         Returns True if the given package extension is one of ignored
         packages, otherwise returns False.
@@ -11441,7 +11493,7 @@ class SBMLDocument(SBase):
 
     def getApplicableValidators(self):
         """
-        getApplicableValidators(self) -> unsigned char
+        getApplicableValidators(SBMLDocument self) -> unsigned char
 
         Internal implementation method.
 
@@ -11450,7 +11502,7 @@ class SBMLDocument(SBase):
 
     def getConversionValidators(self):
         """
-        getConversionValidators(self) -> unsigned char
+        getConversionValidators(SBMLDocument self) -> unsigned char
 
         Internal implementation method.
 
@@ -11459,7 +11511,7 @@ class SBMLDocument(SBase):
 
     def setApplicableValidators(self, *args):
         """
-        setApplicableValidators(self, unsigned char appl)
+        setApplicableValidators(SBMLDocument self, unsigned char appl)
 
         Internal implementation method.
 
@@ -11468,7 +11520,7 @@ class SBMLDocument(SBase):
 
     def setConversionValidators(self, *args):
         """
-        setConversionValidators(self, unsigned char appl)
+        setConversionValidators(SBMLDocument self, unsigned char appl)
 
         Internal implementation method.
 
@@ -11477,7 +11529,7 @@ class SBMLDocument(SBase):
 
     def getNumValidators(self):
         """
-        getNumValidators(self) -> unsigned int
+        getNumValidators(SBMLDocument self) -> unsigned int
 
         Internal implementation method.
 
@@ -11486,7 +11538,7 @@ class SBMLDocument(SBase):
 
     def clearValidators(self):
         """
-        clearValidators(self) -> int
+        clearValidators(SBMLDocument self) -> int
 
         Internal implementation method.
 
@@ -11495,7 +11547,7 @@ class SBMLDocument(SBase):
 
     def addValidator(self, *args):
         """
-        addValidator(self, SBMLValidator validator) -> int
+        addValidator(SBMLDocument self, SBMLValidator validator) -> int
 
         Internal implementation method.
 
@@ -11504,7 +11556,7 @@ class SBMLDocument(SBase):
 
     def getValidator(self, *args):
         """
-        getValidator(self, unsigned int index) -> SBMLValidator
+        getValidator(SBMLDocument self, unsigned int index) -> SBMLValidator
 
         Internal implementation method.
 
@@ -11513,7 +11565,7 @@ class SBMLDocument(SBase):
 
     def addUnknownPackageRequired(self, *args):
         """
-        addUnknownPackageRequired(self, string pkgURI, string prefix, bool flag) -> int
+        addUnknownPackageRequired(SBMLDocument self, string pkgURI, string prefix, bool flag) -> int
 
         Internal implementation method.
 
@@ -11522,7 +11574,7 @@ class SBMLDocument(SBase):
 
     def hasUnknownPackage(self, *args):
         """
-        hasUnknownPackage(self, string pkgURI) -> bool
+        hasUnknownPackage(SBMLDocument self, string pkgURI) -> bool
 
         Internal implementation method.
 
@@ -11531,7 +11583,7 @@ class SBMLDocument(SBase):
 
     def getNumUnknownPackages(self):
         """
-        getNumUnknownPackages(self) -> int
+        getNumUnknownPackages(SBMLDocument self) -> int
 
         Internal implementation method.
 
@@ -11540,7 +11592,7 @@ class SBMLDocument(SBase):
 
     def getUnknownPackageURI(self, *args):
         """
-        getUnknownPackageURI(self, int index) -> string
+        getUnknownPackageURI(SBMLDocument self, int index) -> string
 
         Internal implementation method.
 
@@ -11549,7 +11601,7 @@ class SBMLDocument(SBase):
 
     def getUnknownPackagePrefix(self, *args):
         """
-        getUnknownPackagePrefix(self, int index) -> string
+        getUnknownPackagePrefix(SBMLDocument self, int index) -> string
 
         Internal implementation method.
 
@@ -11566,7 +11618,7 @@ def SBMLDocument_getDefaultLevel():
     The default SBML Level of new SBMLDocument objects.
 
     This 'default Level' corresponds to the most recent SBML
-    specification Level available at the time libSBML version 5.12.0 was
+    specification Level available at the time libSBML version 5.13.0 was
     released.  The default Level is used by SBMLDocument if no Level is
     explicitly specified at the time of the construction of an
     SBMLDocument instance.
@@ -11596,7 +11648,7 @@ def SBMLDocument_getDefaultVersion():
 
     This 'default Version' corresponds to the most recent Version within
     the most recent Level of SBML available at the time libSBML version
-    5.12.0 was released.  The default Version is used by SBMLDocument if
+    5.13.0 was released.  The default Version is used by SBMLDocument if
     no Version is explicitly specified at the time of the construction of
     an SBMLDocument instance.
 
@@ -11701,9 +11753,9 @@ class FunctionDefinition(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> FunctionDefinition
-        __init__(self, SBMLNamespaces sbmlns) -> FunctionDefinition
-        __init__(self, FunctionDefinition orig) -> FunctionDefinition
+        __init__(FunctionDefinition self, unsigned int level, unsigned int version) -> FunctionDefinition
+        __init__(FunctionDefinition self, SBMLNamespaces sbmlns) -> FunctionDefinition
+        __init__(FunctionDefinition self, FunctionDefinition orig) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -11796,7 +11848,7 @@ class FunctionDefinition(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> FunctionDefinition
+        clone(FunctionDefinition self) -> FunctionDefinition
 
         Creates and returns a deep copy of this FunctionDefinition object.
 
@@ -11807,7 +11859,7 @@ class FunctionDefinition(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(FunctionDefinition self) -> string
 
         Returns the value of the 'id' attribute of this FunctionDefinition.
 
@@ -11818,7 +11870,7 @@ class FunctionDefinition(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(FunctionDefinition self) -> string
 
         Returns the value of the 'name' attribute of this FunctionDefinition.
 
@@ -11829,7 +11881,7 @@ class FunctionDefinition(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(FunctionDefinition self) -> ASTNode
 
         Get the mathematical formula of this FunctionDefinition.
 
@@ -11841,7 +11893,7 @@ class FunctionDefinition(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(FunctionDefinition self) -> bool
 
         Predicate returning True if this FunctionDefinition's 'id' attribute
         is set.
@@ -11854,7 +11906,7 @@ class FunctionDefinition(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(FunctionDefinition self) -> bool
 
         Predicate returning True if this FunctionDefinition's 'name' attribute
         is set.
@@ -11867,7 +11919,7 @@ class FunctionDefinition(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(FunctionDefinition self) -> bool
 
         Predicate returning True if this FunctionDefinition's 'math'
         subelement contains a value.
@@ -11880,7 +11932,7 @@ class FunctionDefinition(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(FunctionDefinition self, string sid) -> int
 
         Sets the value of the 'id' attribute of this FunctionDefinition.
 
@@ -11921,7 +11973,7 @@ class FunctionDefinition(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(FunctionDefinition self, string name) -> int
 
         Sets the value of the 'name' attribute of this FunctionDefinition.
 
@@ -11941,7 +11993,7 @@ class FunctionDefinition(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(FunctionDefinition self, ASTNode math) -> int
 
         Sets the 'math' subelement of this FunctionDefinition to the Abstract
         Syntax Tree given in 'math'.
@@ -11961,7 +12013,7 @@ class FunctionDefinition(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(FunctionDefinition self) -> int
 
         Unsets the value of the 'name' attribute of this FunctionDefinition.
 
@@ -11977,8 +12029,8 @@ class FunctionDefinition(SBase):
 
     def getArgument(self, *args):
         """
-        getArgument(self, unsigned int n) -> ASTNode
-        getArgument(self, string name) -> ASTNode
+        getArgument(FunctionDefinition self, unsigned int n) -> ASTNode
+        getArgument(FunctionDefinition self, string name) -> ASTNode
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -12018,8 +12070,8 @@ class FunctionDefinition(SBase):
 
     def getBody(self, *args):
         """
-        getBody(self) -> ASTNode
-        getBody(self) -> ASTNode
+        getBody(FunctionDefinition self) -> ASTNode
+        getBody(FunctionDefinition self) -> ASTNode
 
         Get the mathematical expression that is the body of this
         FunctionDefinition object.
@@ -12032,7 +12084,7 @@ class FunctionDefinition(SBase):
 
     def isSetBody(self):
         """
-        isSetBody(self) -> bool
+        isSetBody(FunctionDefinition self) -> bool
 
         Predicate returning True if the body of this FunctionDefinition has
         set.
@@ -12045,7 +12097,7 @@ class FunctionDefinition(SBase):
 
     def getNumArguments(self):
         """
-        getNumArguments(self) -> unsigned int
+        getNumArguments(FunctionDefinition self) -> unsigned int
 
         Get the number of arguments (bound variables) taken by this
         FunctionDefinition.
@@ -12058,7 +12110,7 @@ class FunctionDefinition(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(FunctionDefinition self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -12077,9 +12129,9 @@ class FunctionDefinition(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -12088,7 +12140,7 @@ class FunctionDefinition(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(FunctionDefinition self) -> string
 
         Returns the XML element name of this object, which for
         FunctionDefinition, is always 'functionDefinition'.
@@ -12100,7 +12152,7 @@ class FunctionDefinition(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(FunctionDefinition self) -> bool
 
         Predicate returning True if all the required attributes for this
         FunctionDefinition object have been set.
@@ -12117,7 +12169,7 @@ class FunctionDefinition(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(FunctionDefinition self) -> bool
 
         Predicate returning True if all the required elements for this
         FunctionDefinition object have been set.
@@ -12136,7 +12188,7 @@ class FunctionDefinition(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(FunctionDefinition self, string oldid, string newid)
 
         Renames all the UnitSIdRef attributes on this element.
 
@@ -12178,46 +12230,6 @@ class ListOfFunctionDefinitions(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -12242,8 +12254,8 @@ class ListOfFunctionDefinitions(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfFunctionDefinitions
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfFunctionDefinitions
+        __init__(ListOfFunctionDefinitions self, unsigned int level, unsigned int version) -> ListOfFunctionDefinitions
+        __init__(ListOfFunctionDefinitions self, SBMLNamespaces sbmlns) -> ListOfFunctionDefinitions
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -12324,7 +12336,7 @@ class ListOfFunctionDefinitions(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfFunctionDefinitions
+        clone(ListOfFunctionDefinitions self) -> ListOfFunctionDefinitions
 
         Creates and returns a deep copy of this ListOfFunctionDefinitions
         object.
@@ -12336,7 +12348,7 @@ class ListOfFunctionDefinitions(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfFunctionDefinitions self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., FunctionDefinition objects, if the list is non-empty).
@@ -12360,7 +12372,7 @@ class ListOfFunctionDefinitions(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfFunctionDefinitions self) -> string
 
         Returns the XML element name of this object.
 
@@ -12374,10 +12386,10 @@ class ListOfFunctionDefinitions(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> FunctionDefinition
-        get(self, unsigned int n) -> FunctionDefinition
-        get(self, string sid) -> FunctionDefinition
-        get(self, string sid) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, unsigned int n) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, unsigned int n) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, string sid) -> FunctionDefinition
+        get(ListOfFunctionDefinitions self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -12400,8 +12412,8 @@ class ListOfFunctionDefinitions(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> FunctionDefinition
-        remove(self, string sid) -> FunctionDefinition
+        remove(ListOfFunctionDefinitions self, unsigned int n) -> FunctionDefinition
+        remove(ListOfFunctionDefinitions self, string sid) -> FunctionDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -12514,7 +12526,7 @@ def UnitKind_equals(*args):
 
 def UnitKind_forName(*args):
   """
-    UnitKind_forName(char name) -> UnitKind_t
+    UnitKind_forName(char const * name) -> UnitKind_t
 
     Converts a text string naming a kind of unit to its corresponding
     libSBML UNIT_KIND_ constant/enumeration value.
@@ -12536,7 +12548,7 @@ def UnitKind_forName(*args):
 
 def UnitKind_toString(*args):
   """
-    UnitKind_toString(UnitKind_t uk) -> char
+    UnitKind_toString(UnitKind_t uk) -> char const *
 
     Converts a unit code to a text string equivalent.
 
@@ -12560,7 +12572,7 @@ def UnitKind_toString(*args):
 
 def UnitKind_isValidUnitKindString(*args):
   """
-    UnitKind_isValidUnitKindString(char str, unsigned int level, unsigned int version) -> int
+    UnitKind_isValidUnitKindString(char const * str, unsigned int level, unsigned int version) -> int
 
     Predicate for testing whether a given string corresponds to a
     predefined libSBML unit code.
@@ -12727,9 +12739,9 @@ class Unit(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Unit
-        __init__(self, SBMLNamespaces sbmlns) -> Unit
-        __init__(self, Unit orig) -> Unit
+        __init__(Unit self, unsigned int level, unsigned int version) -> Unit
+        __init__(Unit self, SBMLNamespaces sbmlns) -> Unit
+        __init__(Unit self, Unit orig) -> Unit
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -12820,7 +12832,7 @@ class Unit(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Unit
+        clone(Unit self) -> Unit
 
         Creates and returns a deep copy of this Unit object.
 
@@ -12831,7 +12843,7 @@ class Unit(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Unit self)
 
         Initializes the fields of this Unit object to 'typical' default
         values.
@@ -12853,7 +12865,7 @@ class Unit(SBase):
 
     def getKind(self):
         """
-        getKind(self) -> UnitKind_t
+        getKind(Unit self) -> UnitKind_t
 
         Returns the 'kind' of Unit this is.
 
@@ -12866,7 +12878,7 @@ class Unit(SBase):
 
     def getExponent(self):
         """
-        getExponent(self) -> int
+        getExponent(Unit self) -> int
 
         Returns the value of the 'exponent' attribute of this unit.
 
@@ -12877,7 +12889,7 @@ class Unit(SBase):
 
     def getExponentAsDouble(self):
         """
-        getExponentAsDouble(self) -> double
+        getExponentAsDouble(Unit self) -> double
 
         Returns the value of the 'exponent' attribute of this unit.
 
@@ -12888,7 +12900,7 @@ class Unit(SBase):
 
     def getScale(self):
         """
-        getScale(self) -> int
+        getScale(Unit self) -> int
 
         Returns the value of the 'scale' attribute of this unit.
 
@@ -12899,7 +12911,7 @@ class Unit(SBase):
 
     def getMultiplier(self):
         """
-        getMultiplier(self) -> double
+        getMultiplier(Unit self) -> double
 
         Returns the value of the 'multiplier' attribute of this Unit.
 
@@ -12910,7 +12922,7 @@ class Unit(SBase):
 
     def getOffset(self):
         """
-        getOffset(self) -> double
+        getOffset(Unit self) -> double
 
         Returns the value of the 'offset' attribute of this Unit.
 
@@ -12932,7 +12944,7 @@ class Unit(SBase):
 
     def isAmpere(self):
         """
-        isAmpere(self) -> bool
+        isAmpere(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind ampere.
 
@@ -12943,7 +12955,7 @@ class Unit(SBase):
 
     def isAvogadro(self):
         """
-        isAvogadro(self) -> bool
+        isAvogadro(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind avogadro.
 
@@ -12959,7 +12971,7 @@ class Unit(SBase):
 
     def isBecquerel(self):
         """
-        isBecquerel(self) -> bool
+        isBecquerel(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind becquerel
 
@@ -12970,7 +12982,7 @@ class Unit(SBase):
 
     def isCandela(self):
         """
-        isCandela(self) -> bool
+        isCandela(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind candela
 
@@ -12981,7 +12993,7 @@ class Unit(SBase):
 
     def isCelsius(self):
         """
-        isCelsius(self) -> bool
+        isCelsius(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind Celsius
 
@@ -13000,7 +13012,7 @@ class Unit(SBase):
 
     def isCoulomb(self):
         """
-        isCoulomb(self) -> bool
+        isCoulomb(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind coulomb
 
@@ -13011,7 +13023,7 @@ class Unit(SBase):
 
     def isDimensionless(self):
         """
-        isDimensionless(self) -> bool
+        isDimensionless(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind dimensionless.
 
@@ -13024,7 +13036,7 @@ class Unit(SBase):
 
     def isFarad(self):
         """
-        isFarad(self) -> bool
+        isFarad(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind farad
 
@@ -13035,7 +13047,7 @@ class Unit(SBase):
 
     def isGram(self):
         """
-        isGram(self) -> bool
+        isGram(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind gram
 
@@ -13046,7 +13058,7 @@ class Unit(SBase):
 
     def isGray(self):
         """
-        isGray(self) -> bool
+        isGray(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind gray
 
@@ -13057,7 +13069,7 @@ class Unit(SBase):
 
     def isHenry(self):
         """
-        isHenry(self) -> bool
+        isHenry(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind henry
 
@@ -13068,7 +13080,7 @@ class Unit(SBase):
 
     def isHertz(self):
         """
-        isHertz(self) -> bool
+        isHertz(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind hertz
 
@@ -13079,7 +13091,7 @@ class Unit(SBase):
 
     def isItem(self):
         """
-        isItem(self) -> bool
+        isItem(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind item
 
@@ -13090,7 +13102,7 @@ class Unit(SBase):
 
     def isJoule(self):
         """
-        isJoule(self) -> bool
+        isJoule(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind joule
 
@@ -13101,7 +13113,7 @@ class Unit(SBase):
 
     def isKatal(self):
         """
-        isKatal(self) -> bool
+        isKatal(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind katal
 
@@ -13112,7 +13124,7 @@ class Unit(SBase):
 
     def isKelvin(self):
         """
-        isKelvin(self) -> bool
+        isKelvin(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind kelvin
 
@@ -13123,7 +13135,7 @@ class Unit(SBase):
 
     def isKilogram(self):
         """
-        isKilogram(self) -> bool
+        isKilogram(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind kilogram
 
@@ -13134,7 +13146,7 @@ class Unit(SBase):
 
     def isLitre(self):
         """
-        isLitre(self) -> bool
+        isLitre(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind litre
 
@@ -13146,7 +13158,7 @@ class Unit(SBase):
 
     def isLumen(self):
         """
-        isLumen(self) -> bool
+        isLumen(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind lumen
 
@@ -13157,7 +13169,7 @@ class Unit(SBase):
 
     def isLux(self):
         """
-        isLux(self) -> bool
+        isLux(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind lux
 
@@ -13168,7 +13180,7 @@ class Unit(SBase):
 
     def isMetre(self):
         """
-        isMetre(self) -> bool
+        isMetre(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind metre
 
@@ -13180,7 +13192,7 @@ class Unit(SBase):
 
     def isMole(self):
         """
-        isMole(self) -> bool
+        isMole(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind mole
 
@@ -13191,7 +13203,7 @@ class Unit(SBase):
 
     def isNewton(self):
         """
-        isNewton(self) -> bool
+        isNewton(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind newton
 
@@ -13202,7 +13214,7 @@ class Unit(SBase):
 
     def isOhm(self):
         """
-        isOhm(self) -> bool
+        isOhm(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind ohm
 
@@ -13213,7 +13225,7 @@ class Unit(SBase):
 
     def isPascal(self):
         """
-        isPascal(self) -> bool
+        isPascal(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind pascal
 
@@ -13224,7 +13236,7 @@ class Unit(SBase):
 
     def isRadian(self):
         """
-        isRadian(self) -> bool
+        isRadian(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind radian
 
@@ -13235,7 +13247,7 @@ class Unit(SBase):
 
     def isSecond(self):
         """
-        isSecond(self) -> bool
+        isSecond(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind second
 
@@ -13246,7 +13258,7 @@ class Unit(SBase):
 
     def isSiemens(self):
         """
-        isSiemens(self) -> bool
+        isSiemens(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind siemens
 
@@ -13257,7 +13269,7 @@ class Unit(SBase):
 
     def isSievert(self):
         """
-        isSievert(self) -> bool
+        isSievert(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind sievert
 
@@ -13268,7 +13280,7 @@ class Unit(SBase):
 
     def isSteradian(self):
         """
-        isSteradian(self) -> bool
+        isSteradian(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind steradian
 
@@ -13279,7 +13291,7 @@ class Unit(SBase):
 
     def isTesla(self):
         """
-        isTesla(self) -> bool
+        isTesla(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind tesla
 
@@ -13290,7 +13302,7 @@ class Unit(SBase):
 
     def isVolt(self):
         """
-        isVolt(self) -> bool
+        isVolt(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind volt
 
@@ -13301,7 +13313,7 @@ class Unit(SBase):
 
     def isWatt(self):
         """
-        isWatt(self) -> bool
+        isWatt(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind watt
 
@@ -13312,7 +13324,7 @@ class Unit(SBase):
 
     def isWeber(self):
         """
-        isWeber(self) -> bool
+        isWeber(Unit self) -> bool
 
         Predicate for testing whether this Unit is of the kind weber
 
@@ -13323,7 +13335,7 @@ class Unit(SBase):
 
     def isSetKind(self):
         """
-        isSetKind(self) -> bool
+        isSetKind(Unit self) -> bool
 
         Predicate to test whether the 'kind' attribute of this Unit is set.
 
@@ -13335,7 +13347,7 @@ class Unit(SBase):
 
     def isSetExponent(self):
         """
-        isSetExponent(self) -> bool
+        isSetExponent(Unit self) -> bool
 
         Predicate to test whether the 'exponent' attribute of this Unit  is
         set.
@@ -13348,7 +13360,7 @@ class Unit(SBase):
 
     def isSetScale(self):
         """
-        isSetScale(self) -> bool
+        isSetScale(Unit self) -> bool
 
         Predicate to test whether the 'scale' attribute of this Unit  is set.
 
@@ -13360,7 +13372,7 @@ class Unit(SBase):
 
     def isSetMultiplier(self):
         """
-        isSetMultiplier(self) -> bool
+        isSetMultiplier(Unit self) -> bool
 
         Predicate to test whether the 'multiplier' attribute of this Unit  is
         set.
@@ -13373,7 +13385,7 @@ class Unit(SBase):
 
     def isSetOffset(self):
         """
-        isSetOffset(self) -> bool
+        isSetOffset(Unit self) -> bool
 
         Predicate to test whether the 'offset' attribute of this Unit  is set.
 
@@ -13396,7 +13408,7 @@ class Unit(SBase):
 
     def setKind(self, *args):
         """
-        setKind(self, UnitKind_t kind) -> int
+        setKind(Unit self, UnitKind_t kind) -> int
 
         Sets the 'kind' attribute value of this Unit.
 
@@ -13415,8 +13427,8 @@ class Unit(SBase):
 
     def setExponent(self, *args):
         """
-        setExponent(self, int value) -> int
-        setExponent(self, double value) -> int
+        setExponent(Unit self, int value) -> int
+        setExponent(Unit self, double value) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -13458,7 +13470,7 @@ class Unit(SBase):
 
     def setScale(self, *args):
         """
-        setScale(self, int value) -> int
+        setScale(Unit self, int value) -> int
 
         Sets the 'scale' attribute value of this Unit.
 
@@ -13475,7 +13487,7 @@ class Unit(SBase):
 
     def setMultiplier(self, *args):
         """
-        setMultiplier(self, double value) -> int
+        setMultiplier(Unit self, double value) -> int
 
         Sets the 'multipler' attribute value of this Unit.
 
@@ -13494,7 +13506,7 @@ class Unit(SBase):
 
     def setOffset(self, *args):
         """
-        setOffset(self, double value) -> int
+        setOffset(Unit self, double value) -> int
 
         Sets the 'offset' attribute value of this Unit.
 
@@ -13524,7 +13536,7 @@ class Unit(SBase):
 
     def unsetKind(self):
         """
-        unsetKind(self) -> int
+        unsetKind(Unit self) -> int
 
         Unsets the 'kind' attribute value of this Unit.
 
@@ -13540,7 +13552,7 @@ class Unit(SBase):
 
     def unsetExponent(self):
         """
-        unsetExponent(self) -> int
+        unsetExponent(Unit self) -> int
 
         Unsets the 'exponent' attribute value of this Unit.
 
@@ -13556,7 +13568,7 @@ class Unit(SBase):
 
     def unsetScale(self):
         """
-        unsetScale(self) -> int
+        unsetScale(Unit self) -> int
 
         Unsets the 'scale' attribute value of this Unit.
 
@@ -13570,7 +13582,7 @@ class Unit(SBase):
 
     def unsetMultiplier(self):
         """
-        unsetMultiplier(self) -> int
+        unsetMultiplier(Unit self) -> int
 
         Unsets the 'multipler' attribute value of this Unit.
 
@@ -13586,7 +13598,7 @@ class Unit(SBase):
 
     def unsetOffset(self):
         """
-        unsetOffset(self) -> int
+        unsetOffset(Unit self) -> int
 
         Unsets the 'offset' attribute value of this Unit.
 
@@ -13613,7 +13625,7 @@ class Unit(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Unit self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -13631,9 +13643,9 @@ class Unit(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getPackageName(), getElementName().
 
@@ -13642,7 +13654,7 @@ class Unit(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Unit self) -> string
 
         Returns the XML element name of this object, which for Unit, is always
         'unit'.
@@ -13914,7 +13926,7 @@ class Unit(SBase):
     __swig_getmethods__["convertToSI"] = lambda x: convertToSI
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Unit self) -> bool
 
         Predicate returning True if all the required attributes for this Unit
         object have been set.
@@ -14199,46 +14211,6 @@ class ListOfUnits(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -14263,8 +14235,8 @@ class ListOfUnits(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfUnits
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfUnits
+        __init__(ListOfUnits self, unsigned int level, unsigned int version) -> ListOfUnits
+        __init__(ListOfUnits self, SBMLNamespaces sbmlns) -> ListOfUnits
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -14344,7 +14316,7 @@ class ListOfUnits(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfUnits
+        clone(ListOfUnits self) -> ListOfUnits
 
         Creates and returns a deep copy of this ListOfUnits object.
 
@@ -14355,7 +14327,7 @@ class ListOfUnits(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfUnits self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Unit objects, if the list is non-empty).
@@ -14379,7 +14351,7 @@ class ListOfUnits(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfUnits self) -> string
 
         Returns the XML element name of this object.
 
@@ -14392,8 +14364,8 @@ class ListOfUnits(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Unit
-        get(self, unsigned int n) -> Unit
+        get(ListOfUnits self, unsigned int n) -> Unit
+        get(ListOfUnits self, unsigned int n) -> Unit
 
         Get a Unit from the ListOfUnits.
 
@@ -14408,7 +14380,7 @@ class ListOfUnits(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Unit
+        remove(ListOfUnits self, unsigned int n) -> Unit
 
         Removes the nth item from this ListOfUnits items and returns a pointer
         to it.
@@ -14640,9 +14612,9 @@ class UnitDefinition(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> UnitDefinition
-        __init__(self, SBMLNamespaces sbmlns) -> UnitDefinition
-        __init__(self, UnitDefinition orig) -> UnitDefinition
+        __init__(UnitDefinition self, unsigned int level, unsigned int version) -> UnitDefinition
+        __init__(UnitDefinition self, SBMLNamespaces sbmlns) -> UnitDefinition
+        __init__(UnitDefinition self, UnitDefinition orig) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -14735,7 +14707,7 @@ class UnitDefinition(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> UnitDefinition
+        clone(UnitDefinition self) -> UnitDefinition
 
         Creates and returns a deep copy of this UnitDefinition object.
 
@@ -14746,7 +14718,7 @@ class UnitDefinition(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(UnitDefinition self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -14760,7 +14732,7 @@ class UnitDefinition(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(UnitDefinition self, string metaid) -> SBase
 
         Returns the first child element it can find with the given 'metaid',
         or None if no such object is found.
@@ -14775,7 +14747,7 @@ class UnitDefinition(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(UnitDefinition self) -> string
 
         Returns the value of the 'id' attribute of this UnitDefinition.
 
@@ -14786,7 +14758,7 @@ class UnitDefinition(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(UnitDefinition self) -> string
 
         Returns the value of the 'name' attribute of this UnitDefinition.
 
@@ -14797,7 +14769,7 @@ class UnitDefinition(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(UnitDefinition self) -> bool
 
         Predicate returning True if this UnitDefinition's 'id' attribute is
         set.
@@ -14810,7 +14782,7 @@ class UnitDefinition(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(UnitDefinition self) -> bool
 
         Predicate returning True if this UnitDefinition's 'name' attribute is
         set.
@@ -14823,7 +14795,7 @@ class UnitDefinition(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(UnitDefinition self, string sid) -> int
 
         Sets the value of the 'id' attribute of this UnitDefinition.
 
@@ -14864,7 +14836,7 @@ class UnitDefinition(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(UnitDefinition self, string name) -> int
 
         Sets the value of the 'name' attribute of this UnitDefinition.
 
@@ -14884,7 +14856,7 @@ class UnitDefinition(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(UnitDefinition self) -> int
 
         Unsets the value of the 'name' attribute of this UnitDefinition.
 
@@ -14900,7 +14872,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfArea(self):
         """
-        isVariantOfArea(self) -> bool
+        isVariantOfArea(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier 'area'.
@@ -14914,7 +14886,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfLength(self):
         """
-        isVariantOfLength(self) -> bool
+        isVariantOfLength(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier 'length'.
@@ -14928,7 +14900,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfSubstance(self):
         """
-        isVariantOfSubstance(self) -> bool
+        isVariantOfSubstance(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier 'substance'.
@@ -14943,7 +14915,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfTime(self):
         """
-        isVariantOfTime(self) -> bool
+        isVariantOfTime(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier 'time'.
@@ -14957,7 +14929,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfVolume(self):
         """
-        isVariantOfVolume(self) -> bool
+        isVariantOfVolume(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier 'volume'.
@@ -14971,7 +14943,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfDimensionless(self):
         """
-        isVariantOfDimensionless(self) -> bool
+        isVariantOfDimensionless(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the unit 'dimensionless'.
@@ -14985,7 +14957,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfMass(self):
         """
-        isVariantOfMass(self) -> bool
+        isVariantOfMass(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit identifier 'mass'.
@@ -14999,7 +14971,7 @@ class UnitDefinition(SBase):
 
     def isVariantOfSubstancePerTime(self):
         """
-        isVariantOfSubstancePerTime(self) -> bool
+        isVariantOfSubstancePerTime(UnitDefinition self) -> bool
 
         Convenience function for testing if a given unit definition is a
         variant of the predefined unit 'substance' divided by the predefined
@@ -15015,7 +14987,7 @@ class UnitDefinition(SBase):
 
     def addUnit(self, *args):
         """
-        addUnit(self, Unit u) -> int
+        addUnit(UnitDefinition self, Unit u) -> int
 
         Adds a copy of the given Unit to this UnitDefinition.
 
@@ -15054,7 +15026,7 @@ class UnitDefinition(SBase):
 
     def createUnit(self):
         """
-        createUnit(self) -> Unit
+        createUnit(UnitDefinition self) -> Unit
 
         Creates a new and empty Unit, adds it to this UnitDefinition's list of
         units, and returns it.
@@ -15077,8 +15049,8 @@ class UnitDefinition(SBase):
 
     def getListOfUnits(self, *args):
         """
-        getListOfUnits(self) -> ListOfUnits
-        getListOfUnits(self) -> ListOfUnits
+        getListOfUnits(UnitDefinition self) -> ListOfUnits
+        getListOfUnits(UnitDefinition self) -> ListOfUnits
 
         Returns the list of Units for this UnitDefinition instance. Returns
         the ListOfUnits value for this UnitDefinition.
@@ -15088,8 +15060,8 @@ class UnitDefinition(SBase):
 
     def getUnit(self, *args):
         """
-        getUnit(self, unsigned int n) -> Unit
-        getUnit(self, unsigned int n) -> Unit
+        getUnit(UnitDefinition self, unsigned int n) -> Unit
+        getUnit(UnitDefinition self, unsigned int n) -> Unit
 
         Returns a specific Unit instance belonging to this UnitDefinition.
 
@@ -15104,7 +15076,7 @@ class UnitDefinition(SBase):
 
     def getNumUnits(self):
         """
-        getNumUnits(self) -> unsigned int
+        getNumUnits(UnitDefinition self) -> unsigned int
 
         Returns the number of Unit objects contained within this
         UnitDefinition.
@@ -15117,7 +15089,7 @@ class UnitDefinition(SBase):
 
     def removeUnit(self, *args):
         """
-        removeUnit(self, unsigned int n) -> Unit
+        removeUnit(UnitDefinition self, unsigned int n) -> Unit
 
         Removes the nth Unit object from this UnitDefinition object and
         returns a pointer to it.
@@ -15134,12 +15106,12 @@ class UnitDefinition(SBase):
         return _libsbml.UnitDefinition_removeUnit(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(UnitDefinition self)"""
         return _libsbml.UnitDefinition_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(UnitDefinition self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -15148,7 +15120,7 @@ class UnitDefinition(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(UnitDefinition self) -> int
 
         Returns the libSBML type code for this object instance.
 
@@ -15167,9 +15139,9 @@ class UnitDefinition(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getPackageName(), getElementName().
 
@@ -15178,7 +15150,7 @@ class UnitDefinition(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(UnitDefinition self) -> string
 
         Returns the XML element name of this object, which for UnitDefinition,
         is always 'unitDefinition'.
@@ -15418,7 +15390,7 @@ class UnitDefinition(SBase):
     __swig_getmethods__["divide"] = lambda x: divide
     def printUnits(*args):
         """
-        printUnits(UnitDefinition ud, bool compact = False) -> string
+        printUnits(UnitDefinition ud, bool compact=False) -> string
         printUnits(UnitDefinition ud) -> string
 
         Expresses the given definition in a plain-text form.
@@ -15463,7 +15435,7 @@ class UnitDefinition(SBase):
     __swig_getmethods__["printUnits"] = lambda x: printUnits
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(UnitDefinition self) -> bool
 
         Predicate returning True if all the required attributes for this
         UnitDefinition object have been set.
@@ -15480,7 +15452,7 @@ class UnitDefinition(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(UnitDefinition self) -> bool
 
         Predicate returning True if all the required elements for this
         UnitDefinition object have been set.
@@ -15717,7 +15689,7 @@ def UnitDefinition_divide(*args):
 
 def UnitDefinition_printUnits(*args):
   """
-    printUnits(UnitDefinition ud, bool compact = False) -> string
+    printUnits(UnitDefinition ud, bool compact=False) -> string
     UnitDefinition_printUnits(UnitDefinition ud) -> string
 
     Expresses the given definition in a plain-text form.
@@ -15771,46 +15743,6 @@ class ListOfUnitDefinitions(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -15835,8 +15767,8 @@ class ListOfUnitDefinitions(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfUnitDefinitions
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfUnitDefinitions
+        __init__(ListOfUnitDefinitions self, unsigned int level, unsigned int version) -> ListOfUnitDefinitions
+        __init__(ListOfUnitDefinitions self, SBMLNamespaces sbmlns) -> ListOfUnitDefinitions
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -15917,7 +15849,7 @@ class ListOfUnitDefinitions(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfUnitDefinitions
+        clone(ListOfUnitDefinitions self) -> ListOfUnitDefinitions
 
         Creates and returns a deep copy of this ListOfUnitDefinitions object.
 
@@ -15928,7 +15860,7 @@ class ListOfUnitDefinitions(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfUnitDefinitions self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., UnitDefinition objects, if the list is non-empty).
@@ -15952,7 +15884,7 @@ class ListOfUnitDefinitions(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfUnitDefinitions self) -> string
 
         Returns the XML element name of this object.
 
@@ -15966,10 +15898,10 @@ class ListOfUnitDefinitions(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> UnitDefinition
-        get(self, unsigned int n) -> UnitDefinition
-        get(self, string sid) -> UnitDefinition
-        get(self, string sid) -> UnitDefinition
+        get(ListOfUnitDefinitions self, unsigned int n) -> UnitDefinition
+        get(ListOfUnitDefinitions self, unsigned int n) -> UnitDefinition
+        get(ListOfUnitDefinitions self, string sid) -> UnitDefinition
+        get(ListOfUnitDefinitions self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -15992,7 +15924,7 @@ class ListOfUnitDefinitions(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfUnitDefinitions self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -16011,8 +15943,8 @@ class ListOfUnitDefinitions(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> UnitDefinition
-        remove(self, string sid) -> UnitDefinition
+        remove(ListOfUnitDefinitions self, unsigned int n) -> UnitDefinition
+        remove(ListOfUnitDefinitions self, string sid) -> UnitDefinition
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -16108,9 +16040,9 @@ class CompartmentType(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> CompartmentType
-        __init__(self, SBMLNamespaces sbmlns) -> CompartmentType
-        __init__(self, CompartmentType orig) -> CompartmentType
+        __init__(CompartmentType self, unsigned int level, unsigned int version) -> CompartmentType
+        __init__(CompartmentType self, SBMLNamespaces sbmlns) -> CompartmentType
+        __init__(CompartmentType self, CompartmentType orig) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -16210,7 +16142,7 @@ class CompartmentType(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> CompartmentType
+        clone(CompartmentType self) -> CompartmentType
 
         Creates and returns a deep copy of this CompartmentType object.
 
@@ -16221,7 +16153,7 @@ class CompartmentType(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(CompartmentType self) -> string
 
         Returns the value of the 'id' attribute of this CompartmentType
         object.
@@ -16235,7 +16167,7 @@ class CompartmentType(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(CompartmentType self) -> string
 
         Returns the value of the 'name' attribute of this CompartmentType
         object.
@@ -16249,7 +16181,7 @@ class CompartmentType(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(CompartmentType self) -> bool
 
         Predicate returning True if this CompartmentType object's 'id'
         attribute is set.
@@ -16264,7 +16196,7 @@ class CompartmentType(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(CompartmentType self) -> bool
 
         Predicate returning True if this CompartmentType object's 'name'
         attribute is set.
@@ -16279,7 +16211,7 @@ class CompartmentType(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(CompartmentType self, string sid) -> int
 
         Sets the value of the 'id' attribute of this CompartmentType object.
 
@@ -16322,7 +16254,7 @@ class CompartmentType(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(CompartmentType self, string name) -> int
 
         Sets the value of the 'name' attribute of this CompartmentType object.
 
@@ -16344,7 +16276,7 @@ class CompartmentType(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(CompartmentType self) -> int
 
         Unsets the value of the 'name' attribute of this CompartmentType
         object.
@@ -16363,7 +16295,7 @@ class CompartmentType(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(CompartmentType self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -16382,9 +16314,9 @@ class CompartmentType(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -16393,7 +16325,7 @@ class CompartmentType(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(CompartmentType self) -> string
 
         Returns the XML element name of this object
 
@@ -16408,7 +16340,7 @@ class CompartmentType(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(CompartmentType self) -> bool
 
         Predicate returning True if all the required attributes for this
         CompartmentType object have been set.
@@ -16439,46 +16371,6 @@ class ListOfCompartmentTypes(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -16503,8 +16395,8 @@ class ListOfCompartmentTypes(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfCompartmentTypes
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfCompartmentTypes
+        __init__(ListOfCompartmentTypes self, unsigned int level, unsigned int version) -> ListOfCompartmentTypes
+        __init__(ListOfCompartmentTypes self, SBMLNamespaces sbmlns) -> ListOfCompartmentTypes
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -16585,7 +16477,7 @@ class ListOfCompartmentTypes(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfCompartmentTypes
+        clone(ListOfCompartmentTypes self) -> ListOfCompartmentTypes
 
         Creates and returns a deep copy of this ListOfCompartmentTypes object.
 
@@ -16596,7 +16488,7 @@ class ListOfCompartmentTypes(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfCompartmentTypes self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., CompartmentType objects, if the list is non-empty).
@@ -16620,7 +16512,7 @@ class ListOfCompartmentTypes(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfCompartmentTypes self) -> string
 
         Returns the XML element name of this object.
 
@@ -16634,10 +16526,10 @@ class ListOfCompartmentTypes(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> CompartmentType
-        get(self, unsigned int n) -> CompartmentType
-        get(self, string sid) -> CompartmentType
-        get(self, string sid) -> CompartmentType
+        get(ListOfCompartmentTypes self, unsigned int n) -> CompartmentType
+        get(ListOfCompartmentTypes self, unsigned int n) -> CompartmentType
+        get(ListOfCompartmentTypes self, string sid) -> CompartmentType
+        get(ListOfCompartmentTypes self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -16661,8 +16553,8 @@ class ListOfCompartmentTypes(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> CompartmentType
-        remove(self, string sid) -> CompartmentType
+        remove(ListOfCompartmentTypes self, unsigned int n) -> CompartmentType
+        remove(ListOfCompartmentTypes self, string sid) -> CompartmentType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -16755,9 +16647,9 @@ class SpeciesType(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> SpeciesType
-        __init__(self, SBMLNamespaces sbmlns) -> SpeciesType
-        __init__(self, SpeciesType orig) -> SpeciesType
+        __init__(SpeciesType self, unsigned int level, unsigned int version) -> SpeciesType
+        __init__(SpeciesType self, SBMLNamespaces sbmlns) -> SpeciesType
+        __init__(SpeciesType self, SpeciesType orig) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -16857,7 +16749,7 @@ class SpeciesType(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SpeciesType
+        clone(SpeciesType self) -> SpeciesType
 
         Creates and returns a deep copy of this SpeciesType object.
 
@@ -16868,7 +16760,7 @@ class SpeciesType(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(SpeciesType self) -> string
 
         Returns the value of the 'id' attribute of this SpeciesType.
 
@@ -16879,7 +16771,7 @@ class SpeciesType(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SpeciesType self) -> string
 
         Returns the value of the 'name' attribute of this SpeciesType.
 
@@ -16890,7 +16782,7 @@ class SpeciesType(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(SpeciesType self) -> bool
 
         Predicate returning True if this SpeciesType's 'id' attribute is set.
 
@@ -16902,7 +16794,7 @@ class SpeciesType(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(SpeciesType self) -> bool
 
         Predicate returning True if this SpeciesType's 'name' attribute is
         set.
@@ -16915,7 +16807,7 @@ class SpeciesType(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(SpeciesType self, string sid) -> int
 
         Sets the value of the 'id' attribute of this SpeciesType.
 
@@ -16956,7 +16848,7 @@ class SpeciesType(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(SpeciesType self, string name) -> int
 
         Sets the value of the 'name' attribute of this SpeciesType.
 
@@ -16976,7 +16868,7 @@ class SpeciesType(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(SpeciesType self) -> int
 
         Unsets the value of the 'name' attribute of this SpeciesType.
 
@@ -16992,7 +16884,7 @@ class SpeciesType(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SpeciesType self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -17011,9 +16903,9 @@ class SpeciesType(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -17022,7 +16914,7 @@ class SpeciesType(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SpeciesType self) -> string
 
         Returns the XML element name of this object, which for SpeciesType, is
         always 'compartmentType'.
@@ -17034,7 +16926,7 @@ class SpeciesType(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(SpeciesType self) -> bool
 
         Predicate returning True if all the required attributes for this
         SpeciesType object have been set.
@@ -17065,46 +16957,6 @@ class ListOfSpeciesTypes(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -17129,8 +16981,8 @@ class ListOfSpeciesTypes(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfSpeciesTypes
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfSpeciesTypes
+        __init__(ListOfSpeciesTypes self, unsigned int level, unsigned int version) -> ListOfSpeciesTypes
+        __init__(ListOfSpeciesTypes self, SBMLNamespaces sbmlns) -> ListOfSpeciesTypes
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -17211,7 +17063,7 @@ class ListOfSpeciesTypes(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfSpeciesTypes
+        clone(ListOfSpeciesTypes self) -> ListOfSpeciesTypes
 
         Creates and returns a deep copy of this ListOfSpeciesTypes object.
 
@@ -17222,7 +17074,7 @@ class ListOfSpeciesTypes(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfSpeciesTypes self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., SpeciesType objects, if the list is non-empty).
@@ -17246,7 +17098,7 @@ class ListOfSpeciesTypes(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfSpeciesTypes self) -> string
 
         Returns the XML element name of this object.
 
@@ -17259,10 +17111,10 @@ class ListOfSpeciesTypes(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> SpeciesType
-        get(self, unsigned int n) -> SpeciesType
-        get(self, string sid) -> SpeciesType
-        get(self, string sid) -> SpeciesType
+        get(ListOfSpeciesTypes self, unsigned int n) -> SpeciesType
+        get(ListOfSpeciesTypes self, unsigned int n) -> SpeciesType
+        get(ListOfSpeciesTypes self, string sid) -> SpeciesType
+        get(ListOfSpeciesTypes self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -17285,8 +17137,8 @@ class ListOfSpeciesTypes(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> SpeciesType
-        remove(self, string sid) -> SpeciesType
+        remove(ListOfSpeciesTypes self, unsigned int n) -> SpeciesType
+        remove(ListOfSpeciesTypes self, string sid) -> SpeciesType
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -17592,9 +17444,9 @@ class Compartment(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Compartment
-        __init__(self, SBMLNamespaces sbmlns) -> Compartment
-        __init__(self, Compartment orig) -> Compartment
+        __init__(Compartment self, unsigned int level, unsigned int version) -> Compartment
+        __init__(Compartment self, SBMLNamespaces sbmlns) -> Compartment
+        __init__(Compartment self, Compartment orig) -> Compartment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -17696,7 +17548,7 @@ class Compartment(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Compartment
+        clone(Compartment self) -> Compartment
 
         Creates and returns a deep copy of this Compartment object.
 
@@ -17707,7 +17559,7 @@ class Compartment(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Compartment self)
 
         Initializes the fields of this Compartment object to 'typical' default
         values.
@@ -17730,7 +17582,7 @@ class Compartment(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Compartment self) -> string
 
         Returns the value of the 'id' attribute of this Compartment object.
 
@@ -17743,7 +17595,7 @@ class Compartment(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Compartment self) -> string
 
         Returns the value of the 'name' attribute of this Compartment object.
 
@@ -17756,7 +17608,7 @@ class Compartment(SBase):
 
     def getCompartmentType(self):
         """
-        getCompartmentType(self) -> string
+        getCompartmentType(Compartment self) -> string
 
         Get the value of the 'compartmentType' attribute of this Compartment
         object.
@@ -17777,7 +17629,7 @@ class Compartment(SBase):
 
     def getSpatialDimensions(self):
         """
-        getSpatialDimensions(self) -> unsigned int
+        getSpatialDimensions(Compartment self) -> unsigned int
 
         Get the number of spatial dimensions of this Compartment object.
 
@@ -17800,7 +17652,7 @@ class Compartment(SBase):
 
     def getSpatialDimensionsAsDouble(self):
         """
-        getSpatialDimensionsAsDouble(self) -> double
+        getSpatialDimensionsAsDouble(Compartment self) -> double
 
         Get the number of spatial dimensions of this Compartment object, as a
         double.
@@ -17825,7 +17677,7 @@ class Compartment(SBase):
 
     def getSize(self):
         """
-        getSize(self) -> double
+        getSize(Compartment self) -> double
 
         Get the size of this Compartment object.
 
@@ -17850,7 +17702,7 @@ class Compartment(SBase):
 
     def getVolume(self):
         """
-        getVolume(self) -> double
+        getVolume(Compartment self) -> double
 
         Get the volume of this Compartment object.
 
@@ -17885,7 +17737,7 @@ class Compartment(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Compartment self) -> string
 
         Get the units of this Compartment object's size.
 
@@ -17913,7 +17765,7 @@ class Compartment(SBase):
 
     def getOutside(self):
         """
-        getOutside(self) -> string
+        getOutside(Compartment self) -> string
 
         Get the identifier, if any, of the Compartment object that is
         designated as being outside of this one.
@@ -17933,7 +17785,7 @@ class Compartment(SBase):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(Compartment self) -> bool
 
         Get the value of the 'constant' attribute of this Compartment object.
 
@@ -17947,7 +17799,7 @@ class Compartment(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's 'id' attribute
         is set.
@@ -17962,7 +17814,7 @@ class Compartment(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's 'name' attribute
         is set.
@@ -17977,7 +17829,7 @@ class Compartment(SBase):
 
     def isSetCompartmentType(self):
         """
-        isSetCompartmentType(self) -> bool
+        isSetCompartmentType(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's
         'compartmentType' attribute is set.
@@ -17998,7 +17850,7 @@ class Compartment(SBase):
 
     def isSetSize(self):
         """
-        isSetSize(self) -> bool
+        isSetSize(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's 'size' attribute
         is set.
@@ -18019,7 +17871,7 @@ class Compartment(SBase):
 
     def isSetVolume(self):
         """
-        isSetVolume(self) -> bool
+        isSetVolume(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's 'volume'
         attribute is set.
@@ -18049,7 +17901,7 @@ class Compartment(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's 'units'
         attribute is set.
@@ -18074,7 +17926,7 @@ class Compartment(SBase):
 
     def isSetOutside(self):
         """
-        isSetOutside(self) -> bool
+        isSetOutside(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's 'outside'
         attribute is set.
@@ -18094,7 +17946,7 @@ class Compartment(SBase):
 
     def isSetSpatialDimensions(self):
         """
-        isSetSpatialDimensions(self) -> bool
+        isSetSpatialDimensions(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's
         'spatialDimensions' attribute is set.
@@ -18110,7 +17962,7 @@ class Compartment(SBase):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(Compartment self) -> bool
 
         Predicate returning True if this Compartment object's 'constant'
         attribute is set.
@@ -18125,7 +17977,7 @@ class Compartment(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Compartment self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Compartment object.
 
@@ -18169,7 +18021,7 @@ class Compartment(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Compartment self, string name) -> int
 
         Sets the value of the 'name' attribute of this Compartment object.
 
@@ -18193,7 +18045,7 @@ class Compartment(SBase):
 
     def setCompartmentType(self, *args):
         """
-        setCompartmentType(self, string sid) -> int
+        setCompartmentType(Compartment self, string sid) -> int
 
         Sets the 'compartmentType' attribute of this Compartment object.
 
@@ -18223,8 +18075,8 @@ class Compartment(SBase):
 
     def setSpatialDimensions(self, *args):
         """
-        setSpatialDimensions(self, unsigned int value) -> int
-        setSpatialDimensions(self, double value) -> int
+        setSpatialDimensions(Compartment self, unsigned int value) -> int
+        setSpatialDimensions(Compartment self, double value) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -18258,7 +18110,7 @@ class Compartment(SBase):
 
     def setSize(self, *args):
         """
-        setSize(self, double value) -> int
+        setSize(Compartment self, double value) -> int
 
         Sets the 'size' attribute (or 'volume' in SBML Level 1) of this
         Compartment object.
@@ -18282,7 +18134,7 @@ class Compartment(SBase):
 
     def setVolume(self, *args):
         """
-        setVolume(self, double value) -> int
+        setVolume(Compartment self, double value) -> int
 
         Sets the 'volume' attribute (or 'size' in SBML Level 2) of this
         Compartment object.
@@ -18316,7 +18168,7 @@ class Compartment(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string sid) -> int
+        setUnits(Compartment self, string sid) -> int
 
         Sets the 'units' attribute of this Compartment object.
 
@@ -18338,7 +18190,7 @@ class Compartment(SBase):
 
     def setOutside(self, *args):
         """
-        setOutside(self, string sid) -> int
+        setOutside(Compartment self, string sid) -> int
 
         Sets the 'outside' attribute of this Compartment object.
 
@@ -18365,7 +18217,7 @@ class Compartment(SBase):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool value) -> int
+        setConstant(Compartment self, bool value) -> int
 
         Sets the value of the 'constant' attribute of this Compartment object.
 
@@ -18387,7 +18239,7 @@ class Compartment(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Compartment self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -18415,7 +18267,7 @@ class Compartment(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Compartment self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -18444,7 +18296,7 @@ class Compartment(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Compartment self) -> int
 
         Unsets the value of the 'name' attribute of this Compartment object.
 
@@ -18462,7 +18314,7 @@ class Compartment(SBase):
 
     def unsetCompartmentType(self):
         """
-        unsetCompartmentType(self) -> int
+        unsetCompartmentType(Compartment self) -> int
 
         Unsets the value of the 'compartmentType' attribute of this
         Compartment object.
@@ -18489,7 +18341,7 @@ class Compartment(SBase):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(Compartment self) -> int
 
         Unsets the value of the 'constant' attribute of this Compartment
         object.
@@ -18508,7 +18360,7 @@ class Compartment(SBase):
 
     def unsetSize(self):
         """
-        unsetSize(self) -> int
+        unsetSize(Compartment self) -> int
 
         Unsets the value of the 'size' attribute of this Compartment object.
 
@@ -18536,7 +18388,7 @@ class Compartment(SBase):
 
     def unsetVolume(self):
         """
-        unsetVolume(self) -> int
+        unsetVolume(Compartment self) -> int
 
         Unsets the value of the 'volume' attribute of this Compartment object.
 
@@ -18567,7 +18419,7 @@ class Compartment(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Compartment self) -> int
 
         Unsets the value of the 'units' attribute of this Compartment object.
 
@@ -18585,7 +18437,7 @@ class Compartment(SBase):
 
     def unsetOutside(self):
         """
-        unsetOutside(self) -> int
+        unsetOutside(Compartment self) -> int
 
         Unsets the value of the 'outside' attribute of this Compartment
         object.
@@ -18609,7 +18461,7 @@ class Compartment(SBase):
 
     def unsetSpatialDimensions(self):
         """
-        unsetSpatialDimensions(self) -> int
+        unsetSpatialDimensions(Compartment self) -> int
 
         Unsets the value of the 'spatialDimensions' attribute of this
         Compartment object.
@@ -18640,8 +18492,8 @@ class Compartment(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Compartment self) -> UnitDefinition
+        getDerivedUnitDefinition(Compartment self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this Compartment object's designated size.
@@ -18683,7 +18535,7 @@ class Compartment(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Compartment self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -18702,9 +18554,9 @@ class Compartment(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -18713,7 +18565,7 @@ class Compartment(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Compartment self) -> string
 
         Returns the XML element name of this object
 
@@ -18726,7 +18578,7 @@ class Compartment(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Compartment self) -> bool
 
         Predicate returning True if all the required attributes for this
         Compartment object have been set.
@@ -18759,46 +18611,6 @@ class ListOfCompartments(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -18823,8 +18635,8 @@ class ListOfCompartments(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfCompartments
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfCompartments
+        __init__(ListOfCompartments self, unsigned int level, unsigned int version) -> ListOfCompartments
+        __init__(ListOfCompartments self, SBMLNamespaces sbmlns) -> ListOfCompartments
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -18905,7 +18717,7 @@ class ListOfCompartments(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfCompartments
+        clone(ListOfCompartments self) -> ListOfCompartments
 
         Creates and returns a deep copy of this ListOfCompartments object.
 
@@ -18916,7 +18728,7 @@ class ListOfCompartments(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfCompartments self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Compartment objects, if the list is non-empty).
@@ -18940,7 +18752,7 @@ class ListOfCompartments(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfCompartments self) -> string
 
         Returns the XML element name of this object.
 
@@ -18954,10 +18766,10 @@ class ListOfCompartments(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Compartment
-        get(self, unsigned int n) -> Compartment
-        get(self, string sid) -> Compartment
-        get(self, string sid) -> Compartment
+        get(ListOfCompartments self, unsigned int n) -> Compartment
+        get(ListOfCompartments self, unsigned int n) -> Compartment
+        get(ListOfCompartments self, string sid) -> Compartment
+        get(ListOfCompartments self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -18980,8 +18792,8 @@ class ListOfCompartments(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Compartment
-        remove(self, string sid) -> Compartment
+        remove(ListOfCompartments self, unsigned int n) -> Compartment
+        remove(ListOfCompartments self, string sid) -> Compartment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -19345,9 +19157,9 @@ class Species(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Species
-        __init__(self, SBMLNamespaces sbmlns) -> Species
-        __init__(self, Species orig) -> Species
+        __init__(Species self, unsigned int level, unsigned int version) -> Species
+        __init__(Species self, SBMLNamespaces sbmlns) -> Species
+        __init__(Species self, Species orig) -> Species
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -19446,7 +19258,7 @@ class Species(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Species
+        clone(Species self) -> Species
 
         Creates and returns a deep copy of this Species object.
 
@@ -19457,7 +19269,7 @@ class Species(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Species self)
 
         Initializes the fields of this Species object to 'typical' defaults
         values.
@@ -19481,7 +19293,7 @@ class Species(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Species self) -> string
 
         Returns the value of the 'id' attribute of this Species object.
 
@@ -19492,7 +19304,7 @@ class Species(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Species self) -> string
 
         Returns the value of the 'name' attribute of this Species object.
 
@@ -19503,7 +19315,7 @@ class Species(SBase):
 
     def getSpeciesType(self):
         """
-        getSpeciesType(self) -> string
+        getSpeciesType(Species self) -> string
 
         Get the type of this Species object object.
 
@@ -19520,7 +19332,7 @@ class Species(SBase):
 
     def getCompartment(self):
         """
-        getCompartment(self) -> string
+        getCompartment(Species self) -> string
 
         Get the compartment in which this species is located.
 
@@ -19534,7 +19346,7 @@ class Species(SBase):
 
     def getInitialAmount(self):
         """
-        getInitialAmount(self) -> double
+        getInitialAmount(Species self) -> double
 
         Get the value of the 'initialAmount' attribute.
 
@@ -19545,7 +19357,7 @@ class Species(SBase):
 
     def getInitialConcentration(self):
         """
-        getInitialConcentration(self) -> double
+        getInitialConcentration(Species self) -> double
 
         Get the value of the 'initialConcentration' attribute.
 
@@ -19562,7 +19374,7 @@ class Species(SBase):
 
     def getSubstanceUnits(self):
         """
-        getSubstanceUnits(self) -> string
+        getSubstanceUnits(Species self) -> string
 
         Get the value of the 'substanceUnits' attribute.
 
@@ -19587,7 +19399,7 @@ class Species(SBase):
 
     def getSpatialSizeUnits(self):
         """
-        getSpatialSizeUnits(self) -> string
+        getSpatialSizeUnits(Species self) -> string
 
         Get the value of the 'spatialSizeUnits' attribute.
 
@@ -19609,7 +19421,7 @@ class Species(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Species self) -> string
 
         Get the value of the 'units' attribute.
 
@@ -19630,7 +19442,7 @@ class Species(SBase):
 
     def getHasOnlySubstanceUnits(self):
         """
-        getHasOnlySubstanceUnits(self) -> bool
+        getHasOnlySubstanceUnits(Species self) -> bool
 
         Get the value of the 'hasOnlySubstanceUnits' attribute.
 
@@ -19646,7 +19458,7 @@ class Species(SBase):
 
     def getBoundaryCondition(self):
         """
-        getBoundaryCondition(self) -> bool
+        getBoundaryCondition(Species self) -> bool
 
         Get the value of the 'boundaryCondition' attribute.
 
@@ -19658,7 +19470,7 @@ class Species(SBase):
 
     def getCharge(self):
         """
-        getCharge(self) -> int
+        getCharge(Species self) -> int
 
         Get the value of the 'charge' attribute.
 
@@ -19683,7 +19495,7 @@ class Species(SBase):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(Species self) -> bool
 
         Get the value of the 'constant' attribute.
 
@@ -19700,7 +19512,7 @@ class Species(SBase):
 
     def getConversionFactor(self):
         """
-        getConversionFactor(self) -> string
+        getConversionFactor(Species self) -> string
 
         Get the value of the 'conversionFactor' attribute.
 
@@ -19716,7 +19528,7 @@ class Species(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Species self) -> bool
 
         Predicate returning True if this Species object's 'id' attribute is
         set.
@@ -19729,7 +19541,7 @@ class Species(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Species self) -> bool
 
         Predicate returning True if this Species object's 'name' attribute is
         set.
@@ -19742,7 +19554,7 @@ class Species(SBase):
 
     def isSetSpeciesType(self):
         """
-        isSetSpeciesType(self) -> bool
+        isSetSpeciesType(Species self) -> bool
 
         Predicate returning True if this Species object's 'speciesType'
         attribute is set.
@@ -19760,7 +19572,7 @@ class Species(SBase):
 
     def isSetCompartment(self):
         """
-        isSetCompartment(self) -> bool
+        isSetCompartment(Species self) -> bool
 
         Predicate returning True if this Species object's 'compartment'
         attribute is set.
@@ -19773,7 +19585,7 @@ class Species(SBase):
 
     def isSetInitialAmount(self):
         """
-        isSetInitialAmount(self) -> bool
+        isSetInitialAmount(Species self) -> bool
 
         Predicate returning True if this Species object's 'initialAmount'
         attribute is set.
@@ -19794,7 +19606,7 @@ class Species(SBase):
 
     def isSetInitialConcentration(self):
         """
-        isSetInitialConcentration(self) -> bool
+        isSetInitialConcentration(Species self) -> bool
 
         Predicate returning True if this Species object's
         'initialConcentration' attribute is set.
@@ -19812,7 +19624,7 @@ class Species(SBase):
 
     def isSetSubstanceUnits(self):
         """
-        isSetSubstanceUnits(self) -> bool
+        isSetSubstanceUnits(Species self) -> bool
 
         Predicate returning True if this Species object's 'substanceUnits'
         attribute is set.
@@ -19825,7 +19637,7 @@ class Species(SBase):
 
     def isSetSpatialSizeUnits(self):
         """
-        isSetSpatialSizeUnits(self) -> bool
+        isSetSpatialSizeUnits(Species self) -> bool
 
         Predicate returning True if this Species object's 'spatialSizeUnits'
         attribute is set.
@@ -19848,7 +19660,7 @@ class Species(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Species self) -> bool
 
         Predicate returning True if this Species object's 'units' attribute is
         set.
@@ -19861,7 +19673,7 @@ class Species(SBase):
 
     def isSetCharge(self):
         """
-        isSetCharge(self) -> bool
+        isSetCharge(Species self) -> bool
 
         Predicate returning True if this Species object's 'charge' attribute
         is set.
@@ -19888,7 +19700,7 @@ class Species(SBase):
 
     def isSetConversionFactor(self):
         """
-        isSetConversionFactor(self) -> bool
+        isSetConversionFactor(Species self) -> bool
 
         Predicate returning True if this Species object's 'conversionFactor'
         attribute is set.
@@ -19906,7 +19718,7 @@ class Species(SBase):
 
     def isSetBoundaryCondition(self):
         """
-        isSetBoundaryCondition(self) -> bool
+        isSetBoundaryCondition(Species self) -> bool
 
         Predicate returning True if this Species object's 'boundaryCondition'
         attribute is set.
@@ -19919,7 +19731,7 @@ class Species(SBase):
 
     def isSetHasOnlySubstanceUnits(self):
         """
-        isSetHasOnlySubstanceUnits(self) -> bool
+        isSetHasOnlySubstanceUnits(Species self) -> bool
 
         Predicate returning True if this Species object's
         'hasOnlySubstanceUnits' attribute is set.
@@ -19936,7 +19748,7 @@ class Species(SBase):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(Species self) -> bool
 
         Predicate returning True if this Species object's 'constant' attribute
         is set.
@@ -19954,7 +19766,7 @@ class Species(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Species self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Species object.
 
@@ -19994,7 +19806,7 @@ class Species(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Species self, string name) -> int
 
         Sets the value of the 'name' attribute of this Species object.
 
@@ -20014,7 +19826,7 @@ class Species(SBase):
 
     def setSpeciesType(self, *args):
         """
-        setSpeciesType(self, string sid) -> int
+        setSpeciesType(Species self, string sid) -> int
 
         Sets the 'speciesType' attribute of this Species object.
 
@@ -20040,7 +19852,7 @@ class Species(SBase):
 
     def setCompartment(self, *args):
         """
-        setCompartment(self, string sid) -> int
+        setCompartment(Species self, string sid) -> int
 
         Sets the 'compartment' attribute of this Species object.
 
@@ -20059,7 +19871,7 @@ class Species(SBase):
 
     def setInitialAmount(self, *args):
         """
-        setInitialAmount(self, double value) -> int
+        setInitialAmount(Species self, double value) -> int
 
         Sets the 'initialAmount' attribute of this Species and marks the field
         as set.
@@ -20079,7 +19891,7 @@ class Species(SBase):
 
     def setInitialConcentration(self, *args):
         """
-        setInitialConcentration(self, double value) -> int
+        setInitialConcentration(Species self, double value) -> int
 
         Sets the 'initialConcentration' attribute of this Species and marks
         the field as set.
@@ -20106,7 +19918,7 @@ class Species(SBase):
 
     def setSubstanceUnits(self, *args):
         """
-        setSubstanceUnits(self, string sid) -> int
+        setSubstanceUnits(Species self, string sid) -> int
 
         Sets the 'substanceUnits' attribute of this Species object.
 
@@ -20124,7 +19936,7 @@ class Species(SBase):
 
     def setSpatialSizeUnits(self, *args):
         """
-        setSpatialSizeUnits(self, string sid) -> int
+        setSpatialSizeUnits(Species self, string sid) -> int
 
         (SBML Level 2 Versions 1-2) Sets the 'spatialSizeUnits' attribute of
         this Species object.
@@ -20155,7 +19967,7 @@ class Species(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string sname) -> int
+        setUnits(Species self, string sname) -> int
 
         (SBML Level 1 only) Sets the units of this Species object.
 
@@ -20173,7 +19985,7 @@ class Species(SBase):
 
     def setHasOnlySubstanceUnits(self, *args):
         """
-        setHasOnlySubstanceUnits(self, bool value) -> int
+        setHasOnlySubstanceUnits(Species self, bool value) -> int
 
         Sets the 'hasOnlySubstanceUnits' attribute of this Species object.
 
@@ -20196,7 +20008,7 @@ class Species(SBase):
 
     def setBoundaryCondition(self, *args):
         """
-        setBoundaryCondition(self, bool value) -> int
+        setBoundaryCondition(Species self, bool value) -> int
 
         Sets the 'boundaryCondition' attribute of this Species object.
 
@@ -20213,7 +20025,7 @@ class Species(SBase):
 
     def setCharge(self, *args):
         """
-        setCharge(self, int value) -> int
+        setCharge(Species self, int value) -> int
 
         Sets the 'charge' attribute of this Species object.
 
@@ -20245,7 +20057,7 @@ class Species(SBase):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool value) -> int
+        setConstant(Species self, bool value) -> int
 
         Sets the 'constant' attribute of this Species object.
 
@@ -20268,7 +20080,7 @@ class Species(SBase):
 
     def setConversionFactor(self, *args):
         """
-        setConversionFactor(self, string sid) -> int
+        setConversionFactor(Species self, string sid) -> int
 
         Sets the value of the 'conversionFactor' attribute of this Species
         object.
@@ -20296,7 +20108,7 @@ class Species(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Species self) -> int
 
         Unsets the value of the 'name' attribute of this Species object.
 
@@ -20312,7 +20124,7 @@ class Species(SBase):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(Species self) -> int
 
         Unsets the value of the 'constant' attribute of this Species object.
 
@@ -20330,7 +20142,7 @@ class Species(SBase):
 
     def unsetSpeciesType(self):
         """
-        unsetSpeciesType(self) -> int
+        unsetSpeciesType(Species self) -> int
 
         Unsets the 'speciesType' attribute value of this Species object.
 
@@ -20351,7 +20163,7 @@ class Species(SBase):
 
     def unsetInitialAmount(self):
         """
-        unsetInitialAmount(self) -> int
+        unsetInitialAmount(Species self) -> int
 
         Unsets the 'initialAmount' attribute value of this Species object.
 
@@ -20367,7 +20179,7 @@ class Species(SBase):
 
     def unsetInitialConcentration(self):
         """
-        unsetInitialConcentration(self) -> int
+        unsetInitialConcentration(Species self) -> int
 
         Unsets the 'initialConcentration' attribute value of this Species
         object.
@@ -20389,7 +20201,7 @@ class Species(SBase):
 
     def unsetSubstanceUnits(self):
         """
-        unsetSubstanceUnits(self) -> int
+        unsetSubstanceUnits(Species self) -> int
 
         Unsets the 'substanceUnits' attribute value of this Species object.
 
@@ -20405,7 +20217,7 @@ class Species(SBase):
 
     def unsetSpatialSizeUnits(self):
         """
-        unsetSpatialSizeUnits(self) -> int
+        unsetSpatialSizeUnits(Species self) -> int
 
         Unsets the 'spatialSizeUnits' attribute value of this Species object.
 
@@ -20431,7 +20243,7 @@ class Species(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Species self) -> int
 
         Unsets the 'units' attribute value of this Species object.
 
@@ -20447,7 +20259,7 @@ class Species(SBase):
 
     def unsetCharge(self):
         """
-        unsetCharge(self) -> int
+        unsetCharge(Species self) -> int
 
         Unsets the 'charge' attribute value of this Species object.
 
@@ -20479,7 +20291,7 @@ class Species(SBase):
 
     def unsetConversionFactor(self):
         """
-        unsetConversionFactor(self) -> int
+        unsetConversionFactor(Species self) -> int
 
         Unsets the 'conversionFactor' attribute value of this Species object.
 
@@ -20502,7 +20314,7 @@ class Species(SBase):
 
     def unsetCompartment(self):
         """
-        unsetCompartment(self) -> int
+        unsetCompartment(Species self) -> int
 
         Unsets the 'compartment' attribute value of this Species object.
 
@@ -20518,7 +20330,7 @@ class Species(SBase):
 
     def unsetBoundaryCondition(self):
         """
-        unsetBoundaryCondition(self) -> int
+        unsetBoundaryCondition(Species self) -> int
 
         Unsets the 'boundaryCondition' attribute value of this Species object.
 
@@ -20534,7 +20346,7 @@ class Species(SBase):
 
     def unsetHasOnlySubstanceUnits(self):
         """
-        unsetHasOnlySubstanceUnits(self) -> int
+        unsetHasOnlySubstanceUnits(Species self) -> int
 
         Unsets the 'hasOnlySubstanceUnits' attribute value of this Species
         object.
@@ -20551,8 +20363,8 @@ class Species(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Species self) -> UnitDefinition
+        getDerivedUnitDefinition(Species self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this Species' amount or concentration.
@@ -20596,7 +20408,7 @@ class Species(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Species self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -20614,9 +20426,9 @@ class Species(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -20625,7 +20437,7 @@ class Species(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Species self) -> string
 
         Returns the XML element name of this object, which for Species, is
         always 'species'.
@@ -20637,7 +20449,7 @@ class Species(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Species self) -> bool
 
         Predicate returning True if all the required attributes for this
         Species object have been set.
@@ -20667,7 +20479,7 @@ class Species(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Species self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -20695,7 +20507,7 @@ class Species(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Species self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -20738,46 +20550,6 @@ class ListOfSpecies(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -20802,8 +20574,8 @@ class ListOfSpecies(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfSpecies
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfSpecies
+        __init__(ListOfSpecies self, unsigned int level, unsigned int version) -> ListOfSpecies
+        __init__(ListOfSpecies self, SBMLNamespaces sbmlns) -> ListOfSpecies
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -20884,7 +20656,7 @@ class ListOfSpecies(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfSpecies
+        clone(ListOfSpecies self) -> ListOfSpecies
 
         Creates and returns a deep copy of this ListOfSpecies object.
 
@@ -20895,7 +20667,7 @@ class ListOfSpecies(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfSpecies self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Species objects, if the list is non-empty).
@@ -20919,7 +20691,7 @@ class ListOfSpecies(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfSpecies self) -> string
 
         Returns the XML element name of this object.
 
@@ -20932,10 +20704,10 @@ class ListOfSpecies(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Species
-        get(self, unsigned int n) -> Species
-        get(self, string sid) -> Species
-        get(self, string sid) -> Species
+        get(ListOfSpecies self, unsigned int n) -> Species
+        get(ListOfSpecies self, unsigned int n) -> Species
+        get(ListOfSpecies self, string sid) -> Species
+        get(ListOfSpecies self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -20958,8 +20730,8 @@ class ListOfSpecies(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Species
-        remove(self, string sid) -> Species
+        remove(ListOfSpecies self, unsigned int n) -> Species
+        remove(ListOfSpecies self, string sid) -> Species
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -21108,9 +20880,9 @@ class Parameter(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Parameter
-        __init__(self, SBMLNamespaces sbmlns) -> Parameter
-        __init__(self, Parameter orig) -> Parameter
+        __init__(Parameter self, unsigned int level, unsigned int version) -> Parameter
+        __init__(Parameter self, SBMLNamespaces sbmlns) -> Parameter
+        __init__(Parameter self, Parameter orig) -> Parameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -21210,7 +20982,7 @@ class Parameter(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Parameter
+        clone(Parameter self) -> Parameter
 
         Creates and returns a deep copy of this Parameter object.
 
@@ -21221,7 +20993,7 @@ class Parameter(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Parameter self)
 
         Initializes the fields of this Parameter object to 'typical' defaults
         values.
@@ -21240,7 +21012,7 @@ class Parameter(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Parameter self) -> string
 
         Returns the value of the 'id' attribute of this Parameter.
 
@@ -21251,7 +21023,7 @@ class Parameter(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Parameter self) -> string
 
         Returns the value of the 'name' attribute of this Parameter.
 
@@ -21262,7 +21034,7 @@ class Parameter(SBase):
 
     def getValue(self):
         """
-        getValue(self) -> double
+        getValue(Parameter self) -> double
 
         Gets the numerical value of this Parameter.
 
@@ -21287,7 +21059,7 @@ class Parameter(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Parameter self) -> string
 
         Gets the units defined for this Parameter.
 
@@ -21314,7 +21086,7 @@ class Parameter(SBase):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(Parameter self) -> bool
 
         Gets the value of the 'constant' attribute of this Parameter instance.
 
@@ -21344,7 +21116,7 @@ class Parameter(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Parameter self) -> bool
 
         Predicate returning True if this Parameter's 'id' attribute is set.
 
@@ -21356,7 +21128,7 @@ class Parameter(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Parameter self) -> bool
 
         Predicate returning True if this Parameter's 'name' attribute is set.
 
@@ -21368,7 +21140,7 @@ class Parameter(SBase):
 
     def isSetValue(self):
         """
-        isSetValue(self) -> bool
+        isSetValue(Parameter self) -> bool
 
         Predicate returning True if the 'value' attribute of this Parameter is
         set.
@@ -21396,7 +21168,7 @@ class Parameter(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Parameter self) -> bool
 
         Predicate returning True if the 'units' attribute of this Parameter is
         set.
@@ -21419,7 +21191,7 @@ class Parameter(SBase):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(Parameter self) -> bool
 
         Predicate returning True if the 'constant' attribute of this Parameter
         is set.
@@ -21450,7 +21222,7 @@ class Parameter(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Parameter self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Parameter.
 
@@ -21491,7 +21263,7 @@ class Parameter(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Parameter self, string name) -> int
 
         Sets the value of the 'name' attribute of this Parameter.
 
@@ -21511,7 +21283,7 @@ class Parameter(SBase):
 
     def setValue(self, *args):
         """
-        setValue(self, double value) -> int
+        setValue(Parameter self, double value) -> int
 
         Sets the 'value' attribute of this Parameter to the given float value
         and marks the attribute as set.
@@ -21528,7 +21300,7 @@ class Parameter(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string units) -> int
+        setUnits(Parameter self, string units) -> int
 
         Sets the 'units' attribute of this Parameter to a copy of the given
         units identifier 'units'.
@@ -21548,7 +21320,7 @@ class Parameter(SBase):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool flag) -> int
+        setConstant(Parameter self, bool flag) -> int
 
         Sets the 'constant' attribute of this Parameter to the given boolean
         'flag'.
@@ -21586,7 +21358,7 @@ class Parameter(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Parameter self) -> int
 
         Unsets the value of the 'name' attribute of this Parameter.
 
@@ -21602,7 +21374,7 @@ class Parameter(SBase):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(Parameter self) -> int
 
         Unsets the value of the 'constant' attribute of this Parameter object.
 
@@ -21620,7 +21392,7 @@ class Parameter(SBase):
 
     def unsetValue(self):
         """
-        unsetValue(self) -> int
+        unsetValue(Parameter self) -> int
 
         Unsets the 'value' attribute of this Parameter instance.
 
@@ -21639,7 +21411,7 @@ class Parameter(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Parameter self) -> int
 
         Unsets the 'units' attribute of this Parameter instance.
 
@@ -21655,8 +21427,8 @@ class Parameter(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Parameter self) -> UnitDefinition
+        getDerivedUnitDefinition(Parameter self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this Parameter's value.
@@ -21695,7 +21467,7 @@ class Parameter(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Parameter self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -21713,9 +21485,9 @@ class Parameter(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -21724,7 +21496,7 @@ class Parameter(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Parameter self) -> string
 
         Returns the XML element name of this object, which for Parameter, is
         always 'parameter'.
@@ -21736,7 +21508,7 @@ class Parameter(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Parameter self) -> bool
 
         Predicate returning True if all the required attributes for this
         Parameter object have been set.
@@ -21755,7 +21527,7 @@ class Parameter(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Parameter self, string oldid, string newid)
 
         Renames all the UnitSIdRef attributes on this element.
 
@@ -21783,7 +21555,7 @@ class Parameter(SBase):
 
     def setCalculatingUnits(self, *args):
         """
-        setCalculatingUnits(self, bool calculatingUnits)
+        setCalculatingUnits(Parameter self, bool calculatingUnits)
 
         Internal implementation method.
 
@@ -21806,46 +21578,6 @@ class ListOfParameters(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -21870,8 +21602,8 @@ class ListOfParameters(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfParameters
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfParameters
+        __init__(ListOfParameters self, unsigned int level, unsigned int version) -> ListOfParameters
+        __init__(ListOfParameters self, SBMLNamespaces sbmlns) -> ListOfParameters
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -21952,7 +21684,7 @@ class ListOfParameters(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfParameters
+        clone(ListOfParameters self) -> ListOfParameters
 
         Creates and returns a deep copy of this ListOfParameters object.
 
@@ -21963,7 +21695,7 @@ class ListOfParameters(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfParameters self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Parameter objects, if the list is non-empty).
@@ -21987,7 +21719,7 @@ class ListOfParameters(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfParameters self) -> string
 
         Returns the XML element name of this object.
 
@@ -22000,10 +21732,10 @@ class ListOfParameters(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Parameter
-        get(self, unsigned int n) -> Parameter
-        get(self, string sid) -> Parameter
-        get(self, string sid) -> Parameter
+        get(ListOfParameters self, unsigned int n) -> Parameter
+        get(ListOfParameters self, unsigned int n) -> Parameter
+        get(ListOfParameters self, string sid) -> Parameter
+        get(ListOfParameters self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -22028,8 +21760,8 @@ class ListOfParameters(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Parameter
-        remove(self, string sid) -> Parameter
+        remove(ListOfParameters self, unsigned int n) -> Parameter
+        remove(ListOfParameters self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -22148,10 +21880,10 @@ class LocalParameter(Parameter):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> LocalParameter
-        __init__(self, SBMLNamespaces sbmlns) -> LocalParameter
-        __init__(self, LocalParameter orig) -> LocalParameter
-        __init__(self, Parameter orig) -> LocalParameter
+        __init__(LocalParameter self, unsigned int level, unsigned int version) -> LocalParameter
+        __init__(LocalParameter self, SBMLNamespaces sbmlns) -> LocalParameter
+        __init__(LocalParameter self, LocalParameter orig) -> LocalParameter
+        __init__(LocalParameter self, Parameter orig) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -22261,7 +21993,7 @@ class LocalParameter(Parameter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> LocalParameter
+        clone(LocalParameter self) -> LocalParameter
 
         Creates and returns a deep copy of this LocalParameter object.
 
@@ -22272,8 +22004,8 @@ class LocalParameter(Parameter):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(LocalParameter self) -> UnitDefinition
+        getDerivedUnitDefinition(LocalParameter self) -> UnitDefinition
 
         Constructs and returns a UnitDefinition that corresponds to the units
         of this LocalParameter's value.
@@ -22312,7 +22044,7 @@ class LocalParameter(Parameter):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(LocalParameter self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -22331,9 +22063,9 @@ class LocalParameter(Parameter):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -22342,7 +22074,7 @@ class LocalParameter(Parameter):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(LocalParameter self) -> string
 
         Returns the XML element name of this object, which for LocalParameter,
         is always 'localParameter'.
@@ -22354,7 +22086,7 @@ class LocalParameter(Parameter):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(LocalParameter self) -> bool
 
         Predicate returning True if all the required attributes for this
         LocalParameter object have been set.
@@ -22373,7 +22105,7 @@ class LocalParameter(Parameter):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(LocalParameter self) -> bool
 
         Internal implementation method.
 
@@ -22382,7 +22114,7 @@ class LocalParameter(Parameter):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(LocalParameter self) -> bool
 
         Internal implementation method.
 
@@ -22391,7 +22123,7 @@ class LocalParameter(Parameter):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool flag) -> int
+        setConstant(LocalParameter self, bool flag) -> int
 
         Internal implementation method.
 
@@ -22400,7 +22132,7 @@ class LocalParameter(Parameter):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(LocalParameter self) -> int
 
         Internal implementation method.
 
@@ -22423,46 +22155,6 @@ class ListOfLocalParameters(ListOfParameters):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -22487,8 +22179,8 @@ class ListOfLocalParameters(ListOfParameters):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfLocalParameters
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfLocalParameters
+        __init__(ListOfLocalParameters self, unsigned int level, unsigned int version) -> ListOfLocalParameters
+        __init__(ListOfLocalParameters self, SBMLNamespaces sbmlns) -> ListOfLocalParameters
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -22569,7 +22261,7 @@ class ListOfLocalParameters(ListOfParameters):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfLocalParameters
+        clone(ListOfLocalParameters self) -> ListOfLocalParameters
 
         Creates and returns a deep copy of this ListOfLocalParameters object.
 
@@ -22580,7 +22272,7 @@ class ListOfLocalParameters(ListOfParameters):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfLocalParameters self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., LocalParameter objects, if the list is non-empty).
@@ -22604,7 +22296,7 @@ class ListOfLocalParameters(ListOfParameters):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfLocalParameters self) -> string
 
         Returns the XML element name of this object.
 
@@ -22618,10 +22310,10 @@ class ListOfLocalParameters(ListOfParameters):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> LocalParameter
-        get(self, unsigned int n) -> LocalParameter
-        get(self, string sid) -> LocalParameter
-        get(self, string sid) -> LocalParameter
+        get(ListOfLocalParameters self, unsigned int n) -> LocalParameter
+        get(ListOfLocalParameters self, unsigned int n) -> LocalParameter
+        get(ListOfLocalParameters self, string sid) -> LocalParameter
+        get(ListOfLocalParameters self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -22647,7 +22339,7 @@ class ListOfLocalParameters(ListOfParameters):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfLocalParameters self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -22666,8 +22358,8 @@ class ListOfLocalParameters(ListOfParameters):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> LocalParameter
-        remove(self, string sid) -> LocalParameter
+        remove(ListOfLocalParameters self, unsigned int n) -> LocalParameter
+        remove(ListOfLocalParameters self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -22864,9 +22556,9 @@ class InitialAssignment(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> InitialAssignment
-        __init__(self, SBMLNamespaces sbmlns) -> InitialAssignment
-        __init__(self, InitialAssignment orig) -> InitialAssignment
+        __init__(InitialAssignment self, unsigned int level, unsigned int version) -> InitialAssignment
+        __init__(InitialAssignment self, SBMLNamespaces sbmlns) -> InitialAssignment
+        __init__(InitialAssignment self, InitialAssignment orig) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -22959,7 +22651,7 @@ class InitialAssignment(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> InitialAssignment
+        clone(InitialAssignment self) -> InitialAssignment
 
         Creates and returns a deep copy of this InitialAssignment object.
 
@@ -22970,7 +22662,7 @@ class InitialAssignment(SBase):
 
     def getSymbol(self):
         """
-        getSymbol(self) -> string
+        getSymbol(InitialAssignment self) -> string
 
         Get the value of the 'symbol' attribute of this InitialAssignment.
 
@@ -22982,7 +22674,7 @@ class InitialAssignment(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(InitialAssignment self) -> ASTNode
 
         Get the mathematical formula of this InitialAssignment.
 
@@ -22994,7 +22686,7 @@ class InitialAssignment(SBase):
 
     def isSetSymbol(self):
         """
-        isSetSymbol(self) -> bool
+        isSetSymbol(InitialAssignment self) -> bool
 
         Predicate returning True if this InitialAssignment's 'symbol'
         attribute is set.
@@ -23007,7 +22699,7 @@ class InitialAssignment(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(InitialAssignment self) -> bool
 
         Predicate returning True if this InitialAssignment's 'math' subelement
         contains a value.
@@ -23020,7 +22712,7 @@ class InitialAssignment(SBase):
 
     def setSymbol(self, *args):
         """
-        setSymbol(self, string sid) -> int
+        setSymbol(InitialAssignment self, string sid) -> int
 
         Sets the 'symbol' attribute value of this InitialAssignment.
 
@@ -23039,7 +22731,7 @@ class InitialAssignment(SBase):
 
     def unsetSymbol(self):
         """
-        unsetSymbol(self) -> int
+        unsetSymbol(InitialAssignment self) -> int
 
         Unsets the 'symbol' attribute value of this InitialAssignment.
 
@@ -23055,7 +22747,7 @@ class InitialAssignment(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(InitialAssignment self, ASTNode math) -> int
 
         Sets the 'math' subelement of this InitialAssignment.
 
@@ -23076,8 +22768,8 @@ class InitialAssignment(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(InitialAssignment self) -> UnitDefinition
+        getDerivedUnitDefinition(InitialAssignment self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this
@@ -23123,8 +22815,8 @@ class InitialAssignment(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(InitialAssignment self) -> bool
+        containsUndeclaredUnits(InitialAssignment self) -> bool
 
         Predicate returning True if the math expression of this
         InitialAssignment contains parameters/numbers with undeclared units.
@@ -23145,7 +22837,7 @@ class InitialAssignment(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(InitialAssignment self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -23164,9 +22856,9 @@ class InitialAssignment(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -23175,7 +22867,7 @@ class InitialAssignment(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(InitialAssignment self) -> string
 
         Returns the XML element name of this object, which for
         InitialAssignment, is always 'initialAssignment'.
@@ -23187,7 +22879,7 @@ class InitialAssignment(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(InitialAssignment self) -> bool
 
         Predicate returning True if all the required attributes for this
         InitialAssignment object have been set.
@@ -23204,7 +22896,7 @@ class InitialAssignment(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(InitialAssignment self) -> bool
 
         Predicate returning True if all the required elements for this
         InitialAssignment object have been set.
@@ -23223,7 +22915,7 @@ class InitialAssignment(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(InitialAssignment self) -> string
 
         Internal implementation method.
 
@@ -23232,7 +22924,7 @@ class InitialAssignment(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(InitialAssignment self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -23260,7 +22952,7 @@ class InitialAssignment(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(InitialAssignment self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -23289,7 +22981,7 @@ class InitialAssignment(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(InitialAssignment self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -23298,7 +22990,7 @@ class InitialAssignment(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(InitialAssignment self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -23307,7 +22999,7 @@ class InitialAssignment(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(InitialAssignment self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -23330,46 +23022,6 @@ class ListOfInitialAssignments(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -23394,8 +23046,8 @@ class ListOfInitialAssignments(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfInitialAssignments
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfInitialAssignments
+        __init__(ListOfInitialAssignments self, unsigned int level, unsigned int version) -> ListOfInitialAssignments
+        __init__(ListOfInitialAssignments self, SBMLNamespaces sbmlns) -> ListOfInitialAssignments
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -23476,7 +23128,7 @@ class ListOfInitialAssignments(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfInitialAssignments
+        clone(ListOfInitialAssignments self) -> ListOfInitialAssignments
 
         Creates and returns a deep copy of this ListOfInitialAssignments
         object.
@@ -23488,7 +23140,7 @@ class ListOfInitialAssignments(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfInitialAssignments self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., InitialAssignment objects, if the list is non-empty).
@@ -23512,7 +23164,7 @@ class ListOfInitialAssignments(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfInitialAssignments self) -> string
 
         Returns the XML element name of this object.
 
@@ -23526,10 +23178,10 @@ class ListOfInitialAssignments(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> InitialAssignment
-        get(self, unsigned int n) -> InitialAssignment
-        get(self, string sid) -> InitialAssignment
-        get(self, string sid) -> InitialAssignment
+        get(ListOfInitialAssignments self, unsigned int n) -> InitialAssignment
+        get(ListOfInitialAssignments self, unsigned int n) -> InitialAssignment
+        get(ListOfInitialAssignments self, string sid) -> InitialAssignment
+        get(ListOfInitialAssignments self, string sid) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -23552,8 +23204,8 @@ class ListOfInitialAssignments(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> InitialAssignment
-        remove(self, string sid) -> InitialAssignment
+        remove(ListOfInitialAssignments self, unsigned int n) -> InitialAssignment
+        remove(ListOfInitialAssignments self, string sid) -> InitialAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -23594,7 +23246,7 @@ class ListOfInitialAssignments(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfInitialAssignments self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -23787,7 +23439,7 @@ class Rule(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, Rule orig) -> Rule
+        __init__(Rule self, Rule orig) -> Rule
 
         @internal
 
@@ -23797,7 +23449,7 @@ class Rule(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Rule
+        clone(Rule self) -> Rule
 
         Creates and returns a deep copy of this Rule object.
 
@@ -23808,7 +23460,7 @@ class Rule(SBase):
 
     def getFormula(self):
         """
-        getFormula(self) -> string
+        getFormula(Rule self) -> string
 
         Returns the mathematical expression of this Rule in text-string form.
 
@@ -23833,7 +23485,7 @@ class Rule(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Rule self) -> ASTNode
 
         Get the mathematical formula of this Rule as an ASTNode tree.
 
@@ -23853,7 +23505,7 @@ class Rule(SBase):
 
     def getVariable(self):
         """
-        getVariable(self) -> string
+        getVariable(Rule self) -> string
 
         Get the value of the 'variable' attribute of this Rule object.
 
@@ -23877,7 +23529,7 @@ class Rule(SBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(Rule self) -> string
 
         Returns the units for the mathematical formula of this Rule.
 
@@ -23893,7 +23545,7 @@ class Rule(SBase):
 
     def isSetFormula(self):
         """
-        isSetFormula(self) -> bool
+        isSetFormula(Rule self) -> bool
 
         Predicate returning True if this Rule's mathematical expression is
         set.
@@ -23920,7 +23572,7 @@ class Rule(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Rule self) -> bool
 
         Predicate returning True if this Rule's mathematical expression is
         set.
@@ -23944,7 +23596,7 @@ class Rule(SBase):
 
     def isSetVariable(self):
         """
-        isSetVariable(self) -> bool
+        isSetVariable(Rule self) -> bool
 
         Predicate returning True if this Rule's 'variable' attribute is set.
 
@@ -23968,7 +23620,7 @@ class Rule(SBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(Rule self) -> bool
 
         Predicate returning True if this Rule's 'units' attribute is set.
 
@@ -23984,7 +23636,7 @@ class Rule(SBase):
 
     def setFormula(self, *args):
         """
-        setFormula(self, string formula) -> int
+        setFormula(Rule self, string formula) -> int
 
         Sets the 'math' subelement of this Rule to an expression in text-
         string form.
@@ -24017,7 +23669,7 @@ class Rule(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Rule self, ASTNode math) -> int
 
         Sets the 'math' subelement of this Rule to a copy of the given
         ASTNode.
@@ -24045,7 +23697,7 @@ class Rule(SBase):
 
     def setVariable(self, *args):
         """
-        setVariable(self, string sid) -> int
+        setVariable(Rule self, string sid) -> int
 
         Sets the 'variable' attribute value of this Rule object.
 
@@ -24078,7 +23730,7 @@ class Rule(SBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string sname) -> int
+        setUnits(Rule self, string sname) -> int
 
         Sets the units for this Rule.
 
@@ -24103,7 +23755,7 @@ class Rule(SBase):
 
     def unsetVariable(self):
         """
-        unsetVariable(self) -> int
+        unsetVariable(Rule self) -> int
 
         Unsets the value of the 'variable' attribute of this Rule object.
 
@@ -24123,7 +23775,7 @@ class Rule(SBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(Rule self) -> int
 
         Unsets the 'units' for this Rule.
 
@@ -24146,8 +23798,8 @@ class Rule(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Rule self) -> UnitDefinition
+        getDerivedUnitDefinition(Rule self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this Rule.
@@ -24188,8 +23840,8 @@ class Rule(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(Rule self) -> bool
+        containsUndeclaredUnits(Rule self) -> bool
 
         Predicate returning True if the math expression of this Rule contains
         parameters/numbers with undeclared units.
@@ -24210,7 +23862,7 @@ class Rule(SBase):
 
     def getType(self):
         """
-        getType(self) -> RuleType_t
+        getType(Rule self) -> RuleType_t
 
         Returns a code representing the type of rule this is.
 
@@ -24234,7 +23886,7 @@ class Rule(SBase):
 
     def isAlgebraic(self):
         """
-        isAlgebraic(self) -> bool
+        isAlgebraic(Rule self) -> bool
 
         Predicate returning True if this Rule is an AlgebraicRule.
 
@@ -24245,7 +23897,7 @@ class Rule(SBase):
 
     def isAssignment(self):
         """
-        isAssignment(self) -> bool
+        isAssignment(Rule self) -> bool
 
         Predicate returning True if this Rule is an AssignmentRule.
 
@@ -24256,7 +23908,7 @@ class Rule(SBase):
 
     def isCompartmentVolume(self):
         """
-        isCompartmentVolume(self) -> bool
+        isCompartmentVolume(Rule self) -> bool
 
         Predicate returning True if this Rule is an CompartmentVolumeRule or
         equivalent.
@@ -24274,7 +23926,7 @@ class Rule(SBase):
 
     def isParameter(self):
         """
-        isParameter(self) -> bool
+        isParameter(Rule self) -> bool
 
         Predicate returning True if this Rule is an ParameterRule or
         equivalent.
@@ -24292,7 +23944,7 @@ class Rule(SBase):
 
     def isRate(self):
         """
-        isRate(self) -> bool
+        isRate(Rule self) -> bool
 
         Predicate returning True if this Rule is a RateRule (SBML Levels 2-3)
         or has a 'type' attribute value of 'rate' (SBML Level 1).
@@ -24305,7 +23957,7 @@ class Rule(SBase):
 
     def isScalar(self):
         """
-        isScalar(self) -> bool
+        isScalar(Rule self) -> bool
 
         Predicate returning True if this Rule is an AssignmentRule (SBML
         Levels 2-3) or has a 'type' attribute value of 'scalar' (SBML Level
@@ -24319,7 +23971,7 @@ class Rule(SBase):
 
     def isSpeciesConcentration(self):
         """
-        isSpeciesConcentration(self) -> bool
+        isSpeciesConcentration(Rule self) -> bool
 
         Predicate returning True if this Rule is a SpeciesConcentrationRule or
         equivalent.
@@ -24338,7 +23990,7 @@ class Rule(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Rule self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -24358,9 +24010,9 @@ class Rule(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -24369,7 +24021,7 @@ class Rule(SBase):
 
     def getL1TypeCode(self):
         """
-        getL1TypeCode(self) -> int
+        getL1TypeCode(Rule self) -> int
 
         Returns the SBML Level 1 type code for this Rule object.
 
@@ -24385,13 +24037,13 @@ class Rule(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Rule self) -> string
 
         Returns the XML element name of this object.
 
         The returned value can be any of a number of different strings,
         depending on the SBML Level in use and the kind of Rule object this
-        is.  The rules as of libSBML version 5.12.0 are the following:
+        is.  The rules as of libSBML version 5.13.0 are the following:
 
         * (Level 2 and 3) RateRule: returns 'rateRule'
 
@@ -24419,7 +24071,7 @@ class Rule(SBase):
 
     def setL1TypeCode(self, *args):
         """
-        setL1TypeCode(self, int type) -> int
+        setL1TypeCode(Rule self, int type) -> int
 
         Sets the SBML Level 1 type code for this Rule.
 
@@ -24440,7 +24092,7 @@ class Rule(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Rule self) -> bool
 
         Predicate returning True if all the required elements for this Rule
         object have been set.
@@ -24455,7 +24107,7 @@ class Rule(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Rule self) -> bool
 
         Predicate returning True if all the required attributes for this Rule
         object have been set.
@@ -24474,7 +24126,7 @@ class Rule(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Rule self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -24502,7 +24154,7 @@ class Rule(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Rule self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -24531,7 +24183,7 @@ class Rule(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Rule self) -> string
 
         Internal implementation method.
 
@@ -24540,7 +24192,7 @@ class Rule(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Rule self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -24549,7 +24201,7 @@ class Rule(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(Rule self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -24558,7 +24210,7 @@ class Rule(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(Rule self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -24581,46 +24233,6 @@ class ListOfRules(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -24645,8 +24257,8 @@ class ListOfRules(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfRules
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfRules
+        __init__(ListOfRules self, unsigned int level, unsigned int version) -> ListOfRules
+        __init__(ListOfRules self, SBMLNamespaces sbmlns) -> ListOfRules
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -24726,7 +24338,7 @@ class ListOfRules(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfRules
+        clone(ListOfRules self) -> ListOfRules
 
         Creates and returns a deep copy of this ListOfRules object.
 
@@ -24737,7 +24349,7 @@ class ListOfRules(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfRules self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Rule objects, if the list is non-empty).
@@ -24761,7 +24373,7 @@ class ListOfRules(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfRules self) -> string
 
         Returns the XML element name of this object.
 
@@ -24774,10 +24386,10 @@ class ListOfRules(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Rule
-        get(self, unsigned int n) -> Rule
-        get(self, string sid) -> Rule
-        get(self, string sid) -> Rule
+        get(ListOfRules self, unsigned int n) -> Rule
+        get(ListOfRules self, unsigned int n) -> Rule
+        get(ListOfRules self, string sid) -> Rule
+        get(ListOfRules self, string sid) -> Rule
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -24800,7 +24412,7 @@ class ListOfRules(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfRules self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -24818,8 +24430,8 @@ class ListOfRules(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Rule
-        remove(self, string sid) -> Rule
+        remove(ListOfRules self, unsigned int n) -> Rule
+        remove(ListOfRules self, string sid) -> Rule
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -25052,8 +24664,8 @@ class AlgebraicRule(Rule):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> AlgebraicRule
-        __init__(self, SBMLNamespaces sbmlns) -> AlgebraicRule
+        __init__(AlgebraicRule self, unsigned int level, unsigned int version) -> AlgebraicRule
+        __init__(AlgebraicRule self, SBMLNamespaces sbmlns) -> AlgebraicRule
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -25139,7 +24751,7 @@ class AlgebraicRule(Rule):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> AlgebraicRule
+        clone(AlgebraicRule self) -> AlgebraicRule
 
         Creates and returns a deep copy of this AlgebraicRule object.
 
@@ -25150,7 +24762,7 @@ class AlgebraicRule(Rule):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(AlgebraicRule self) -> bool
 
         Predicate returning True if all the required attributes for this
         AlgebraicRule object have been set.
@@ -25402,8 +25014,8 @@ class AssignmentRule(Rule):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> AssignmentRule
-        __init__(self, SBMLNamespaces sbmlns) -> AssignmentRule
+        __init__(AssignmentRule self, unsigned int level, unsigned int version) -> AssignmentRule
+        __init__(AssignmentRule self, SBMLNamespaces sbmlns) -> AssignmentRule
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -25489,7 +25101,7 @@ class AssignmentRule(Rule):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> AssignmentRule
+        clone(AssignmentRule self) -> AssignmentRule
 
         Creates and returns a deep copy of this AssignmentRule object.
 
@@ -25500,7 +25112,7 @@ class AssignmentRule(Rule):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(AssignmentRule self) -> bool
 
         Predicate returning True if all the required attributes for this
         AssignmentRule object have been set.
@@ -25519,7 +25131,7 @@ class AssignmentRule(Rule):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(AssignmentRule self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -25759,8 +25371,8 @@ class RateRule(Rule):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> RateRule
-        __init__(self, SBMLNamespaces sbmlns) -> RateRule
+        __init__(RateRule self, unsigned int level, unsigned int version) -> RateRule
+        __init__(RateRule self, SBMLNamespaces sbmlns) -> RateRule
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -25845,7 +25457,7 @@ class RateRule(Rule):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> RateRule
+        clone(RateRule self) -> RateRule
 
         Creates and returns a deep copy of this RateRule object.
 
@@ -25856,7 +25468,7 @@ class RateRule(Rule):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(RateRule self) -> bool
 
         Predicate returning True if all the required attributes for this
         RateRule object have been set.
@@ -25875,7 +25487,7 @@ class RateRule(Rule):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(RateRule self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -25992,9 +25604,9 @@ class Constraint(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Constraint
-        __init__(self, SBMLNamespaces sbmlns) -> Constraint
-        __init__(self, Constraint orig) -> Constraint
+        __init__(Constraint self, unsigned int level, unsigned int version) -> Constraint
+        __init__(Constraint self, SBMLNamespaces sbmlns) -> Constraint
+        __init__(Constraint self, Constraint orig) -> Constraint
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -26087,7 +25699,7 @@ class Constraint(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Constraint
+        clone(Constraint self) -> Constraint
 
         Creates and returns a deep copy of this Constraint object.
 
@@ -26098,7 +25710,7 @@ class Constraint(SBase):
 
     def getMessage(self):
         """
-        getMessage(self) -> XMLNode
+        getMessage(Constraint self) -> XMLNode
 
         Get the message, if any, associated with this Constraint
 
@@ -26109,7 +25721,7 @@ class Constraint(SBase):
 
     def getMessageString(self):
         """
-        getMessageString(self) -> string
+        getMessageString(Constraint self) -> string
 
         Get the message string, if any, associated with this Constraint
 
@@ -26120,7 +25732,7 @@ class Constraint(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Constraint self) -> ASTNode
 
         Get the mathematical expression of this Constraint
 
@@ -26131,7 +25743,7 @@ class Constraint(SBase):
 
     def isSetMessage(self):
         """
-        isSetMessage(self) -> bool
+        isSetMessage(Constraint self) -> bool
 
         Predicate returning True if a message is defined for this Constraint.
 
@@ -26143,7 +25755,7 @@ class Constraint(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Constraint self) -> bool
 
         Predicate returning True if a mathematical formula is defined for this
         Constraint.
@@ -26156,9 +25768,9 @@ class Constraint(SBase):
 
     def setMessage(self, *args):
         """
-        setMessage(self, XMLNode xhtml) -> int
-        setMessage(self, string message, bool addXHTMLMarkup = False) -> int
-        setMessage(self, string message) -> int
+        setMessage(Constraint self, XMLNode xhtml) -> int
+        setMessage(Constraint self, string message, bool addXHTMLMarkup=False) -> int
+        setMessage(Constraint self, string message) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -26208,7 +25820,7 @@ class Constraint(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Constraint self, ASTNode math) -> int
 
         Sets the mathematical expression of this Constraint to a copy of the
         AST given as 'math'.
@@ -26228,7 +25840,7 @@ class Constraint(SBase):
 
     def unsetMessage(self):
         """
-        unsetMessage(self) -> int
+        unsetMessage(Constraint self) -> int
 
         Unsets the 'message' subelement of this Constraint.
 
@@ -26244,7 +25856,7 @@ class Constraint(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Constraint self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -26272,7 +25884,7 @@ class Constraint(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Constraint self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -26301,7 +25913,7 @@ class Constraint(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Constraint self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -26310,7 +25922,7 @@ class Constraint(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Constraint self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -26328,9 +25940,9 @@ class Constraint(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -26339,7 +25951,7 @@ class Constraint(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Constraint self) -> string
 
         Returns the XML element name of this object, which for Constraint, is
         always 'constraint'.
@@ -26351,7 +25963,7 @@ class Constraint(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Constraint self) -> bool
 
         Predicate returning True if all the required elements for this
         Constraint object have been set.
@@ -26384,46 +25996,6 @@ class ListOfConstraints(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -26448,8 +26020,8 @@ class ListOfConstraints(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfConstraints
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfConstraints
+        __init__(ListOfConstraints self, unsigned int level, unsigned int version) -> ListOfConstraints
+        __init__(ListOfConstraints self, SBMLNamespaces sbmlns) -> ListOfConstraints
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -26530,7 +26102,7 @@ class ListOfConstraints(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfConstraints
+        clone(ListOfConstraints self) -> ListOfConstraints
 
         Creates and returns a deep copy of this ListOfConstraints object.
 
@@ -26541,7 +26113,7 @@ class ListOfConstraints(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfConstraints self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Constraint objects, if the list is non-empty).
@@ -26565,7 +26137,7 @@ class ListOfConstraints(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfConstraints self) -> string
 
         Returns the XML element name of this object.
 
@@ -26578,8 +26150,8 @@ class ListOfConstraints(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Constraint
-        get(self, unsigned int n) -> Constraint
+        get(ListOfConstraints self, unsigned int n) -> Constraint
+        get(ListOfConstraints self, unsigned int n) -> Constraint
 
         Get a Constraint from the ListOfConstraints.
 
@@ -26594,7 +26166,7 @@ class ListOfConstraints(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Constraint
+        remove(ListOfConstraints self, unsigned int n) -> Constraint
 
         Removes the nth item from this ListOfConstraints items and returns a
         pointer to it.
@@ -26743,9 +26315,9 @@ class Reaction(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Reaction
-        __init__(self, SBMLNamespaces sbmlns) -> Reaction
-        __init__(self, Reaction orig) -> Reaction
+        __init__(Reaction self, unsigned int level, unsigned int version) -> Reaction
+        __init__(Reaction self, SBMLNamespaces sbmlns) -> Reaction
+        __init__(Reaction self, Reaction orig) -> Reaction
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -26837,7 +26409,7 @@ class Reaction(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Reaction
+        clone(Reaction self) -> Reaction
 
         Creates and returns a deep copy of this Reaction object.
 
@@ -26848,7 +26420,7 @@ class Reaction(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(Reaction self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -26862,7 +26434,7 @@ class Reaction(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(Reaction self, string metaid) -> SBase
 
         Returns the first child element it can find with the given 'metaid',
         or None if no such object is found.
@@ -26877,7 +26449,7 @@ class Reaction(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Reaction self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -26905,7 +26477,7 @@ class Reaction(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Reaction self)
 
         Initializes the fields of this Reaction object to 'typical' default
         values.
@@ -26940,7 +26512,7 @@ class Reaction(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Reaction self) -> string
 
         Returns the value of the 'id' attribute of this Reaction.
 
@@ -26951,7 +26523,7 @@ class Reaction(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Reaction self) -> string
 
         Returns the value of the 'name' attribute of this Reaction.
 
@@ -26962,8 +26534,8 @@ class Reaction(SBase):
 
     def getKineticLaw(self, *args):
         """
-        getKineticLaw(self) -> KineticLaw
-        getKineticLaw(self) -> KineticLaw
+        getKineticLaw(Reaction self) -> KineticLaw
+        getKineticLaw(Reaction self) -> KineticLaw
 
         Returns the KineticLaw object contained in this Reaction.
 
@@ -26974,7 +26546,7 @@ class Reaction(SBase):
 
     def getReversible(self):
         """
-        getReversible(self) -> bool
+        getReversible(Reaction self) -> bool
 
         Returns the value of the 'reversible' attribute on the Reaction as a
         boolean value.
@@ -26986,7 +26558,7 @@ class Reaction(SBase):
 
     def getFast(self):
         """
-        getFast(self) -> bool
+        getFast(Reaction self) -> bool
 
         Returns the value of the 'fast' attribute of this Reaction.
 
@@ -27011,7 +26583,7 @@ class Reaction(SBase):
 
     def getCompartment(self):
         """
-        getCompartment(self) -> string
+        getCompartment(Reaction self) -> string
 
         (SBML Level 3 only) Returns the value of the 'compartment' attribute
         on the Reaction.
@@ -27028,7 +26600,7 @@ class Reaction(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Reaction self) -> bool
 
         Predicate returning True if this Reaction's 'id' attribute is set.
 
@@ -27040,7 +26612,7 @@ class Reaction(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Reaction self) -> bool
 
         Predicate returning True if this Reaction's 'name' attribute is set.
 
@@ -27052,7 +26624,7 @@ class Reaction(SBase):
 
     def isSetKineticLaw(self):
         """
-        isSetKineticLaw(self) -> bool
+        isSetKineticLaw(Reaction self) -> bool
 
         Predicate returning True if this Reaction contains a kinetic law
         object.
@@ -27065,7 +26637,7 @@ class Reaction(SBase):
 
     def isSetFast(self):
         """
-        isSetFast(self) -> bool
+        isSetFast(Reaction self) -> bool
 
         Predicate returning True if the value of the 'fast' attribute on this
         Reaction.
@@ -27091,7 +26663,7 @@ class Reaction(SBase):
 
     def isSetCompartment(self):
         """
-        isSetCompartment(self) -> bool
+        isSetCompartment(Reaction self) -> bool
 
         Predicate returning True if this Reaction's 'compartment' attribute is
         set.
@@ -27109,7 +26681,7 @@ class Reaction(SBase):
 
     def isSetReversible(self):
         """
-        isSetReversible(self) -> bool
+        isSetReversible(Reaction self) -> bool
 
         Predicate returning True if this Reaction's 'reversible' attribute is
         set.
@@ -27122,7 +26694,7 @@ class Reaction(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Reaction self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Reaction.
 
@@ -27163,7 +26735,7 @@ class Reaction(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Reaction self, string name) -> int
 
         Sets the value of the 'name' attribute of this Reaction.
 
@@ -27183,7 +26755,7 @@ class Reaction(SBase):
 
     def setKineticLaw(self, *args):
         """
-        setKineticLaw(self, KineticLaw kl) -> int
+        setKineticLaw(Reaction self, KineticLaw kl) -> int
 
         Sets the 'kineticLaw' subelement of this Reaction to a copy of the
         given KineticLaw object.
@@ -27204,7 +26776,7 @@ class Reaction(SBase):
 
     def setReversible(self, *args):
         """
-        setReversible(self, bool value) -> int
+        setReversible(Reaction self, bool value) -> int
 
         Sets the value of the 'reversible' attribute of this Reaction.
 
@@ -27220,7 +26792,7 @@ class Reaction(SBase):
 
     def setFast(self, *args):
         """
-        setFast(self, bool value) -> int
+        setFast(Reaction self, bool value) -> int
 
         Sets the value of the 'fast' attribute of this Reaction.
 
@@ -27250,7 +26822,7 @@ class Reaction(SBase):
 
     def setCompartment(self, *args):
         """
-        setCompartment(self, string sid) -> int
+        setCompartment(Reaction self, string sid) -> int
 
         Sets the value of the 'compartment' attribute of this Reaction.
 
@@ -27278,7 +26850,7 @@ class Reaction(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Reaction self) -> int
 
         Unsets the value of the 'name' attribute of this Reaction.
 
@@ -27294,7 +26866,7 @@ class Reaction(SBase):
 
     def unsetKineticLaw(self):
         """
-        unsetKineticLaw(self) -> int
+        unsetKineticLaw(Reaction self) -> int
 
         Unsets the 'kineticLaw' subelement of this Reaction.
 
@@ -27310,7 +26882,7 @@ class Reaction(SBase):
 
     def unsetFast(self):
         """
-        unsetFast(self) -> int
+        unsetFast(Reaction self) -> int
 
         Unsets the value of the 'fast' attribute of this Reaction.
 
@@ -27340,7 +26912,7 @@ class Reaction(SBase):
 
     def unsetCompartment(self):
         """
-        unsetCompartment(self) -> int
+        unsetCompartment(Reaction self) -> int
 
         Unsets the value of the 'compartment' attribute of this Reaction.
 
@@ -27363,7 +26935,7 @@ class Reaction(SBase):
 
     def unsetReversible(self):
         """
-        unsetReversible(self) -> int
+        unsetReversible(Reaction self) -> int
 
         Unsets the value of the 'reversible' attribute of this Reaction.
 
@@ -27381,12 +26953,11 @@ class Reaction(SBase):
 
     def addReactant(self, *args):
         """
-        addReactant(self, SpeciesReference sr) -> int
-        addReactant(self, Species species, double stoichiometry = 1.0, string id = "", 
-            bool constant = True) -> int
-        addReactant(self, Species species, double stoichiometry = 1.0, string id = "") -> int
-        addReactant(self, Species species, double stoichiometry = 1.0) -> int
-        addReactant(self, Species species) -> int
+        addReactant(Reaction self, SpeciesReference sr) -> int
+        addReactant(Reaction self, Species species, double stoichiometry=1.0, string id="", bool constant=True) -> int
+        addReactant(Reaction self, Species species, double stoichiometry=1.0, string id="") -> int
+        addReactant(Reaction self, Species species, double stoichiometry=1.0) -> int
+        addReactant(Reaction self, Species species) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27445,12 +27016,11 @@ class Reaction(SBase):
 
     def addProduct(self, *args):
         """
-        addProduct(self, SpeciesReference sr) -> int
-        addProduct(self, Species species, double stoichiometry = 1.0, string id = "", 
-            bool constant = True) -> int
-        addProduct(self, Species species, double stoichiometry = 1.0, string id = "") -> int
-        addProduct(self, Species species, double stoichiometry = 1.0) -> int
-        addProduct(self, Species species) -> int
+        addProduct(Reaction self, SpeciesReference sr) -> int
+        addProduct(Reaction self, Species species, double stoichiometry=1.0, string id="", bool constant=True) -> int
+        addProduct(Reaction self, Species species, double stoichiometry=1.0, string id="") -> int
+        addProduct(Reaction self, Species species, double stoichiometry=1.0) -> int
+        addProduct(Reaction self, Species species) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27509,9 +27079,9 @@ class Reaction(SBase):
 
     def addModifier(self, *args):
         """
-        addModifier(self, ModifierSpeciesReference msr) -> int
-        addModifier(self, Species species, string id = "") -> int
-        addModifier(self, Species species) -> int
+        addModifier(Reaction self, ModifierSpeciesReference msr) -> int
+        addModifier(Reaction self, Species species, string id="") -> int
+        addModifier(Reaction self, Species species) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27563,7 +27133,7 @@ class Reaction(SBase):
 
     def createReactant(self):
         """
-        createReactant(self) -> SpeciesReference
+        createReactant(Reaction self) -> SpeciesReference
 
         Creates a new SpeciesReference, adds it to this Reaction's list of
         reactants, and returns it.
@@ -27575,7 +27145,7 @@ class Reaction(SBase):
 
     def createProduct(self):
         """
-        createProduct(self) -> SpeciesReference
+        createProduct(Reaction self) -> SpeciesReference
 
         Creates a new SpeciesReference, adds it to this Reaction's list of
         products, and returns it.
@@ -27587,7 +27157,7 @@ class Reaction(SBase):
 
     def createModifier(self):
         """
-        createModifier(self) -> ModifierSpeciesReference
+        createModifier(Reaction self) -> ModifierSpeciesReference
 
         Creates a new ModifierSpeciesReference, adds it to this Reaction's
         list of modifiers and returns it.
@@ -27599,7 +27169,7 @@ class Reaction(SBase):
 
     def createKineticLaw(self):
         """
-        createKineticLaw(self) -> KineticLaw
+        createKineticLaw(Reaction self) -> KineticLaw
 
         Creates a new KineticLaw object, installs it as this Reaction's
         'kineticLaw' subelement, and returns it.
@@ -27613,8 +27183,8 @@ class Reaction(SBase):
 
     def getListOfReactants(self, *args):
         """
-        getListOfReactants(self) -> ListOfSpeciesReferences
-        getListOfReactants(self) -> ListOfSpeciesReferences
+        getListOfReactants(Reaction self) -> ListOfSpeciesReferences
+        getListOfReactants(Reaction self) -> ListOfSpeciesReferences
 
         Returns the list of reactants in this Reaction object.
 
@@ -27626,8 +27196,8 @@ class Reaction(SBase):
 
     def getListOfProducts(self, *args):
         """
-        getListOfProducts(self) -> ListOfSpeciesReferences
-        getListOfProducts(self) -> ListOfSpeciesReferences
+        getListOfProducts(Reaction self) -> ListOfSpeciesReferences
+        getListOfProducts(Reaction self) -> ListOfSpeciesReferences
 
         Returns the list of products in this Reaction object.
 
@@ -27639,8 +27209,8 @@ class Reaction(SBase):
 
     def getListOfModifiers(self, *args):
         """
-        getListOfModifiers(self) -> ListOfSpeciesReferences
-        getListOfModifiers(self) -> ListOfSpeciesReferences
+        getListOfModifiers(Reaction self) -> ListOfSpeciesReferences
+        getListOfModifiers(Reaction self) -> ListOfSpeciesReferences
 
         Returns the list of modifiers in this Reaction object.
 
@@ -27652,10 +27222,10 @@ class Reaction(SBase):
 
     def getReactant(self, *args):
         """
-        getReactant(self, unsigned int n) -> SpeciesReference
-        getReactant(self, unsigned int n) -> SpeciesReference
-        getReactant(self, string species) -> SpeciesReference
-        getReactant(self, string species) -> SpeciesReference
+        getReactant(Reaction self, unsigned int n) -> SpeciesReference
+        getReactant(Reaction self, unsigned int n) -> SpeciesReference
+        getReactant(Reaction self, string species) -> SpeciesReference
+        getReactant(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27695,10 +27265,10 @@ class Reaction(SBase):
 
     def getProduct(self, *args):
         """
-        getProduct(self, unsigned int n) -> SpeciesReference
-        getProduct(self, unsigned int n) -> SpeciesReference
-        getProduct(self, string species) -> SpeciesReference
-        getProduct(self, string species) -> SpeciesReference
+        getProduct(Reaction self, unsigned int n) -> SpeciesReference
+        getProduct(Reaction self, unsigned int n) -> SpeciesReference
+        getProduct(Reaction self, string species) -> SpeciesReference
+        getProduct(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27738,10 +27308,10 @@ class Reaction(SBase):
 
     def getModifier(self, *args):
         """
-        getModifier(self, unsigned int n) -> ModifierSpeciesReference
-        getModifier(self, unsigned int n) -> ModifierSpeciesReference
-        getModifier(self, string species) -> ModifierSpeciesReference
-        getModifier(self, string species) -> ModifierSpeciesReference
+        getModifier(Reaction self, unsigned int n) -> ModifierSpeciesReference
+        getModifier(Reaction self, unsigned int n) -> ModifierSpeciesReference
+        getModifier(Reaction self, string species) -> ModifierSpeciesReference
+        getModifier(Reaction self, string species) -> ModifierSpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27781,7 +27351,7 @@ class Reaction(SBase):
 
     def getNumReactants(self):
         """
-        getNumReactants(self) -> unsigned int
+        getNumReactants(Reaction self) -> unsigned int
 
         Returns the number of reactant species in this Reaction.
 
@@ -27792,7 +27362,7 @@ class Reaction(SBase):
 
     def getNumProducts(self):
         """
-        getNumProducts(self) -> unsigned int
+        getNumProducts(Reaction self) -> unsigned int
 
         Returns the number of product species in this Reaction.
 
@@ -27803,7 +27373,7 @@ class Reaction(SBase):
 
     def getNumModifiers(self):
         """
-        getNumModifiers(self) -> unsigned int
+        getNumModifiers(Reaction self) -> unsigned int
 
         Returns the number of modifier species in this Reaction.
 
@@ -27814,8 +27384,8 @@ class Reaction(SBase):
 
     def removeReactant(self, *args):
         """
-        removeReactant(self, unsigned int n) -> SpeciesReference
-        removeReactant(self, string species) -> SpeciesReference
+        removeReactant(Reaction self, unsigned int n) -> SpeciesReference
+        removeReactant(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27862,8 +27432,8 @@ class Reaction(SBase):
 
     def removeProduct(self, *args):
         """
-        removeProduct(self, unsigned int n) -> SpeciesReference
-        removeProduct(self, string species) -> SpeciesReference
+        removeProduct(Reaction self, unsigned int n) -> SpeciesReference
+        removeProduct(Reaction self, string species) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27909,8 +27479,8 @@ class Reaction(SBase):
 
     def removeModifier(self, *args):
         """
-        removeModifier(self, unsigned int n) -> ModifierSpeciesReference
-        removeModifier(self, string species) -> ModifierSpeciesReference
+        removeModifier(Reaction self, unsigned int n) -> ModifierSpeciesReference
+        removeModifier(Reaction self, string species) -> ModifierSpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -27956,12 +27526,12 @@ class Reaction(SBase):
         return _libsbml.Reaction_removeModifier(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(Reaction self)"""
         return _libsbml.Reaction_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(Reaction self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -27970,7 +27540,7 @@ class Reaction(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Reaction self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -27988,9 +27558,9 @@ class Reaction(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -27999,7 +27569,7 @@ class Reaction(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Reaction self) -> string
 
         Returns the XML element name of this object, which for Reaction, is
         always 'reaction'.
@@ -28011,7 +27581,7 @@ class Reaction(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Reaction self) -> bool
 
         Predicate returning True if all the required attributes for this
         Reaction object have been set.
@@ -28048,46 +27618,6 @@ class ListOfReactions(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -28112,8 +27642,8 @@ class ListOfReactions(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfReactions
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfReactions
+        __init__(ListOfReactions self, unsigned int level, unsigned int version) -> ListOfReactions
+        __init__(ListOfReactions self, SBMLNamespaces sbmlns) -> ListOfReactions
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -28194,7 +27724,7 @@ class ListOfReactions(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfReactions
+        clone(ListOfReactions self) -> ListOfReactions
 
         Creates and returns a deep copy of this ListOfReactions object.
 
@@ -28205,7 +27735,7 @@ class ListOfReactions(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfReactions self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Reaction objects, if the list is non-empty).
@@ -28229,7 +27759,7 @@ class ListOfReactions(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfReactions self) -> string
 
         Returns the XML element name of this object
 
@@ -28242,10 +27772,10 @@ class ListOfReactions(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Reaction
-        get(self, unsigned int n) -> Reaction
-        get(self, string sid) -> Reaction
-        get(self, string sid) -> Reaction
+        get(ListOfReactions self, unsigned int n) -> Reaction
+        get(ListOfReactions self, unsigned int n) -> Reaction
+        get(ListOfReactions self, string sid) -> Reaction
+        get(ListOfReactions self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -28268,8 +27798,8 @@ class ListOfReactions(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Reaction
-        remove(self, string sid) -> Reaction
+        remove(ListOfReactions self, unsigned int n) -> Reaction
+        remove(ListOfReactions self, string sid) -> Reaction
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -28402,9 +27932,9 @@ class KineticLaw(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> KineticLaw
-        __init__(self, SBMLNamespaces sbmlns) -> KineticLaw
-        __init__(self, KineticLaw orig) -> KineticLaw
+        __init__(KineticLaw self, unsigned int level, unsigned int version) -> KineticLaw
+        __init__(KineticLaw self, SBMLNamespaces sbmlns) -> KineticLaw
+        __init__(KineticLaw self, KineticLaw orig) -> KineticLaw
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -28497,7 +28027,7 @@ class KineticLaw(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> KineticLaw
+        clone(KineticLaw self) -> KineticLaw
 
         Creates and returns a deep copy of this KineticLaw object.
 
@@ -28508,7 +28038,7 @@ class KineticLaw(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(KineticLaw self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -28522,7 +28052,7 @@ class KineticLaw(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(KineticLaw self, string metaid) -> SBase
 
         Returns the first child element it can find with the given 'metaid',
         or None if no such object is found.
@@ -28537,7 +28067,7 @@ class KineticLaw(SBase):
 
     def getFormula(self):
         """
-        getFormula(self) -> string
+        getFormula(KineticLaw self) -> string
 
         Returns the mathematical formula for this KineticLaw object and return
         it as as a text string.
@@ -28567,7 +28097,7 @@ class KineticLaw(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(KineticLaw self) -> ASTNode
 
         Returns the mathematical formula for this KineticLaw object and return
         it as as an AST.
@@ -28585,7 +28115,7 @@ class KineticLaw(SBase):
 
     def getTimeUnits(self):
         """
-        getTimeUnits(self) -> string
+        getTimeUnits(KineticLaw self) -> string
 
         (SBML Level 2 Version 1 only) Returns the value of the 'timeUnits'
         attribute of this KineticLaw object.
@@ -28604,7 +28134,7 @@ class KineticLaw(SBase):
 
     def getSubstanceUnits(self):
         """
-        getSubstanceUnits(self) -> string
+        getSubstanceUnits(KineticLaw self) -> string
 
         (SBML Level 2 Version 1 only) Returns the value of the
         'substanceUnits' attribute of this KineticLaw object.
@@ -28623,7 +28153,7 @@ class KineticLaw(SBase):
 
     def isSetFormula(self):
         """
-        isSetFormula(self) -> bool
+        isSetFormula(KineticLaw self) -> bool
 
         Predicate returning True if this KineticLaw's 'formula' attribute is
         set.
@@ -28654,7 +28184,7 @@ class KineticLaw(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(KineticLaw self) -> bool
 
         Predicate returning True if this Kinetic's 'math' subelement is set.
 
@@ -28671,7 +28201,7 @@ class KineticLaw(SBase):
 
     def isSetTimeUnits(self):
         """
-        isSetTimeUnits(self) -> bool
+        isSetTimeUnits(KineticLaw self) -> bool
 
         (SBML Level 2 Version 1 only) Predicate returning True if this
         SpeciesReference's 'timeUnits' attribute is set.
@@ -28691,7 +28221,7 @@ class KineticLaw(SBase):
 
     def isSetSubstanceUnits(self):
         """
-        isSetSubstanceUnits(self) -> bool
+        isSetSubstanceUnits(KineticLaw self) -> bool
 
         (SBML Level 2 Version 1 only) Predicate returning True if this
         SpeciesReference's 'substanceUnits' attribute is set.
@@ -28711,7 +28241,7 @@ class KineticLaw(SBase):
 
     def setFormula(self, *args):
         """
-        setFormula(self, string formula) -> int
+        setFormula(KineticLaw self, string formula) -> int
 
         Sets the mathematical expression of this KineticLaw instance to the
         given 'formula'.
@@ -28748,7 +28278,7 @@ class KineticLaw(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(KineticLaw self, ASTNode math) -> int
 
         Sets the mathematical expression of this KineticLaw instance to a copy
         of the given ASTNode.
@@ -28773,7 +28303,7 @@ class KineticLaw(SBase):
 
     def setTimeUnits(self, *args):
         """
-        setTimeUnits(self, string sid) -> int
+        setTimeUnits(KineticLaw self, string sid) -> int
 
         (SBML Level 2 Version 1 only) Sets the 'timeUnits' attribute of this
         KineticLaw object to a copy of the identifier in 'sid'.
@@ -28801,7 +28331,7 @@ class KineticLaw(SBase):
 
     def setSubstanceUnits(self, *args):
         """
-        setSubstanceUnits(self, string sid) -> int
+        setSubstanceUnits(KineticLaw self, string sid) -> int
 
         (SBML Level 2 Version 1 only) Sets the 'substanceUnits' attribute of
         this KineticLaw object to a copy of the identifier given in 'sid'.
@@ -28829,7 +28359,7 @@ class KineticLaw(SBase):
 
     def unsetTimeUnits(self):
         """
-        unsetTimeUnits(self) -> int
+        unsetTimeUnits(KineticLaw self) -> int
 
         (SBML Level 2 Version 1 only) Unsets the 'timeUnits' attribugte of
         this KineticLaw object.
@@ -28855,7 +28385,7 @@ class KineticLaw(SBase):
 
     def unsetSubstanceUnits(self):
         """
-        unsetSubstanceUnits(self) -> int
+        unsetSubstanceUnits(KineticLaw self) -> int
 
         (SBML Level 2 Version 1 only) Unsets the 'substanceUnits' attribute of
         this KineticLaw object.
@@ -28881,7 +28411,7 @@ class KineticLaw(SBase):
 
     def addParameter(self, *args):
         """
-        addParameter(self, Parameter p) -> int
+        addParameter(KineticLaw self, Parameter p) -> int
 
         Adds a copy of the given Parameter object to the list of local
         parameters in this KineticLaw.
@@ -28923,7 +28453,7 @@ class KineticLaw(SBase):
 
     def addLocalParameter(self, *args):
         """
-        addLocalParameter(self, LocalParameter p) -> int
+        addLocalParameter(KineticLaw self, LocalParameter p) -> int
 
         Adds a copy of the given LocalParameter object to the list of local
         parameters in this KineticLaw.
@@ -28965,7 +28495,7 @@ class KineticLaw(SBase):
 
     def createParameter(self):
         """
-        createParameter(self) -> Parameter
+        createParameter(KineticLaw self) -> Parameter
 
         Creates a new Parameter object, adds it to this KineticLaw's list of
         local parameters, and returns the Parameter object created.
@@ -28979,7 +28509,7 @@ class KineticLaw(SBase):
 
     def createLocalParameter(self):
         """
-        createLocalParameter(self) -> LocalParameter
+        createLocalParameter(KineticLaw self) -> LocalParameter
 
         Creates a new LocalParameter object, adds it to this KineticLaw's list
         of local parameters, and returns the LocalParameter object created.
@@ -28993,8 +28523,8 @@ class KineticLaw(SBase):
 
     def getListOfParameters(self, *args):
         """
-        getListOfParameters(self) -> ListOfParameters
-        getListOfParameters(self) -> ListOfParameters
+        getListOfParameters(KineticLaw self) -> ListOfParameters
+        getListOfParameters(KineticLaw self) -> ListOfParameters
 
         Returns the list of local parameters in this KineticLaw object.
 
@@ -29005,8 +28535,8 @@ class KineticLaw(SBase):
 
     def getListOfLocalParameters(self, *args):
         """
-        getListOfLocalParameters(self) -> ListOfLocalParameters
-        getListOfLocalParameters(self) -> ListOfLocalParameters
+        getListOfLocalParameters(KineticLaw self) -> ListOfLocalParameters
+        getListOfLocalParameters(KineticLaw self) -> ListOfLocalParameters
 
         Returns the list of local parameters in this KineticLaw object.
 
@@ -29017,10 +28547,10 @@ class KineticLaw(SBase):
 
     def getParameter(self, *args):
         """
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, unsigned int n) -> Parameter
-        getParameter(self, string sid) -> Parameter
-        getParameter(self, string sid) -> Parameter
+        getParameter(KineticLaw self, unsigned int n) -> Parameter
+        getParameter(KineticLaw self, unsigned int n) -> Parameter
+        getParameter(KineticLaw self, string sid) -> Parameter
+        getParameter(KineticLaw self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -29054,10 +28584,10 @@ class KineticLaw(SBase):
 
     def getLocalParameter(self, *args):
         """
-        getLocalParameter(self, unsigned int n) -> LocalParameter
-        getLocalParameter(self, unsigned int n) -> LocalParameter
-        getLocalParameter(self, string sid) -> LocalParameter
-        getLocalParameter(self, string sid) -> LocalParameter
+        getLocalParameter(KineticLaw self, unsigned int n) -> LocalParameter
+        getLocalParameter(KineticLaw self, unsigned int n) -> LocalParameter
+        getLocalParameter(KineticLaw self, string sid) -> LocalParameter
+        getLocalParameter(KineticLaw self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -29091,7 +28621,7 @@ class KineticLaw(SBase):
 
     def getNumParameters(self):
         """
-        getNumParameters(self) -> unsigned int
+        getNumParameters(KineticLaw self) -> unsigned int
 
         Returns the number of local parameters in this KineticLaw instance.
 
@@ -29102,7 +28632,7 @@ class KineticLaw(SBase):
 
     def getNumLocalParameters(self):
         """
-        getNumLocalParameters(self) -> unsigned int
+        getNumLocalParameters(KineticLaw self) -> unsigned int
 
         Returns the number of local parameters in this KineticLaw instance.
 
@@ -29113,8 +28643,8 @@ class KineticLaw(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(KineticLaw self) -> UnitDefinition
+        getDerivedUnitDefinition(KineticLaw self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this KineticLaw.
@@ -29155,8 +28685,8 @@ class KineticLaw(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(KineticLaw self) -> bool
+        containsUndeclaredUnits(KineticLaw self) -> bool
 
         Predicate returning True if the math expression of this KineticLaw
         contains parameters/numbers with undeclared units.
@@ -29177,8 +28707,8 @@ class KineticLaw(SBase):
 
     def removeParameter(self, *args):
         """
-        removeParameter(self, unsigned int n) -> Parameter
-        removeParameter(self, string sid) -> Parameter
+        removeParameter(KineticLaw self, unsigned int n) -> Parameter
+        removeParameter(KineticLaw self, string sid) -> Parameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -29223,8 +28753,8 @@ class KineticLaw(SBase):
 
     def removeLocalParameter(self, *args):
         """
-        removeLocalParameter(self, unsigned int n) -> LocalParameter
-        removeLocalParameter(self, string sid) -> LocalParameter
+        removeLocalParameter(KineticLaw self, unsigned int n) -> LocalParameter
+        removeLocalParameter(KineticLaw self, string sid) -> LocalParameter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -29268,12 +28798,12 @@ class KineticLaw(SBase):
         return _libsbml.KineticLaw_removeLocalParameter(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(KineticLaw self)"""
         return _libsbml.KineticLaw_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(KineticLaw self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -29282,7 +28812,7 @@ class KineticLaw(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(KineticLaw self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -29301,9 +28831,9 @@ class KineticLaw(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -29312,7 +28842,7 @@ class KineticLaw(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(KineticLaw self) -> string
 
         Returns the XML element name of this object, which for Species, is
         always 'kineticLaw'.
@@ -29324,7 +28854,7 @@ class KineticLaw(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(KineticLaw self) -> bool
 
         Predicate returning True if all the required attributes for this
         KineticLaw object have been set.
@@ -29341,7 +28871,7 @@ class KineticLaw(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(KineticLaw self) -> bool
 
         Predicate returning True if all the required elements for this
         KineticLaw object have been set.
@@ -29360,7 +28890,7 @@ class KineticLaw(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(KineticLaw self) -> int
 
         Finds this KineticLaw's Reaction parent and calls unsetKineticLaw() on
         it, indirectly deleting itself.
@@ -29379,7 +28909,7 @@ class KineticLaw(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(KineticLaw self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -29407,7 +28937,7 @@ class KineticLaw(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(KineticLaw self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -29436,7 +28966,7 @@ class KineticLaw(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(KineticLaw self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -29445,7 +28975,7 @@ class KineticLaw(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(KineticLaw self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -29454,7 +28984,7 @@ class KineticLaw(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(KineticLaw self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -29512,7 +29042,7 @@ class SimpleSpeciesReference(SBase):
     __del__ = lambda self : None;
     def getId(self):
         """
-        getId(self) -> string
+        getId(SimpleSpeciesReference self) -> string
 
         Returns the value of the 'id' attribute of this
         SimpleSpeciesReference.
@@ -29524,7 +29054,7 @@ class SimpleSpeciesReference(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SimpleSpeciesReference self) -> string
 
         Returns the value of the 'name' attribute of this
         SimpleSpeciesReference.
@@ -29536,7 +29066,7 @@ class SimpleSpeciesReference(SBase):
 
     def getSpecies(self):
         """
-        getSpecies(self) -> string
+        getSpecies(SimpleSpeciesReference self) -> string
 
         Get the value of the 'species' attribute.
 
@@ -29548,7 +29078,7 @@ class SimpleSpeciesReference(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(SimpleSpeciesReference self) -> bool
 
         Predicate returning True if this SimpleSpeciesReference's 'id'
         attribute is set.
@@ -29561,7 +29091,7 @@ class SimpleSpeciesReference(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(SimpleSpeciesReference self) -> bool
 
         Predicate returning True if this SimpleSpeciesReference's 'name'
         attribute is set.
@@ -29574,7 +29104,7 @@ class SimpleSpeciesReference(SBase):
 
     def isSetSpecies(self):
         """
-        isSetSpecies(self) -> bool
+        isSetSpecies(SimpleSpeciesReference self) -> bool
 
         Predicate returning True if this SimpleSpeciesReference's 'species'
         attribute is set.
@@ -29587,7 +29117,7 @@ class SimpleSpeciesReference(SBase):
 
     def setSpecies(self, *args):
         """
-        setSpecies(self, string sid) -> int
+        setSpecies(SimpleSpeciesReference self, string sid) -> int
 
         Sets the 'species' attribute of this SimpleSpeciesReference.
 
@@ -29608,7 +29138,7 @@ class SimpleSpeciesReference(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(SimpleSpeciesReference self, string sid) -> int
 
         Sets the value of the 'id' attribute of this SimpleSpeciesReference.
 
@@ -29651,7 +29181,7 @@ class SimpleSpeciesReference(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(SimpleSpeciesReference self, string name) -> int
 
         Sets the value of the 'name' attribute of this SimpleSpeciesReference.
 
@@ -29673,7 +29203,7 @@ class SimpleSpeciesReference(SBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(SimpleSpeciesReference self) -> int
 
         Unsets the value of the 'id' attribute of this SimpleSpeciesReference.
 
@@ -29689,7 +29219,7 @@ class SimpleSpeciesReference(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(SimpleSpeciesReference self) -> int
 
         Unsets the value of the 'name' attribute of this
         SimpleSpeciesReference.
@@ -29706,7 +29236,7 @@ class SimpleSpeciesReference(SBase):
 
     def unsetSpecies(self):
         """
-        unsetSpecies(self) -> int
+        unsetSpecies(SimpleSpeciesReference self) -> int
 
         Unsets the value of the 'species' attribute of this
         SimpleSpeciesReference.
@@ -29723,7 +29253,7 @@ class SimpleSpeciesReference(SBase):
 
     def isModifier(self):
         """
-        isModifier(self) -> bool
+        isModifier(SimpleSpeciesReference self) -> bool
 
         Predicate returning True if this is a ModifierSpeciesReference.
 
@@ -29735,7 +29265,7 @@ class SimpleSpeciesReference(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(SimpleSpeciesReference self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -29972,9 +29502,9 @@ class SpeciesReference(SimpleSpeciesReference):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> SpeciesReference
-        __init__(self, SBMLNamespaces sbmlns) -> SpeciesReference
-        __init__(self, SpeciesReference orig) -> SpeciesReference
+        __init__(SpeciesReference self, unsigned int level, unsigned int version) -> SpeciesReference
+        __init__(SpeciesReference self, SBMLNamespaces sbmlns) -> SpeciesReference
+        __init__(SpeciesReference self, SpeciesReference orig) -> SpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -30059,7 +29589,7 @@ class SpeciesReference(SimpleSpeciesReference):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SpeciesReference
+        clone(SpeciesReference self) -> SpeciesReference
 
         Creates and returns a deep copy of this SpeciesReference object.
 
@@ -30070,7 +29600,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(SpeciesReference self)
 
         Initializes the fields of this SpeciesReference object to 'typical'
         default values.
@@ -30091,7 +29621,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getStoichiometry(self):
         """
-        getStoichiometry(self) -> double
+        getStoichiometry(SpeciesReference self) -> double
 
         Get the value of the 'stoichiometry' attribute.
 
@@ -30125,8 +29655,8 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getStoichiometryMath(self, *args):
         """
-        getStoichiometryMath(self) -> StoichiometryMath
-        getStoichiometryMath(self) -> StoichiometryMath
+        getStoichiometryMath(SpeciesReference self) -> StoichiometryMath
+        getStoichiometryMath(SpeciesReference self) -> StoichiometryMath
 
         Get the content of the 'stoichiometryMath' subelement as an ASTNode
         tree.
@@ -30157,7 +29687,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getDenominator(self):
         """
-        getDenominator(self) -> int
+        getDenominator(SpeciesReference self) -> int
 
         Get the value of the 'denominator' attribute, for the case of a
         rational-numbered stoichiometry or a model in SBML Level 1.
@@ -30181,7 +29711,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getConstant(self):
         """
-        getConstant(self) -> bool
+        getConstant(SpeciesReference self) -> bool
 
         Get the value of the 'constant' attribute.
 
@@ -30193,7 +29723,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def isSetStoichiometryMath(self):
         """
-        isSetStoichiometryMath(self) -> bool
+        isSetStoichiometryMath(SpeciesReference self) -> bool
 
         Predicate returning True if this SpeciesReference's
         'stoichiometryMath' subelement is set
@@ -30206,7 +29736,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def isSetConstant(self):
         """
-        isSetConstant(self) -> bool
+        isSetConstant(SpeciesReference self) -> bool
 
         Predicate returning True if this SpeciesReference's 'constant'
         attribute is set
@@ -30219,7 +29749,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def isSetStoichiometry(self):
         """
-        isSetStoichiometry(self) -> bool
+        isSetStoichiometry(SpeciesReference self) -> bool
 
         Predicate returning True if this SpeciesReference's 'stoichiometry'
         attribute is set.
@@ -30232,7 +29762,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setStoichiometry(self, *args):
         """
-        setStoichiometry(self, double value) -> int
+        setStoichiometry(SpeciesReference self, double value) -> int
 
         Sets the value of the 'stoichiometry' attribute of this
         SpeciesReference.
@@ -30276,7 +29806,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setStoichiometryMath(self, *args):
         """
-        setStoichiometryMath(self, StoichiometryMath math) -> int
+        setStoichiometryMath(SpeciesReference self, StoichiometryMath math) -> int
 
         Sets the 'stoichiometryMath' subelement of this SpeciesReference.
 
@@ -30329,7 +29859,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setDenominator(self, *args):
         """
-        setDenominator(self, int value) -> int
+        setDenominator(SpeciesReference self, int value) -> int
 
         Set the value of the 'denominator' attribute, for the case of a
         rational-numbered stoichiometry or a model in SBML Level 1.
@@ -30357,7 +29887,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setConstant(self, *args):
         """
-        setConstant(self, bool flag) -> int
+        setConstant(SpeciesReference self, bool flag) -> int
 
         Sets the 'constant' attribute of this SpeciesReference to the given
         boolean 'flag'.
@@ -30377,7 +29907,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def unsetStoichiometryMath(self):
         """
-        unsetStoichiometryMath(self) -> int
+        unsetStoichiometryMath(SpeciesReference self) -> int
 
         Unsets the 'stoichiometryMath' subelement of this SpeciesReference.
 
@@ -30421,7 +29951,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def unsetStoichiometry(self):
         """
-        unsetStoichiometry(self) -> int
+        unsetStoichiometry(SpeciesReference self) -> int
 
         Unsets the 'stoichiometry' attribute of this SpeciesReference.
 
@@ -30450,7 +29980,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def unsetConstant(self):
         """
-        unsetConstant(self) -> int
+        unsetConstant(SpeciesReference self) -> int
 
         Unsets the 'constant' attribute of this SpeciesReference.
 
@@ -30466,7 +29996,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def createStoichiometryMath(self):
         """
-        createStoichiometryMath(self) -> StoichiometryMath
+        createStoichiometryMath(SpeciesReference self) -> StoichiometryMath
 
         Creates a new, empty StoichiometryMath object, adds it to this
         SpeciesReference, and returns it.
@@ -30480,8 +30010,8 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def setAnnotation(self, *args):
         """
-        setAnnotation(self, XMLNode annotation) -> int
-        setAnnotation(self, string annotation) -> int
+        setAnnotation(SpeciesReference self, XMLNode annotation) -> int
+        setAnnotation(SpeciesReference self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -30517,8 +30047,8 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def appendAnnotation(self, *args):
         """
-        appendAnnotation(self, XMLNode annotation) -> int
-        appendAnnotation(self, string annotation) -> int
+        appendAnnotation(SpeciesReference self, XMLNode annotation) -> int
+        appendAnnotation(SpeciesReference self, string annotation) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -30553,7 +30083,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SpeciesReference self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -30576,7 +30106,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SpeciesReference self) -> string
 
         Returns the XML element name of this object, which for
         SpeciesReference, is always 'speciesReference'.
@@ -30588,7 +30118,7 @@ class SpeciesReference(SimpleSpeciesReference):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(SpeciesReference self) -> bool
 
         Predicate returning True if all the required attributes for this
         SpeciesReference object have been set.
@@ -30621,46 +30151,6 @@ class ListOfSpeciesReferences(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -30685,8 +30175,8 @@ class ListOfSpeciesReferences(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfSpeciesReferences
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfSpeciesReferences
+        __init__(ListOfSpeciesReferences self, unsigned int level, unsigned int version) -> ListOfSpeciesReferences
+        __init__(ListOfSpeciesReferences self, SBMLNamespaces sbmlns) -> ListOfSpeciesReferences
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -30767,7 +30257,7 @@ class ListOfSpeciesReferences(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfSpeciesReferences
+        clone(ListOfSpeciesReferences self) -> ListOfSpeciesReferences
 
         Creates and returns a deep copy of this ListOfSpeciesReferences
         object.
@@ -30779,7 +30269,7 @@ class ListOfSpeciesReferences(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfSpeciesReferences self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., SpeciesReference objects, if the list is non-empty).
@@ -30803,7 +30293,7 @@ class ListOfSpeciesReferences(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfSpeciesReferences self) -> string
 
         Returns the XML element name of this object.
 
@@ -30817,10 +30307,10 @@ class ListOfSpeciesReferences(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> SimpleSpeciesReference
-        get(self, unsigned int n) -> SimpleSpeciesReference
-        get(self, string sid) -> SimpleSpeciesReference
-        get(self, string sid) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, unsigned int n) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, unsigned int n) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, string sid) -> SimpleSpeciesReference
+        get(ListOfSpeciesReferences self, string sid) -> SimpleSpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -30843,8 +30333,8 @@ class ListOfSpeciesReferences(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> SimpleSpeciesReference
-        remove(self, string sid) -> SimpleSpeciesReference
+        remove(ListOfSpeciesReferences self, unsigned int n) -> SimpleSpeciesReference
+        remove(ListOfSpeciesReferences self, string sid) -> SimpleSpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -30926,8 +30416,8 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ModifierSpeciesReference
-        __init__(self, SBMLNamespaces sbmlns) -> ModifierSpeciesReference
+        __init__(ModifierSpeciesReference self, unsigned int level, unsigned int version) -> ModifierSpeciesReference
+        __init__(ModifierSpeciesReference self, SBMLNamespaces sbmlns) -> ModifierSpeciesReference
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -31005,7 +30495,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> ModifierSpeciesReference
+        clone(ModifierSpeciesReference self) -> ModifierSpeciesReference
 
         Creates and returns a deep copy of this ModifierSpeciesReference
         object.
@@ -31017,7 +30507,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ModifierSpeciesReference self) -> int
 
         Returns the libSBML type code for this SBML object.
 
@@ -31036,9 +30526,9 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -31047,7 +30537,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ModifierSpeciesReference self) -> string
 
         Returns the XML element name of this object, which for Species, is
         always 'modifierSpeciesReference'.
@@ -31059,7 +30549,7 @@ class ModifierSpeciesReference(SimpleSpeciesReference):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(ModifierSpeciesReference self) -> bool
 
         Predicate returning True if all the required attributes for this
         ModifierSpeciesReference object have been set.
@@ -31259,9 +30749,9 @@ class Event(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Event
-        __init__(self, SBMLNamespaces sbmlns) -> Event
-        __init__(self, Event orig) -> Event
+        __init__(Event self, unsigned int level, unsigned int version) -> Event
+        __init__(Event self, SBMLNamespaces sbmlns) -> Event
+        __init__(Event self, Event orig) -> Event
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -31352,7 +30842,7 @@ class Event(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Event
+        clone(Event self) -> Event
 
         Creates and returns a deep copy of this Event object.
 
@@ -31363,7 +30853,7 @@ class Event(SBase):
 
     def initDefaults(self):
         """
-        initDefaults(self)
+        initDefaults(Event self)
 
         Initializes the fields of this Event object to 'typical' default
         values.
@@ -31380,7 +30870,7 @@ class Event(SBase):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(Event self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -31394,7 +30884,7 @@ class Event(SBase):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(Event self, string metaid) -> SBase
 
         Returns the first child element it can find with the given 'metaid',
         or None if no such object is found.
@@ -31409,7 +30899,7 @@ class Event(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(Event self) -> string
 
         Returns the value of the 'id' attribute of this Event.
 
@@ -31420,7 +30910,7 @@ class Event(SBase):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(Event self) -> string
 
         Returns the value of the 'name' attribute of this Event.
 
@@ -31431,8 +30921,8 @@ class Event(SBase):
 
     def getTrigger(self, *args):
         """
-        getTrigger(self) -> Trigger
-        getTrigger(self) -> Trigger
+        getTrigger(Event self) -> Trigger
+        getTrigger(Event self) -> Trigger
 
         Get the event trigger portion of this Event.
 
@@ -31443,8 +30933,8 @@ class Event(SBase):
 
     def getDelay(self, *args):
         """
-        getDelay(self) -> Delay
-        getDelay(self) -> Delay
+        getDelay(Event self) -> Delay
+        getDelay(Event self) -> Delay
 
         Get the assignment delay portion of this Event, if there is one.
 
@@ -31456,8 +30946,8 @@ class Event(SBase):
 
     def getPriority(self, *args):
         """
-        getPriority(self) -> Priority
-        getPriority(self) -> Priority
+        getPriority(Event self) -> Priority
+        getPriority(Event self) -> Priority
 
         (SBML Level 3 only) Get the event priority portion of this Event.
 
@@ -31473,7 +30963,7 @@ class Event(SBase):
 
     def getTimeUnits(self):
         """
-        getTimeUnits(self) -> string
+        getTimeUnits(Event self) -> string
 
         Get the value of the 'timeUnits' attribute of this Event, if it has
         one.
@@ -31495,7 +30985,7 @@ class Event(SBase):
 
     def getUseValuesFromTriggerTime(self):
         """
-        getUseValuesFromTriggerTime(self) -> bool
+        getUseValuesFromTriggerTime(Event self) -> bool
 
         Get the value of the 'useValuesFromTriggerTime' attribute of this
         Event.
@@ -31544,7 +31034,7 @@ class Event(SBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(Event self) -> bool
 
         Predicate returning True if this Event's 'id' attribute is set.
 
@@ -31556,7 +31046,7 @@ class Event(SBase):
 
     def isSetName(self):
         """
-        isSetName(self) -> bool
+        isSetName(Event self) -> bool
 
         Predicate returning True if this Event's 'name' attribute is set.
 
@@ -31568,7 +31058,7 @@ class Event(SBase):
 
     def isSetTrigger(self):
         """
-        isSetTrigger(self) -> bool
+        isSetTrigger(Event self) -> bool
 
         Predicate for testing whether the trigger for this Event is set.
 
@@ -31579,7 +31069,7 @@ class Event(SBase):
 
     def isSetDelay(self):
         """
-        isSetDelay(self) -> bool
+        isSetDelay(Event self) -> bool
 
         Predicate for testing whether the delay for this Event is set.
 
@@ -31590,7 +31080,7 @@ class Event(SBase):
 
     def isSetPriority(self):
         """
-        isSetPriority(self) -> bool
+        isSetPriority(Event self) -> bool
 
         (SBML Level 3 only) Predicate for testing whether the priority for
         this Event is set.
@@ -31607,7 +31097,7 @@ class Event(SBase):
 
     def isSetTimeUnits(self):
         """
-        isSetTimeUnits(self) -> bool
+        isSetTimeUnits(Event self) -> bool
 
         Predicate for testing whether the 'timeUnits' attribute of this Event
         is set.
@@ -31630,7 +31120,7 @@ class Event(SBase):
 
     def isSetUseValuesFromTriggerTime(self):
         """
-        isSetUseValuesFromTriggerTime(self) -> bool
+        isSetUseValuesFromTriggerTime(Event self) -> bool
 
         Predicate for testing whether the 'useValuesFromTriggerTime' attribute
         of this Event is set.
@@ -31649,7 +31139,7 @@ class Event(SBase):
 
     def setId(self, *args):
         """
-        setId(self, string sid) -> int
+        setId(Event self, string sid) -> int
 
         Sets the value of the 'id' attribute of this Event.
 
@@ -31689,7 +31179,7 @@ class Event(SBase):
 
     def setName(self, *args):
         """
-        setName(self, string name) -> int
+        setName(Event self, string name) -> int
 
         Sets the value of the 'name' attribute of this Event.
 
@@ -31709,7 +31199,7 @@ class Event(SBase):
 
     def setTrigger(self, *args):
         """
-        setTrigger(self, Trigger trigger) -> int
+        setTrigger(Event self, Trigger trigger) -> int
 
         Sets the trigger definition of this Event to a copy of the given
         Trigger object instance.
@@ -31730,7 +31220,7 @@ class Event(SBase):
 
     def setDelay(self, *args):
         """
-        setDelay(self, Delay delay) -> int
+        setDelay(Event self, Delay delay) -> int
 
         Sets the delay definition of this Event to a copy of the given Delay
         object instance.
@@ -31751,7 +31241,7 @@ class Event(SBase):
 
     def setPriority(self, *args):
         """
-        setPriority(self, Priority priority) -> int
+        setPriority(Event self, Priority priority) -> int
 
         (SBML Level 3 only) Sets the priority definition of this Event to a
         copy of the given Priority object instance.
@@ -31779,7 +31269,7 @@ class Event(SBase):
 
     def setTimeUnits(self, *args):
         """
-        setTimeUnits(self, string sid) -> int
+        setTimeUnits(Event self, string sid) -> int
 
         Sets the 'timeUnits' attribute of this Event to a copy of 'sid'.
 
@@ -31809,7 +31299,7 @@ class Event(SBase):
 
     def setUseValuesFromTriggerTime(self, *args):
         """
-        setUseValuesFromTriggerTime(self, bool value) -> int
+        setUseValuesFromTriggerTime(Event self, bool value) -> int
 
         Sets the 'useValuesFromTriggerTime' attribute of this Event to a
         'value'.
@@ -31864,7 +31354,7 @@ class Event(SBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(Event self) -> int
 
         Unsets the value of the 'id' attribute of this Event.
 
@@ -31880,7 +31370,7 @@ class Event(SBase):
 
     def unsetName(self):
         """
-        unsetName(self) -> int
+        unsetName(Event self) -> int
 
         Unsets the value of the 'name' attribute of this Event.
 
@@ -31896,7 +31386,7 @@ class Event(SBase):
 
     def unsetUseValuesFromTriggerTime(self):
         """
-        unsetUseValuesFromTriggerTime(self) -> int
+        unsetUseValuesFromTriggerTime(Event self) -> int
 
         Unsets the value of the 'useValuesFromTriggerTime' attribute of this
         Event.
@@ -31949,7 +31439,7 @@ class Event(SBase):
 
     def unsetDelay(self):
         """
-        unsetDelay(self) -> int
+        unsetDelay(Event self) -> int
 
         Unsets the Delay of this Event.
 
@@ -31965,7 +31455,7 @@ class Event(SBase):
 
     def unsetPriority(self):
         """
-        unsetPriority(self) -> int
+        unsetPriority(Event self) -> int
 
         (SBML Level 3 only) Unsets the Priority of this Event.
 
@@ -31986,7 +31476,7 @@ class Event(SBase):
 
     def unsetTrigger(self):
         """
-        unsetTrigger(self) -> int
+        unsetTrigger(Event self) -> int
 
         Unsets the Trigger of this Event.
 
@@ -32007,7 +31497,7 @@ class Event(SBase):
 
     def unsetTimeUnits(self):
         """
-        unsetTimeUnits(self) -> int
+        unsetTimeUnits(Event self) -> int
 
         Unsets the 'timeUnits' attribute of this Event.
 
@@ -32035,7 +31525,7 @@ class Event(SBase):
 
     def addEventAssignment(self, *args):
         """
-        addEventAssignment(self, EventAssignment ea) -> int
+        addEventAssignment(Event self, EventAssignment ea) -> int
 
         Appends a copy of the given EventAssignment to this Event.
 
@@ -32074,7 +31564,7 @@ class Event(SBase):
 
     def createEventAssignment(self):
         """
-        createEventAssignment(self) -> EventAssignment
+        createEventAssignment(Event self) -> EventAssignment
 
         Creates a new, empty EventAssignment, adds it to this Event's list of
         event assignments and returns the EventAssignment.
@@ -32088,7 +31578,7 @@ class Event(SBase):
 
     def createTrigger(self):
         """
-        createTrigger(self) -> Trigger
+        createTrigger(Event self) -> Trigger
 
         Creates a new, empty Trigger, adds it to this Event and  returns the
         Trigger.
@@ -32100,7 +31590,7 @@ class Event(SBase):
 
     def createDelay(self):
         """
-        createDelay(self) -> Delay
+        createDelay(Event self) -> Delay
 
         Creates a new, empty Delay, adds it to this Event and  returns the
         Delay.
@@ -32112,7 +31602,7 @@ class Event(SBase):
 
     def createPriority(self):
         """
-        createPriority(self) -> Priority
+        createPriority(Event self) -> Priority
 
         (SBML Level 3 only) Creates a new, empty Priority, adds it to this
         Event and returns the Priority.
@@ -32129,8 +31619,8 @@ class Event(SBase):
 
     def getListOfEventAssignments(self, *args):
         """
-        getListOfEventAssignments(self) -> ListOfEventAssignments
-        getListOfEventAssignments(self) -> ListOfEventAssignments
+        getListOfEventAssignments(Event self) -> ListOfEventAssignments
+        getListOfEventAssignments(Event self) -> ListOfEventAssignments
 
         Returns the list of event assignments for this Event.
 
@@ -32141,10 +31631,10 @@ class Event(SBase):
 
     def getEventAssignment(self, *args):
         """
-        getEventAssignment(self, unsigned int n) -> EventAssignment
-        getEventAssignment(self, unsigned int n) -> EventAssignment
-        getEventAssignment(self, string variable) -> EventAssignment
-        getEventAssignment(self, string variable) -> EventAssignment
+        getEventAssignment(Event self, unsigned int n) -> EventAssignment
+        getEventAssignment(Event self, unsigned int n) -> EventAssignment
+        getEventAssignment(Event self, string variable) -> EventAssignment
+        getEventAssignment(Event self, string variable) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -32179,7 +31669,7 @@ class Event(SBase):
 
     def getNumEventAssignments(self):
         """
-        getNumEventAssignments(self) -> unsigned int
+        getNumEventAssignments(Event self) -> unsigned int
 
         Returns the number of EventAssignment objects attached to this Event.
 
@@ -32190,8 +31680,8 @@ class Event(SBase):
 
     def removeEventAssignment(self, *args):
         """
-        removeEventAssignment(self, unsigned int n) -> EventAssignment
-        removeEventAssignment(self, string variable) -> EventAssignment
+        removeEventAssignment(Event self, unsigned int n) -> EventAssignment
+        removeEventAssignment(Event self, string variable) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -32237,12 +31727,12 @@ class Event(SBase):
         return _libsbml.Event_removeEventAssignment(self, *args)
 
     def connectToChild(self):
-        """connectToChild(self)"""
+        """connectToChild(Event self)"""
         return _libsbml.Event_connectToChild(self)
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(Event self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -32251,7 +31741,7 @@ class Event(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Event self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -32269,9 +31759,9 @@ class Event(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -32280,7 +31770,7 @@ class Event(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Event self) -> string
 
         Returns the XML element name of this object, which for Event, is
         always 'event'.
@@ -32292,7 +31782,7 @@ class Event(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Event self) -> bool
 
         Predicate returning True if all the required attributes for this Event
         object have been set.
@@ -32309,7 +31799,7 @@ class Event(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Event self) -> bool
 
         Predicate returning True if all the required elements for this Event
         object have been set.
@@ -32342,46 +31832,6 @@ class ListOfEvents(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -32406,8 +31856,8 @@ class ListOfEvents(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfEvents
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfEvents
+        __init__(ListOfEvents self, unsigned int level, unsigned int version) -> ListOfEvents
+        __init__(ListOfEvents self, SBMLNamespaces sbmlns) -> ListOfEvents
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -32488,7 +31938,7 @@ class ListOfEvents(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfEvents
+        clone(ListOfEvents self) -> ListOfEvents
 
         Creates and returns a deep copy of this ListOfEvents object.
 
@@ -32499,7 +31949,7 @@ class ListOfEvents(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfEvents self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., Event objects, if the list is non-empty).
@@ -32523,7 +31973,7 @@ class ListOfEvents(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfEvents self) -> string
 
         Returns the XML element name of this object.
 
@@ -32536,10 +31986,10 @@ class ListOfEvents(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> Event
-        get(self, unsigned int n) -> Event
-        get(self, string sid) -> Event
-        get(self, string sid) -> Event
+        get(ListOfEvents self, unsigned int n) -> Event
+        get(ListOfEvents self, unsigned int n) -> Event
+        get(ListOfEvents self, string sid) -> Event
+        get(ListOfEvents self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -32562,8 +32012,8 @@ class ListOfEvents(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> Event
-        remove(self, string sid) -> Event
+        remove(ListOfEvents self, unsigned int n) -> Event
+        remove(ListOfEvents self, string sid) -> Event
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -32753,9 +32203,9 @@ class EventAssignment(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> EventAssignment
-        __init__(self, SBMLNamespaces sbmlns) -> EventAssignment
-        __init__(self, EventAssignment orig) -> EventAssignment
+        __init__(EventAssignment self, unsigned int level, unsigned int version) -> EventAssignment
+        __init__(EventAssignment self, SBMLNamespaces sbmlns) -> EventAssignment
+        __init__(EventAssignment self, EventAssignment orig) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -32848,7 +32298,7 @@ class EventAssignment(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> EventAssignment
+        clone(EventAssignment self) -> EventAssignment
 
         Creates and returns a deep copy of this EventAssignment object.
 
@@ -32859,7 +32309,7 @@ class EventAssignment(SBase):
 
     def getVariable(self):
         """
-        getVariable(self) -> string
+        getVariable(EventAssignment self) -> string
 
         Get the value of this EventAssignment's 'variable' attribute.
 
@@ -32871,7 +32321,7 @@ class EventAssignment(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(EventAssignment self) -> ASTNode
 
         Get the mathematical expression in this EventAssignment's 'math'
         subelement.
@@ -32884,7 +32334,7 @@ class EventAssignment(SBase):
 
     def isSetVariable(self):
         """
-        isSetVariable(self) -> bool
+        isSetVariable(EventAssignment self) -> bool
 
         Predicate for testing whether the attribute 'variable' of this
         EventAssignment is set.
@@ -32897,7 +32347,7 @@ class EventAssignment(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(EventAssignment self) -> bool
 
         Predicate for testing whether the 'math' subelement of this
         EventAssignment is set.
@@ -32910,7 +32360,7 @@ class EventAssignment(SBase):
 
     def setVariable(self, *args):
         """
-        setVariable(self, string sid) -> int
+        setVariable(EventAssignment self, string sid) -> int
 
         Sets the attribute 'variable' of this EventAssignment to a copy of the
         given identifier string.
@@ -32930,7 +32380,7 @@ class EventAssignment(SBase):
 
     def unsetVariable(self):
         """
-        unsetVariable(self) -> int
+        unsetVariable(EventAssignment self) -> int
 
         Unsets the attribute 'variable' of this EventAssignment.
 
@@ -32946,7 +32396,7 @@ class EventAssignment(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(EventAssignment self, ASTNode math) -> int
 
         Sets the 'math' subelement of this EventAssignment to a copy of the
         given ASTNode.
@@ -32966,8 +32416,8 @@ class EventAssignment(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(EventAssignment self) -> UnitDefinition
+        getDerivedUnitDefinition(EventAssignment self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this EventAssignment.
@@ -33012,8 +32462,8 @@ class EventAssignment(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(EventAssignment self) -> bool
+        containsUndeclaredUnits(EventAssignment self) -> bool
 
         Predicate returning True if the math expression of this
         EventAssignment contains literal numbers or parameters with undeclared
@@ -33048,7 +32498,7 @@ class EventAssignment(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(EventAssignment self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -33067,9 +32517,9 @@ class EventAssignment(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -33078,7 +32528,7 @@ class EventAssignment(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(EventAssignment self) -> string
 
         Returns the XML element name of this object, which for
         EventAssignment, is always 'eventAssignment'.
@@ -33090,7 +32540,7 @@ class EventAssignment(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(EventAssignment self) -> bool
 
         Predicate returning True if all the required attributes for this
         EventAssignment object have been set.
@@ -33107,7 +32557,7 @@ class EventAssignment(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(EventAssignment self) -> bool
 
         Predicate returning True if all the required elements for this
         EventAssignment object have been set.
@@ -33126,7 +32576,7 @@ class EventAssignment(SBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(EventAssignment self) -> string
 
         Internal implementation method.
 
@@ -33135,7 +32585,7 @@ class EventAssignment(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(EventAssignment self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -33163,7 +32613,7 @@ class EventAssignment(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(EventAssignment self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -33192,7 +32642,7 @@ class EventAssignment(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(EventAssignment self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -33201,7 +32651,7 @@ class EventAssignment(SBase):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(EventAssignment self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -33210,7 +32660,7 @@ class EventAssignment(SBase):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(EventAssignment self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -33233,46 +32683,6 @@ class ListOfEventAssignments(ListOf):
     classes with common features defined by the SBML specification, such
     as 'metaid' attributes and annotations.
 
-    The relationship between the lists and the rest of an SBML model is
-    illustrated by the following (for SBML Level 2 Version 4):
-
-      <?xml version="1.0" encoding="UTF-8"?>
-      <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" 
-            level="3" version="1">
-        <model id="My_Model">
-          <listOfFunctionDefinitions>
-            <functionDefinition> ... </functionDefinition> 
-          </listOfFunctionDefinitions>
-          <listOfUnitDefinitions>
-            <unitDefinition> ... </unitDefinition> 
-          </listOfUnitDefinitions>
-          <listOfCompartments>
-            <compartment> ... </compartment> 
-          </listOfCompartments>
-          <listOfSpecies>
-            <species> ... </species> 
-          </listOfSpecies>
-          <listOfParameters>
-            <parameter> ... </parameter> 
-          </listOfParameters>
-          <listOfInitialAssignments>
-            <initialAssignment> ... </initialAssignment> 
-          </listOfInitialAssignments>
-          <listOfRules>
-            ... elements of subclasses of Rule ...
-          </listOfRules>
-          <listOfConstraints>
-            <constraint> ... </constraint> 
-          </listOfConstraints>
-          <listOfReactions>
-            <reaction> ... </reaction> 
-          </listOfReactions>
-          <listOfEvents>
-            <event> ... </event> 
-          </listOfEvents>
-        </model>
-      </sbml>
-
     Readers may wonder about the motivations for using the ListOf___
     containers in SBML.  A simpler approach in XML might be to place the
     components all directly at the top level of the model definition.  The
@@ -33297,8 +32707,8 @@ class ListOfEventAssignments(ListOf):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> ListOfEventAssignments
-        __init__(self, SBMLNamespaces sbmlns) -> ListOfEventAssignments
+        __init__(ListOfEventAssignments self, unsigned int level, unsigned int version) -> ListOfEventAssignments
+        __init__(ListOfEventAssignments self, SBMLNamespaces sbmlns) -> ListOfEventAssignments
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -33379,7 +32789,7 @@ class ListOfEventAssignments(ListOf):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ListOfEventAssignments
+        clone(ListOfEventAssignments self) -> ListOfEventAssignments
 
         Creates and returns a deep copy of this ListOfEventAssignments object.
 
@@ -33390,7 +32800,7 @@ class ListOfEventAssignments(ListOf):
 
     def getItemTypeCode(self):
         """
-        getItemTypeCode(self) -> int
+        getItemTypeCode(ListOfEventAssignments self) -> int
 
         Returns the libSBML type code for the objects contained in this ListOf
         (i.e., EventAssignment objects, if the list is non-empty).
@@ -33414,7 +32824,7 @@ class ListOfEventAssignments(ListOf):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(ListOfEventAssignments self) -> string
 
         Returns the XML element name of this object.
 
@@ -33428,10 +32838,10 @@ class ListOfEventAssignments(ListOf):
 
     def get(self, *args):
         """
-        get(self, unsigned int n) -> EventAssignment
-        get(self, unsigned int n) -> EventAssignment
-        get(self, string sid) -> EventAssignment
-        get(self, string sid) -> EventAssignment
+        get(ListOfEventAssignments self, unsigned int n) -> EventAssignment
+        get(ListOfEventAssignments self, unsigned int n) -> EventAssignment
+        get(ListOfEventAssignments self, string sid) -> EventAssignment
+        get(ListOfEventAssignments self, string sid) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -33454,8 +32864,8 @@ class ListOfEventAssignments(ListOf):
 
     def remove(self, *args):
         """
-        remove(self, unsigned int n) -> EventAssignment
-        remove(self, string sid) -> EventAssignment
+        remove(ListOfEventAssignments self, unsigned int n) -> EventAssignment
+        remove(ListOfEventAssignments self, string sid) -> EventAssignment
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -33496,7 +32906,7 @@ class ListOfEventAssignments(ListOf):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(ListOfEventAssignments self, string id) -> SBase
 
         Returns the first child element found that has the given 'id' in the
         model-wide SId namespace, or None if no such object is found.
@@ -33626,9 +33036,9 @@ class Trigger(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Trigger
-        __init__(self, SBMLNamespaces sbmlns) -> Trigger
-        __init__(self, Trigger orig) -> Trigger
+        __init__(Trigger self, unsigned int level, unsigned int version) -> Trigger
+        __init__(Trigger self, SBMLNamespaces sbmlns) -> Trigger
+        __init__(Trigger self, Trigger orig) -> Trigger
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -33720,7 +33130,7 @@ class Trigger(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Trigger
+        clone(Trigger self) -> Trigger
 
         Creates and returns a deep copy of this Trigger object.
 
@@ -33731,7 +33141,7 @@ class Trigger(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Trigger self) -> ASTNode
 
         Get the mathematical formula for the trigger and return it as an AST.
 
@@ -33742,7 +33152,7 @@ class Trigger(SBase):
 
     def getInitialValue(self):
         """
-        getInitialValue(self) -> bool
+        getInitialValue(Trigger self) -> bool
 
         (SBML Level 3 only) Get the value of the 'initialValue' attribute of
         this Trigger.
@@ -33760,7 +33170,7 @@ class Trigger(SBase):
 
     def getPersistent(self):
         """
-        getPersistent(self) -> bool
+        getPersistent(Trigger self) -> bool
 
         (SBML Level 3 only) Get the value of the 'persistent' attribute of
         this Trigger.
@@ -33778,7 +33188,7 @@ class Trigger(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Trigger self) -> bool
 
         Predicate to test whether the math for this trigger is set.
 
@@ -33790,7 +33200,7 @@ class Trigger(SBase):
 
     def isSetInitialValue(self):
         """
-        isSetInitialValue(self) -> bool
+        isSetInitialValue(Trigger self) -> bool
 
         (SBML Level 3 only) Predicate to test whether the 'initialValue'
         attribute for this trigger is set.
@@ -33808,7 +33218,7 @@ class Trigger(SBase):
 
     def isSetPersistent(self):
         """
-        isSetPersistent(self) -> bool
+        isSetPersistent(Trigger self) -> bool
 
         (SBML Level 3 only) Predicate to test whether the 'persistent'
         attribute for this trigger is set.
@@ -33826,7 +33236,7 @@ class Trigger(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Trigger self, ASTNode math) -> int
 
         Sets the trigger expression of this Trigger instance to a copy of the
         given ASTNode.
@@ -33845,7 +33255,7 @@ class Trigger(SBase):
 
     def setInitialValue(self, *args):
         """
-        setInitialValue(self, bool initialValue) -> int
+        setInitialValue(Trigger self, bool initialValue) -> int
 
         (SBML Level 3 only) Sets the 'initialValue' attribute of this Trigger
         instance.
@@ -33870,7 +33280,7 @@ class Trigger(SBase):
 
     def setPersistent(self, *args):
         """
-        setPersistent(self, bool persistent) -> int
+        setPersistent(Trigger self, bool persistent) -> int
 
         (SBML Level 3 only) Sets the 'persistent' attribute of this Trigger
         instance.
@@ -33895,7 +33305,7 @@ class Trigger(SBase):
 
     def unsetInitialValue(self):
         """
-        unsetInitialValue(self) -> int
+        unsetInitialValue(Trigger self) -> int
 
         (SBML Level 3 only) Unsets the 'initialValue' attribute of this
         Trigger instance.
@@ -33917,7 +33327,7 @@ class Trigger(SBase):
 
     def unsetPersistent(self):
         """
-        unsetPersistent(self) -> int
+        unsetPersistent(Trigger self) -> int
 
         (SBML Level 3 only) Unsets the 'persistent' attribute of this  Trigger
         instance.
@@ -33939,7 +33349,7 @@ class Trigger(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Trigger self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -33957,9 +33367,9 @@ class Trigger(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -33968,7 +33378,7 @@ class Trigger(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Trigger self) -> string
 
         Returns the XML element name of this object, which for Trigger, is
         always 'trigger'.
@@ -33980,7 +33390,7 @@ class Trigger(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Trigger self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -34008,7 +33418,7 @@ class Trigger(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Trigger self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -34037,7 +33447,7 @@ class Trigger(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Trigger self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -34046,7 +33456,7 @@ class Trigger(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Trigger self) -> bool
 
         Predicate returning True if all the required elements for this Trigger
         object have been set.
@@ -34065,7 +33475,7 @@ class Trigger(SBase):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(Trigger self) -> bool
 
         Predicate returning True if all the required attributes for this
         Trigger object have been set.
@@ -34084,7 +33494,7 @@ class Trigger(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Trigger self) -> int
 
         Finds this Trigger's Event parent and calls unsetTrigger() on it,
         indirectly deleting itself.  Overridden from the SBase function since
@@ -34234,9 +33644,9 @@ class Delay(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Delay
-        __init__(self, SBMLNamespaces sbmlns) -> Delay
-        __init__(self, Delay orig) -> Delay
+        __init__(Delay self, unsigned int level, unsigned int version) -> Delay
+        __init__(Delay self, SBMLNamespaces sbmlns) -> Delay
+        __init__(Delay self, Delay orig) -> Delay
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -34327,7 +33737,7 @@ class Delay(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Delay
+        clone(Delay self) -> Delay
 
         Creates and returns a deep copy of this Delay object.
 
@@ -34338,7 +33748,7 @@ class Delay(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Delay self) -> ASTNode
 
         Get the mathematical formula for the delay and return it as an AST.
 
@@ -34349,7 +33759,7 @@ class Delay(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Delay self) -> bool
 
         Predicate to test whether the formula for this delay is set.
 
@@ -34361,7 +33771,7 @@ class Delay(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Delay self, ASTNode math) -> int
 
         Sets the delay expression of this Delay instance to a copy of the
         given ASTNode.
@@ -34380,8 +33790,8 @@ class Delay(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(Delay self) -> UnitDefinition
+        getDerivedUnitDefinition(Delay self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition that expresses the units of
         measurement assumed for the 'math' expression of this Delay.
@@ -34427,8 +33837,8 @@ class Delay(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(Delay self) -> bool
+        containsUndeclaredUnits(Delay self) -> bool
 
         Predicate returning True if the 'math' expression in this Delay
         instance contains parameters with undeclared units or literal numbers.
@@ -34466,7 +33876,7 @@ class Delay(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Delay self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -34484,9 +33894,9 @@ class Delay(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -34495,7 +33905,7 @@ class Delay(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Delay self) -> string
 
         Returns the XML element name of this object, which for Delay, is
         always 'delay'.
@@ -34509,7 +33919,7 @@ class Delay(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Delay self) -> bool
 
         Predicate returning True if all the required elements for this Delay
         object have been set.
@@ -34528,7 +33938,7 @@ class Delay(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Delay self) -> int
 
         Finds this Delay's Event parent and calls unsetDelay() on it,
         indirectly deleting itself.
@@ -34547,7 +33957,7 @@ class Delay(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Delay self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -34575,7 +33985,7 @@ class Delay(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Delay self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -34604,7 +34014,7 @@ class Delay(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Delay self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -34747,9 +34157,9 @@ class Priority(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> Priority
-        __init__(self, SBMLNamespaces sbmlns) -> Priority
-        __init__(self, Priority orig) -> Priority
+        __init__(Priority self, unsigned int level, unsigned int version) -> Priority
+        __init__(Priority self, SBMLNamespaces sbmlns) -> Priority
+        __init__(Priority self, Priority orig) -> Priority
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -34852,7 +34262,7 @@ class Priority(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Priority
+        clone(Priority self) -> Priority
 
         Creates and returns a deep copy of this Priority object.
 
@@ -34863,7 +34273,7 @@ class Priority(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(Priority self) -> ASTNode
 
         Get the mathematical formula for the priority and return it as an AST.
 
@@ -34874,7 +34284,7 @@ class Priority(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(Priority self) -> bool
 
         Predicate to test whether the formula for this delay is set.
 
@@ -34886,7 +34296,7 @@ class Priority(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(Priority self, ASTNode math) -> int
 
         Sets the math expression of this Priority instance to a copy of the
         given ASTNode.
@@ -34905,7 +34315,7 @@ class Priority(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(Priority self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -34922,9 +34332,9 @@ class Priority(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -34933,7 +34343,7 @@ class Priority(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(Priority self) -> string
 
         Returns the XML element name of this object, which for Priority, is
         always 'priority'.
@@ -34947,7 +34357,7 @@ class Priority(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(Priority self) -> bool
 
         Predicate returning True if all the required elements for this
         Priority object have been set.
@@ -34966,7 +34376,7 @@ class Priority(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(Priority self) -> int
 
         Finds this Priority's Event parent and calls unsetPriority() on it,
         indirectly deleting itself.
@@ -34985,7 +34395,7 @@ class Priority(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(Priority self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -35013,7 +34423,7 @@ class Priority(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(Priority self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -35042,7 +34452,7 @@ class Priority(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(Priority self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -35997,9 +35407,20 @@ class SBO(_object):
 
     if _newclass:checkTerm = staticmethod(checkTerm)
     __swig_getmethods__["checkTerm"] = lambda x: checkTerm
+    def getParentBranch(*args):
+        """
+        getParentBranch(unsigned int term) -> unsigned int
+
+        Internal implementation method.
+
+        """
+        return _libsbml.SBO_getParentBranch(*args)
+
+    if _newclass:getParentBranch = staticmethod(getParentBranch)
+    __swig_getmethods__["getParentBranch"] = lambda x: getParentBranch
     def __init__(self): 
         """
-        __init__(self) -> SBO
+        __init__(SBO self) -> SBO
 
         @internal
 
@@ -36739,6 +36160,15 @@ def SBO_checkTerm(*args):
     """
   return _libsbml.SBO_checkTerm(*args)
 
+def SBO_getParentBranch(*args):
+  """
+    SBO_getParentBranch(unsigned int term) -> unsigned int
+
+    Internal implementation method.
+
+    """
+  return _libsbml.SBO_getParentBranch(*args)
+
 class SyntaxChecker(_object):
     """
     Methods for checking the validity of SBML identifiers.
@@ -36997,7 +36427,7 @@ class SyntaxChecker(_object):
     __swig_getmethods__["isValidUnitSId"] = lambda x: isValidUnitSId
     def hasExpectedXHTMLSyntax(*args):
         """
-        hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns = None) -> bool
+        hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns=None) -> bool
         hasExpectedXHTMLSyntax(XMLNode xhtml) -> bool
 
         Returns True or False depending on whether the given XMLNode object
@@ -37131,7 +36561,7 @@ class SyntaxChecker(_object):
     __swig_getmethods__["isValidInternalUnitSId"] = lambda x: isValidInternalUnitSId
     def __init__(self): 
         """
-        __init__(self) -> SyntaxChecker
+        __init__(SyntaxChecker self) -> SyntaxChecker
 
         @internal
 
@@ -37374,7 +36804,7 @@ def SyntaxChecker_isValidUnitSId(*args):
 
 def SyntaxChecker_hasExpectedXHTMLSyntax(*args):
   """
-    hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns = None) -> bool
+    hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns=None) -> bool
     SyntaxChecker_hasExpectedXHTMLSyntax(XMLNode xhtml) -> bool
 
     Returns True or False depending on whether the given XMLNode object
@@ -37639,9 +37069,9 @@ class StoichiometryMath(SBase):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level, unsigned int version) -> StoichiometryMath
-        __init__(self, SBMLNamespaces sbmlns) -> StoichiometryMath
-        __init__(self, StoichiometryMath orig) -> StoichiometryMath
+        __init__(StoichiometryMath self, unsigned int level, unsigned int version) -> StoichiometryMath
+        __init__(StoichiometryMath self, SBMLNamespaces sbmlns) -> StoichiometryMath
+        __init__(StoichiometryMath self, StoichiometryMath orig) -> StoichiometryMath
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -37754,7 +37184,7 @@ class StoichiometryMath(SBase):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> StoichiometryMath
+        clone(StoichiometryMath self) -> StoichiometryMath
 
         Creates and returns a deep copy of this StoichiometryMath object.
 
@@ -37765,7 +37195,7 @@ class StoichiometryMath(SBase):
 
     def getMath(self):
         """
-        getMath(self) -> ASTNode
+        getMath(StoichiometryMath self) -> ASTNode
 
         Retrieves the mathematical formula within this StoichiometryMath and
         return it as an AST.
@@ -37787,7 +37217,7 @@ class StoichiometryMath(SBase):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(StoichiometryMath self) -> bool
 
         Predicate to test whether the math for this StoichiometryMath object
         is set.
@@ -37810,7 +37240,7 @@ class StoichiometryMath(SBase):
 
     def setMath(self, *args):
         """
-        setMath(self, ASTNode math) -> int
+        setMath(StoichiometryMath self, ASTNode math) -> int
 
         Sets the 'math' expression of this StoichiometryMath instance to a
         copy of the given ASTNode.
@@ -37839,8 +37269,8 @@ class StoichiometryMath(SBase):
 
     def getDerivedUnitDefinition(self, *args):
         """
-        getDerivedUnitDefinition(self) -> UnitDefinition
-        getDerivedUnitDefinition(self) -> UnitDefinition
+        getDerivedUnitDefinition(StoichiometryMath self) -> UnitDefinition
+        getDerivedUnitDefinition(StoichiometryMath self) -> UnitDefinition
 
         Calculates and returns a UnitDefinition object that expresses the
         units returned by the math expression in this StoichiometryMath
@@ -37883,8 +37313,8 @@ class StoichiometryMath(SBase):
 
     def containsUndeclaredUnits(self, *args):
         """
-        containsUndeclaredUnits(self) -> bool
-        containsUndeclaredUnits(self) -> bool
+        containsUndeclaredUnits(StoichiometryMath self) -> bool
+        containsUndeclaredUnits(StoichiometryMath self) -> bool
 
         Predicate returning True if the math expression of this
         StoichiometryMath object contains literal numbers or parameters with
@@ -37916,7 +37346,7 @@ class StoichiometryMath(SBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(StoichiometryMath self) -> int
 
         Returns the libSBML type code of this object instance.
 
@@ -37935,9 +37365,9 @@ class StoichiometryMath(SBase):
         WARNING:
 
         The specific integer values of the possible type codes may be reused
-        by different Level 3 package plug-ins. Thus, to identifiy the correct
-        code, it is necessary to invoke both getTypeCode() and
-        getPackageName().
+        by different libSBML plug-ins for SBML Level 3. packages,  To fully
+        identify the correct code, it is necessary to invoke both
+        getTypeCode() and getPackageName().
 
         See also getElementName(), getPackageName().
 
@@ -37946,7 +37376,7 @@ class StoichiometryMath(SBase):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(StoichiometryMath self) -> string
 
         Returns the XML element name of this object, which for
         StoichiometryMath, is always 'stoichiometryMath'.
@@ -37958,7 +37388,7 @@ class StoichiometryMath(SBase):
 
     def hasRequiredElements(self):
         """
-        hasRequiredElements(self) -> bool
+        hasRequiredElements(StoichiometryMath self) -> bool
 
         Predicate returning True if all the required elements for this
         StoichiometryMath object have been set.
@@ -37977,7 +37407,7 @@ class StoichiometryMath(SBase):
 
     def removeFromParentAndDelete(self):
         """
-        removeFromParentAndDelete(self) -> int
+        removeFromParentAndDelete(StoichiometryMath self) -> int
 
         Finds this StoichiometryMath's SpeciesReference parent and calls
         unsetStoichiometryMath() on it, indirectly deleting itself.
@@ -37996,7 +37426,7 @@ class StoichiometryMath(SBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(StoichiometryMath self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -38024,7 +37454,7 @@ class StoichiometryMath(SBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(StoichiometryMath self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -38053,7 +37483,7 @@ class StoichiometryMath(SBase):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(StoichiometryMath self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -38107,14 +37537,13 @@ class SBMLNamespaces(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL, unsigned int version = SBML_DEFAULT_VERSION) -> SBMLNamespaces
-        __init__(self, unsigned int level = SBML_DEFAULT_LEVEL) -> SBMLNamespaces
-        __init__(self) -> SBMLNamespaces
-        __init__(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion, string pkgPrefix = "") -> SBMLNamespaces
-        __init__(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion) -> SBMLNamespaces
-        __init__(self, SBMLNamespaces orig) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level=SBML_DEFAULT_LEVEL, unsigned int version=SBML_DEFAULT_VERSION) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level=SBML_DEFAULT_LEVEL) -> SBMLNamespaces
+        __init__(SBMLNamespaces self) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion, 
+            string pkgPrefix="") -> SBMLNamespaces
+        __init__(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> SBMLNamespaces
+        __init__(SBMLNamespaces self, SBMLNamespaces orig) -> SBMLNamespaces
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -38217,7 +37646,7 @@ class SBMLNamespaces(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLNamespaces
+        clone(SBMLNamespaces self) -> SBMLNamespaces
 
         Creates and returns a deep copy of this SBMLNamespaces object.
 
@@ -38256,7 +37685,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["getSBMLNamespaceURI"] = lambda x: getSBMLNamespaceURI
     def getSupportedNamespaces():
         """
-        getSupportedNamespaces() -> List
+        getSupportedNamespaces() -> List const *
 
         Returns a list of all supported SBMLNamespaces in this version of
         libsbml.
@@ -38280,7 +37709,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["getSupportedNamespaces"] = lambda x: getSupportedNamespaces
     def freeSBMLNamespaces(*args):
         """
-        freeSBMLNamespaces(List supportedNS)
+        freeSBMLNamespaces(List * supportedNS)
 
         Frees the list of supported namespaces as generated by
         getSupportedNamespaces().
@@ -38304,7 +37733,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["freeSBMLNamespaces"] = lambda x: freeSBMLNamespaces
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(SBMLNamespaces self) -> string
 
         Returns a string representing the SBML XML namespace of this object.
 
@@ -38316,8 +37745,8 @@ class SBMLNamespaces(_object):
 
     def getLevel(self, *args):
         """
-        getLevel(self) -> unsigned int
-        getLevel(self) -> unsigned int
+        getLevel(SBMLNamespaces self) -> unsigned int
+        getLevel(SBMLNamespaces self) -> unsigned int
 
         Get the SBML Level of this SBMLNamespaces object.
 
@@ -38328,8 +37757,8 @@ class SBMLNamespaces(_object):
 
     def getVersion(self, *args):
         """
-        getVersion(self) -> unsigned int
-        getVersion(self) -> unsigned int
+        getVersion(SBMLNamespaces self) -> unsigned int
+        getVersion(SBMLNamespaces self) -> unsigned int
 
         Get the SBML Version of this SBMLNamespaces object.
 
@@ -38340,8 +37769,8 @@ class SBMLNamespaces(_object):
 
     def getNamespaces(self, *args):
         """
-        getNamespaces(self) -> XMLNamespaces
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(SBMLNamespaces self) -> XMLNamespaces
+        getNamespaces(SBMLNamespaces self) -> XMLNamespaces
 
         Get the XML namespaces list for this SBMLNamespaces object.
 
@@ -38371,7 +37800,7 @@ class SBMLNamespaces(_object):
 
     def addNamespaces(self, *args):
         """
-        addNamespaces(self, XMLNamespaces xmlns) -> int
+        addNamespaces(SBMLNamespaces self, XMLNamespaces xmlns) -> int
 
         Add the given XML namespaces list to the set of namespaces within this
         SBMLNamespaces object.
@@ -38413,7 +37842,7 @@ class SBMLNamespaces(_object):
 
     def addNamespace(self, *args):
         """
-        addNamespace(self, string uri, string prefix) -> int
+        addNamespace(SBMLNamespaces self, string uri, string prefix) -> int
 
         Add an XML namespace (a pair of URI and prefix) to the set of
         namespaces within this SBMLNamespaces object.
@@ -38435,7 +37864,7 @@ class SBMLNamespaces(_object):
 
     def removeNamespace(self, *args):
         """
-        removeNamespace(self, string uri) -> int
+        removeNamespace(SBMLNamespaces self, string uri) -> int
 
         Removes an XML namespace from the set of namespaces within this
         SBMLNamespaces object.
@@ -38454,8 +37883,8 @@ class SBMLNamespaces(_object):
 
     def addPackageNamespace(self, *args):
         """
-        addPackageNamespace(self, string pkgName, unsigned int pkgVersion, string prefix = "") -> int
-        addPackageNamespace(self, string pkgName, unsigned int pkgVersion) -> int
+        addPackageNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion, string prefix="") -> int
+        addPackageNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion) -> int
 
         Add an XML namespace (a pair of URI and prefix) of a package extension
         to the set of namespaces within this SBMLNamespaces object.
@@ -38486,7 +37915,7 @@ class SBMLNamespaces(_object):
 
     def addPackageNamespaces(self, *args):
         """
-        addPackageNamespaces(self, XMLNamespaces xmlns) -> int
+        addPackageNamespaces(SBMLNamespaces self, XMLNamespaces xmlns) -> int
 
         Add the XML namespaces of package extensions in the given XMLNamespace
         object to the set of namespaces within this SBMLNamespaces object
@@ -38512,8 +37941,7 @@ class SBMLNamespaces(_object):
 
     def removePackageNamespace(self, *args):
         """
-        removePackageNamespace(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion) -> int
+        removePackageNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> int
 
         Removes an XML namespace of a package extension from the set of
         namespaces  within this SBMLNamespaces object.
@@ -38536,8 +37964,8 @@ class SBMLNamespaces(_object):
 
     def addPkgNamespace(self, *args):
         """
-        addPkgNamespace(self, string pkgName, unsigned int pkgVersion, string prefix = "") -> int
-        addPkgNamespace(self, string pkgName, unsigned int pkgVersion) -> int
+        addPkgNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion, string prefix="") -> int
+        addPkgNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion) -> int
 
         Internal implementation method.
 
@@ -38546,7 +37974,7 @@ class SBMLNamespaces(_object):
 
     def addPkgNamespaces(self, *args):
         """
-        addPkgNamespaces(self, XMLNamespaces xmlns) -> int
+        addPkgNamespaces(SBMLNamespaces self, XMLNamespaces xmlns) -> int
 
         Internal implementation method.
 
@@ -38555,8 +37983,7 @@ class SBMLNamespaces(_object):
 
     def removePkgNamespace(self, *args):
         """
-        removePkgNamespace(self, unsigned int level, unsigned int version, string pkgName, 
-            unsigned int pkgVersion) -> int
+        removePkgNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> int
 
         Internal implementation method.
 
@@ -38591,7 +38018,7 @@ class SBMLNamespaces(_object):
     __swig_getmethods__["isSBMLNamespace"] = lambda x: isSBMLNamespace
     def isValidCombination(self):
         """
-        isValidCombination(self) -> bool
+        isValidCombination(SBMLNamespaces self) -> bool
 
         Predicate returning True if the given set of namespaces represent a
         valid set
@@ -38603,7 +38030,7 @@ class SBMLNamespaces(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBMLNamespaces self) -> string
 
         Returns the name of the main package for this namespace.
 
@@ -38660,7 +38087,7 @@ def SBMLNamespaces_getSBMLNamespaceURI(*args):
 
 def SBMLNamespaces_getSupportedNamespaces():
   """
-    SBMLNamespaces_getSupportedNamespaces() -> List
+    SBMLNamespaces_getSupportedNamespaces() -> List const *
 
     Returns a list of all supported SBMLNamespaces in this version of
     libsbml.
@@ -38682,7 +38109,7 @@ def SBMLNamespaces_getSupportedNamespaces():
 
 def SBMLNamespaces_freeSBMLNamespaces(*args):
   """
-    SBMLNamespaces_freeSBMLNamespaces(List supportedNS)
+    SBMLNamespaces_freeSBMLNamespaces(List * supportedNS)
 
     Frees the list of supported namespaces as generated by
     getSupportedNamespaces().
@@ -38738,9 +38165,9 @@ class SBMLTransforms(_object):
     __repr__ = _swig_repr
     def replaceFD(*args):
         """
-        replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude = None)
+        replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude=None)
         replaceFD(ASTNode math, FunctionDefinition fd)
-        replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude = None)
+        replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude=None)
         replaceFD(ASTNode math, ListOfFunctionDefinitions lofd)
         """
         return _libsbml.SBMLTransforms_replaceFD(*args)
@@ -38760,7 +38187,7 @@ class SBMLTransforms(_object):
     __swig_getmethods__["expandInitialAssignments"] = lambda x: expandInitialAssignments
     def evaluateASTNode(*args):
         """
-        evaluateASTNode(ASTNode node, Model m = None) -> double
+        evaluateASTNode(ASTNode node, Model m=None) -> double
         evaluateASTNode(ASTNode node) -> double
 
         Internal implementation method.
@@ -38783,7 +38210,7 @@ class SBMLTransforms(_object):
     if _newclass:clearComponentValues = staticmethod(clearComponentValues)
     __swig_getmethods__["clearComponentValues"] = lambda x: clearComponentValues
     def __init__(self): 
-        """__init__(self) -> SBMLTransforms"""
+        """__init__(SBMLTransforms self) -> SBMLTransforms"""
         this = _libsbml.new_SBMLTransforms()
         try: self.this.append(this)
         except: self.this = this
@@ -38794,9 +38221,9 @@ SBMLTransforms_swigregister(SBMLTransforms)
 
 def SBMLTransforms_replaceFD(*args):
   """
-    replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude = None)
+    replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude=None)
     replaceFD(ASTNode math, FunctionDefinition fd)
-    replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude = None)
+    replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude=None)
     SBMLTransforms_replaceFD(ASTNode math, ListOfFunctionDefinitions lofd)
     """
   return _libsbml.SBMLTransforms_replaceFD(*args)
@@ -38812,7 +38239,7 @@ def SBMLTransforms_expandInitialAssignments(*args):
 
 def SBMLTransforms_evaluateASTNode(*args):
   """
-    evaluateASTNode(ASTNode node, Model m = None) -> double
+    evaluateASTNode(ASTNode node, Model m=None) -> double
     SBMLTransforms_evaluateASTNode(ASTNode node) -> double
 
     Internal implementation method.
@@ -38894,22 +38321,21 @@ class ConversionOption(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING, 
-            string description = "") -> ConversionOption
-        __init__(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING) -> ConversionOption
-        __init__(self, string key, string value = "") -> ConversionOption
-        __init__(self, string key) -> ConversionOption
-        __init__(self, string key, char value, string description = "") -> ConversionOption
-        __init__(self, string key, char value) -> ConversionOption
-        __init__(self, string key, bool value, string description = "") -> ConversionOption
-        __init__(self, string key, bool value) -> ConversionOption
-        __init__(self, string key, double value, string description = "") -> ConversionOption
-        __init__(self, string key, double value) -> ConversionOption
-        __init__(self, string key, float value, string description = "") -> ConversionOption
-        __init__(self, string key, float value) -> ConversionOption
-        __init__(self, string key, int value, string description = "") -> ConversionOption
-        __init__(self, string key, int value) -> ConversionOption
-        __init__(self, ConversionOption orig) -> ConversionOption
+        __init__(ConversionOption self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING) -> ConversionOption
+        __init__(ConversionOption self, string key, string value="") -> ConversionOption
+        __init__(ConversionOption self, string key) -> ConversionOption
+        __init__(ConversionOption self, string key, char const * value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, char const * value) -> ConversionOption
+        __init__(ConversionOption self, string key, bool value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, bool value) -> ConversionOption
+        __init__(ConversionOption self, string key, double value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, double value) -> ConversionOption
+        __init__(ConversionOption self, string key, float value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, float value) -> ConversionOption
+        __init__(ConversionOption self, string key, int value, string description="") -> ConversionOption
+        __init__(ConversionOption self, string key, int value) -> ConversionOption
+        __init__(ConversionOption self, ConversionOption orig) -> ConversionOption
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -39077,7 +38503,7 @@ class ConversionOption(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> ConversionOption
+        clone(ConversionOption self) -> ConversionOption
 
         Creates and returns a deep copy of this ConversionOption object.
 
@@ -39088,7 +38514,7 @@ class ConversionOption(_object):
 
     def getKey(self):
         """
-        getKey(self) -> string
+        getKey(ConversionOption self) -> string
 
         Returns the key for this option.
 
@@ -39099,7 +38525,7 @@ class ConversionOption(_object):
 
     def setKey(self, *args):
         """
-        setKey(self, string key)
+        setKey(ConversionOption self, string key)
 
         Sets the key for this option.
 
@@ -39110,7 +38536,7 @@ class ConversionOption(_object):
 
     def getValue(self):
         """
-        getValue(self) -> string
+        getValue(ConversionOption self) -> string
 
         Returns the value of this option.
 
@@ -39121,7 +38547,7 @@ class ConversionOption(_object):
 
     def setValue(self, *args):
         """
-        setValue(self, string value)
+        setValue(ConversionOption self, string value)
 
         Sets the value for this option.
 
@@ -39132,7 +38558,7 @@ class ConversionOption(_object):
 
     def getDescription(self):
         """
-        getDescription(self) -> string
+        getDescription(ConversionOption self) -> string
 
         Returns the description string for this option.
 
@@ -39143,7 +38569,7 @@ class ConversionOption(_object):
 
     def setDescription(self, *args):
         """
-        setDescription(self, string description)
+        setDescription(ConversionOption self, string description)
 
         Sets the description text for this option.
 
@@ -39154,7 +38580,7 @@ class ConversionOption(_object):
 
     def getType(self):
         """
-        getType(self) -> ConversionOptionType_t
+        getType(ConversionOption self) -> ConversionOptionType_t
 
         Returns the type of this option
 
@@ -39165,7 +38591,7 @@ class ConversionOption(_object):
 
     def setType(self, *args):
         """
-        setType(self, ConversionOptionType_t type)
+        setType(ConversionOption self, ConversionOptionType_t type)
 
         Sets the type of this option.
 
@@ -39180,7 +38606,7 @@ class ConversionOption(_object):
 
     def getBoolValue(self):
         """
-        getBoolValue(self) -> bool
+        getBoolValue(ConversionOption self) -> bool
 
         Returns the value of this option as a Boolean.
 
@@ -39191,7 +38617,7 @@ class ConversionOption(_object):
 
     def setBoolValue(self, *args):
         """
-        setBoolValue(self, bool value)
+        setBoolValue(ConversionOption self, bool value)
 
         Set the value of this option to a given Boolean value.
 
@@ -39205,7 +38631,7 @@ class ConversionOption(_object):
 
     def getDoubleValue(self):
         """
-        getDoubleValue(self) -> double
+        getDoubleValue(ConversionOption self) -> double
 
         Returns the value of this option as a float.
 
@@ -39216,7 +38642,7 @@ class ConversionOption(_object):
 
     def setDoubleValue(self, *args):
         """
-        setDoubleValue(self, double value)
+        setDoubleValue(ConversionOption self, double value)
 
         Set the value of this option to a given float value.
 
@@ -39230,7 +38656,7 @@ class ConversionOption(_object):
 
     def getFloatValue(self):
         """
-        getFloatValue(self) -> float
+        getFloatValue(ConversionOption self) -> float
 
         Returns the value of this option as a float.
 
@@ -39241,7 +38667,7 @@ class ConversionOption(_object):
 
     def setFloatValue(self, *args):
         """
-        setFloatValue(self, float value)
+        setFloatValue(ConversionOption self, float value)
 
         Set the value of this option to a given float value.
 
@@ -39255,7 +38681,7 @@ class ConversionOption(_object):
 
     def getIntValue(self):
         """
-        getIntValue(self) -> int
+        getIntValue(ConversionOption self) -> int
 
         Returns the value of this option as an integer.
 
@@ -39266,7 +38692,7 @@ class ConversionOption(_object):
 
     def setIntValue(self, *args):
         """
-        setIntValue(self, int value)
+        setIntValue(ConversionOption self, int value)
 
         Set the value of this option to a given int value.
 
@@ -39373,33 +38799,9 @@ class ConversionProperties(_object):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     See also ConversionOption, SBMLNamespaces.
 
@@ -39411,9 +38813,9 @@ class ConversionProperties(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, SBMLNamespaces targetNS = None) -> ConversionProperties
-        __init__(self) -> ConversionProperties
-        __init__(self, ConversionProperties orig) -> ConversionProperties
+        __init__(ConversionProperties self, SBMLNamespaces targetNS=None) -> ConversionProperties
+        __init__(ConversionProperties self) -> ConversionProperties
+        __init__(ConversionProperties self, ConversionProperties orig) -> ConversionProperties
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -39455,7 +38857,7 @@ class ConversionProperties(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ConversionProperties
+        clone(ConversionProperties self) -> ConversionProperties
 
         Creates and returns a deep copy of this ConversionProperties object.
 
@@ -39468,7 +38870,7 @@ class ConversionProperties(_object):
     __del__ = lambda self : None;
     def getTargetNamespaces(self):
         """
-        getTargetNamespaces(self) -> SBMLNamespaces
+        getTargetNamespaces(ConversionProperties self) -> SBMLNamespaces
 
         Returns the current target SBML namespace.
 
@@ -39479,7 +38881,7 @@ class ConversionProperties(_object):
 
     def hasTargetNamespaces(self):
         """
-        hasTargetNamespaces(self) -> bool
+        hasTargetNamespaces(ConversionProperties self) -> bool
 
         Returns True if the target SBML namespace has been set.
 
@@ -39490,7 +38892,7 @@ class ConversionProperties(_object):
 
     def setTargetNamespaces(self, *args):
         """
-        setTargetNamespaces(self, SBMLNamespaces targetNS)
+        setTargetNamespaces(ConversionProperties self, SBMLNamespaces targetNS)
 
         Sets the target namespace.
 
@@ -39501,7 +38903,7 @@ class ConversionProperties(_object):
 
     def getDescription(self, *args):
         """
-        getDescription(self, string key) -> string
+        getDescription(ConversionProperties self, string key) -> string
 
         Returns the description string for a given option in this properties
         object.
@@ -39515,7 +38917,7 @@ class ConversionProperties(_object):
 
     def getType(self, *args):
         """
-        getType(self, string key) -> ConversionOptionType_t
+        getType(ConversionProperties self, string key) -> ConversionOptionType_t
 
         Returns the type of a given option in this properties object.
 
@@ -39528,8 +38930,8 @@ class ConversionProperties(_object):
 
     def getOption(self, *args):
         """
-        getOption(self, string key) -> ConversionOption
-        getOption(self, int index) -> ConversionOption
+        getOption(ConversionProperties self, string key) -> ConversionOption
+        getOption(ConversionProperties self, int index) -> ConversionOption
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -39561,22 +38963,21 @@ class ConversionProperties(_object):
 
     def addOption(self, *args):
         """
-        addOption(self, ConversionOption option)
-        addOption(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING, 
-            string description = "")
-        addOption(self, string key, string value = "", ConversionOptionType_t type = CNV_TYPE_STRING)
-        addOption(self, string key, string value = "")
-        addOption(self, string key)
-        addOption(self, string key, char value, string description = "")
-        addOption(self, string key, char value)
-        addOption(self, string key, bool value, string description = "")
-        addOption(self, string key, bool value)
-        addOption(self, string key, double value, string description = "")
-        addOption(self, string key, double value)
-        addOption(self, string key, float value, string description = "")
-        addOption(self, string key, float value)
-        addOption(self, string key, int value, string description = "")
-        addOption(self, string key, int value)
+        addOption(ConversionProperties self, ConversionOption option)
+        addOption(ConversionProperties self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING, string description="")
+        addOption(ConversionProperties self, string key, string value="", ConversionOptionType_t type=CNV_TYPE_STRING)
+        addOption(ConversionProperties self, string key, string value="")
+        addOption(ConversionProperties self, string key)
+        addOption(ConversionProperties self, string key, char const * value, string description="")
+        addOption(ConversionProperties self, string key, char const * value)
+        addOption(ConversionProperties self, string key, bool value, string description="")
+        addOption(ConversionProperties self, string key, bool value)
+        addOption(ConversionProperties self, string key, double value, string description="")
+        addOption(ConversionProperties self, string key, double value)
+        addOption(ConversionProperties self, string key, float value, string description="")
+        addOption(ConversionProperties self, string key, float value)
+        addOption(ConversionProperties self, string key, int value, string description="")
+        addOption(ConversionProperties self, string key, int value)
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -39736,7 +39137,7 @@ class ConversionProperties(_object):
 
     def removeOption(self, *args):
         """
-        removeOption(self, string key) -> ConversionOption
+        removeOption(ConversionProperties self, string key) -> ConversionOption
 
         Removes the option with the given key from this properties object.
 
@@ -39748,7 +39149,7 @@ class ConversionProperties(_object):
 
     def hasOption(self, *args):
         """
-        hasOption(self, string key) -> bool
+        hasOption(ConversionProperties self, string key) -> bool
 
         Returns True if this properties object contains an option with the
         given key.
@@ -39763,7 +39164,7 @@ class ConversionProperties(_object):
 
     def getValue(self, *args):
         """
-        getValue(self, string key) -> string
+        getValue(ConversionProperties self, string key) -> string
 
         Returns the value of the given option as a string.
 
@@ -39776,7 +39177,7 @@ class ConversionProperties(_object):
 
     def setValue(self, *args):
         """
-        setValue(self, string key, string value)
+        setValue(ConversionProperties self, string key, string value)
 
         Sets the value of the given option to a string.
 
@@ -39788,7 +39189,7 @@ class ConversionProperties(_object):
 
     def getBoolValue(self, *args):
         """
-        getBoolValue(self, string key) -> bool
+        getBoolValue(ConversionProperties self, string key) -> bool
 
         Returns the value of the given option as a Boolean.
 
@@ -39801,7 +39202,7 @@ class ConversionProperties(_object):
 
     def setBoolValue(self, *args):
         """
-        setBoolValue(self, string key, bool value)
+        setBoolValue(ConversionProperties self, string key, bool value)
 
         Sets the value of the given option to a Boolean.
 
@@ -39814,7 +39215,7 @@ class ConversionProperties(_object):
 
     def getDoubleValue(self, *args):
         """
-        getDoubleValue(self, string key) -> double
+        getDoubleValue(ConversionProperties self, string key) -> double
 
         Returns the value of the given option as a float.
 
@@ -39827,7 +39228,7 @@ class ConversionProperties(_object):
 
     def setDoubleValue(self, *args):
         """
-        setDoubleValue(self, string key, double value)
+        setDoubleValue(ConversionProperties self, string key, double value)
 
         Sets the value of the given option to a float.
 
@@ -39840,7 +39241,7 @@ class ConversionProperties(_object):
 
     def getFloatValue(self, *args):
         """
-        getFloatValue(self, string key) -> float
+        getFloatValue(ConversionProperties self, string key) -> float
 
         Returns the value of the given option as a float.
 
@@ -39853,7 +39254,7 @@ class ConversionProperties(_object):
 
     def setFloatValue(self, *args):
         """
-        setFloatValue(self, string key, float value)
+        setFloatValue(ConversionProperties self, string key, float value)
 
         Sets the value of the given option to a float.
 
@@ -39866,7 +39267,7 @@ class ConversionProperties(_object):
 
     def getIntValue(self, *args):
         """
-        getIntValue(self, string key) -> int
+        getIntValue(ConversionProperties self, string key) -> int
 
         Returns the value of the given option as an integer.
 
@@ -39879,7 +39280,7 @@ class ConversionProperties(_object):
 
     def setIntValue(self, *args):
         """
-        setIntValue(self, string key, int value)
+        setIntValue(ConversionProperties self, string key, int value)
 
         Sets the value of the given option to an integer.
 
@@ -39892,7 +39293,7 @@ class ConversionProperties(_object):
 
     def getNumOptions(self):
         """
-        getNumOptions(self) -> int
+        getNumOptions(ConversionProperties self) -> int
 
         Returns the number of options in this Conversion Properties object
 
@@ -39990,33 +39391,9 @@ class SBMLConverter(_object):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -40026,9 +39403,9 @@ class SBMLConverter(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLConverter
-        __init__(self, string name) -> SBMLConverter
-        __init__(self, SBMLConverter orig) -> SBMLConverter
+        __init__(SBMLConverter self) -> SBMLConverter
+        __init__(SBMLConverter self, string name) -> SBMLConverter
+        __init__(SBMLConverter self, SBMLConverter orig) -> SBMLConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -40072,7 +39449,7 @@ class SBMLConverter(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLConverter
+        clone(SBMLConverter self) -> SBMLConverter
 
         Creates and returns a deep copy of this SBMLConverter object.
 
@@ -40083,8 +39460,8 @@ class SBMLConverter(_object):
 
     def getDocument(self, *args):
         """
-        getDocument(self) -> SBMLDocument
-        getDocument(self) -> SBMLDocument
+        getDocument(SBMLConverter self) -> SBMLDocument
+        getDocument(SBMLConverter self) -> SBMLDocument
 
         Returns the SBML document that is the subject of the conversions.
 
@@ -40095,7 +39472,7 @@ class SBMLConverter(_object):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -40115,7 +39492,7 @@ class SBMLConverter(_object):
 
     def getTargetNamespaces(self):
         """
-        getTargetNamespaces(self) -> SBMLNamespaces
+        getTargetNamespaces(SBMLConverter self) -> SBMLNamespaces
 
         Returns the target SBML namespaces of the currently set properties.
 
@@ -40135,7 +39512,7 @@ class SBMLConverter(_object):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter matches the given properties.
 
@@ -40153,7 +39530,7 @@ class SBMLConverter(_object):
 
     def setDocument(self, *args):
         """
-        setDocument(self, SBMLDocument doc) -> int
+        setDocument(SBMLConverter self, SBMLDocument doc) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -40195,7 +39572,7 @@ class SBMLConverter(_object):
 
     def setProperties(self, *args):
         """
-        setProperties(self, ConversionProperties props) -> int
+        setProperties(SBMLConverter self, ConversionProperties props) -> int
 
         Sets the configuration properties to be used by this converter.
 
@@ -40218,7 +39595,7 @@ class SBMLConverter(_object):
 
     def getProperties(self):
         """
-        getProperties(self) -> ConversionProperties
+        getProperties(SBMLConverter self) -> ConversionProperties
 
         Returns the current properties in effect for this converter.
 
@@ -40237,7 +39614,7 @@ class SBMLConverter(_object):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLConverter self) -> int
 
         Perform the conversion.
 
@@ -40256,7 +39633,7 @@ class SBMLConverter(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SBMLConverter self) -> string
 
         Returns the name of this converter.
 
@@ -40321,7 +39698,7 @@ class SBMLConverterRegistry(_object):
     __swig_getmethods__["getInstance"] = lambda x: getInstance
     def addConverter(self, *args):
         """
-        addConverter(self, SBMLConverter converter) -> int
+        addConverter(SBMLConverterRegistry self, SBMLConverter converter) -> int
 
         Adds the given converter to the registry of SBML converters.
 
@@ -40339,7 +39716,7 @@ class SBMLConverterRegistry(_object):
 
     def getConverterByIndex(self, *args):
         """
-        getConverterByIndex(self, int index) -> SBMLConverter
+        getConverterByIndex(SBMLConverterRegistry self, int index) -> SBMLConverter
 
         Returns the converter with the given index number.
 
@@ -40359,7 +39736,7 @@ class SBMLConverterRegistry(_object):
 
     def getConverterFor(self, *args):
         """
-        getConverterFor(self, ConversionProperties props) -> SBMLConverter
+        getConverterFor(SBMLConverterRegistry self, ConversionProperties props) -> SBMLConverter
 
         Returns the converter that best matches the given configuration
         properties.
@@ -40384,7 +39761,7 @@ class SBMLConverterRegistry(_object):
 
     def getNumConverters(self):
         """
-        getNumConverters(self) -> int
+        getNumConverters(SBMLConverterRegistry self) -> int
 
         Returns the number of converters known by the registry.
 
@@ -40524,33 +39901,9 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
+    provided by libSBML 5.13.0:
 
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -40573,8 +39926,8 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLFunctionDefinitionConverter
-        __init__(self, SBMLFunctionDefinitionConverter obj) -> SBMLFunctionDefinitionConverter
+        __init__(SBMLFunctionDefinitionConverter self) -> SBMLFunctionDefinitionConverter
+        __init__(SBMLFunctionDefinitionConverter self, SBMLFunctionDefinitionConverter obj) -> SBMLFunctionDefinitionConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -40603,7 +39956,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLFunctionDefinitionConverter
+        clone(SBMLFunctionDefinitionConverter self) -> SBMLFunctionDefinitionConverter
 
         Creates and returns a deep copy of this
         SBMLFunctionDefinitionConverter object.
@@ -40617,7 +39970,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLFunctionDefinitionConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -40638,7 +39991,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLFunctionDefinitionConverter self) -> int
 
         Perform the conversion.
 
@@ -40663,7 +40016,7 @@ class SBMLFunctionDefinitionConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLFunctionDefinitionConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -40804,33 +40157,9 @@ class SBMLIdConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -40853,8 +40182,8 @@ class SBMLIdConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLIdConverter
-        __init__(self, SBMLIdConverter obj) -> SBMLIdConverter
+        __init__(SBMLIdConverter self) -> SBMLIdConverter
+        __init__(SBMLIdConverter self, SBMLIdConverter obj) -> SBMLIdConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -40881,7 +40210,7 @@ class SBMLIdConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLIdConverter
+        clone(SBMLIdConverter self) -> SBMLIdConverter
 
         Creates and returns a deep copy of this SBMLIdConverter object.
 
@@ -40894,7 +40223,7 @@ class SBMLIdConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLIdConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -40915,7 +40244,7 @@ class SBMLIdConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLIdConverter self) -> int
 
         Perform the conversion.
 
@@ -40942,7 +40271,7 @@ class SBMLIdConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLIdConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -41061,33 +40390,9 @@ class SBMLInferUnitsConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -41110,8 +40415,8 @@ class SBMLInferUnitsConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLInferUnitsConverter
-        __init__(self, SBMLInferUnitsConverter obj) -> SBMLInferUnitsConverter
+        __init__(SBMLInferUnitsConverter self) -> SBMLInferUnitsConverter
+        __init__(SBMLInferUnitsConverter self, SBMLInferUnitsConverter obj) -> SBMLInferUnitsConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -41140,7 +40445,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLInferUnitsConverter
+        clone(SBMLInferUnitsConverter self) -> SBMLInferUnitsConverter
 
         Creates and returns a deep copy of this SBMLInferUnitsConverter
         object.
@@ -41152,7 +40457,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLInferUnitsConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -41173,7 +40478,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLInferUnitsConverter self) -> int
 
         Perform the conversion.
 
@@ -41198,7 +40503,7 @@ class SBMLInferUnitsConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLInferUnitsConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -41333,33 +40638,9 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -41382,8 +40663,8 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLInitialAssignmentConverter
-        __init__(self, SBMLInitialAssignmentConverter obj) -> SBMLInitialAssignmentConverter
+        __init__(SBMLInitialAssignmentConverter self) -> SBMLInitialAssignmentConverter
+        __init__(SBMLInitialAssignmentConverter self, SBMLInitialAssignmentConverter obj) -> SBMLInitialAssignmentConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -41411,7 +40692,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLInitialAssignmentConverter
+        clone(SBMLInitialAssignmentConverter self) -> SBMLInitialAssignmentConverter
 
         Creates and returns a deep copy of this SBMLInitialAssignmentConverter
         object.
@@ -41425,7 +40706,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLInitialAssignmentConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -41446,7 +40727,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLInitialAssignmentConverter self) -> int
 
         Perform the conversion.
 
@@ -41469,7 +40750,7 @@ class SBMLInitialAssignmentConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLInitialAssignmentConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -41613,33 +40894,9 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
+    provided by libSBML 5.13.0:
 
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -41662,8 +40919,8 @@ class SBMLLevelVersionConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLLevelVersionConverter
-        __init__(self, SBMLLevelVersionConverter obj) -> SBMLLevelVersionConverter
+        __init__(SBMLLevelVersionConverter self) -> SBMLLevelVersionConverter
+        __init__(SBMLLevelVersionConverter self, SBMLLevelVersionConverter obj) -> SBMLLevelVersionConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -41693,7 +40950,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLLevelVersionConverter
+        clone(SBMLLevelVersionConverter self) -> SBMLLevelVersionConverter
 
         Creates and returns a deep copy of this SBMLLevelVersionConverter
         object.
@@ -41705,7 +40962,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLLevelVersionConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -41726,7 +40983,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLLevelVersionConverter self) -> int
 
         Perform the conversion.
 
@@ -41753,7 +41010,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLLevelVersionConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -41771,7 +41028,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getTargetLevel(self):
         """
-        getTargetLevel(self) -> unsigned int
+        getTargetLevel(SBMLLevelVersionConverter self) -> unsigned int
 
         Returns the target SBML Level for the conversion.
 
@@ -41782,7 +41039,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getTargetVersion(self):
         """
-        getTargetVersion(self) -> unsigned int
+        getTargetVersion(SBMLLevelVersionConverter self) -> unsigned int
 
         Returns the target SBML Version for the conversion.
 
@@ -41793,7 +41050,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getValidityFlag(self):
         """
-        getValidityFlag(self) -> bool
+        getValidityFlag(SBMLLevelVersionConverter self) -> bool
 
         Returns the flag indicating whether the conversion has been set to
         'strict'.
@@ -41805,7 +41062,7 @@ class SBMLLevelVersionConverter(SBMLConverter):
 
     def getAddDefaultUnits(self):
         """
-        getAddDefaultUnits(self) -> bool
+        getAddDefaultUnits(SBMLLevelVersionConverter self) -> bool
 
         Returns the flag indicating whether default units should be added when
         converting to L3 or not.
@@ -41940,33 +41197,9 @@ class SBMLLevel1Version1Converter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -41989,8 +41222,8 @@ class SBMLLevel1Version1Converter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLLevel1Version1Converter
-        __init__(self, SBMLLevel1Version1Converter obj) -> SBMLLevel1Version1Converter
+        __init__(SBMLLevel1Version1Converter self) -> SBMLLevel1Version1Converter
+        __init__(SBMLLevel1Version1Converter self, SBMLLevel1Version1Converter obj) -> SBMLLevel1Version1Converter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -42020,7 +41253,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLLevel1Version1Converter
+        clone(SBMLLevel1Version1Converter self) -> SBMLLevel1Version1Converter
 
         Creates and returns a deep copy of this SBMLLevel1Version1Converter
         object.
@@ -42032,7 +41265,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLLevel1Version1Converter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -42053,7 +41286,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLLevel1Version1Converter self) -> int
 
         Perform the conversion.
 
@@ -42080,7 +41313,7 @@ class SBMLLevel1Version1Converter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLLevel1Version1Converter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -42207,33 +41440,9 @@ class SBMLLocalParameterConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -42256,8 +41465,8 @@ class SBMLLocalParameterConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLLocalParameterConverter
-        __init__(self, SBMLLocalParameterConverter obj) -> SBMLLocalParameterConverter
+        __init__(SBMLLocalParameterConverter self) -> SBMLLocalParameterConverter
+        __init__(SBMLLocalParameterConverter self, SBMLLocalParameterConverter obj) -> SBMLLocalParameterConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -42285,7 +41494,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLLocalParameterConverter
+        clone(SBMLLocalParameterConverter self) -> SBMLLocalParameterConverter
 
         Creates and returns a deep copy of this SBMLLocalParameterConverter
         object.
@@ -42299,7 +41508,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLLocalParameterConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -42320,7 +41529,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLLocalParameterConverter self) -> int
 
         Perform the conversion.
 
@@ -42343,7 +41552,7 @@ class SBMLLocalParameterConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLLocalParameterConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -42464,33 +41673,9 @@ class SBMLReactionConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -42513,8 +41698,8 @@ class SBMLReactionConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLReactionConverter
-        __init__(self, SBMLReactionConverter obj) -> SBMLReactionConverter
+        __init__(SBMLReactionConverter self) -> SBMLReactionConverter
+        __init__(SBMLReactionConverter self, SBMLReactionConverter obj) -> SBMLReactionConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -42541,7 +41726,7 @@ class SBMLReactionConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLReactionConverter
+        clone(SBMLReactionConverter self) -> SBMLReactionConverter
 
         Creates and returns a deep copy of this SBMLReactionConverter object.
 
@@ -42554,7 +41739,7 @@ class SBMLReactionConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLReactionConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -42575,7 +41760,7 @@ class SBMLReactionConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLReactionConverter self) -> int
 
         Perform the conversion.
 
@@ -42600,7 +41785,7 @@ class SBMLReactionConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLReactionConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -42618,7 +41803,7 @@ class SBMLReactionConverter(SBMLConverter):
 
     def setDocument(self, *args):
         """
-        setDocument(self, SBMLDocument doc) -> int
+        setDocument(SBMLReactionConverter self, SBMLDocument doc) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -42789,33 +41974,9 @@ class SBMLRuleConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -42838,8 +41999,8 @@ class SBMLRuleConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLRuleConverter
-        __init__(self, SBMLRuleConverter obj) -> SBMLRuleConverter
+        __init__(SBMLRuleConverter self) -> SBMLRuleConverter
+        __init__(SBMLRuleConverter self, SBMLRuleConverter obj) -> SBMLRuleConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -42867,7 +42028,7 @@ class SBMLRuleConverter(SBMLConverter):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLRuleConverter
+        clone(SBMLRuleConverter self) -> SBMLRuleConverter
 
         Creates and returns a deep copy of this SBMLLevelVersionConverter
         object.
@@ -42881,7 +42042,7 @@ class SBMLRuleConverter(SBMLConverter):
     __del__ = lambda self : None;
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLRuleConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -42902,7 +42063,7 @@ class SBMLRuleConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLRuleConverter self) -> int
 
         Perform the conversion.
 
@@ -42925,7 +42086,7 @@ class SBMLRuleConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLRuleConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -43058,33 +42219,9 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
+    provided by libSBML 5.13.0:
 
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
-
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -43107,8 +42244,8 @@ class SBMLStripPackageConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLStripPackageConverter
-        __init__(self, SBMLStripPackageConverter obj) -> SBMLStripPackageConverter
+        __init__(SBMLStripPackageConverter self) -> SBMLStripPackageConverter
+        __init__(SBMLStripPackageConverter self, SBMLStripPackageConverter obj) -> SBMLStripPackageConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -43138,7 +42275,7 @@ class SBMLStripPackageConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLStripPackageConverter
+        clone(SBMLStripPackageConverter self) -> SBMLStripPackageConverter
 
         Creates and returns a deep copy of this SBMLStripPackageConverter
         object.
@@ -43150,7 +42287,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLStripPackageConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -43171,7 +42308,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLStripPackageConverter self) -> int
 
         Perform the conversion.
 
@@ -43196,7 +42333,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLStripPackageConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -43214,7 +42351,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def getPackageToStrip(self):
         """
-        getPackageToStrip(self) -> string
+        getPackageToStrip(SBMLStripPackageConverter self) -> string
 
         Returns the package to be stripped
 
@@ -43223,7 +42360,7 @@ class SBMLStripPackageConverter(SBMLConverter):
 
     def isStripAllUnrecognizedPackages(self):
         """
-        isStripAllUnrecognizedPackages(self) -> bool
+        isStripAllUnrecognizedPackages(SBMLStripPackageConverter self) -> bool
 
         Returns whether all unrecognized packages should be removed
 
@@ -43345,33 +42482,9 @@ class SBMLUnitsConverter(SBMLConverter):
 
     LibSBML provides a number of built-in converters; by convention, their
     names end in Converter. The following are the built-in converters
-    provided by libSBML 5.12.0:
-
-    * CobraToFbcConverter
-
-    * CompFlatteningConverter
-
-    * FbcToCobraConverter
-
-    * SBMLFunctionDefinitionConverter
-
-    * SBMLIdConverter
-
-    * SBMLInferUnitsConverter
-
-    * SBMLInitialAssignmentConverter
-
-    * SBMLLevelVersionConverter
-
-    * SBMLLocalParameterConverter
+    provided by libSBML 5.13.0:
 
-    * SBMLReactionConverter
-
-    * SBMLRuleConverter
-
-    * SBMLStripPackageConverter
-
-    * SBMLUnitsConverter
+    @copydetails doc_list_of_libsbml_converters
 
     """
     __swig_setmethods__ = {}
@@ -43394,8 +42507,8 @@ class SBMLUnitsConverter(SBMLConverter):
     __swig_getmethods__["init"] = lambda x: init
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLUnitsConverter
-        __init__(self, SBMLUnitsConverter obj) -> SBMLUnitsConverter
+        __init__(SBMLUnitsConverter self) -> SBMLUnitsConverter
+        __init__(SBMLUnitsConverter self, SBMLUnitsConverter obj) -> SBMLUnitsConverter
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -43424,7 +42537,7 @@ class SBMLUnitsConverter(SBMLConverter):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLUnitsConverter
+        clone(SBMLUnitsConverter self) -> SBMLUnitsConverter
 
         Creates and returns a deep copy of this SBMLUnitsConverter object.
 
@@ -43435,7 +42548,7 @@ class SBMLUnitsConverter(SBMLConverter):
 
     def matchesProperties(self, *args):
         """
-        matchesProperties(self, ConversionProperties props) -> bool
+        matchesProperties(SBMLUnitsConverter self, ConversionProperties props) -> bool
 
         Returns True if this converter object's properties match the given
         properties.
@@ -43456,7 +42569,7 @@ class SBMLUnitsConverter(SBMLConverter):
 
     def convert(self):
         """
-        convert(self) -> int
+        convert(SBMLUnitsConverter self) -> int
 
         Perform the conversion.
 
@@ -43483,7 +42596,7 @@ class SBMLUnitsConverter(SBMLConverter):
 
     def getDefaultProperties(self):
         """
-        getDefaultProperties(self) -> ConversionProperties
+        getDefaultProperties(SBMLUnitsConverter self) -> ConversionProperties
 
         Returns the default properties of this converter.
 
@@ -43560,8 +42673,8 @@ class SBMLValidator(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLValidator
-        __init__(self, SBMLValidator orig) -> SBMLValidator
+        __init__(SBMLValidator self) -> SBMLValidator
+        __init__(SBMLValidator self, SBMLValidator orig) -> SBMLValidator
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -43594,7 +42707,7 @@ class SBMLValidator(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLValidator
+        clone(SBMLValidator self) -> SBMLValidator
 
         Creates and returns a deep copy of this SBMLValidator object.
 
@@ -43605,8 +42718,8 @@ class SBMLValidator(_object):
 
     def getDocument(self, *args):
         """
-        getDocument(self) -> SBMLDocument
-        getDocument(self) -> SBMLDocument
+        getDocument(SBMLValidator self) -> SBMLDocument
+        getDocument(SBMLValidator self) -> SBMLDocument
 
         Returns the current SBML document in use by this validator.
 
@@ -43619,7 +42732,7 @@ class SBMLValidator(_object):
 
     def setDocument(self, *args):
         """
-        setDocument(self, SBMLDocument doc) -> int
+        setDocument(SBMLValidator self, SBMLDocument doc) -> int
 
         Sets the current SBML document to the given SBMLDocument object.
 
@@ -43637,7 +42750,7 @@ class SBMLValidator(_object):
 
     def clearFailures(self):
         """
-        clearFailures(self)
+        clearFailures(SBMLValidator self)
 
         Clears this validator's list of failures.
 
@@ -43650,7 +42763,7 @@ class SBMLValidator(_object):
 
     def logFailure(self, *args):
         """
-        logFailure(self, SBMLError err)
+        logFailure(SBMLValidator self, SBMLError err)
 
         Adds the given failure to this list of Validators failures.
 
@@ -43662,9 +42775,9 @@ class SBMLValidator(_object):
 
     def validate(self, *args):
         """
-        validate(self) -> unsigned int
-        validate(self, SBMLDocument d) -> unsigned int
-        validate(self, string filename) -> unsigned int
+        validate(SBMLValidator self) -> unsigned int
+        validate(SBMLValidator self, SBMLDocument d) -> unsigned int
+        validate(SBMLValidator self, string filename) -> unsigned int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -43714,7 +42827,7 @@ class SBMLValidator(_object):
 
     def getErrorLog(self):
         """
-        getErrorLog(self) -> SBMLErrorLog
+        getErrorLog(SBMLValidator self) -> SBMLErrorLog
 
         Returns the list of errors or warnings logged during parsing,
         consistency checking, or attempted translation of this model.
@@ -43731,8 +42844,8 @@ class SBMLValidator(_object):
 
     def getModel(self, *args):
         """
-        getModel(self) -> Model
-        getModel(self) -> Model
+        getModel(SBMLValidator self) -> Model
+        getModel(SBMLValidator self) -> Model
 
         Returns the Model object stored in the SBMLDocument.
 
@@ -43751,7 +42864,7 @@ class SBMLValidator(_object):
 
     def getNumFailures(self):
         """
-        getNumFailures(self) -> unsigned int
+        getNumFailures(SBMLValidator self) -> unsigned int
 
         Returns the number of failures encountered in the last validation run.
 
@@ -43769,7 +42882,7 @@ class SBMLValidator(_object):
 
     def getFailure(self, *args):
         """
-        getFailure(self, unsigned int n) -> SBMLError
+        getFailure(SBMLValidator self, unsigned int n) -> SBMLError
 
         Returns the failure object at index n in this validator's list of
         failures logged during the last run.
@@ -43808,8 +42921,8 @@ class SBMLExternalValidator(SBMLValidator):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLExternalValidator
-        __init__(self, SBMLExternalValidator arg0) -> SBMLExternalValidator
+        __init__(SBMLExternalValidator self) -> SBMLExternalValidator
+        __init__(SBMLExternalValidator self, SBMLExternalValidator arg2) -> SBMLExternalValidator
 
         Internal implementation method.
 
@@ -43819,7 +42932,7 @@ class SBMLExternalValidator(SBMLValidator):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBMLValidator
+        clone(SBMLExternalValidator self) -> SBMLValidator
 
         Internal implementation method.
 
@@ -43830,7 +42943,7 @@ class SBMLExternalValidator(SBMLValidator):
     __del__ = lambda self : None;
     def validate(self):
         """
-        validate(self) -> unsigned int
+        validate(SBMLExternalValidator self) -> unsigned int
 
         Internal implementation method.
 
@@ -43839,7 +42952,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getProgram(self):
         """
-        getProgram(self) -> string
+        getProgram(SBMLExternalValidator self) -> string
 
         Internal implementation method.
 
@@ -43848,7 +42961,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def setProgram(self, *args):
         """
-        setProgram(self, string program)
+        setProgram(SBMLExternalValidator self, string program)
 
         Internal implementation method.
 
@@ -43857,7 +42970,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getOutputFileName(self):
         """
-        getOutputFileName(self) -> string
+        getOutputFileName(SBMLExternalValidator self) -> string
 
         Internal implementation method.
 
@@ -43866,7 +42979,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def setOutputFileName(self, *args):
         """
-        setOutputFileName(self, string outputFileName)
+        setOutputFileName(SBMLExternalValidator self, string outputFileName)
 
         Internal implementation method.
 
@@ -43875,7 +42988,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getSBMLFileName(self):
         """
-        getSBMLFileName(self) -> string
+        getSBMLFileName(SBMLExternalValidator self) -> string
 
         Internal implementation method.
 
@@ -43884,7 +42997,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def setSBMLFileName(self, *args):
         """
-        setSBMLFileName(self, string sbmlFileName)
+        setSBMLFileName(SBMLExternalValidator self, string sbmlFileName)
 
         Internal implementation method.
 
@@ -43893,7 +43006,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def clearArguments(self):
         """
-        clearArguments(self)
+        clearArguments(SBMLExternalValidator self)
 
         Internal implementation method.
 
@@ -43902,7 +43015,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def addArgument(self, *args):
         """
-        addArgument(self, string arg)
+        addArgument(SBMLExternalValidator self, string arg)
 
         Internal implementation method.
 
@@ -43911,7 +43024,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getNumArguments(self):
         """
-        getNumArguments(self) -> unsigned int
+        getNumArguments(SBMLExternalValidator self) -> unsigned int
 
         Internal implementation method.
 
@@ -43920,7 +43033,7 @@ class SBMLExternalValidator(SBMLValidator):
 
     def getArgument(self, *args):
         """
-        getArgument(self, unsigned int n) -> string
+        getArgument(SBMLExternalValidator self, unsigned int n) -> string
 
         Internal implementation method.
 
@@ -43991,8 +43104,8 @@ class XMLAttributes(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLAttributes
-        __init__(self, XMLAttributes orig) -> XMLAttributes
+        __init__(XMLAttributes self) -> XMLAttributes
+        __init__(XMLAttributes self, XMLAttributes orig) -> XMLAttributes
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44019,7 +43132,7 @@ class XMLAttributes(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLAttributes
+        clone(XMLAttributes self) -> XMLAttributes
 
         Creates and returns a deep copy of this XMLAttributes object.
 
@@ -44030,11 +43143,10 @@ class XMLAttributes(_object):
 
     def add(self, *args):
         """
-        add(self, string name, string value, string namespaceURI = "", 
-            string prefix = "") -> int
-        add(self, string name, string value, string namespaceURI = "") -> int
-        add(self, string name, string value) -> int
-        add(self, XMLTriple triple, string value) -> int
+        add(XMLAttributes self, string name, string value, string namespaceURI="", string prefix="") -> int
+        add(XMLAttributes self, string name, string value, string namespaceURI="") -> int
+        add(XMLAttributes self, string name, string value) -> int
+        add(XMLAttributes self, XMLTriple triple, string value) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44163,7 +43275,7 @@ class XMLAttributes(_object):
 
     def removeResource(self, *args):
         """
-        removeResource(self, int n) -> int
+        removeResource(XMLAttributes self, int n) -> int
 
         Internal implementation method.
 
@@ -44172,10 +43284,10 @@ class XMLAttributes(_object):
 
     def remove(self, *args):
         """
-        remove(self, int n) -> int
-        remove(self, string name, string uri = "") -> int
-        remove(self, string name) -> int
-        remove(self, XMLTriple triple) -> int
+        remove(XMLAttributes self, int n) -> int
+        remove(XMLAttributes self, string name, string uri="") -> int
+        remove(XMLAttributes self, string name) -> int
+        remove(XMLAttributes self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44208,7 +43320,7 @@ class XMLAttributes(_object):
 
     def clear(self):
         """
-        clear(self) -> int
+        clear(XMLAttributes self) -> int
 
         Removes all attributes in this XMLAttributes object.
 
@@ -44224,9 +43336,9 @@ class XMLAttributes(_object):
 
     def getIndex(self, *args):
         """
-        getIndex(self, string name) -> int
-        getIndex(self, string name, string uri) -> int
-        getIndex(self, XMLTriple triple) -> int
+        getIndex(XMLAttributes self, string name) -> int
+        getIndex(XMLAttributes self, string name, string uri) -> int
+        getIndex(XMLAttributes self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44253,7 +43365,7 @@ class XMLAttributes(_object):
 
     def getLength(self):
         """
-        getLength(self) -> int
+        getLength(XMLAttributes self) -> int
 
         Returns the number of attributes in this list of attributes.
 
@@ -44265,7 +43377,7 @@ class XMLAttributes(_object):
 
     def getNumAttributes(self):
         """
-        getNumAttributes(self) -> int
+        getNumAttributes(XMLAttributes self) -> int
 
         Returns the number of attributes in this list of attributes.
 
@@ -44280,7 +43392,7 @@ class XMLAttributes(_object):
 
     def getName(self, *args):
         """
-        getName(self, int index) -> string
+        getName(XMLAttributes self, int index) -> string
 
         Returns the name of the nth attribute in this list of attributes.
 
@@ -44315,7 +43427,7 @@ class XMLAttributes(_object):
 
     def getPrefix(self, *args):
         """
-        getPrefix(self, int index) -> string
+        getPrefix(XMLAttributes self, int index) -> string
 
         Returns the namespace prefix of the nth attribute in this attribute
         set.
@@ -44351,7 +43463,7 @@ class XMLAttributes(_object):
 
     def getPrefixedName(self, *args):
         """
-        getPrefixedName(self, int index) -> string
+        getPrefixedName(XMLAttributes self, int index) -> string
 
         Returns the prefix name of the nth attribute in this attribute set.
 
@@ -44386,7 +43498,7 @@ class XMLAttributes(_object):
 
     def getURI(self, *args):
         """
-        getURI(self, int index) -> string
+        getURI(XMLAttributes self, int index) -> string
 
         Returns the XML namespace URI of the nth attribute in this attribute
         set.
@@ -44422,10 +43534,10 @@ class XMLAttributes(_object):
 
     def getValue(self, *args):
         """
-        getValue(self, int index) -> string
-        getValue(self, string name) -> string
-        getValue(self, string name, string uri) -> string
-        getValue(self, XMLTriple triple) -> string
+        getValue(XMLAttributes self, int index) -> string
+        getValue(XMLAttributes self, string name) -> string
+        getValue(XMLAttributes self, string name, string uri) -> string
+        getValue(XMLAttributes self, XMLTriple triple) -> string
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44458,10 +43570,10 @@ class XMLAttributes(_object):
 
     def hasAttribute(self, *args):
         """
-        hasAttribute(self, int index) -> bool
-        hasAttribute(self, string name, string uri = "") -> bool
-        hasAttribute(self, string name) -> bool
-        hasAttribute(self, XMLTriple triple) -> bool
+        hasAttribute(XMLAttributes self, int index) -> bool
+        hasAttribute(XMLAttributes self, string name, string uri="") -> bool
+        hasAttribute(XMLAttributes self, string name) -> bool
+        hasAttribute(XMLAttributes self, XMLTriple triple) -> bool
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44486,7 +43598,7 @@ class XMLAttributes(_object):
 
     def isEmpty(self):
         """
-        isEmpty(self) -> bool
+        isEmpty(XMLAttributes self) -> bool
 
         Returns True if this list of attributes is empty.
 
@@ -44552,8 +43664,8 @@ class XMLNamespaces(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLNamespaces
-        __init__(self, XMLNamespaces orig) -> XMLNamespaces
+        __init__(XMLNamespaces self) -> XMLNamespaces
+        __init__(XMLNamespaces self, XMLNamespaces orig) -> XMLNamespaces
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44580,7 +43692,7 @@ class XMLNamespaces(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLNamespaces
+        clone(XMLNamespaces self) -> XMLNamespaces
 
         Creates and returns a deep copy of this XMLNamespaces object.
 
@@ -44591,8 +43703,8 @@ class XMLNamespaces(_object):
 
     def add(self, *args):
         """
-        add(self, string uri, string prefix = "") -> int
-        add(self, string uri) -> int
+        add(XMLNamespaces self, string uri, string prefix="") -> int
+        add(XMLNamespaces self, string uri) -> int
 
         Appends an XML namespace prefix and URI pair to this list of namespace
         declarations.
@@ -44638,8 +43750,8 @@ class XMLNamespaces(_object):
 
     def remove(self, *args):
         """
-        remove(self, int index) -> int
-        remove(self, string prefix) -> int
+        remove(XMLNamespaces self, int index) -> int
+        remove(XMLNamespaces self, string prefix) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44683,7 +43795,7 @@ class XMLNamespaces(_object):
 
     def clear(self):
         """
-        clear(self) -> int
+        clear(XMLNamespaces self) -> int
 
         Clears (deletes) all XML namespace declarations in this XMLNamespaces
         object.
@@ -44702,7 +43814,7 @@ class XMLNamespaces(_object):
 
     def getIndex(self, *args):
         """
-        getIndex(self, string uri) -> int
+        getIndex(XMLNamespaces self, string uri) -> int
 
         Look up the index of an XML namespace declaration by URI.
 
@@ -44719,7 +43831,7 @@ class XMLNamespaces(_object):
 
     def containsUri(self, *args):
         """
-        containsUri(self, string uri) -> bool
+        containsUri(XMLNamespaces self, string uri) -> bool
 
         Tests whether the given uri is contained in this set of namespaces.
 
@@ -44728,7 +43840,7 @@ class XMLNamespaces(_object):
 
     def getIndexByPrefix(self, *args):
         """
-        getIndexByPrefix(self, string prefix) -> int
+        getIndexByPrefix(XMLNamespaces self, string prefix) -> int
 
         Look up the index of an XML namespace declaration by prefix.
 
@@ -44746,7 +43858,7 @@ class XMLNamespaces(_object):
 
     def getLength(self):
         """
-        getLength(self) -> int
+        getLength(XMLNamespaces self) -> int
 
         Returns the total number of URI-and-prefix pairs stored in this
         particular XMLNamespaces instance.
@@ -44758,7 +43870,7 @@ class XMLNamespaces(_object):
 
     def getNumNamespaces(self):
         """
-        getNumNamespaces(self) -> int
+        getNumNamespaces(XMLNamespaces self) -> int
 
         Returns the total number of URI-and-prefix pairs stored in this
         particular XMLNamespaces instance.
@@ -44773,8 +43885,8 @@ class XMLNamespaces(_object):
 
     def getPrefix(self, *args):
         """
-        getPrefix(self, int index) -> string
-        getPrefix(self, string uri) -> string
+        getPrefix(XMLNamespaces self, int index) -> string
+        getPrefix(XMLNamespaces self, string uri) -> string
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44819,9 +43931,9 @@ class XMLNamespaces(_object):
 
     def getURI(self, *args):
         """
-        getURI(self, int index) -> string
-        getURI(self, string prefix = "") -> string
-        getURI(self) -> string
+        getURI(XMLNamespaces self, int index) -> string
+        getURI(XMLNamespaces self, string prefix="") -> string
+        getURI(XMLNamespaces self) -> string
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -44850,7 +43962,7 @@ class XMLNamespaces(_object):
 
     def isEmpty(self):
         """
-        isEmpty(self) -> bool
+        isEmpty(XMLNamespaces self) -> bool
 
         Predicate returning True or False depending on whether this
         XMLNamespaces list is empty.
@@ -44862,7 +43974,7 @@ class XMLNamespaces(_object):
 
     def hasURI(self, *args):
         """
-        hasURI(self, string uri) -> bool
+        hasURI(XMLNamespaces self, string uri) -> bool
 
         Predicate returning True or False depending on whether an XML
         Namespace with the given URI is contained in this XMLNamespaces list.
@@ -44877,7 +43989,7 @@ class XMLNamespaces(_object):
 
     def hasPrefix(self, *args):
         """
-        hasPrefix(self, string prefix) -> bool
+        hasPrefix(XMLNamespaces self, string prefix) -> bool
 
         Predicate returning True or False depending on whether an XML
         Namespace with the given prefix is contained in this XMLNamespaces
@@ -44893,7 +44005,7 @@ class XMLNamespaces(_object):
 
     def hasNS(self, *args):
         """
-        hasNS(self, string uri, string prefix) -> bool
+        hasNS(XMLNamespaces self, string uri, string prefix) -> bool
 
         Predicate returning True or False depending on whether an XML
         Namespace with the given URI and prefix pair is contained in this
@@ -44988,23 +44100,21 @@ class XMLToken(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0, unsigned int column = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0, 
-            unsigned int column = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0) -> XMLToken
-        __init__(self, XMLTriple triple, XMLAttributes attributes) -> XMLToken
-        __init__(self, XMLTriple triple, unsigned int line = 0, unsigned int column = 0) -> XMLToken
-        __init__(self, XMLTriple triple, unsigned int line = 0) -> XMLToken
-        __init__(self, XMLTriple triple) -> XMLToken
-        __init__(self, string chars, unsigned int line = 0, unsigned int column = 0) -> XMLToken
-        __init__(self, string chars, unsigned int line = 0) -> XMLToken
-        __init__(self, string chars) -> XMLToken
-        __init__(self, XMLToken orig) -> XMLToken
+        __init__(XMLToken self) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0, 
+            unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0, unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, XMLAttributes attributes) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, unsigned int const line=0, unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, XMLTriple triple) -> XMLToken
+        __init__(XMLToken self, string chars, unsigned int const line=0, unsigned int const column=0) -> XMLToken
+        __init__(XMLToken self, string chars, unsigned int const line=0) -> XMLToken
+        __init__(XMLToken self, string chars) -> XMLToken
+        __init__(XMLToken self, XMLToken orig) -> XMLToken
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45158,7 +44268,7 @@ class XMLToken(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLToken
+        clone(XMLToken self) -> XMLToken
 
         Creates and returns a deep copy of this XMLToken object.
 
@@ -45169,7 +44279,7 @@ class XMLToken(_object):
 
     def getAttributes(self):
         """
-        getAttributes(self) -> XMLAttributes
+        getAttributes(XMLToken self) -> XMLAttributes
 
         Returns the attributes of the XML element represented by this token.
 
@@ -45181,7 +44291,7 @@ class XMLToken(_object):
 
     def setAttributes(self, *args):
         """
-        setAttributes(self, XMLAttributes attributes) -> int
+        setAttributes(XMLToken self, XMLAttributes attributes) -> int
 
         Sets the attributes on the XML element represented by this token.
 
@@ -45214,11 +44324,10 @@ class XMLToken(_object):
 
     def addAttr(self, *args):
         """
-        addAttr(self, string name, string value, string namespaceURI = "", 
-            string prefix = "") -> int
-        addAttr(self, string name, string value, string namespaceURI = "") -> int
-        addAttr(self, string name, string value) -> int
-        addAttr(self, XMLTriple triple, string value) -> int
+        addAttr(XMLToken self, string name, string value, string namespaceURI="", string prefix="") -> int
+        addAttr(XMLToken self, string name, string value, string namespaceURI="") -> int
+        addAttr(XMLToken self, string name, string value) -> int
+        addAttr(XMLToken self, XMLTriple triple, string value) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45317,10 +44426,10 @@ class XMLToken(_object):
 
     def removeAttr(self, *args):
         """
-        removeAttr(self, int n) -> int
-        removeAttr(self, string name, string uri = "") -> int
-        removeAttr(self, string name) -> int
-        removeAttr(self, XMLTriple triple) -> int
+        removeAttr(XMLToken self, int n) -> int
+        removeAttr(XMLToken self, string name, string uri="") -> int
+        removeAttr(XMLToken self, string name) -> int
+        removeAttr(XMLToken self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45360,7 +44469,7 @@ class XMLToken(_object):
 
     def clearAttributes(self):
         """
-        clearAttributes(self) -> int
+        clearAttributes(XMLToken self) -> int
 
         Removes all attributes of this XMLToken object.
 
@@ -45380,9 +44489,9 @@ class XMLToken(_object):
 
     def getAttrIndex(self, *args):
         """
-        getAttrIndex(self, string name, string uri = "") -> int
-        getAttrIndex(self, string name) -> int
-        getAttrIndex(self, XMLTriple triple) -> int
+        getAttrIndex(XMLToken self, string name, string uri="") -> int
+        getAttrIndex(XMLToken self, string name) -> int
+        getAttrIndex(XMLToken self, XMLTriple triple) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45432,7 +44541,7 @@ class XMLToken(_object):
 
     def getAttributesLength(self):
         """
-        getAttributesLength(self) -> int
+        getAttributesLength(XMLToken self) -> int
 
         Returns the number of attributes on this XMLToken object.
 
@@ -45445,7 +44554,7 @@ class XMLToken(_object):
 
     def getAttrName(self, *args):
         """
-        getAttrName(self, int index) -> string
+        getAttrName(XMLToken self, int index) -> string
 
         Returns the name of the nth attribute in this token's list of
         attributes.
@@ -45470,7 +44579,7 @@ class XMLToken(_object):
 
     def getAttrPrefix(self, *args):
         """
-        getAttrPrefix(self, int index) -> string
+        getAttrPrefix(XMLToken self, int index) -> string
 
         Returns the prefix of the nth attribute in this token's list of
         attributes.
@@ -45495,7 +44604,7 @@ class XMLToken(_object):
 
     def getAttrPrefixedName(self, *args):
         """
-        getAttrPrefixedName(self, int index) -> string
+        getAttrPrefixedName(XMLToken self, int index) -> string
 
         Returns the prefixed name of the nth attribute in this token's list of
         attributes.
@@ -45522,7 +44631,7 @@ class XMLToken(_object):
 
     def getAttrURI(self, *args):
         """
-        getAttrURI(self, int index) -> string
+        getAttrURI(XMLToken self, int index) -> string
 
         Returns the XML namespace URI of the nth attribute in this token's
         list of attributes.
@@ -45545,10 +44654,10 @@ class XMLToken(_object):
 
     def getAttrValue(self, *args):
         """
-        getAttrValue(self, int index) -> string
-        getAttrValue(self, string name, string uri = "") -> string
-        getAttrValue(self, string name) -> string
-        getAttrValue(self, XMLTriple triple) -> string
+        getAttrValue(XMLToken self, int index) -> string
+        getAttrValue(XMLToken self, string name, string uri="") -> string
+        getAttrValue(XMLToken self, string name) -> string
+        getAttrValue(XMLToken self, XMLTriple triple) -> string
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45633,10 +44742,10 @@ class XMLToken(_object):
 
     def hasAttr(self, *args):
         """
-        hasAttr(self, int index) -> bool
-        hasAttr(self, string name, string uri = "") -> bool
-        hasAttr(self, string name) -> bool
-        hasAttr(self, XMLTriple triple) -> bool
+        hasAttr(XMLToken self, int index) -> bool
+        hasAttr(XMLToken self, string name, string uri="") -> bool
+        hasAttr(XMLToken self, string name) -> bool
+        hasAttr(XMLToken self, XMLTriple triple) -> bool
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45702,7 +44811,7 @@ class XMLToken(_object):
 
     def isAttributesEmpty(self):
         """
-        isAttributesEmpty(self) -> bool
+        isAttributesEmpty(XMLToken self) -> bool
 
         Returns True if this token has no attributes.
 
@@ -45714,7 +44823,7 @@ class XMLToken(_object):
 
     def getNamespaces(self):
         """
-        getNamespaces(self) -> XMLNamespaces
+        getNamespaces(XMLToken self) -> XMLNamespaces
 
         Returns the XML namespaces declared for this token.
 
@@ -45725,7 +44834,7 @@ class XMLToken(_object):
 
     def setNamespaces(self, *args):
         """
-        setNamespaces(self, XMLNamespaces namespaces) -> int
+        setNamespaces(XMLToken self, XMLNamespaces namespaces) -> int
 
         Sets the XML namespaces on this XML element.
 
@@ -45757,8 +44866,8 @@ class XMLToken(_object):
 
     def addNamespace(self, *args):
         """
-        addNamespace(self, string uri, string prefix = "") -> int
-        addNamespace(self, string uri) -> int
+        addNamespace(XMLToken self, string uri, string prefix="") -> int
+        addNamespace(XMLToken self, string uri) -> int
 
         Appends an XML namespace declaration to this token.
 
@@ -45799,8 +44908,8 @@ class XMLToken(_object):
 
     def removeNamespace(self, *args):
         """
-        removeNamespace(self, int index) -> int
-        removeNamespace(self, string prefix) -> int
+        removeNamespace(XMLToken self, int index) -> int
+        removeNamespace(XMLToken self, string prefix) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45839,7 +44948,7 @@ class XMLToken(_object):
 
     def clearNamespaces(self):
         """
-        clearNamespaces(self) -> int
+        clearNamespaces(XMLToken self) -> int
 
         Removes all XML namespace declarations from this token.
 
@@ -45861,7 +44970,7 @@ class XMLToken(_object):
 
     def getNamespaceIndex(self, *args):
         """
-        getNamespaceIndex(self, string uri) -> int
+        getNamespaceIndex(XMLToken self, string uri) -> int
 
         Returns the index of an XML namespace declaration based on its URI.
 
@@ -45876,7 +44985,7 @@ class XMLToken(_object):
 
     def getNamespaceIndexByPrefix(self, *args):
         """
-        getNamespaceIndexByPrefix(self, string prefix) -> int
+        getNamespaceIndexByPrefix(XMLToken self, string prefix) -> int
 
         Returns the index of an XML namespace declaration based on its prefix.
 
@@ -45891,7 +45000,7 @@ class XMLToken(_object):
 
     def getNamespacesLength(self):
         """
-        getNamespacesLength(self) -> int
+        getNamespacesLength(XMLToken self) -> int
 
         Returns the number of XML namespaces declared on this token.
 
@@ -45903,8 +45012,8 @@ class XMLToken(_object):
 
     def getNamespacePrefix(self, *args):
         """
-        getNamespacePrefix(self, int index) -> string
-        getNamespacePrefix(self, string uri) -> string
+        getNamespacePrefix(XMLToken self, int index) -> string
+        getNamespacePrefix(XMLToken self, string uri) -> string
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -45953,9 +45062,9 @@ class XMLToken(_object):
 
     def getNamespaceURI(self, *args):
         """
-        getNamespaceURI(self, int index) -> string
-        getNamespaceURI(self, string prefix = "") -> string
-        getNamespaceURI(self) -> string
+        getNamespaceURI(XMLToken self, int index) -> string
+        getNamespaceURI(XMLToken self, string prefix="") -> string
+        getNamespaceURI(XMLToken self) -> string
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -46014,7 +45123,7 @@ class XMLToken(_object):
 
     def isNamespacesEmpty(self):
         """
-        isNamespacesEmpty(self) -> bool
+        isNamespacesEmpty(XMLToken self) -> bool
 
         Returns True if there are no namespaces declared on this token.
 
@@ -46026,7 +45135,7 @@ class XMLToken(_object):
 
     def hasNamespaceURI(self, *args):
         """
-        hasNamespaceURI(self, string uri) -> bool
+        hasNamespaceURI(XMLToken self, string uri) -> bool
 
         Returns True if this token has an XML namespace with a given URI.
 
@@ -46040,7 +45149,7 @@ class XMLToken(_object):
 
     def hasNamespacePrefix(self, *args):
         """
-        hasNamespacePrefix(self, string prefix) -> bool
+        hasNamespacePrefix(XMLToken self, string prefix) -> bool
 
         Returns True if this token has an XML namespace with a given prefix.
 
@@ -46054,7 +45163,7 @@ class XMLToken(_object):
 
     def hasNamespaceNS(self, *args):
         """
-        hasNamespaceNS(self, string uri, string prefix) -> bool
+        hasNamespaceNS(XMLToken self, string uri, string prefix) -> bool
 
         Returns True if this token has an XML namespace with a given prefix
         and URI combination.
@@ -46071,7 +45180,7 @@ class XMLToken(_object):
 
     def setTriple(self, *args):
         """
-        setTriple(self, XMLTriple triple) -> int
+        setTriple(XMLToken self, XMLTriple triple) -> int
 
         Sets the name, namespace prefix and namespace URI of this token.
 
@@ -46099,7 +45208,7 @@ class XMLToken(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(XMLToken self) -> string
 
         Returns the (unqualified) name of token.
 
@@ -46110,7 +45219,7 @@ class XMLToken(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(XMLToken self) -> string
 
         Returns the XML namespace prefix of token.
 
@@ -46126,7 +45235,7 @@ class XMLToken(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(XMLToken self) -> string
 
         Returns the XML namespace URI of token.
 
@@ -46137,7 +45246,7 @@ class XMLToken(_object):
 
     def getCharacters(self):
         """
-        getCharacters(self) -> string
+        getCharacters(XMLToken self) -> string
 
         Returns the character text of token.
 
@@ -46152,7 +45261,7 @@ class XMLToken(_object):
 
     def append(self, *args):
         """
-        append(self, string chars) -> int
+        append(XMLToken self, string chars) -> int
 
         Appends characters to the text content of token.
 
@@ -46177,7 +45286,7 @@ class XMLToken(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(XMLToken self) -> unsigned int
 
         Returns the column number at which this token occurs in the input.
 
@@ -46188,7 +45297,7 @@ class XMLToken(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(XMLToken self) -> unsigned int
 
         Returns the line number at which this token occurs in the input.
 
@@ -46199,7 +45308,7 @@ class XMLToken(_object):
 
     def isElement(self):
         """
-        isElement(self) -> bool
+        isElement(XMLToken self) -> bool
 
         Returns True if this token represents an XML element.
 
@@ -46218,7 +45327,7 @@ class XMLToken(_object):
 
     def isEnd(self):
         """
-        isEnd(self) -> bool
+        isEnd(XMLToken self) -> bool
 
         Returns True if this token represents an XML end element.
 
@@ -46232,7 +45341,7 @@ class XMLToken(_object):
 
     def isEndFor(self, *args):
         """
-        isEndFor(self, XMLToken element) -> bool
+        isEndFor(XMLToken self, XMLToken element) -> bool
 
         Returns True if this token represents an XML end element for a
         particular start element.
@@ -46251,7 +45360,7 @@ class XMLToken(_object):
 
     def isEOF(self):
         """
-        isEOF(self) -> bool
+        isEOF(XMLToken self) -> bool
 
         Returns True if this token is an end of file marker.
 
@@ -46265,7 +45374,7 @@ class XMLToken(_object):
 
     def isStart(self):
         """
-        isStart(self) -> bool
+        isStart(XMLToken self) -> bool
 
         Returns True if this token represents an XML start element.
 
@@ -46279,7 +45388,7 @@ class XMLToken(_object):
 
     def isText(self):
         """
-        isText(self) -> bool
+        isText(XMLToken self) -> bool
 
         Returns True if this token represents an XML text element.
 
@@ -46292,7 +45401,7 @@ class XMLToken(_object):
 
     def setEnd(self):
         """
-        setEnd(self) -> int
+        setEnd(XMLToken self) -> int
 
         Declares that this token represents an XML element end tag.
 
@@ -46310,7 +45419,7 @@ class XMLToken(_object):
 
     def setEOF(self):
         """
-        setEOF(self) -> int
+        setEOF(XMLToken self) -> int
 
         Declares that this token is an end-of-file/input marker.
 
@@ -46328,7 +45437,7 @@ class XMLToken(_object):
 
     def unsetEnd(self):
         """
-        unsetEnd(self) -> int
+        unsetEnd(XMLToken self) -> int
 
         Declares that this token no longer represents an XML start/end
         element.
@@ -46345,7 +45454,7 @@ class XMLToken(_object):
 
     def toString(self):
         """
-        toString(self) -> string
+        toString(XMLToken self) -> string
 
         Prints a string representation of the underlying token stream.
 
@@ -46437,25 +45546,23 @@ class XMLNode(XMLToken):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLNode
-        __init__(self, XMLToken token) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0, unsigned int column = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, 
-            unsigned int line = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0, 
-            unsigned int column = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes, unsigned int line = 0) -> XMLNode
-        __init__(self, XMLTriple triple, XMLAttributes attributes) -> XMLNode
-        __init__(self, XMLTriple triple, unsigned int line = 0, unsigned int column = 0) -> XMLNode
-        __init__(self, XMLTriple triple, unsigned int line = 0) -> XMLNode
-        __init__(self, XMLTriple triple) -> XMLNode
-        __init__(self, string chars, unsigned int line = 0, unsigned int column = 0) -> XMLNode
-        __init__(self, string chars, unsigned int line = 0) -> XMLNode
-        __init__(self, string chars) -> XMLNode
-        __init__(self, XMLInputStream stream) -> XMLNode
-        __init__(self, XMLNode orig) -> XMLNode
+        __init__(XMLNode self) -> XMLNode
+        __init__(XMLNode self, XMLToken token) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0, 
+            unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0, unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, XMLAttributes attributes) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, unsigned int const line=0, unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, XMLTriple triple) -> XMLNode
+        __init__(XMLNode self, string chars, unsigned int const line=0, unsigned int const column=0) -> XMLNode
+        __init__(XMLNode self, string chars, unsigned int const line=0) -> XMLNode
+        __init__(XMLNode self, string chars) -> XMLNode
+        __init__(XMLNode self, XMLInputStream stream) -> XMLNode
+        __init__(XMLNode self, XMLNode orig) -> XMLNode
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -46590,7 +45697,7 @@ class XMLNode(XMLToken):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLNode
+        clone(XMLNode self) -> XMLNode
 
         Creates and returns a deep copy of this XMLNode object.
 
@@ -46601,7 +45708,7 @@ class XMLNode(XMLToken):
 
     def addChild(self, *args):
         """
-        addChild(self, XMLNode node) -> int
+        addChild(XMLNode self, XMLNode node) -> int
 
         Adds a copy of 'node' as a child of this XMLNode.
 
@@ -46627,7 +45734,7 @@ class XMLNode(XMLToken):
 
     def insertChild(self, *args):
         """
-        insertChild(self, unsigned int n, XMLNode node) -> XMLNode
+        insertChild(XMLNode self, unsigned int n, XMLNode node) -> XMLNode
 
         Inserts a copy of the given node as the nth child of this XMLNode.
 
@@ -46645,7 +45752,7 @@ class XMLNode(XMLToken):
 
     def removeChild(self, *args):
         """
-        removeChild(self, unsigned int n) -> XMLNode
+        removeChild(XMLNode self, unsigned int n) -> XMLNode
 
         Removes the nth child of this XMLNode and returns the removed node.
 
@@ -46669,7 +45776,7 @@ class XMLNode(XMLToken):
 
     def removeChildren(self):
         """
-        removeChildren(self) -> int
+        removeChildren(XMLNode self) -> int
 
         Removes all children from this node. Returns integer value indicating
         success/failure of the function.   The possible values returned by
@@ -46682,10 +45789,10 @@ class XMLNode(XMLToken):
 
     def getChild(self, *args):
         """
-        getChild(self, unsigned int n) -> XMLNode
-        getChild(self, unsigned int n) -> XMLNode
-        getChild(self, string name) -> XMLNode
-        getChild(self, string name) -> XMLNode
+        getChild(XMLNode self, unsigned int n) -> XMLNode
+        getChild(XMLNode self, unsigned int n) -> XMLNode
+        getChild(XMLNode self, string name) -> XMLNode
+        getChild(XMLNode self, string name) -> XMLNode
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -46723,7 +45830,7 @@ class XMLNode(XMLToken):
 
     def getIndex(self, *args):
         """
-        getIndex(self, string name) -> int
+        getIndex(XMLNode self, string name) -> int
 
         Return the index of the first child of this XMLNode with the given
         name.
@@ -46739,7 +45846,7 @@ class XMLNode(XMLToken):
 
     def hasChild(self, *args):
         """
-        hasChild(self, string name) -> bool
+        hasChild(XMLNode self, string name) -> bool
 
         Return a boolean indicating whether this XMLNode has a child with the
         given name.
@@ -46754,8 +45861,8 @@ class XMLNode(XMLToken):
 
     def equals(self, *args):
         """
-        equals(self, XMLNode other, bool ignoreURI = False) -> bool
-        equals(self, XMLNode other) -> bool
+        equals(XMLNode self, XMLNode other, bool ignoreURI=False) -> bool
+        equals(XMLNode self, XMLNode other) -> bool
 
         Compare this XMLNode against another XMLNode returning true if both
         nodes represent the same XML tree, or false otherwise.
@@ -46773,7 +45880,7 @@ class XMLNode(XMLToken):
 
     def getNumChildren(self):
         """
-        getNumChildren(self) -> unsigned int
+        getNumChildren(XMLNode self) -> unsigned int
 
         Returns the number of children for this XMLNode.
 
@@ -46784,7 +45891,7 @@ class XMLNode(XMLToken):
 
     def toXMLString(self):
         """
-        toXMLString(self) -> string
+        toXMLString(XMLNode self) -> string
 
         Returns a string representation of this XMLNode.
 
@@ -46810,7 +45917,7 @@ class XMLNode(XMLToken):
     __swig_getmethods__["convertXMLNodeToString"] = lambda x: convertXMLNodeToString
     def convertStringToXMLNode(*args):
         """
-        convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns = None) -> XMLNode
+        convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns=None) -> XMLNode
         convertStringToXMLNode(string xmlstr) -> XMLNode
 
         Returns an XMLNode which is derived from a string containing XML
@@ -46872,7 +45979,7 @@ def XMLNode_convertXMLNodeToString(*args):
 
 def XMLNode_convertStringToXMLNode(*args):
   """
-    convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns = None) -> XMLNode
+    convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns=None) -> XMLNode
     XMLNode_convertStringToXMLNode(string xmlstr) -> XMLNode
 
     Returns an XMLNode which is derived from a string containing XML
@@ -46960,11 +46067,11 @@ class XMLTriple(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLTriple
-        __init__(self, string name, string uri, string prefix) -> XMLTriple
-        __init__(self, string triplet, char sepchar = ' ') -> XMLTriple
-        __init__(self, string triplet) -> XMLTriple
-        __init__(self, XMLTriple orig) -> XMLTriple
+        __init__(XMLTriple self) -> XMLTriple
+        __init__(XMLTriple self, string name, string uri, string prefix) -> XMLTriple
+        __init__(XMLTriple self, string triplet, char const sepchar=' ') -> XMLTriple
+        __init__(XMLTriple self, string triplet) -> XMLTriple
+        __init__(XMLTriple self, XMLTriple orig) -> XMLTriple
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -47035,7 +46142,7 @@ class XMLTriple(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> XMLTriple
+        clone(XMLTriple self) -> XMLTriple
 
         Creates and returns a deep copy of this XMLTriple object.
 
@@ -47046,7 +46153,7 @@ class XMLTriple(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(XMLTriple self) -> string
 
         Returns the name portion of this XMLTriple object.
 
@@ -47057,7 +46164,7 @@ class XMLTriple(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(XMLTriple self) -> string
 
         Returns the prefix portion of this XMLTriple object.
 
@@ -47068,7 +46175,7 @@ class XMLTriple(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(XMLTriple self) -> string
 
         Returns the URI portion of this XMLTriple object.
 
@@ -47079,7 +46186,7 @@ class XMLTriple(_object):
 
     def getPrefixedName(self):
         """
-        getPrefixedName(self) -> string
+        getPrefixedName(XMLTriple self) -> string
 
         Returns the prefixed name from this XMLTriple.
 
@@ -47093,7 +46200,7 @@ class XMLTriple(_object):
 
     def isEmpty(self):
         """
-        isEmpty(self) -> bool
+        isEmpty(XMLTriple self) -> bool
 
         Returns True if this XMLTriple object is empty.
 
@@ -47199,13 +46306,12 @@ class XMLOutputStream(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, ostream stream, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "", string programVersion = "") -> XMLOutputStream
-        __init__(self, ostream stream, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "") -> XMLOutputStream
-        __init__(self, ostream stream, string encoding = "UTF-8", bool writeXMLDecl = True) -> XMLOutputStream
-        __init__(self, ostream stream, string encoding = "UTF-8") -> XMLOutputStream
-        __init__(self, ostream stream) -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8", bool writeXMLDecl=True, string programName="", 
+            string programVersion="") -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8", bool writeXMLDecl=True, string programName="") -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8", bool writeXMLDecl=True) -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream, string encoding="UTF-8") -> XMLOutputStream
+        __init__(XMLOutputStream self, ostream stream) -> XMLOutputStream
 
         Creates a new XMLOutputStream that wraps the given @p stream.
 
@@ -47257,9 +46363,9 @@ class XMLOutputStream(_object):
     __del__ = lambda self : None;
     def endElement(self, *args):
         """
-        endElement(self, string name, string prefix = "")
-        endElement(self, string name)
-        endElement(self, XMLTriple triple)
+        endElement(XMLOutputStream self, string name, string prefix="")
+        endElement(XMLOutputStream self, string name)
+        endElement(XMLOutputStream self, XMLTriple triple)
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -47302,7 +46408,7 @@ class XMLOutputStream(_object):
 
     def setAutoIndent(self, *args):
         """
-        setAutoIndent(self, bool indent)
+        setAutoIndent(XMLOutputStream self, bool indent)
 
         Turns automatic indentation on or off for this XMLOutputStream.
 
@@ -47313,9 +46419,9 @@ class XMLOutputStream(_object):
 
     def startElement(self, *args):
         """
-        startElement(self, string name, string prefix = "")
-        startElement(self, string name)
-        startElement(self, XMLTriple triple)
+        startElement(XMLOutputStream self, string name, string prefix="")
+        startElement(XMLOutputStream self, string name)
+        startElement(XMLOutputStream self, XMLTriple triple)
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -47358,9 +46464,9 @@ class XMLOutputStream(_object):
 
     def startEndElement(self, *args):
         """
-        startEndElement(self, string name, string prefix = "")
-        startEndElement(self, string name)
-        startEndElement(self, XMLTriple triple)
+        startEndElement(XMLOutputStream self, string name, string prefix="")
+        startEndElement(XMLOutputStream self, string name)
+        startEndElement(XMLOutputStream self, XMLTriple triple)
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -47404,25 +46510,25 @@ class XMLOutputStream(_object):
 
     def writeAttribute(self, *args):
         """
-        writeAttribute(self, string name, string value)
-        writeAttribute(self, string name, string prefix, string value)
-        writeAttribute(self, XMLTriple triple, string value)
-        writeAttribute(self, string name, char value)
-        writeAttribute(self, string name, string prefix, char value)
-        writeAttribute(self, XMLTriple triple, char value)
-        writeAttribute(self, string name, bool value)
-        writeAttribute(self, string name, string prefix, bool value)
-        writeAttribute(self, XMLTriple triple, bool value)
-        writeAttribute(self, string name, double value)
-        writeAttribute(self, string name, string prefix, double value)
-        writeAttribute(self, XMLTriple triple, double value)
-        writeAttribute(self, string name, long value)
-        writeAttribute(self, string name, string prefix, long value)
-        writeAttribute(self, XMLTriple triple, long value)
-        writeAttribute(self, string name, int value)
-        writeAttribute(self, string name, string prefix, int value)
-        writeAttribute(self, XMLTriple triple, int value)
-        writeAttribute(self, string name, string prefix, unsigned int value)
+        writeAttribute(XMLOutputStream self, string name, string value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, string value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, string value)
+        writeAttribute(XMLOutputStream self, string name, char const * value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, char const * value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, char const * value)
+        writeAttribute(XMLOutputStream self, string name, bool const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, bool const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, bool const & value)
+        writeAttribute(XMLOutputStream self, string name, double const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, double const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, double const & value)
+        writeAttribute(XMLOutputStream self, string name, long const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, long const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, long const & value)
+        writeAttribute(XMLOutputStream self, string name, int const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, int const & value)
+        writeAttribute(XMLOutputStream self, XMLTriple triple, int const & value)
+        writeAttribute(XMLOutputStream self, string name, string prefix, unsigned int const & value)
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -47701,7 +46807,7 @@ class XMLOutputStream(_object):
 
     def writeXMLDecl(self):
         """
-        writeXMLDecl(self)
+        writeXMLDecl(XMLOutputStream self)
 
         Writes a standard XML declaration to this output stream.
 
@@ -47718,7 +46824,8 @@ class XMLOutputStream(_object):
 
     def writeComment(self, *args):
         """
-        writeComment(self, string programName, string programVersion)
+        writeComment(XMLOutputStream self, string programName, string programVersion, bool writeTimestamp=True)
+        writeComment(XMLOutputStream self, string programName, string programVersion)
 
         Writes an XML comment with the name and version of this program.
 
@@ -47736,12 +46843,15 @@ class XMLOutputStream(_object):
         Parameter 'programVersion' is an optional version identification
         string to write as a comment in the output stream.
 
+        Parameter 'writeTimestamp' is an optional flag indicating that a
+        timestamp should be written
+
         """
         return _libsbml.XMLOutputStream_writeComment(self, *args)
 
     def downIndent(self):
         """
-        downIndent(self)
+        downIndent(XMLOutputStream self)
 
         Decreases the indentation level for this XMLOutputStream.
 
@@ -47758,7 +46868,7 @@ class XMLOutputStream(_object):
 
     def upIndent(self):
         """
-        upIndent(self)
+        upIndent(XMLOutputStream self)
 
         Increases the indentation level for this XMLOutputStream.
 
@@ -47775,7 +46885,7 @@ class XMLOutputStream(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(XMLOutputStream self) -> SBMLNamespaces
 
         Returns the SBMLNamespaces object attached to this output stream.
 
@@ -47786,7 +46896,7 @@ class XMLOutputStream(_object):
 
     def setSBMLNamespaces(self, *args):
         """
-        setSBMLNamespaces(self, SBMLNamespaces sbmlns)
+        setSBMLNamespaces(XMLOutputStream self, SBMLNamespaces sbmlns)
 
         Sets the SBMLNamespaces object associated with this output stream.
 
@@ -47795,10 +46905,111 @@ class XMLOutputStream(_object):
         """
         return _libsbml.XMLOutputStream_setSBMLNamespaces(self, *args)
 
+    def getWriteComment():
+        """
+        getWriteComment() -> bool
+
+        Returns a boolean, whether the output stream will write an XML comment
+        at the top of the file. (Enabled by default)
+
+        """
+        return _libsbml.XMLOutputStream_getWriteComment()
+
+    if _newclass:getWriteComment = staticmethod(getWriteComment)
+    __swig_getmethods__["getWriteComment"] = lambda x: getWriteComment
+    def setWriteComment(*args):
+        """
+        setWriteComment(bool writeComment)
+
+        sets a flag, whether the output stream will write an XML comment at
+        the top of the file. (Enabled by default)
+
+        Parameter 'writeComment' is the flag
+
+        """
+        return _libsbml.XMLOutputStream_setWriteComment(*args)
+
+    if _newclass:setWriteComment = staticmethod(setWriteComment)
+    __swig_getmethods__["setWriteComment"] = lambda x: setWriteComment
+    def getWriteTimestamp():
+        """
+        getWriteTimestamp() -> bool
+
+        Returns a boolean, whether the output stream will write an XML comment
+        with a timestamp at the top of the file. (Enabled by default)
+
+        """
+        return _libsbml.XMLOutputStream_getWriteTimestamp()
+
+    if _newclass:getWriteTimestamp = staticmethod(getWriteTimestamp)
+    __swig_getmethods__["getWriteTimestamp"] = lambda x: getWriteTimestamp
+    def setWriteTimestamp(*args):
+        """
+        setWriteTimestamp(bool writeTimestamp)
+
+        sets a flag, whether the output stream will write an XML comment with
+        a timestamp at the top of the file. (Enabled by default)
+
+        Parameter 'writeTimestamp' is the flag
+
+        """
+        return _libsbml.XMLOutputStream_setWriteTimestamp(*args)
+
+    if _newclass:setWriteTimestamp = staticmethod(setWriteTimestamp)
+    __swig_getmethods__["setWriteTimestamp"] = lambda x: setWriteTimestamp
+    def getLibraryName():
+        """
+        getLibraryName() -> string
+
+        Returns the name of the library to be used in comments ('libSBML' by
+        default)
+
+        """
+        return _libsbml.XMLOutputStream_getLibraryName()
+
+    if _newclass:getLibraryName = staticmethod(getLibraryName)
+    __swig_getmethods__["getLibraryName"] = lambda x: getLibraryName
+    def setLibraryName(*args):
+        """
+        setLibraryName(string libraryName)
+
+        sets the name of the library writing the XML Parameter 'libraryName'
+        is the name of the library to be used in comments
+
+        """
+        return _libsbml.XMLOutputStream_setLibraryName(*args)
+
+    if _newclass:setLibraryName = staticmethod(setLibraryName)
+    __swig_getmethods__["setLibraryName"] = lambda x: setLibraryName
+    def getLibraryVersion():
+        """
+        getLibraryVersion() -> string
+
+        Returns a string representing the version of the library writing the
+        output. This is the value of getLibSBMLDottedVersion() by default.
+
+        """
+        return _libsbml.XMLOutputStream_getLibraryVersion()
+
+    if _newclass:getLibraryVersion = staticmethod(getLibraryVersion)
+    __swig_getmethods__["getLibraryVersion"] = lambda x: getLibraryVersion
+    def setLibraryVersion(*args):
+        """
+        setLibraryVersion(string libraryVersion)
+
+        sets the name of the library writing the output
+
+        Parameter 'libraryVersion' is the version information as string
+
+        """
+        return _libsbml.XMLOutputStream_setLibraryVersion(*args)
+
+    if _newclass:setLibraryVersion = staticmethod(setLibraryVersion)
+    __swig_getmethods__["setLibraryVersion"] = lambda x: setLibraryVersion
     def writeAttributeBool(self, *args):
         """
-        writeAttributeBool(self, string name, bool value)
-        writeAttributeBool(self, XMLTriple name, bool value)
+        writeAttributeBool(XMLOutputStream self, string name, bool const & value)
+        writeAttributeBool(XMLOutputStream self, XMLTriple name, bool const & value)
 
         @internal
         """
@@ -47821,6 +47032,91 @@ class XMLOutputStream(_object):
 XMLOutputStream_swigregister = _libsbml.XMLOutputStream_swigregister
 XMLOutputStream_swigregister(XMLOutputStream)
 
+def XMLOutputStream_getWriteComment():
+  """
+    XMLOutputStream_getWriteComment() -> bool
+
+    Returns a boolean, whether the output stream will write an XML comment
+    at the top of the file. (Enabled by default)
+
+    """
+  return _libsbml.XMLOutputStream_getWriteComment()
+
+def XMLOutputStream_setWriteComment(*args):
+  """
+    XMLOutputStream_setWriteComment(bool writeComment)
+
+    sets a flag, whether the output stream will write an XML comment at
+    the top of the file. (Enabled by default)
+
+    Parameter 'writeComment' is the flag
+
+    """
+  return _libsbml.XMLOutputStream_setWriteComment(*args)
+
+def XMLOutputStream_getWriteTimestamp():
+  """
+    XMLOutputStream_getWriteTimestamp() -> bool
+
+    Returns a boolean, whether the output stream will write an XML comment
+    with a timestamp at the top of the file. (Enabled by default)
+
+    """
+  return _libsbml.XMLOutputStream_getWriteTimestamp()
+
+def XMLOutputStream_setWriteTimestamp(*args):
+  """
+    XMLOutputStream_setWriteTimestamp(bool writeTimestamp)
+
+    sets a flag, whether the output stream will write an XML comment with
+    a timestamp at the top of the file. (Enabled by default)
+
+    Parameter 'writeTimestamp' is the flag
+
+    """
+  return _libsbml.XMLOutputStream_setWriteTimestamp(*args)
+
+def XMLOutputStream_getLibraryName():
+  """
+    XMLOutputStream_getLibraryName() -> string
+
+    Returns the name of the library to be used in comments ('libSBML' by
+    default)
+
+    """
+  return _libsbml.XMLOutputStream_getLibraryName()
+
+def XMLOutputStream_setLibraryName(*args):
+  """
+    XMLOutputStream_setLibraryName(string libraryName)
+
+    sets the name of the library writing the XML Parameter 'libraryName'
+    is the name of the library to be used in comments
+
+    """
+  return _libsbml.XMLOutputStream_setLibraryName(*args)
+
+def XMLOutputStream_getLibraryVersion():
+  """
+    XMLOutputStream_getLibraryVersion() -> string
+
+    Returns a string representing the version of the library writing the
+    output. This is the value of getLibSBMLDottedVersion() by default.
+
+    """
+  return _libsbml.XMLOutputStream_getLibraryVersion()
+
+def XMLOutputStream_setLibraryVersion(*args):
+  """
+    XMLOutputStream_setLibraryVersion(string libraryVersion)
+
+    sets the name of the library writing the output
+
+    Parameter 'libraryVersion' is the version information as string
+
+    """
+  return _libsbml.XMLOutputStream_setLibraryVersion(*args)
+
 class XMLOwningOutputStringStream(_object):
     """Proxy of C++ XMLOwningOutputStringStream class"""
     __swig_setmethods__ = {}
@@ -47828,16 +47124,13 @@ class XMLOwningOutputStringStream(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, XMLOwningOutputStringStream, name)
     __repr__ = _swig_repr
-    def __init__(self, encoding = "UTF-8", writeXMLDecl = True, programName = "", 
-    programVersion = ""): 
+    def __init__(self, encoding="UTF-8", writeXMLDecl=True, programName="", programVersion=""): 
         """
-        __init__(self, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "", string programVersion = "") -> XMLOwningOutputStringStream
-        __init__(self, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "") -> XMLOwningOutputStringStream
-        __init__(self, string encoding = "UTF-8", bool writeXMLDecl = True) -> XMLOwningOutputStringStream
-        __init__(self, string encoding = "UTF-8") -> XMLOwningOutputStringStream
-        __init__(self) -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8", bool writeXMLDecl=True, string programName="", string programVersion="") -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8", bool writeXMLDecl=True, string programName="") -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8", bool writeXMLDecl=True) -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self, string encoding="UTF-8") -> XMLOwningOutputStringStream
+        __init__(XMLOwningOutputStringStream self) -> XMLOwningOutputStringStream
 
         Internal implementation method.
 
@@ -47859,13 +47152,12 @@ class XMLOwningOutputFileStream(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string filename, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "", string programVersion = "") -> XMLOwningOutputFileStream
-        __init__(self, string filename, string encoding = "UTF-8", bool writeXMLDecl = True, 
-            string programName = "") -> XMLOwningOutputFileStream
-        __init__(self, string filename, string encoding = "UTF-8", bool writeXMLDecl = True) -> XMLOwningOutputFileStream
-        __init__(self, string filename, string encoding = "UTF-8") -> XMLOwningOutputFileStream
-        __init__(self, string filename) -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8", bool writeXMLDecl=True, string programName="", 
+            string programVersion="") -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8", bool writeXMLDecl=True, string programName="") -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8", bool writeXMLDecl=True) -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename, string encoding="UTF-8") -> XMLOwningOutputFileStream
+        __init__(XMLOwningOutputFileStream self, string filename) -> XMLOwningOutputFileStream
 
         Internal implementation method.
 
@@ -47930,11 +47222,10 @@ class XMLInputStream(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, char content, bool isFile = True, string library = "", 
-            XMLErrorLog errorLog = None) -> XMLInputStream
-        __init__(self, char content, bool isFile = True, string library = "") -> XMLInputStream
-        __init__(self, char content, bool isFile = True) -> XMLInputStream
-        __init__(self, char content) -> XMLInputStream
+        __init__(XMLInputStream self, char const * content, bool isFile=True, string library="", XMLErrorLog errorLog=None) -> XMLInputStream
+        __init__(XMLInputStream self, char const * content, bool isFile=True, string library="") -> XMLInputStream
+        __init__(XMLInputStream self, char const * content, bool isFile=True) -> XMLInputStream
+        __init__(XMLInputStream self, char const * content) -> XMLInputStream
 
         Creates a new XMLInputStream.
 
@@ -47959,7 +47250,7 @@ class XMLInputStream(_object):
     __del__ = lambda self : None;
     def getEncoding(self):
         """
-        getEncoding(self) -> string
+        getEncoding(XMLInputStream self) -> string
 
         Returns the encoding of the XML stream.
 
@@ -47981,7 +47272,7 @@ class XMLInputStream(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> string
+        getVersion(XMLInputStream self) -> string
 
         Returns the version of the XML stream.
 
@@ -48003,7 +47294,7 @@ class XMLInputStream(_object):
 
     def getErrorLog(self):
         """
-        getErrorLog(self) -> XMLErrorLog
+        getErrorLog(XMLInputStream self) -> XMLErrorLog
 
         Returns the XMLErrorLog used to log parsing problems.
 
@@ -48015,7 +47306,7 @@ class XMLInputStream(_object):
 
     def isEOF(self):
         """
-        isEOF(self) -> bool
+        isEOF(XMLInputStream self) -> bool
 
         Returns True if end of file (stream) has been reached.
 
@@ -48027,7 +47318,7 @@ class XMLInputStream(_object):
 
     def isError(self):
         """
-        isError(self) -> bool
+        isError(XMLInputStream self) -> bool
 
         Returns True if a fatal error occurred while reading from this stream.
 
@@ -48038,7 +47329,7 @@ class XMLInputStream(_object):
 
     def isGood(self):
         """
-        isGood(self) -> bool
+        isGood(XMLInputStream self) -> bool
 
         Returns True if the stream is in a good state.
 
@@ -48052,7 +47343,7 @@ class XMLInputStream(_object):
 
     def next(self):
         """
-        next(self) -> XMLToken
+        next(XMLInputStream self) -> XMLToken
 
         Returns the next token on this XML input stream.
 
@@ -48068,7 +47359,7 @@ class XMLInputStream(_object):
 
     def peek(self):
         """
-        peek(self) -> XMLToken
+        peek(XMLInputStream self) -> XMLToken
 
         Returns the next token without consuming it.
 
@@ -48084,7 +47375,7 @@ class XMLInputStream(_object):
 
     def skipPastEnd(self, *args):
         """
-        skipPastEnd(self, XMLToken element)
+        skipPastEnd(XMLInputStream self, XMLToken element)
 
         Consume zero or more tokens up to and including the corresponding end
         element or EOF.
@@ -48097,7 +47388,7 @@ class XMLInputStream(_object):
 
     def skipText(self):
         """
-        skipText(self)
+        skipText(XMLInputStream self)
 
         Consume zero or more tokens up to but not including the next XML
         element or EOF.
@@ -48107,7 +47398,7 @@ class XMLInputStream(_object):
 
     def setErrorLog(self, *args):
         """
-        setErrorLog(self, XMLErrorLog log) -> int
+        setErrorLog(XMLInputStream self, XMLErrorLog log) -> int
 
         Sets the XMLErrorLog this stream will use to log errors.
 
@@ -48123,7 +47414,7 @@ class XMLInputStream(_object):
 
     def toString(self):
         """
-        toString(self) -> string
+        toString(XMLInputStream self) -> string
 
         Prints a string representation of the underlying token stream.
 
@@ -48138,7 +47429,7 @@ class XMLInputStream(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(XMLInputStream self) -> SBMLNamespaces
 
         Returns the SBMLNamespaces object attached to this XMLInputStream.
 
@@ -48149,7 +47440,7 @@ class XMLInputStream(_object):
 
     def setSBMLNamespaces(self, *args):
         """
-        setSBMLNamespaces(self, SBMLNamespaces sbmlns)
+        setSBMLNamespaces(XMLInputStream self, SBMLNamespaces sbmlns)
 
         Sets the SBML namespaces associated with this XML input stream.
 
@@ -48161,10 +47452,10 @@ class XMLInputStream(_object):
         """
         return _libsbml.XMLInputStream_setSBMLNamespaces(self, *args)
 
-    def determineNumberChildren(self, elementName = ""):
+    def determineNumberChildren(self, elementName=""):
         """
-        determineNumberChildren(self, string elementName = "") -> unsigned int
-        determineNumberChildren(self) -> unsigned int
+        determineNumberChildren(XMLInputStream self, string elementName="") -> unsigned int
+        determineNumberChildren(XMLInputStream self) -> unsigned int
 
         Returns the number of child tokens of the given element in this
         stream.
@@ -48207,7 +47498,7 @@ class XMLInputStream(_object):
 
     def determineNumSpecificChildren(self, *args):
         """
-        determineNumSpecificChildren(self, string childName, string container) -> unsigned int
+        determineNumSpecificChildren(XMLInputStream self, string childName, string container) -> unsigned int
 
         Returns the number of child tokens of the specified type within a
         given container element.
@@ -48238,7 +47529,7 @@ class XMLInputStream(_object):
 
     def containsChild(self, *args):
         """
-        containsChild(self, string childName, string container) -> bool
+        containsChild(XMLInputStream self, string childName, string container) -> bool
 
         Predicate returning True if a child token of the specified type occurs
         within a given container element.
@@ -48478,18 +47769,16 @@ class XMLError(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_FATAL, 
-            unsigned int category = LIBSBML_CAT_INTERNAL) -> XMLError
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_FATAL) -> XMLError
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0, 
-            unsigned int column = 0) -> XMLError
-        __init__(self, int errorId = 0, string details = "", unsigned int line = 0) -> XMLError
-        __init__(self, int errorId = 0, string details = "") -> XMLError
-        __init__(self, int errorId = 0) -> XMLError
-        __init__(self) -> XMLError
-        __init__(self, XMLError orig) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_FATAL, unsigned int const category=LIBSBML_CAT_INTERNAL) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_FATAL) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0, unsigned int const column=0) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="", unsigned int const line=0) -> XMLError
+        __init__(XMLError self, int const errorId=0, string details="") -> XMLError
+        __init__(XMLError self, int const errorId=0) -> XMLError
+        __init__(XMLError self) -> XMLError
+        __init__(XMLError self, XMLError orig) -> XMLError
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -48586,7 +47875,7 @@ class XMLError(_object):
     __del__ = lambda self : None;
     def getErrorId(self):
         """
-        getErrorId(self) -> unsigned int
+        getErrorId(XMLError self) -> unsigned int
 
         Returns the identifier of this error.
 
@@ -48600,7 +47889,7 @@ class XMLError(_object):
 
     def getMessage(self):
         """
-        getMessage(self) -> string
+        getMessage(XMLError self) -> string
 
         Returns the message text of this error.
 
@@ -48623,7 +47912,7 @@ class XMLError(_object):
 
     def getShortMessage(self):
         """
-        getShortMessage(self) -> string
+        getShortMessage(XMLError self) -> string
 
         Returns a brief message for this error.
 
@@ -48643,7 +47932,7 @@ class XMLError(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(XMLError self) -> unsigned int
 
         Returns the line number in the XML input near where the error, warning
         or other diagnostic occurred.
@@ -48671,7 +47960,7 @@ class XMLError(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(XMLError self) -> unsigned int
 
         Returns the column number in the XML input near where the error,
         warning or other diagnostic occurred.
@@ -48699,7 +47988,7 @@ class XMLError(_object):
 
     def getSeverity(self):
         """
-        getSeverity(self) -> unsigned int
+        getSeverity(XMLError self) -> unsigned int
 
         Returns the severity of this error.
 
@@ -48717,7 +48006,7 @@ class XMLError(_object):
 
     def getSeverityAsString(self):
         """
-        getSeverityAsString(self) -> string
+        getSeverityAsString(XMLError self) -> string
 
         Returns a string describing the severity level of this error.
 
@@ -48735,7 +48024,7 @@ class XMLError(_object):
 
     def getCategory(self):
         """
-        getCategory(self) -> unsigned int
+        getCategory(XMLError self) -> unsigned int
 
         Returns the category of this error.
 
@@ -48757,7 +48046,7 @@ class XMLError(_object):
 
     def getCategoryAsString(self):
         """
-        getCategoryAsString(self) -> string
+        getCategoryAsString(XMLError self) -> string
 
         Returns a string describing the category of this error.
 
@@ -48779,7 +48068,7 @@ class XMLError(_object):
 
     def isInfo(self):
         """
-        isInfo(self) -> bool
+        isInfo(XMLError self) -> bool
 
         Predicate returning True or False depending on whether this error
         object is for information purposes only.
@@ -48798,7 +48087,7 @@ class XMLError(_object):
 
     def isWarning(self):
         """
-        isWarning(self) -> bool
+        isWarning(XMLError self) -> bool
 
         Predicate returning True or False depending on whether  this error
         object is a warning.
@@ -48816,7 +48105,7 @@ class XMLError(_object):
 
     def isError(self):
         """
-        isError(self) -> bool
+        isError(XMLError self) -> bool
 
         Predicate returning True or False depending on whether this error is a
         significant error.
@@ -48834,7 +48123,7 @@ class XMLError(_object):
 
     def isFatal(self):
         """
-        isFatal(self) -> bool
+        isFatal(XMLError self) -> bool
 
         Predicate returning True or False depending on whether this error is a
         fatal run-time error.
@@ -48852,7 +48141,7 @@ class XMLError(_object):
 
     def isInternal(self):
         """
-        isInternal(self) -> bool
+        isInternal(XMLError self) -> bool
 
         Predicate returning True or False depending on whether this error
         resulted from an internal program error.
@@ -48871,7 +48160,7 @@ class XMLError(_object):
 
     def isSystem(self):
         """
-        isSystem(self) -> bool
+        isSystem(XMLError self) -> bool
 
         Predicate returning True or False depending on whether this error was
         generated by the operating system.
@@ -48890,7 +48179,7 @@ class XMLError(_object):
 
     def isXML(self):
         """
-        isXML(self) -> bool
+        isXML(XMLError self) -> bool
 
         Predicate returning True or False depending on whether this error
         resulted from a problem in the XML input (e.g., an XML syntax error).
@@ -48908,7 +48197,7 @@ class XMLError(_object):
 
     def isValid(self):
         """
-        isValid(self) -> bool
+        isValid(XMLError self) -> bool
 
         Predicate returning True or False depending on whether this error
         resulted from a problem or whether it was logged as an unknown error.
@@ -48925,7 +48214,7 @@ class XMLError(_object):
 
     def setLine(self, *args):
         """
-        setLine(self, unsigned int line) -> int
+        setLine(XMLError self, unsigned int line) -> int
 
         Sets the line number where this error occurred.
 
@@ -48943,7 +48232,7 @@ class XMLError(_object):
 
     def setColumn(self, *args):
         """
-        setColumn(self, unsigned int column) -> int
+        setColumn(XMLError self, unsigned int column) -> int
 
         Sets the column number where this error occurred.
 
@@ -48961,7 +48250,7 @@ class XMLError(_object):
 
     def getStandardMessage(*args):
         """
-        getStandardMessage(int code) -> string
+        getStandardMessage(int const code) -> string
 
         Returns a copy of the message string associated with the given
         predefined XMLError code.
@@ -48976,7 +48265,7 @@ class XMLError(_object):
     __swig_getmethods__["getStandardMessage"] = lambda x: getStandardMessage
     def getPackage(self):
         """
-        getPackage(self) -> string
+        getPackage(XMLError self) -> string
 
         Returns the SBML Level 3 package extension (if any) that logged this
         error.
@@ -48997,7 +48286,7 @@ class XMLError(_object):
 
     def getErrorIdOffset(self):
         """
-        getErrorIdOffset(self) -> unsigned int
+        getErrorIdOffset(XMLError self) -> unsigned int
 
         Returns libSBML's internal numerical offset for the error code
         associated with this error.
@@ -49052,7 +48341,7 @@ XMLError_swigregister(XMLError)
 
 def XMLError_getStandardMessage(*args):
   """
-    XMLError_getStandardMessage(int code) -> string
+    XMLError_getStandardMessage(int const code) -> string
 
     Returns a copy of the message string associated with the given
     predefined XMLError code.
@@ -49099,7 +48388,7 @@ class XMLErrorLog(_object):
     __repr__ = _swig_repr
     def getNumErrors(self):
         """
-        getNumErrors(self) -> unsigned int
+        getNumErrors(XMLErrorLog self) -> unsigned int
 
         Returns the number of errors that have been logged.
 
@@ -49113,7 +48402,7 @@ class XMLErrorLog(_object):
 
     def getError(self, *args):
         """
-        getError(self, unsigned int n) -> XMLError
+        getError(XMLErrorLog self, unsigned int n) -> XMLError
 
         Returns the nth XMLError object in this log.
 
@@ -49135,7 +48424,7 @@ class XMLErrorLog(_object):
 
     def clearLog(self):
         """
-        clearLog(self)
+        clearLog(XMLErrorLog self)
 
         Deletes all errors from this log.
 
@@ -49144,8 +48433,8 @@ class XMLErrorLog(_object):
 
     def __init__(self, *args): 
         """
-        __init__(self) -> XMLErrorLog
-        __init__(self, XMLErrorLog other) -> XMLErrorLog
+        __init__(XMLErrorLog self) -> XMLErrorLog
+        __init__(XMLErrorLog self, XMLErrorLog other) -> XMLErrorLog
 
         @internal
 
@@ -49157,14 +48446,14 @@ class XMLErrorLog(_object):
     __del__ = lambda self : None;
     def add(self, *args):
         """
-        add(self, XMLError error)
-        add(self, std::vector<(p.XMLError)> errors)
+        add(XMLErrorLog self, XMLError error)
+        add(XMLErrorLog self, std::vector< XMLError * > const & errors)
         """
         return _libsbml.XMLErrorLog_add(self, *args)
 
     def toString(self):
         """
-        toString(self) -> string
+        toString(XMLErrorLog self) -> string
 
         Writes all errors contained in this log to a string and returns it.
 
@@ -49181,9 +48470,9 @@ class XMLErrorLog(_object):
 
     def printErrors(self, *args):
         """
-        printErrors(self, ostream stream = cerr)
-        printErrors(self)
-        printErrors(self, ostream stream, unsigned int severity)
+        printErrors(XMLErrorLog self, ostream stream=cerr)
+        printErrors(XMLErrorLog self)
+        printErrors(XMLErrorLog self, ostream stream, unsigned int severity)
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -49249,7 +48538,7 @@ class XMLErrorLog(_object):
 
     def isSeverityOverridden(self):
         """
-        isSeverityOverridden(self) -> bool
+        isSeverityOverridden(XMLErrorLog self) -> bool
 
         Returns a boolean indicating whether or not the severity has been
         overridden.
@@ -49272,7 +48561,7 @@ class XMLErrorLog(_object):
 
     def unsetSeverityOverride(self):
         """
-        unsetSeverityOverride(self)
+        unsetSeverityOverride(XMLErrorLog self)
 
         Usets an existing override.
 
@@ -49291,7 +48580,7 @@ class XMLErrorLog(_object):
 
     def getSeverityOverride(self):
         """
-        getSeverityOverride(self) -> XMLErrorSeverityOverride_t
+        getSeverityOverride(XMLErrorLog self) -> XMLErrorSeverityOverride_t
 
         Returns the current override.
 
@@ -49320,7 +48609,7 @@ class XMLErrorLog(_object):
 
     def setSeverityOverride(self, *args):
         """
-        setSeverityOverride(self, XMLErrorSeverityOverride_t severity)
+        setSeverityOverride(XMLErrorLog self, XMLErrorSeverityOverride_t severity)
 
         Set the severity override.
 
@@ -49347,9 +48636,8 @@ class XMLErrorLog(_object):
 
     def changeErrorSeverity(self, *args):
         """
-        changeErrorSeverity(self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity, 
-            string package = "all")
-        changeErrorSeverity(self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity)
+        changeErrorSeverity(XMLErrorLog self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity, string package="all")
+        changeErrorSeverity(XMLErrorLog self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity)
 
         Changes the severity override for errors in the log that have a given
         severity.
@@ -49460,7 +48748,7 @@ class SBMLErrorLog(XMLErrorLog):
     __repr__ = _swig_repr
     def getError(self, *args):
         """
-        getError(self, unsigned int n) -> SBMLError
+        getError(SBMLErrorLog self, unsigned int n) -> SBMLError
 
         Returns the nth SBMLError object in this log.
 
@@ -49482,7 +48770,7 @@ class SBMLErrorLog(XMLErrorLog):
 
     def getErrorWithSeverity(self, *args):
         """
-        getErrorWithSeverity(self, unsigned int n, unsigned int severity) -> SBMLError
+        getErrorWithSeverity(SBMLErrorLog self, unsigned int n, unsigned int severity) -> SBMLError
 
         Returns the nth SBMLError object with given severity in this log.
 
@@ -49505,8 +48793,8 @@ class SBMLErrorLog(XMLErrorLog):
 
     def getNumFailsWithSeverity(self, *args):
         """
-        getNumFailsWithSeverity(self, unsigned int severity) -> unsigned int
-        getNumFailsWithSeverity(self, unsigned int severity) -> unsigned int
+        getNumFailsWithSeverity(SBMLErrorLog self, unsigned int severity) -> unsigned int
+        getNumFailsWithSeverity(SBMLErrorLog self, unsigned int severity) -> unsigned int
 
         Returns the number of errors that have been logged with the given
         severity code.
@@ -49533,8 +48821,8 @@ class SBMLErrorLog(XMLErrorLog):
 
     def __init__(self, *args): 
         """
-        __init__(self) -> SBMLErrorLog
-        __init__(self, SBMLErrorLog other) -> SBMLErrorLog
+        __init__(SBMLErrorLog self) -> SBMLErrorLog
+        __init__(SBMLErrorLog self, SBMLErrorLog other) -> SBMLErrorLog
 
         @internal
 
@@ -49546,30 +48834,24 @@ class SBMLErrorLog(XMLErrorLog):
     __del__ = lambda self : None;
     def logError(self, *args):
         """
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "")
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION)
-        logError(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL)
-        logError(self, unsigned int errorId = 0)
-        logError(self)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="")
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION)
+        logError(SBMLErrorLog self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL)
+        logError(SBMLErrorLog self, unsigned int const errorId=0)
+        logError(SBMLErrorLog self)
 
         Internal implementation method.
 
@@ -49578,43 +48860,31 @@ class SBMLErrorLog(XMLErrorLog):
 
     def logPackageError(self, *args):
         """
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0, unsigned int column = 0, 
-            unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0, unsigned int column = 0, 
-            unsigned int severity = LIBSBML_SEV_ERROR)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0, unsigned int column = 0)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", 
-            unsigned int line = 0)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "")
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL)
-        logPackageError(self, string package = "core", unsigned int errorId = 0, 
-            unsigned int pkgVersion = 1)
-        logPackageError(self, string package = "core", unsigned int errorId = 0)
-        logPackageError(self, string package = "core")
-        logPackageError(self)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_ERROR, unsigned int const category=LIBSBML_CAT_SBML)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, unsigned int const column=0, 
+            unsigned int const severity=LIBSBML_SEV_ERROR)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, unsigned int const column=0)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="")
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1, 
+            unsigned int const level=SBML_DEFAULT_LEVEL)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0, unsigned int const pkgVersion=1)
+        logPackageError(SBMLErrorLog self, string package="core", unsigned int const errorId=0)
+        logPackageError(SBMLErrorLog self, string package="core")
+        logPackageError(SBMLErrorLog self)
 
         Internal implementation method.
 
@@ -49622,12 +48892,12 @@ class SBMLErrorLog(XMLErrorLog):
         return _libsbml.SBMLErrorLog_logPackageError(self, *args)
 
     def add(self, *args):
-        """add(self, SBMLError error)"""
+        """add(SBMLErrorLog self, SBMLError error)"""
         return _libsbml.SBMLErrorLog_add(self, *args)
 
     def remove(self, *args):
         """
-        remove(self, unsigned int errorId)
+        remove(SBMLErrorLog self, unsigned int const errorId)
 
         Removes an error having errorId from the SBMLError list.
 
@@ -49642,7 +48912,7 @@ class SBMLErrorLog(XMLErrorLog):
 
     def removeAll(self, *args):
         """
-        removeAll(self, unsigned int errorId)
+        removeAll(SBMLErrorLog self, unsigned int const errorId)
 
         Removes all errors having errorId from the SBMLError list.
 
@@ -49654,7 +48924,7 @@ class SBMLErrorLog(XMLErrorLog):
 
     def contains(self, *args):
         """
-        contains(self, unsigned int errorId) -> bool
+        contains(SBMLErrorLog self, unsigned int const errorId) -> bool
 
         Returns true if SBMLErrorLog contains an errorId
 
@@ -51099,7 +50369,7 @@ class SBMLError(XMLError):
     with SBMLError objects
     ......................................................................
 
-    In libSBML version 5.12.0 there are no additional severity codes
+    In libSBML version 5.13.0 there are no additional severity codes
     beyond those defined by XMLError. They are implemented as static
     integer constants defined in the interface class libsbml, and have
     names beginning with LIBSBML_SEV_.
@@ -51114,44 +50384,34 @@ class SBMLError(XMLError):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML, 
-            string package = "core", 
-            unsigned int pkgVersion = 1) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML, 
-            string package = "core") -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, 
-            unsigned int category = LIBSBML_CAT_SBML) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0, 
-            unsigned int column = 0) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "", unsigned int line = 0) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION, 
-            string details = "") -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, 
-            unsigned int version = SBML_DEFAULT_VERSION) -> SBMLError
-        __init__(self, unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL) -> SBMLError
-        __init__(self, unsigned int errorId = 0) -> SBMLError
-        __init__(self) -> SBMLError
-        __init__(self, SBMLError orig) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML, string package="core", 
+            unsigned int const pkgVersion=1) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML, string package="core") -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, 
+            unsigned int const category=LIBSBML_CAT_SBML) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0, 
+            unsigned int const column=0) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="", unsigned int const line=0) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, 
+            string details="") -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL) -> SBMLError
+        __init__(SBMLError self, unsigned int const errorId=0) -> SBMLError
+        __init__(SBMLError self) -> SBMLError
+        __init__(SBMLError self, SBMLError orig) -> SBMLError
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -51469,10 +50729,10 @@ class CVTerm(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, QualifierType_t type = UNKNOWN_QUALIFIER) -> CVTerm
-        __init__(self) -> CVTerm
-        __init__(self, XMLNode node) -> CVTerm
-        __init__(self, CVTerm orig) -> CVTerm
+        __init__(CVTerm self, QualifierType_t type=UNKNOWN_QUALIFIER) -> CVTerm
+        __init__(CVTerm self) -> CVTerm
+        __init__(CVTerm self, XMLNode node) -> CVTerm
+        __init__(CVTerm self, CVTerm orig) -> CVTerm
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -51556,7 +50816,7 @@ class CVTerm(_object):
         BioModels.net qualifiers web page for an explanation of the meaning of
         these different qualifiers.
 
-        Parameter 'type' is a qualifier type
+        Parameter 'type' is a qualifier type.
 
         Documentation note: The native C++ implementation of this method
         defines a default argument value. In the documentation generated for
@@ -51576,7 +50836,7 @@ class CVTerm(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> CVTerm
+        clone(CVTerm self) -> CVTerm
 
         Creates and returns a deep copy of this CVTerm object.
 
@@ -51587,8 +50847,8 @@ class CVTerm(_object):
 
     def getQualifierType(self, *args):
         """
-        getQualifierType(self) -> QualifierType_t
-        getQualifierType(self) -> QualifierType_t
+        getQualifierType(CVTerm self) -> QualifierType_t
+        getQualifierType(CVTerm self) -> QualifierType_t
 
         Returns the qualifier type of this CVTerm object.
 
@@ -51640,16 +50900,16 @@ class CVTerm(_object):
         Returns the qualifier type of this object or UNKNOWN_QUALIFIER (the
         default).
 
-        See also CVTerm.getResources(), CVTerm.getModelQualifierType(),
-        CVTerm.getBiologicalQualifierType().
+        See also getResources(), getModelQualifierType(),
+        getBiologicalQualifierType().
 
         """
         return _libsbml.CVTerm_getQualifierType(self, *args)
 
     def getModelQualifierType(self, *args):
         """
-        getModelQualifierType(self) -> ModelQualifierType_t
-        getModelQualifierType(self) -> ModelQualifierType_t
+        getModelQualifierType(CVTerm self) -> ModelQualifierType_t
+        getModelQualifierType(CVTerm self) -> ModelQualifierType_t
 
         Returns the model qualifier type of this CVTerm object.
 
@@ -51724,8 +50984,8 @@ class CVTerm(_object):
 
     def getBiologicalQualifierType(self, *args):
         """
-        getBiologicalQualifierType(self) -> BiolQualifierType_t
-        getBiologicalQualifierType(self) -> BiolQualifierType_t
+        getBiologicalQualifierType(CVTerm self) -> BiolQualifierType_t
+        getBiologicalQualifierType(CVTerm self) -> BiolQualifierType_t
 
         Returns the biological qualifier type of this CVTerm object.
 
@@ -51816,8 +51076,8 @@ class CVTerm(_object):
 
     def getResources(self, *args):
         """
-        getResources(self) -> XMLAttributes
-        getResources(self) -> XMLAttributes
+        getResources(CVTerm self) -> XMLAttributes
+        getResources(CVTerm self) -> XMLAttributes
 
         Returns the resource references for this CVTerm object.
 
@@ -51855,16 +51115,15 @@ class CVTerm(_object):
 
         Returns the XMLAttributes that store the resources of this CVTerm.
 
-        See also CVTerm.getQualifierType(), CVTerm.addResource(),
-        CVTerm.getResourceURI().
+        See also getQualifierType(), addResource(), getResourceURI().
 
         """
         return _libsbml.CVTerm_getResources(self, *args)
 
     def getNumResources(self, *args):
         """
-        getNumResources(self) -> unsigned int
-        getNumResources(self) -> unsigned int
+        getNumResources(CVTerm self) -> unsigned int
+        getNumResources(CVTerm self) -> unsigned int
 
         Returns the number of resources for this CVTerm object.
 
@@ -51900,15 +51159,15 @@ class CVTerm(_object):
         Returns the number of resources in the set of XMLAttributes of this
         CVTerm.
 
-        See also CVTerm.getResources(), CVTerm.getResourceURI().
+        See also getResources(), getResourceURI().
 
         """
         return _libsbml.CVTerm_getNumResources(self, *args)
 
     def getResourceURI(self, *args):
         """
-        getResourceURI(self, unsigned int n) -> string
-        getResourceURI(self, unsigned int n) -> string
+        getResourceURI(CVTerm self, unsigned int n) -> string
+        getResourceURI(CVTerm self, unsigned int n) -> string
 
         Returns the value of the nth resource for this CVTerm object.
 
@@ -51943,19 +51202,19 @@ class CVTerm(_object):
         many resources are stored in this CVTerm object, then call this method
         to retrieve the nth resource URI.
 
-        Parameter 'n' is the index of the resource to query
+        Parameter 'n' is the index of the resource to query.
 
         Returns string representing the value of the nth resource in the set
         of XMLAttributes of this CVTerm.
 
-        See also CVTerm.getNumResources(), CVTerm.getQualifierType().
+        See also getNumResources(), getQualifierType().
 
         """
         return _libsbml.CVTerm_getResourceURI(self, *args)
 
     def setQualifierType(self, *args):
         """
-        setQualifierType(self, QualifierType_t type) -> int
+        setQualifierType(CVTerm self, QualifierType_t type) -> int
 
         Sets the qualifier code of this CVTerm object.
 
@@ -51966,15 +51225,15 @@ class CVTerm(_object):
 
         * LIBSBML_OPERATION_SUCCESS
 
-        See also CVTerm.getQualifierType().
+        See also getQualifierType().
 
         """
         return _libsbml.CVTerm_setQualifierType(self, *args)
 
     def setModelQualifierType(self, *args):
         """
-        setModelQualifierType(self, ModelQualifierType_t type) -> int
-        setModelQualifierType(self, string qualifier) -> int
+        setModelQualifierType(CVTerm self, ModelQualifierType_t type) -> int
+        setModelQualifierType(CVTerm self, string qualifier) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -51986,7 +51245,7 @@ class CVTerm(_object):
 
         Sets the model qualifier type value of this CVTerm object.
 
-        Parameter 'qualifier' is the string representing a model qualifier
+        Parameter 'qualifier' is the string representing a model qualifier.
 
         Returns integer value indicating success/failure of the function.
         The possible values returned by this function are:
@@ -52000,16 +51259,16 @@ class CVTerm(_object):
         If the Qualifier Type of this object is not MODEL_QUALIFIER,  then the
         model qualifier type will default to BQM_UNKNOWN.
 
-        See also CVTerm.getQualifierType(), CVTerm.setQualifierType(),
-        CVTerm.getQualifierType(), CVTerm.setQualifierType().
+        See also getQualifierType(), setQualifierType(), getQualifierType(),
+        setQualifierType().
 
         """
         return _libsbml.CVTerm_setModelQualifierType(self, *args)
 
     def setBiologicalQualifierType(self, *args):
         """
-        setBiologicalQualifierType(self, BiolQualifierType_t type) -> int
-        setBiologicalQualifierType(self, string qualifier) -> int
+        setBiologicalQualifierType(CVTerm self, BiolQualifierType_t type) -> int
+        setBiologicalQualifierType(CVTerm self, string qualifier) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -52021,7 +51280,7 @@ class CVTerm(_object):
 
         Sets the biology qualifier type code of this CVTerm object.
 
-        Parameter 'qualifier' is the string representing a biology qualifier
+        Parameter 'qualifier' is the string representing a biology qualifier.
 
         Returns integer value indicating success/failure of the function.
         The possible values returned by this function are:
@@ -52035,15 +51294,15 @@ class CVTerm(_object):
         If the Qualifier Type of this object is not BIOLOGICAL_QUALIFIER, then
         the biology qualifier type code will default to BQB_UNKNOWN.
 
-        See also CVTerm.getQualifierType(), CVTerm.setQualifierType(),
-        CVTerm.getQualifierType(), CVTerm.setQualifierType().
+        See also getQualifierType(), setQualifierType(), getQualifierType(),
+        setQualifierType().
 
         """
         return _libsbml.CVTerm_setBiologicalQualifierType(self, *args)
 
     def addResource(self, *args):
         """
-        addResource(self, string resource) -> int
+        addResource(CVTerm self, string resource) -> int
 
         Adds a resource reference to this CVTerm object.
 
@@ -52115,16 +51374,15 @@ class CVTerm(_object):
 
         * LIBSBML_OPERATION_FAILED
 
-        See also CVTerm.getResources(), CVTerm.removeResource(),
-        CVTerm.getQualifierType(), CVTerm.getModelQualifierType(),
-        CVTerm.getBiologicalQualifierType().
+        See also getResources(), removeResource(), getQualifierType(),
+        getModelQualifierType(), getBiologicalQualifierType().
 
         """
         return _libsbml.CVTerm_addResource(self, *args)
 
     def removeResource(self, *args):
         """
-        removeResource(self, string resource) -> int
+        removeResource(CVTerm self, string resource) -> int
 
         Removes a resource URI from the set of resources stored in this CVTerm
         object.
@@ -52141,14 +51399,14 @@ class CVTerm(_object):
 
         * LIBSBML_INVALID_ATTRIBUTE_VALUE
 
-        See also CVTerm.addResource().
+        See also addResource().
 
         """
         return _libsbml.CVTerm_removeResource(self, *args)
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(CVTerm self) -> bool
 
         Internal implementation method.
 
@@ -52157,7 +51415,7 @@ class CVTerm(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(CVTerm self)
 
         Internal implementation method.
 
@@ -52166,8 +51424,8 @@ class CVTerm(_object):
 
     def hasRequiredAttributes(self, *args):
         """
-        hasRequiredAttributes(self) -> bool
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(CVTerm self) -> bool
+        hasRequiredAttributes(CVTerm self) -> bool
 
         Predicate returning True if all the required elements for this CVTerm
         object have been set.
@@ -52186,7 +51444,7 @@ class CVTerm(_object):
 
     def getNumNestedCVTerms(self):
         """
-        getNumNestedCVTerms(self) -> unsigned int
+        getNumNestedCVTerms(CVTerm self) -> unsigned int
 
         Returns the number of CVTerm objects nested within this CVTerm object.
 
@@ -52203,12 +51461,12 @@ class CVTerm(_object):
 
     def getNestedCVTerm(self, *args):
         """
-        getNestedCVTerm(self, unsigned int n) -> CVTerm
-        getNestedCVTerm(self, unsigned int n) -> CVTerm
+        getNestedCVTerm(CVTerm self, unsigned int n) -> CVTerm
+        getNestedCVTerm(CVTerm self, unsigned int n) -> CVTerm
 
         Returns the nth CVTerm in the list of CVTerms of this CVTerm object.
 
-        Parameter 'n' is long the index of the CVTerm to retrieve
+        Parameter 'n' is long the index of the CVTerm to retrieve.
 
         Returns the nth CVTerm in the list of CVTerms for this CVTerm object.
 
@@ -52217,8 +51475,8 @@ class CVTerm(_object):
 
     def getListNestedCVTerms(self, *args):
         """
-        getListNestedCVTerms(self) -> List
-        getListNestedCVTerms(self) -> List
+        getListNestedCVTerms(CVTerm self) -> List
+        getListNestedCVTerms(CVTerm self) -> List const *
 
         Returns a list of CVTerm objects contained within this CVTerm object.
 
@@ -52229,7 +51487,7 @@ class CVTerm(_object):
 
     def addNestedCVTerm(self, *args):
         """
-        addNestedCVTerm(self, CVTerm term) -> int
+        addNestedCVTerm(CVTerm self, CVTerm term) -> int
 
         Adds a copy of the given CVTerm object to the list of nested CVTerm
         objects within this CVTerm object.
@@ -52250,12 +51508,12 @@ class CVTerm(_object):
 
     def removeNestedCVTerm(self, *args):
         """
-        removeNestedCVTerm(self, unsigned int n) -> CVTerm
+        removeNestedCVTerm(CVTerm self, unsigned int n) -> CVTerm
 
         Removes the nth CVTerm in the list of CVTerms of this CVTerm object
         and returns a pointer to it.
 
-        Parameter 'n' is long the index of the CVTerm to retrieve
+        Parameter 'n' is long the index of the CVTerm to retrieve.
 
         Returns a pointer to the nth CVTerm in the list of CVTerms for this
         CVTerm object.
@@ -52282,6 +51540,95 @@ class CVTerm(_object):
 CVTerm_swigregister = _libsbml.CVTerm_swigregister
 CVTerm_swigregister(CVTerm)
 
+
+def ModelQualifierType_toString(*args):
+  """
+    ModelQualifierType_toString(ModelQualifierType_t type) -> char const *
+
+    This method takes a model qualifier type code and returns a string
+    representing the code.
+
+    This method takes a model qualifier type as argument and returns a
+    string name corresponding to that code.  For example, passing it the
+    qualifier BQM_IS_DESCRIBED_BY will return the string 'isDescribedBy'.
+
+    Parameter 'type' is The  value to translate. The value should be a
+    libSBML constant whose name begins with BQM_, such as (for example)
+    BQM_IS.
+
+    Returns a human readable qualifier name for the given qualifier type.
+
+    Note:
+
+    The caller does not own the returned string and is therefore not
+    allowed to modify it.
+
+    """
+  return _libsbml.ModelQualifierType_toString(*args)
+
+def BiolQualifierType_toString(*args):
+  """
+    BiolQualifierType_toString(BiolQualifierType_t type) -> char const *
+
+    This method takes a biol qualifier type code and returns a string
+    representing the code.
+
+    This method takes a biol qualifier type as argument and returns a
+    string name corresponding to that code.  For example, passing it the
+    qualifier BQB_HAS_VERSION will return the string 'hasVersion'.
+
+    Parameter 'type' is The  value to translate. The value should be a
+    constant whose name begins with BQB_, such as (for example) BQB_IS.
+
+    Returns a human readable qualifier name for the given type.
+
+    Note:
+
+    The caller does not own the returned string and is therefore not
+    allowed to modify it.
+
+    """
+  return _libsbml.BiolQualifierType_toString(*args)
+
+def ModelQualifierType_fromString(*args):
+  """
+    ModelQualifierType_fromString(char const * s) -> ModelQualifierType_t
+
+    This method takes a a string and returns a model qualifier
+    representing the string.
+
+    This method takes a string as argument and returns a model qualifier
+    type corresponding to that string.  For example, passing it the string
+    'isDescribedBy' will return the qualifier BQM_IS_DESCRIBED_BY.
+
+    Parameter 's' is The string to translate to a libSBML constant value
+    representing a model qualifier.
+
+    Returns a libSBML qualifier enumeration value for the given human
+    readable qualifier name.
+
+    """
+  return _libsbml.ModelQualifierType_fromString(*args)
+
+def BiolQualifierType_fromString(*args):
+  """
+    BiolQualifierType_fromString(char const * s) -> BiolQualifierType_t
+
+    This method takes a a string and returns a biol qualifier representing
+    the string.
+
+    This method takes a string as argument and returns a biol qualifier
+    type corresponding to that string.  For example, passing it the string
+    'hasVersion' will return the qualifier BQB_HAS_VERSION.
+
+    Parameter 's' is The string to translate to a libSBML constant value
+    representing a biological qualifier.
+
+    Returns a libSBML qualifier enumeration value for the given human
+    readable qualifier name.
+
+    """
+  return _libsbml.BiolQualifierType_fromString(*args)
 class Date(_object):
     """
     A MIRIAM-compliant date representation.
@@ -52381,32 +51728,24 @@ class Date(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0, 
-            unsigned int sign = 0, unsigned int hoursOffset = 0, 
-            unsigned int minutesOffset = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0, 
-            unsigned int sign = 0, unsigned int hoursOffset = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0, 
-            unsigned int sign = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0, 
-            unsigned int second = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0, unsigned int minute = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, 
-            unsigned int hour = 0) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1) -> Date
-        __init__(self, unsigned int year = 2000, unsigned int month = 1) -> Date
-        __init__(self, unsigned int year = 2000) -> Date
-        __init__(self) -> Date
-        __init__(self, string date) -> Date
-        __init__(self, Date orig) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0, unsigned int sign=0, unsigned int hoursOffset=0, 
+            unsigned int minutesOffset=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0, unsigned int sign=0, unsigned int hoursOffset=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0, unsigned int sign=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0, unsigned int second=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, 
+            unsigned int minute=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1, unsigned int day=1) -> Date
+        __init__(Date self, unsigned int year=2000, unsigned int month=1) -> Date
+        __init__(Date self, unsigned int year=2000) -> Date
+        __init__(Date self) -> Date
+        __init__(Date self, string date) -> Date
+        __init__(Date self, Date orig) -> Date
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -52545,7 +51884,7 @@ class Date(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> Date
+        clone(Date self) -> Date
 
         Creates and returns a deep copy of this Date object.
 
@@ -52556,7 +51895,7 @@ class Date(_object):
 
     def getYear(self):
         """
-        getYear(self) -> unsigned int
+        getYear(Date self) -> unsigned int
 
         Returns the year from this Date.
 
@@ -52567,7 +51906,7 @@ class Date(_object):
 
     def getMonth(self):
         """
-        getMonth(self) -> unsigned int
+        getMonth(Date self) -> unsigned int
 
         Returns the month from this Date.
 
@@ -52578,7 +51917,7 @@ class Date(_object):
 
     def getDay(self):
         """
-        getDay(self) -> unsigned int
+        getDay(Date self) -> unsigned int
 
         Returns the day from this Date.
 
@@ -52589,7 +51928,7 @@ class Date(_object):
 
     def getHour(self):
         """
-        getHour(self) -> unsigned int
+        getHour(Date self) -> unsigned int
 
         Returns the hour from this Date.
 
@@ -52600,7 +51939,7 @@ class Date(_object):
 
     def getMinute(self):
         """
-        getMinute(self) -> unsigned int
+        getMinute(Date self) -> unsigned int
 
         Returns the minute from this Date.
 
@@ -52611,7 +51950,7 @@ class Date(_object):
 
     def getSecond(self):
         """
-        getSecond(self) -> unsigned int
+        getSecond(Date self) -> unsigned int
 
         Returns the seconds from this Date.
 
@@ -52622,7 +51961,7 @@ class Date(_object):
 
     def getSignOffset(self):
         """
-        getSignOffset(self) -> unsigned int
+        getSignOffset(Date self) -> unsigned int
 
         Returns the sign of the time zone offset from this Date.
 
@@ -52633,7 +51972,7 @@ class Date(_object):
 
     def getHoursOffset(self):
         """
-        getHoursOffset(self) -> unsigned int
+        getHoursOffset(Date self) -> unsigned int
 
         Returns the hours of the time zone offset from this Date.
 
@@ -52644,7 +51983,7 @@ class Date(_object):
 
     def getMinutesOffset(self):
         """
-        getMinutesOffset(self) -> unsigned int
+        getMinutesOffset(Date self) -> unsigned int
 
         Returns the minutes of the time zone offset from this Date.
 
@@ -52655,7 +51994,7 @@ class Date(_object):
 
     def getDateAsString(self):
         """
-        getDateAsString(self) -> string
+        getDateAsString(Date self) -> string
 
         Returns the current Date value in text-string form.
 
@@ -52703,7 +52042,7 @@ class Date(_object):
 
     def setYear(self, *args):
         """
-        setYear(self, unsigned int year) -> int
+        setYear(Date self, unsigned int year) -> int
 
         Sets the value of the year of this Date object.
 
@@ -52726,7 +52065,7 @@ class Date(_object):
 
     def setMonth(self, *args):
         """
-        setMonth(self, unsigned int month) -> int
+        setMonth(Date self, unsigned int month) -> int
 
         Sets the value of the month of this Date object.
 
@@ -52745,7 +52084,7 @@ class Date(_object):
 
     def setDay(self, *args):
         """
-        setDay(self, unsigned int day) -> int
+        setDay(Date self, unsigned int day) -> int
 
         Sets the value of the day of this Date object.
 
@@ -52764,7 +52103,7 @@ class Date(_object):
 
     def setHour(self, *args):
         """
-        setHour(self, unsigned int hour) -> int
+        setHour(Date self, unsigned int hour) -> int
 
         Sets the value of the hour of this Date object.
 
@@ -52783,7 +52122,7 @@ class Date(_object):
 
     def setMinute(self, *args):
         """
-        setMinute(self, unsigned int minute) -> int
+        setMinute(Date self, unsigned int minute) -> int
 
         Sets the value of the minute of this Date object.
 
@@ -52802,7 +52141,7 @@ class Date(_object):
 
     def setSecond(self, *args):
         """
-        setSecond(self, unsigned int second) -> int
+        setSecond(Date self, unsigned int second) -> int
 
         Sets the value of the second of the Date object.
 
@@ -52821,7 +52160,7 @@ class Date(_object):
 
     def setSignOffset(self, *args):
         """
-        setSignOffset(self, unsigned int sign) -> int
+        setSignOffset(Date self, unsigned int sign) -> int
 
         Sets the value of the sign of the time zone offset of this Date
         object.
@@ -52843,7 +52182,7 @@ class Date(_object):
 
     def setHoursOffset(self, *args):
         """
-        setHoursOffset(self, unsigned int hoursOffset) -> int
+        setHoursOffset(Date self, unsigned int hoursOffset) -> int
 
         Sets the value of this Date object's time zone hour offset.
 
@@ -52862,7 +52201,7 @@ class Date(_object):
 
     def setMinutesOffset(self, *args):
         """
-        setMinutesOffset(self, unsigned int minutesOffset) -> int
+        setMinutesOffset(Date self, unsigned int minutesOffset) -> int
 
         Sets the value of this Date object's time zone minutes offset.
 
@@ -52882,7 +52221,7 @@ class Date(_object):
 
     def setDateAsString(self, *args):
         """
-        setDateAsString(self, string date) -> int
+        setDateAsString(Date self, string date) -> int
 
         Sets the value of this Date object using a date and time value
         expressed as a text string.
@@ -52943,7 +52282,7 @@ class Date(_object):
 
     def representsValidDate(self):
         """
-        representsValidDate(self) -> bool
+        representsValidDate(Date self) -> bool
 
         Returns true or false depending on whether this date object represents
         a valid date and time value.
@@ -52963,7 +52302,7 @@ class Date(_object):
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(Date self) -> bool
 
         Internal implementation method.
 
@@ -52972,7 +52311,7 @@ class Date(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(Date self)
 
         Internal implementation method.
 
@@ -53052,9 +52391,9 @@ class ModelCreator(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> ModelCreator
-        __init__(self, XMLNode creator) -> ModelCreator
-        __init__(self, ModelCreator orig) -> ModelCreator
+        __init__(ModelCreator self) -> ModelCreator
+        __init__(ModelCreator self, XMLNode creator) -> ModelCreator
+        __init__(ModelCreator self, ModelCreator orig) -> ModelCreator
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -53091,7 +52430,7 @@ class ModelCreator(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ModelCreator
+        clone(ModelCreator self) -> ModelCreator
 
         Creates and returns a deep copy of this ModelCreator object.
 
@@ -53102,7 +52441,7 @@ class ModelCreator(_object):
 
     def getFamilyName(self):
         """
-        getFamilyName(self) -> string
+        getFamilyName(ModelCreator self) -> string
 
         Returns the 'family name' stored in this ModelCreator object.
 
@@ -53113,7 +52452,7 @@ class ModelCreator(_object):
 
     def getGivenName(self):
         """
-        getGivenName(self) -> string
+        getGivenName(ModelCreator self) -> string
 
         Returns the 'given name' stored in this ModelCreator object.
 
@@ -53124,7 +52463,7 @@ class ModelCreator(_object):
 
     def getEmail(self):
         """
-        getEmail(self) -> string
+        getEmail(ModelCreator self) -> string
 
         Returns the 'email' stored in this ModelCreator object.
 
@@ -53135,7 +52474,7 @@ class ModelCreator(_object):
 
     def getOrganization(self):
         """
-        getOrganization(self) -> string
+        getOrganization(ModelCreator self) -> string
 
         Returns the 'organization' stored in this ModelCreator object.
 
@@ -53146,7 +52485,7 @@ class ModelCreator(_object):
 
     def getOrganisation(self):
         """
-        getOrganisation(self) -> string
+        getOrganisation(ModelCreator self) -> string
 
         (Alternate spelling) Returns the 'organization' stored in this
         ModelCreator object.
@@ -53164,7 +52503,7 @@ class ModelCreator(_object):
 
     def isSetFamilyName(self):
         """
-        isSetFamilyName(self) -> bool
+        isSetFamilyName(ModelCreator self) -> bool
 
         Predicate returning True or False depending on whether this
         ModelCreator's 'family name' part is set.
@@ -53177,7 +52516,7 @@ class ModelCreator(_object):
 
     def isSetGivenName(self):
         """
-        isSetGivenName(self) -> bool
+        isSetGivenName(ModelCreator self) -> bool
 
         Predicate returning True or False depending on whether this
         ModelCreator's 'given name' part is set.
@@ -53190,7 +52529,7 @@ class ModelCreator(_object):
 
     def isSetEmail(self):
         """
-        isSetEmail(self) -> bool
+        isSetEmail(ModelCreator self) -> bool
 
         Predicate returning True or False depending on whether this
         ModelCreator's 'email' part is set.
@@ -53203,7 +52542,7 @@ class ModelCreator(_object):
 
     def isSetOrganization(self):
         """
-        isSetOrganization(self) -> bool
+        isSetOrganization(ModelCreator self) -> bool
 
         Predicate returning True or False depending on whether this
         ModelCreator's 'organization' part is set.
@@ -53216,7 +52555,7 @@ class ModelCreator(_object):
 
     def isSetOrganisation(self):
         """
-        isSetOrganisation(self) -> bool
+        isSetOrganisation(ModelCreator self) -> bool
 
         (Alternate spelling) Predicate returning True or False depending on
         whether this ModelCreator's 'organization' part is set.
@@ -53235,7 +52574,7 @@ class ModelCreator(_object):
 
     def setFamilyName(self, *args):
         """
-        setFamilyName(self, string familyName) -> int
+        setFamilyName(ModelCreator self, string familyName) -> int
 
         Sets the 'family name' portion of this ModelCreator object.
 
@@ -53254,7 +52593,7 @@ class ModelCreator(_object):
 
     def setGivenName(self, *args):
         """
-        setGivenName(self, string givenName) -> int
+        setGivenName(ModelCreator self, string givenName) -> int
 
         Sets the 'given name' portion of this ModelCreator object.
 
@@ -53273,7 +52612,7 @@ class ModelCreator(_object):
 
     def setEmail(self, *args):
         """
-        setEmail(self, string email) -> int
+        setEmail(ModelCreator self, string email) -> int
 
         Sets the 'email' portion of this ModelCreator object.
 
@@ -53292,7 +52631,7 @@ class ModelCreator(_object):
 
     def setOrganization(self, *args):
         """
-        setOrganization(self, string organization) -> int
+        setOrganization(ModelCreator self, string organization) -> int
 
         Sets the 'organization' portion of this ModelCreator object.
 
@@ -53311,7 +52650,7 @@ class ModelCreator(_object):
 
     def setOrganisation(self, *args):
         """
-        setOrganisation(self, string organization) -> int
+        setOrganisation(ModelCreator self, string organization) -> int
 
         (Alternate spelling) Sets the 'organization' portion of this
         ModelCreator object.
@@ -53337,7 +52676,7 @@ class ModelCreator(_object):
 
     def unsetFamilyName(self):
         """
-        unsetFamilyName(self) -> int
+        unsetFamilyName(ModelCreator self) -> int
 
         Unsets the 'family name' portion of this ModelCreator object.
 
@@ -53353,7 +52692,7 @@ class ModelCreator(_object):
 
     def unsetGivenName(self):
         """
-        unsetGivenName(self) -> int
+        unsetGivenName(ModelCreator self) -> int
 
         Unsets the 'given name' portion of this ModelCreator object.
 
@@ -53369,7 +52708,7 @@ class ModelCreator(_object):
 
     def unsetEmail(self):
         """
-        unsetEmail(self) -> int
+        unsetEmail(ModelCreator self) -> int
 
         Unsets the 'email' portion of this ModelCreator object.
 
@@ -53385,7 +52724,7 @@ class ModelCreator(_object):
 
     def unsetOrganization(self):
         """
-        unsetOrganization(self) -> int
+        unsetOrganization(ModelCreator self) -> int
 
         Unsets the 'organization' portion of this ModelCreator object.
 
@@ -53401,7 +52740,7 @@ class ModelCreator(_object):
 
     def unsetOrganisation(self):
         """
-        unsetOrganisation(self) -> int
+        unsetOrganisation(ModelCreator self) -> int
 
         (Alternate spelling) Unsets the 'organization' portion of this
         ModelCreator object.
@@ -53424,7 +52763,7 @@ class ModelCreator(_object):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(ModelCreator self) -> bool
 
         Predicate returning True if all the required elements for this
         ModelCreator object have been set.
@@ -53440,7 +52779,7 @@ class ModelCreator(_object):
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(ModelCreator self) -> bool
 
         Internal implementation method.
 
@@ -53449,7 +52788,7 @@ class ModelCreator(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(ModelCreator self)
 
         Internal implementation method.
 
@@ -53544,8 +52883,8 @@ class ModelHistory(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self) -> ModelHistory
-        __init__(self, ModelHistory orig) -> ModelHistory
+        __init__(ModelHistory self) -> ModelHistory
+        __init__(ModelHistory self, ModelHistory orig) -> ModelHistory
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -53572,7 +52911,7 @@ class ModelHistory(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> ModelHistory
+        clone(ModelHistory self) -> ModelHistory
 
         Creates and returns a deep copy of this ModelHistory object.
 
@@ -53583,7 +52922,7 @@ class ModelHistory(_object):
 
     def getCreatedDate(self):
         """
-        getCreatedDate(self) -> Date
+        getCreatedDate(ModelHistory self) -> Date
 
         Returns the 'creation date' portion of this ModelHistory object.
 
@@ -53595,7 +52934,7 @@ class ModelHistory(_object):
 
     def isSetCreatedDate(self):
         """
-        isSetCreatedDate(self) -> bool
+        isSetCreatedDate(ModelHistory self) -> bool
 
         Predicate returning True or False depending on whether this
         ModelHistory's 'creation date' is set.
@@ -53608,7 +52947,7 @@ class ModelHistory(_object):
 
     def isSetModifiedDate(self):
         """
-        isSetModifiedDate(self) -> bool
+        isSetModifiedDate(ModelHistory self) -> bool
 
         Predicate returning True or False depending on whether this
         ModelHistory's 'modified date' is set.
@@ -53621,7 +52960,7 @@ class ModelHistory(_object):
 
     def setCreatedDate(self, *args):
         """
-        setCreatedDate(self, Date date) -> int
+        setCreatedDate(ModelHistory self, Date date) -> int
 
         Sets the creation date of this ModelHistory object.
 
@@ -53640,7 +52979,7 @@ class ModelHistory(_object):
 
     def setModifiedDate(self, *args):
         """
-        setModifiedDate(self, Date date) -> int
+        setModifiedDate(ModelHistory self, Date date) -> int
 
         Sets the modification date of this ModelHistory object.
 
@@ -53661,7 +53000,7 @@ class ModelHistory(_object):
 
     def addModifiedDate(self, *args):
         """
-        addModifiedDate(self, Date date) -> int
+        addModifiedDate(ModelHistory self, Date date) -> int
 
         Adds a copy of a Date object to the list of 'modified date' values
         stored in this ModelHistory object.
@@ -53689,7 +53028,7 @@ class ModelHistory(_object):
       """
       getListModifiedDates(self) -> DateList
 
-      Get the DateList of Date objects in this ModelHistory.
+      Get the List of Date objects in this ModelHistory.
 
       Returns the DateList for this ModelHistory.
             
@@ -53700,8 +53039,8 @@ class ModelHistory(_object):
 
     def getModifiedDate(self, *args):
         """
-        getModifiedDate(self) -> Date
-        getModifiedDate(self, unsigned int n) -> Date
+        getModifiedDate(ModelHistory self) -> Date
+        getModifiedDate(ModelHistory self, unsigned int n) -> Date
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -53742,7 +53081,7 @@ class ModelHistory(_object):
 
     def getNumModifiedDates(self):
         """
-        getNumModifiedDates(self) -> unsigned int
+        getNumModifiedDates(ModelHistory self) -> unsigned int
 
         Get the number of Date objects in this ModelHistory object's list of
         'modified dates'.
@@ -53758,7 +53097,7 @@ class ModelHistory(_object):
 
     def addCreator(self, *args):
         """
-        addCreator(self, ModelCreator mc) -> int
+        addCreator(ModelHistory self, ModelCreator mc) -> int
 
         Adds a copy of a ModelCreator object to the list of 'model creator'
         values stored in this ModelHistory object.
@@ -53785,7 +53124,7 @@ class ModelHistory(_object):
       """
       getListCreators(self) -> ModelCreatorList
 
-      Get the ModelCreatorList of ModelCreator objects in this 
+      Get the List of ModelCreator objects in this 
       ModelHistory.
 
       Returns the ModelCreatorList for this ModelHistory.
@@ -53797,7 +53136,7 @@ class ModelHistory(_object):
 
     def getCreator(self, *args):
         """
-        getCreator(self, unsigned int n) -> ModelCreator
+        getCreator(ModelHistory self, unsigned int n) -> ModelCreator
 
         Get the nth ModelCreator object stored in this ModelHistory object.
 
@@ -53812,7 +53151,7 @@ class ModelHistory(_object):
 
     def getNumCreators(self):
         """
-        getNumCreators(self) -> unsigned int
+        getNumCreators(ModelHistory self) -> unsigned int
 
         Get the number of ModelCreator objects stored in this ModelHistory
         object.
@@ -53828,7 +53167,7 @@ class ModelHistory(_object):
 
     def hasRequiredAttributes(self):
         """
-        hasRequiredAttributes(self) -> bool
+        hasRequiredAttributes(ModelHistory self) -> bool
 
         Predicate returning True if all the required elements for this
         ModelHistory object have been set.
@@ -53844,7 +53183,7 @@ class ModelHistory(_object):
 
     def hasBeenModified(self):
         """
-        hasBeenModified(self) -> bool
+        hasBeenModified(ModelHistory self) -> bool
 
         Internal implementation method.
 
@@ -53853,7 +53192,7 @@ class ModelHistory(_object):
 
     def resetModifiedFlags(self):
         """
-        resetModifiedFlags(self)
+        resetModifiedFlags(ModelHistory self)
 
         Internal implementation method.
 
@@ -53962,10 +53301,10 @@ class RDFAnnotationParser(_object):
 
     if _newclass:createAnnotation = staticmethod(createAnnotation)
     __swig_getmethods__["createAnnotation"] = lambda x: createAnnotation
-    def createRDFAnnotation(level = 3, version = 1):
+    def createRDFAnnotation(level=3, version=1):
         """
-        createRDFAnnotation(unsigned int level = 3, unsigned int version = 1) -> XMLNode
-        createRDFAnnotation(unsigned int level = 3) -> XMLNode
+        createRDFAnnotation(unsigned int level=3, unsigned int version=1) -> XMLNode
+        createRDFAnnotation(unsigned int level=3) -> XMLNode
         createRDFAnnotation() -> XMLNode
 
         Creates a blank RDF element suitable for use in SBML annotations.
@@ -54234,13 +53573,12 @@ class RDFAnnotationParser(_object):
     __swig_getmethods__["deleteRDFCVTermAnnotation"] = lambda x: deleteRDFCVTermAnnotation
     def parseRDFAnnotation(*args):
         """
-        parseRDFAnnotation(XMLNode annotation, char metaId = None, XMLInputStream stream = None) -> ModelHistory
-        parseRDFAnnotation(XMLNode annotation, char metaId = None) -> ModelHistory
+        parseRDFAnnotation(XMLNode annotation, char const * metaId=None, XMLInputStream stream=None) -> ModelHistory
+        parseRDFAnnotation(XMLNode annotation, char const * metaId=None) -> ModelHistory
         parseRDFAnnotation(XMLNode annotation) -> ModelHistory
         parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms)
-        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None, 
-            XMLInputStream stream = None)
-        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None)
+        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None, XMLInputStream stream=None)
+        parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None)
 
         Parses an annotation (given as an XMLNode tree) into a list of
         CVTerm objects.
@@ -54265,7 +53603,7 @@ class RDFAnnotationParser(_object):
     __swig_getmethods__["parseRDFAnnotation"] = lambda x: parseRDFAnnotation
     def __init__(self): 
         """
-        __init__(self) -> RDFAnnotationParser
+        __init__(RDFAnnotationParser self) -> RDFAnnotationParser
 
         @internal
 
@@ -54324,10 +53662,10 @@ def RDFAnnotationParser_createAnnotation():
     """
   return _libsbml.RDFAnnotationParser_createAnnotation()
 
-def RDFAnnotationParser_createRDFAnnotation(level = 3, version = 1):
+def RDFAnnotationParser_createRDFAnnotation(level=3, version=1):
   """
-    createRDFAnnotation(unsigned int level = 3, unsigned int version = 1) -> XMLNode
-    createRDFAnnotation(unsigned int level = 3) -> XMLNode
+    createRDFAnnotation(unsigned int level=3, unsigned int version=1) -> XMLNode
+    createRDFAnnotation(unsigned int level=3) -> XMLNode
     RDFAnnotationParser_createRDFAnnotation() -> XMLNode
 
     Creates a blank RDF element suitable for use in SBML annotations.
@@ -54580,13 +53918,12 @@ def RDFAnnotationParser_deleteRDFCVTermAnnotation(*args):
 
 def RDFAnnotationParser_parseRDFAnnotation(*args):
   """
-    parseRDFAnnotation(XMLNode annotation, char metaId = None, XMLInputStream stream = None) -> ModelHistory
-    parseRDFAnnotation(XMLNode annotation, char metaId = None) -> ModelHistory
+    parseRDFAnnotation(XMLNode annotation, char const * metaId=None, XMLInputStream stream=None) -> ModelHistory
+    parseRDFAnnotation(XMLNode annotation, char const * metaId=None) -> ModelHistory
     parseRDFAnnotation(XMLNode annotation) -> ModelHistory
     parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms)
-    parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None, 
-        XMLInputStream stream = None)
-    RDFAnnotationParser_parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None)
+    parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None, XMLInputStream stream=None)
+    RDFAnnotationParser_parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None)
 
     Parses an annotation (given as an XMLNode tree) into a list of
     CVTerm objects.
@@ -54624,7 +53961,7 @@ class ISBMLExtensionNamespaces(SBMLNamespaces):
     __del__ = lambda self : None;
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(ISBMLExtensionNamespaces self) -> string
 
         Returns a string representing the SBML XML namespace of this object.
 
@@ -54635,12 +53972,12 @@ class ISBMLExtensionNamespaces(SBMLNamespaces):
         return _libsbml.ISBMLExtensionNamespaces_getURI(self)
 
     def getPackageVersion(self):
-        """getPackageVersion(self) -> unsigned int"""
+        """getPackageVersion(ISBMLExtensionNamespaces self) -> unsigned int"""
         return _libsbml.ISBMLExtensionNamespaces_getPackageVersion(self)
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ISBMLExtensionNamespaces self) -> string
 
         Returns the name of the main package for this namespace.
 
@@ -54651,7 +53988,7 @@ class ISBMLExtensionNamespaces(SBMLNamespaces):
         return _libsbml.ISBMLExtensionNamespaces_getPackageName(self)
 
     def setPackageVersion(self, *args):
-        """setPackageVersion(self, unsigned int pkgVersion)"""
+        """setPackageVersion(ISBMLExtensionNamespaces self, unsigned int pkgVersion)"""
         return _libsbml.ISBMLExtensionNamespaces_setPackageVersion(self, *args)
 
 ISBMLExtensionNamespaces_swigregister = _libsbml.ISBMLExtensionNamespaces_swigregister
@@ -54671,10 +54008,10 @@ class SBaseExtensionPoint(_object):
     __del__ = lambda self : None;
     def __init__(self, *args): 
         """
-        __init__(self, string pkgName, int typeCode) -> SBaseExtensionPoint
-        __init__(self, string pkgName, int typeCode, string elementName, bool elementOnly = False) -> SBaseExtensionPoint
-        __init__(self, string pkgName, int typeCode, string elementName) -> SBaseExtensionPoint
-        __init__(self, SBaseExtensionPoint rhs) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, string pkgName, int typeCode) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, string pkgName, int typeCode, string elementName, bool elementOnly=False) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, string pkgName, int typeCode, string elementName) -> SBaseExtensionPoint
+        __init__(SBaseExtensionPoint self, SBaseExtensionPoint rhs) -> SBaseExtensionPoint
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -54757,7 +54094,7 @@ class SBaseExtensionPoint(_object):
         except: self.this = this
     def clone(self):
         """
-        clone(self) -> SBaseExtensionPoint
+        clone(SBaseExtensionPoint self) -> SBaseExtensionPoint
 
         Creates and returns a deep copy of this SBaseExtensionPoint object.
 
@@ -54768,7 +54105,7 @@ class SBaseExtensionPoint(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBaseExtensionPoint self) -> string
 
         Returns the package name of this extension point.
 
@@ -54777,7 +54114,7 @@ class SBaseExtensionPoint(_object):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(SBaseExtensionPoint self) -> int
 
         Returns the libSBML type code of this extension point.
 
@@ -54786,7 +54123,7 @@ class SBaseExtensionPoint(_object):
 
     def getElementName(self):
         """
-        getElementName(self) -> string
+        getElementName(SBaseExtensionPoint self) -> string
 
         the target element name
 
@@ -54795,7 +54132,7 @@ class SBaseExtensionPoint(_object):
 
     def isElementOnly(self):
         """
-        isElementOnly(self) -> bool
+        isElementOnly(SBaseExtensionPoint self) -> bool
 
         """
         return _libsbml.SBaseExtensionPoint_isElementOnly(self)
@@ -54864,7 +54201,7 @@ class SBasePlugin(_object):
     __del__ = lambda self : None;
     def getElementNamespace(self):
         """
-        getElementNamespace(self) -> string
+        getElementNamespace(SBasePlugin self) -> string
 
         Returns the namespace URI of the package to which this plugin object
         belongs.
@@ -54877,7 +54214,7 @@ class SBasePlugin(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(SBasePlugin self) -> string
 
         Returns the XML namespace prefix of the package to which this plugin
         object belongs.
@@ -54890,7 +54227,7 @@ class SBasePlugin(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(SBasePlugin self) -> string
 
         Returns the short-form name of the package to which this plugin object
         belongs.
@@ -54903,7 +54240,7 @@ class SBasePlugin(_object):
 
     def clone(self):
         """
-        clone(self) -> SBasePlugin
+        clone(SBasePlugin self) -> SBasePlugin
 
         Creates and returns a deep copy of this SBasePlugin object.
 
@@ -54914,7 +54251,7 @@ class SBasePlugin(_object):
 
     def getElementBySId(self, *args):
         """
-        getElementBySId(self, string id) -> SBase
+        getElementBySId(SBasePlugin self, string id) -> SBase
 
         Return the first child object found with a given identifier.
 
@@ -54936,7 +54273,7 @@ class SBasePlugin(_object):
 
     def getElementByMetaId(self, *args):
         """
-        getElementByMetaId(self, string metaid) -> SBase
+        getElementByMetaId(SBasePlugin self, string metaid) -> SBase
 
         Return the first child object found with a given meta identifier.
 
@@ -54952,7 +54289,7 @@ class SBasePlugin(_object):
 
     def connectToParent(self, *args):
         """
-        connectToParent(self, SBase sbase)
+        connectToParent(SBasePlugin self, SBase sbase)
 
         Internal implementation method.
 
@@ -54961,7 +54298,7 @@ class SBasePlugin(_object):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(SBasePlugin self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -54970,7 +54307,7 @@ class SBasePlugin(_object):
 
     def stripPackage(self, *args):
         """
-        stripPackage(self, string pkgPrefix, bool flag) -> bool
+        stripPackage(SBasePlugin self, string pkgPrefix, bool flag) -> bool
 
         Internal implementation method.
 
@@ -54979,8 +54316,8 @@ class SBasePlugin(_object):
 
     def getSBMLDocument(self, *args):
         """
-        getSBMLDocument(self) -> SBMLDocument
-        getSBMLDocument(self) -> SBMLDocument
+        getSBMLDocument(SBasePlugin self) -> SBMLDocument
+        getSBMLDocument(SBasePlugin self) -> SBMLDocument
 
         Returns the SBMLDocument object containing this object instance.
 
@@ -55005,7 +54342,7 @@ class SBasePlugin(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(SBasePlugin self) -> string
 
         Returns the XML namespace URI for the package to which this object
         belongs.
@@ -55030,16 +54367,15 @@ class SBasePlugin(_object):
         Returns a string, the URI of the XML namespace to which this object
         belongs.
 
-        See also getPackageName(), getElementNamespace(),
-        SBMLDocument.getSBMLNamespaces(), getSBMLDocument().
+        See also getPackageName(), getElementNamespace(), getSBMLDocument().
 
         """
         return _libsbml.SBasePlugin_getURI(self)
 
     def getParentSBMLObject(self, *args):
         """
-        getParentSBMLObject(self) -> SBase
-        getParentSBMLObject(self) -> SBase
+        getParentSBMLObject(SBasePlugin self) -> SBase
+        getParentSBMLObject(SBasePlugin self) -> SBase
 
         Returns the parent object to which this plugin object is connected.
 
@@ -55050,7 +54386,7 @@ class SBasePlugin(_object):
 
     def setElementNamespace(self, *args):
         """
-        setElementNamespace(self, string uri) -> int
+        setElementNamespace(SBasePlugin self, string uri) -> int
 
         Sets the XML namespace to which this object belongs.
 
@@ -55081,7 +54417,7 @@ class SBasePlugin(_object):
 
     def getLevel(self):
         """
-        getLevel(self) -> unsigned int
+        getLevel(SBasePlugin self) -> unsigned int
 
         Returns the SBML Level of the package extension of this plugin object.
 
@@ -55094,7 +54430,7 @@ class SBasePlugin(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> unsigned int
+        getVersion(SBasePlugin self) -> unsigned int
 
         Returns the Version within the SBML Level of the package extension of
         this plugin object.
@@ -55108,7 +54444,7 @@ class SBasePlugin(_object):
 
     def getPackageVersion(self):
         """
-        getPackageVersion(self) -> unsigned int
+        getPackageVersion(SBasePlugin self) -> unsigned int
 
         Returns the package version of the package extension of this plugin
         object.
@@ -55123,7 +54459,7 @@ class SBasePlugin(_object):
 
     def replaceSIDWithFunction(self, *args):
         """
-        replaceSIDWithFunction(self, string id, ASTNode function)
+        replaceSIDWithFunction(SBasePlugin self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -55132,7 +54468,7 @@ class SBasePlugin(_object):
 
     def divideAssignmentsToSIdByFunction(self, *args):
         """
-        divideAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        divideAssignmentsToSIdByFunction(SBasePlugin self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -55141,7 +54477,7 @@ class SBasePlugin(_object):
 
     def multiplyAssignmentsToSIdByFunction(self, *args):
         """
-        multiplyAssignmentsToSIdByFunction(self, string id, ASTNode function)
+        multiplyAssignmentsToSIdByFunction(SBasePlugin self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -55150,7 +54486,7 @@ class SBasePlugin(_object):
 
     def hasIdentifierBeginningWith(self, *args):
         """
-        hasIdentifierBeginningWith(self, string prefix) -> bool
+        hasIdentifierBeginningWith(SBasePlugin self, string prefix) -> bool
 
         Internal implementation method.
 
@@ -55159,7 +54495,7 @@ class SBasePlugin(_object):
 
     def prependStringToAllIdentifiers(self, *args):
         """
-        prependStringToAllIdentifiers(self, string prefix) -> int
+        prependStringToAllIdentifiers(SBasePlugin self, string prefix) -> int
 
         Internal implementation method.
 
@@ -55168,7 +54504,7 @@ class SBasePlugin(_object):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(SBasePlugin self, string oldid, string newid)
 
         Replaces all uses of a given SIdRef type attribute value with another
         value.
@@ -55196,7 +54532,7 @@ class SBasePlugin(_object):
 
     def renameMetaIdRefs(self, *args):
         """
-        renameMetaIdRefs(self, string oldid, string newid)
+        renameMetaIdRefs(SBasePlugin self, string oldid, string newid)
 
         Replaces all uses of a given meta identifier attribute value with
         another value.
@@ -55220,7 +54556,7 @@ class SBasePlugin(_object):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(SBasePlugin self, string oldid, string newid)
 
         Replaces all uses of a given UnitSIdRef type attribute value with
         another value.
@@ -55249,7 +54585,7 @@ class SBasePlugin(_object):
 
     def transformIdentifiers(self, *args):
         """
-        transformIdentifiers(self, IdentifierTransformer sidTransformer) -> int
+        transformIdentifiers(SBasePlugin self, IdentifierTransformer sidTransformer) -> int
 
         Internal implementation method.
 
@@ -55258,7 +54594,7 @@ class SBasePlugin(_object):
 
     def getLine(self):
         """
-        getLine(self) -> unsigned int
+        getLine(SBasePlugin self) -> unsigned int
 
         Internal implementation method.
 
@@ -55267,7 +54603,7 @@ class SBasePlugin(_object):
 
     def getColumn(self):
         """
-        getColumn(self) -> unsigned int
+        getColumn(SBasePlugin self) -> unsigned int
 
         Internal implementation method.
 
@@ -55276,7 +54612,7 @@ class SBasePlugin(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(SBasePlugin self) -> SBMLNamespaces
 
         Internal implementation method.
 
@@ -55285,8 +54621,7 @@ class SBasePlugin(_object):
 
     def logUnknownElement(self, *args):
         """
-        logUnknownElement(self, string element, unsigned int sbmlLevel, unsigned int sbmlVersion, 
-            unsigned int pkgVersion)
+        logUnknownElement(SBasePlugin self, string element, unsigned int const sbmlLevel, unsigned int const sbmlVersion, unsigned int const pkgVersion)
 
         Internal implementation method.
 
@@ -55295,14 +54630,14 @@ class SBasePlugin(_object):
 
     def isValidTypeForList(self, *args):
         """
-        isValidTypeForList(self, SBase item) -> bool
+        isValidTypeForList(SBasePlugin self, SBase item) -> bool
 
         """
         return _libsbml.SBasePlugin_isValidTypeForList(self, *args)
 
     def getSBMLExtension(self):
         """
-        getSBMLExtension(self) -> SBMLExtension
+        getSBMLExtension(SBasePlugin self) -> SBMLExtension
 
         Internal implementation method.
 
@@ -55325,18 +54660,18 @@ class SBasePlugin(_object):
         if (self.this == rhs.this): return False
       return True
 
-    def getListOfAllElements(self, filter = None):
-        """
-        getListOfAllElements(self, ElementFilter filter = None) -> SBaseList
-        getListOfAllElements(self) -> SBaseList
+    def getListOfAllElements(self):
+      """
+      getListOfAllElements(self) -> SBaseList
 
-        Returns an SBaseList of all child SBase objects, including those
-        nested to an arbitrary depth.
+      Get the List of SBase objects in this plugin.
 
-        @return a list of all objects that are children of this object.
+      Returns the SBaseList of all element for this plugin.
+
+
+      """
+      return _libsbml.SBasePlugin_getListOfAllElements(self)
 
-        """
-        return _libsbml.SBasePlugin_getListOfAllElements(self, filter)
 
 SBasePlugin_swigregister = _libsbml.SBasePlugin_swigregister
 SBasePlugin_swigregister(SBasePlugin)
@@ -55401,8 +54736,8 @@ class SBMLDocumentPlugin(SBasePlugin):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string uri, string prefix, SBMLNamespaces sbmlns) -> SBMLDocumentPlugin
-        __init__(self, SBMLDocumentPlugin orig) -> SBMLDocumentPlugin
+        __init__(SBMLDocumentPlugin self, string uri, string prefix, SBMLNamespaces sbmlns) -> SBMLDocumentPlugin
+        __init__(SBMLDocumentPlugin self, SBMLDocumentPlugin orig) -> SBMLDocumentPlugin
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -55463,7 +54798,7 @@ class SBMLDocumentPlugin(SBasePlugin):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> SBMLDocumentPlugin
+        clone(SBMLDocumentPlugin self) -> SBMLDocumentPlugin
 
         Creates and returns a deep copy of this SBMLDocumentPlugin object.
 
@@ -55474,7 +54809,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def setRequired(self, *args):
         """
-        setRequired(self, bool value) -> int
+        setRequired(SBMLDocumentPlugin self, bool value) -> int
 
         Sets the SBML 'required' attribute value.
 
@@ -55518,7 +54853,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def getRequired(self):
         """
-        getRequired(self) -> bool
+        getRequired(SBMLDocumentPlugin self) -> bool
 
         Returns the value of the 'required' attribute.
 
@@ -55553,7 +54888,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def isSetRequired(self):
         """
-        isSetRequired(self) -> bool
+        isSetRequired(SBMLDocumentPlugin self) -> bool
 
         Returns the value of the 'required' attribute.
 
@@ -55587,7 +54922,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def unsetRequired(self):
         """
-        unsetRequired(self) -> int
+        unsetRequired(SBMLDocumentPlugin self) -> int
 
         Unsets the value of the 'required' attribute of this
         SBMLDocumentPlugin.
@@ -55602,7 +54937,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def isCompFlatteningImplemented(self):
         """
-        isCompFlatteningImplemented(self) -> bool
+        isCompFlatteningImplemented(SBMLDocumentPlugin self) -> bool
 
         Internal implementation method.
 
@@ -55611,7 +54946,7 @@ class SBMLDocumentPlugin(SBasePlugin):
 
     def checkConsistency(self):
         """
-        checkConsistency(self) -> unsigned int
+        checkConsistency(SBMLDocumentPlugin self) -> unsigned int
 
         Internal implementation method.
 
@@ -55734,7 +55069,7 @@ class SBMLExtension(_object):
     __del__ = lambda self : None;
     def getNumOfSBasePlugins(self):
         """
-        getNumOfSBasePlugins(self) -> int
+        getNumOfSBasePlugins(SBMLExtension self) -> int
 
         Returns the number of SBasePluginCreatorBase objects stored in this
         object.
@@ -55747,7 +55082,7 @@ class SBMLExtension(_object):
 
     def getNumOfSupportedPackageURI(self):
         """
-        getNumOfSupportedPackageURI(self) -> unsigned int
+        getNumOfSupportedPackageURI(SBMLExtension self) -> unsigned int
 
         Returns the number of supported package namespace URIs.
 
@@ -55759,7 +55094,7 @@ class SBMLExtension(_object):
 
     def isSupported(self, *args):
         """
-        isSupported(self, string uri) -> bool
+        isSupported(SBMLExtension self, string uri) -> bool
 
         Returns True if the given XML namespace URI is supported by this
         package extension.
@@ -55772,7 +55107,7 @@ class SBMLExtension(_object):
 
     def getSupportedPackageURI(self, *args):
         """
-        getSupportedPackageURI(self, unsigned int n) -> string
+        getSupportedPackageURI(SBMLExtension self, unsigned int n) -> string
 
         Returns the nth XML namespace URI.
 
@@ -55786,7 +55121,7 @@ class SBMLExtension(_object):
 
     def clone(self):
         """
-        clone(self) -> SBMLExtension
+        clone(SBMLExtension self) -> SBMLExtension
 
         Creates and returns a deep copy of this SBMLExtension object.
 
@@ -55803,7 +55138,7 @@ class SBMLExtension(_object):
 
     def getName(self):
         """
-        getName(self) -> string
+        getName(SBMLExtension self) -> string
 
         Returns the nickname of this package.
 
@@ -55824,7 +55159,7 @@ class SBMLExtension(_object):
 
     def getURI(self, *args):
         """
-        getURI(self, unsigned int sbmlLevel, unsigned int sbmlVersion, unsigned int pkgVersion) -> string
+        getURI(SBMLExtension self, unsigned int sbmlLevel, unsigned int sbmlVersion, unsigned int pkgVersion) -> string
 
         Returns the XML namespace URI for a given Level and Version.
 
@@ -55846,7 +55181,7 @@ class SBMLExtension(_object):
 
     def getLevel(self, *args):
         """
-        getLevel(self, string uri) -> unsigned int
+        getLevel(SBMLExtension self, string uri) -> unsigned int
 
         Returns the SBML Level associated with the given XML namespace URI.
 
@@ -55866,7 +55201,7 @@ class SBMLExtension(_object):
 
     def getVersion(self, *args):
         """
-        getVersion(self, string uri) -> unsigned int
+        getVersion(SBMLExtension self, string uri) -> unsigned int
 
         Returns the SBML Version associated with the given XML namespace URI.
 
@@ -55887,7 +55222,7 @@ class SBMLExtension(_object):
 
     def getPackageVersion(self, *args):
         """
-        getPackageVersion(self, string uri) -> unsigned int
+        getPackageVersion(SBMLExtension self, string uri) -> unsigned int
 
         Returns the package version associated with the given XML namespace
         URI.
@@ -55909,7 +55244,7 @@ class SBMLExtension(_object):
 
     def getStringFromTypeCode(self, *args):
         """
-        getStringFromTypeCode(self, int typeCode) -> char
+        getStringFromTypeCode(SBMLExtension self, int typeCode) -> char const *
 
         Returns a string representation of a type code.
 
@@ -55932,7 +55267,7 @@ class SBMLExtension(_object):
 
     def getSBMLExtensionNamespaces(self, *args):
         """
-        getSBMLExtensionNamespaces(self, string uri) -> SBMLNamespaces
+        getSBMLExtensionNamespaces(SBMLExtension self, string uri) -> SBMLNamespaces
 
         Returns a specialized SBMLNamespaces object corresponding to a given
         namespace URI.
@@ -55959,7 +55294,7 @@ class SBMLExtension(_object):
 
     def setEnabled(self, *args):
         """
-        setEnabled(self, bool isEnabled) -> bool
+        setEnabled(SBMLExtension self, bool isEnabled) -> bool
 
         Enable or disable this package.
 
@@ -55973,7 +55308,7 @@ class SBMLExtension(_object):
 
     def isEnabled(self):
         """
-        isEnabled(self) -> bool
+        isEnabled(SBMLExtension self) -> bool
 
         Returns True if this package is enabled.
 
@@ -55984,7 +55319,7 @@ class SBMLExtension(_object):
 
     def removeL2Namespaces(self, *args):
         """
-        removeL2Namespaces(self, XMLNamespaces xmlns)
+        removeL2Namespaces(SBMLExtension self, XMLNamespaces xmlns)
 
         Internal implementation method.
 
@@ -55993,7 +55328,7 @@ class SBMLExtension(_object):
 
     def addL2Namespaces(self, *args):
         """
-        addL2Namespaces(self, XMLNamespaces xmlns)
+        addL2Namespaces(SBMLExtension self, XMLNamespaces xmlns)
 
         Internal implementation method.
 
@@ -56002,7 +55337,7 @@ class SBMLExtension(_object):
 
     def enableL2NamespaceForDocument(self, *args):
         """
-        enableL2NamespaceForDocument(self, SBMLDocument doc)
+        enableL2NamespaceForDocument(SBMLExtension self, SBMLDocument doc)
 
         Internal implementation method.
 
@@ -56011,7 +55346,7 @@ class SBMLExtension(_object):
 
     def isInUse(self, *args):
         """
-        isInUse(self, SBMLDocument doc) -> bool
+        isInUse(SBMLExtension self, SBMLDocument doc) -> bool
 
         Indicates whether this extension is being used by the given
         SBMLDocument.
@@ -56031,7 +55366,7 @@ class SBMLExtension(_object):
 
     def hasMultipleVersions(self):
         """
-        hasMultipleVersions(self) -> bool
+        hasMultipleVersions(SBMLExtension self) -> bool
 
         Internal implementation method.
 
@@ -56040,7 +55375,7 @@ class SBMLExtension(_object):
 
     def getErrorTableIndex(self, *args):
         """
-        getErrorTableIndex(self, unsigned int errorId) -> unsigned int
+        getErrorTableIndex(SBMLExtension self, unsigned int errorId) -> unsigned int
 
         Internal implementation method.
 
@@ -56049,7 +55384,7 @@ class SBMLExtension(_object):
 
     def getErrorIdOffset(self):
         """
-        getErrorIdOffset(self) -> unsigned int
+        getErrorIdOffset(SBMLExtension self) -> unsigned int
 
         Internal implementation method.
 
@@ -56058,7 +55393,7 @@ class SBMLExtension(_object):
 
     def getSeverity(self, *args):
         """
-        getSeverity(self, unsigned int index, unsigned int pkgVersion) -> unsigned int
+        getSeverity(SBMLExtension self, unsigned int index, unsigned int pkgVersion) -> unsigned int
 
         Internal implementation method.
 
@@ -56067,7 +55402,7 @@ class SBMLExtension(_object):
 
     def getCategory(self, *args):
         """
-        getCategory(self, unsigned int index) -> unsigned int
+        getCategory(SBMLExtension self, unsigned int index) -> unsigned int
 
         Internal implementation method.
 
@@ -56076,7 +55411,7 @@ class SBMLExtension(_object):
 
     def getMessage(self, *args):
         """
-        getMessage(self, unsigned int index, unsigned int pkgVersion, string details) -> string
+        getMessage(SBMLExtension self, unsigned int index, unsigned int pkgVersion, string details) -> string
 
         Internal implementation method.
 
@@ -56085,7 +55420,7 @@ class SBMLExtension(_object):
 
     def getShortMessage(self, *args):
         """
-        getShortMessage(self, unsigned int index) -> string
+        getShortMessage(SBMLExtension self, unsigned int index) -> string
 
         Internal implementation method.
 
@@ -56136,7 +55471,7 @@ class SBMLExtensionException(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, string errmsg) -> SBMLExtensionException
+        __init__(SBMLExtensionException self, string errmsg) -> SBMLExtensionException
 
         Creates a new SBMLExtensionException object with a given message.
 
@@ -56201,7 +55536,7 @@ class SBMLExtensionRegistry(_object):
     __swig_getmethods__["getInstance"] = lambda x: getInstance
     def addExtension(self, *args):
         """
-        addExtension(self, SBMLExtension ext) -> int
+        addExtension(SBMLExtensionRegistry self, SBMLExtension ext) -> int
 
         Add the given SBMLExtension object to this SBMLExtensionRegistry.
 
@@ -56221,7 +55556,7 @@ class SBMLExtensionRegistry(_object):
 
     def getExtension(self, *args):
         """
-        getExtension(self, string package) -> SBMLExtension
+        getExtension(SBMLExtensionRegistry self, string package) -> SBMLExtension
 
         Returns an SBMLExtension object with the given package URI or package
         name.
@@ -56243,7 +55578,7 @@ class SBMLExtensionRegistry(_object):
 
     def removeL2Namespaces(self, *args):
         """
-        removeL2Namespaces(self, XMLNamespaces xmlns)
+        removeL2Namespaces(SBMLExtensionRegistry self, XMLNamespaces xmlns)
 
         Removes SBML Level 2 namespaces from the namespace list.
 
@@ -56255,7 +55590,7 @@ class SBMLExtensionRegistry(_object):
 
     def addL2Namespaces(self, *args):
         """
-        addL2Namespaces(self, XMLNamespaces xmlns)
+        addL2Namespaces(SBMLExtensionRegistry self, XMLNamespaces xmlns)
 
         Adds SBML Level 2 namespaces to the namespace list.
 
@@ -56267,7 +55602,7 @@ class SBMLExtensionRegistry(_object):
 
     def enableL2NamespaceForDocument(self, *args):
         """
-        enableL2NamespaceForDocument(self, SBMLDocument doc)
+        enableL2NamespaceForDocument(SBMLExtensionRegistry self, SBMLDocument doc)
 
         Enables package extensions that support serialization to SBML
         annotations.
@@ -56285,7 +55620,7 @@ class SBMLExtensionRegistry(_object):
 
     def disableUnusedPackages(self, *args):
         """
-        disableUnusedPackages(self, SBMLDocument doc)
+        disableUnusedPackages(SBMLExtensionRegistry self, SBMLDocument doc)
 
         Disables unused packages.
 
@@ -56342,7 +55677,7 @@ class SBMLExtensionRegistry(_object):
     __swig_getmethods__["enablePackage"] = lambda x: enablePackage
     def getNumExtension(self, *args):
         """
-        getNumExtension(self, SBaseExtensionPoint extPoint) -> unsigned int
+        getNumExtension(SBMLExtensionRegistry self, SBaseExtensionPoint extPoint) -> unsigned int
 
         Returns the number of extensions that have a given extension point.
 
@@ -56356,7 +55691,7 @@ class SBMLExtensionRegistry(_object):
 
     def setEnabled(self, *args):
         """
-        setEnabled(self, string uri, bool isEnabled) -> bool
+        setEnabled(SBMLExtensionRegistry self, string uri, bool isEnabled) -> bool
 
         Enables or disable the package with the given URI.
 
@@ -56371,7 +55706,7 @@ class SBMLExtensionRegistry(_object):
 
     def isEnabled(self, *args):
         """
-        isEnabled(self, string uri) -> bool
+        isEnabled(SBMLExtensionRegistry self, string uri) -> bool
 
         Returns True if the given extension is enabled.
 
@@ -56385,7 +55720,7 @@ class SBMLExtensionRegistry(_object):
 
     def isRegistered(self, *args):
         """
-        isRegistered(self, string uri) -> bool
+        isRegistered(SBMLExtensionRegistry self, string uri) -> bool
 
         Returns True if a package extension is registered for the
         corresponding package URI.
@@ -56400,7 +55735,7 @@ class SBMLExtensionRegistry(_object):
 
     def getAllRegisteredPackageNames():
         """
-        getAllRegisteredPackageNames() -> std::vector<(std::string)>
+        getAllRegisteredPackageNames() -> std::vector< std::string >
 
         Returns a list of registered packages.
 
@@ -56502,7 +55837,7 @@ def SBMLExtensionRegistry_enablePackage(*args):
 
 def SBMLExtensionRegistry_getAllRegisteredPackageNames():
   """
-    SBMLExtensionRegistry_getAllRegisteredPackageNames() -> std::vector<(std::string)>
+    SBMLExtensionRegistry_getAllRegisteredPackageNames() -> std::vector< std::string >
 
     Returns a list of registered packages.
 
@@ -56647,6 +55982,56 @@ def representsNumber(*args):
     """
   return _libsbml.representsNumber(*args)
 
+def representsFunction(*args):
+  """
+    representsFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsFunction(int type) -> bool
+
+    Internal implementation method.
+
+    """
+  return _libsbml.representsFunction(*args)
+
+def representsUnaryFunction(*args):
+  """
+    representsUnaryFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsUnaryFunction(int type) -> bool
+
+    Internal implementation method.
+
+    """
+  return _libsbml.representsUnaryFunction(*args)
+
+def representsBinaryFunction(*args):
+  """
+    representsBinaryFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsBinaryFunction(int type) -> bool
+
+    Internal implementation method.
+
+    """
+  return _libsbml.representsBinaryFunction(*args)
+
+def representsNaryFunction(*args):
+  """
+    representsNaryFunction(int type, ASTBasePlugin plugin=None) -> bool
+    representsNaryFunction(int type) -> bool
+
+    Internal implementation method.
+
+    """
+  return _libsbml.representsNaryFunction(*args)
+
+def representsQualifier(*args):
+  """
+    representsQualifier(int type, ASTBasePlugin plugin=None) -> bool
+    representsQualifier(int type) -> bool
+
+    Internal implementation method.
+
+    """
+  return _libsbml.representsQualifier(*args)
+
 def representsFunctionRequiringAtLeastTwoArguments(*args):
   """
     representsFunctionRequiringAtLeastTwoArguments(int type) -> bool
@@ -56667,7 +56052,7 @@ def getCoreTypeFromName(*args):
 
 def getNameFromCoreType(*args):
   """
-    getNameFromCoreType(int type) -> char
+    getNameFromCoreType(int type) -> char const *
 
     Internal implementation method.
 
@@ -56706,7 +56091,7 @@ class ASTBase(_object):
     __del__ = lambda self : None;
     def deepCopy(self):
         """
-        deepCopy(self) -> ASTBase
+        deepCopy(ASTBase self) -> ASTBase
 
         Internal implementation method.
 
@@ -56715,7 +56100,7 @@ class ASTBase(_object):
 
     def loadASTPlugins(self, *args):
         """
-        loadASTPlugins(self, SBMLNamespaces sbmlns)
+        loadASTPlugins(ASTBase self, SBMLNamespaces sbmlns)
 
         Internal implementation method.
 
@@ -56724,7 +56109,7 @@ class ASTBase(_object):
 
     def getType(self):
         """
-        getType(self) -> ASTNodeType_t
+        getType(ASTBase self) -> ASTNodeType_t
 
         Internal implementation method.
 
@@ -56733,7 +56118,7 @@ class ASTBase(_object):
 
     def getExtendedType(self):
         """
-        getExtendedType(self) -> int
+        getExtendedType(ASTBase self) -> int
 
         Internal implementation method.
 
@@ -56742,7 +56127,7 @@ class ASTBase(_object):
 
     def isSetType(self):
         """
-        isSetType(self) -> bool
+        isSetType(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56751,14 +56136,14 @@ class ASTBase(_object):
 
     def setType(self, *args):
         """
-        setType(self, ASTNodeType_t type) -> int
-        setType(self, int type) -> int
+        setType(ASTBase self, ASTNodeType_t type) -> int
+        setType(ASTBase self, int type) -> int
         """
         return _libsbml.ASTBase_setType(self, *args)
 
     def isAvogadro(self):
         """
-        isAvogadro(self) -> bool
+        isAvogadro(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56767,7 +56152,7 @@ class ASTBase(_object):
 
     def isBoolean(self):
         """
-        isBoolean(self) -> bool
+        isBoolean(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56776,7 +56161,7 @@ class ASTBase(_object):
 
     def isBinaryFunction(self):
         """
-        isBinaryFunction(self) -> bool
+        isBinaryFunction(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56785,7 +56170,7 @@ class ASTBase(_object):
 
     def isConstant(self):
         """
-        isConstant(self) -> bool
+        isConstant(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56794,7 +56179,7 @@ class ASTBase(_object):
 
     def isExponential(self):
         """
-        isExponential(self) -> bool
+        isExponential(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56803,7 +56188,7 @@ class ASTBase(_object):
 
     def isCiNumber(self):
         """
-        isCiNumber(self) -> bool
+        isCiNumber(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56812,7 +56197,7 @@ class ASTBase(_object):
 
     def isConstantNumber(self):
         """
-        isConstantNumber(self) -> bool
+        isConstantNumber(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56821,7 +56206,7 @@ class ASTBase(_object):
 
     def isCSymbolFunction(self):
         """
-        isCSymbolFunction(self) -> bool
+        isCSymbolFunction(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56830,7 +56215,7 @@ class ASTBase(_object):
 
     def isCSymbolNumber(self):
         """
-        isCSymbolNumber(self) -> bool
+        isCSymbolNumber(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56839,7 +56224,7 @@ class ASTBase(_object):
 
     def isFunction(self):
         """
-        isFunction(self) -> bool
+        isFunction(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56848,7 +56233,7 @@ class ASTBase(_object):
 
     def isInteger(self):
         """
-        isInteger(self) -> bool
+        isInteger(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56857,7 +56242,7 @@ class ASTBase(_object):
 
     def isLambda(self):
         """
-        isLambda(self) -> bool
+        isLambda(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56866,7 +56251,7 @@ class ASTBase(_object):
 
     def isLogical(self):
         """
-        isLogical(self) -> bool
+        isLogical(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56875,7 +56260,7 @@ class ASTBase(_object):
 
     def isName(self):
         """
-        isName(self) -> bool
+        isName(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56884,7 +56269,7 @@ class ASTBase(_object):
 
     def isNaryFunction(self):
         """
-        isNaryFunction(self) -> bool
+        isNaryFunction(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56893,7 +56278,7 @@ class ASTBase(_object):
 
     def isNumber(self):
         """
-        isNumber(self) -> bool
+        isNumber(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56902,7 +56287,7 @@ class ASTBase(_object):
 
     def isOperator(self):
         """
-        isOperator(self) -> bool
+        isOperator(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56911,7 +56296,7 @@ class ASTBase(_object):
 
     def isPiecewise(self):
         """
-        isPiecewise(self) -> bool
+        isPiecewise(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56920,7 +56305,7 @@ class ASTBase(_object):
 
     def isQualifier(self):
         """
-        isQualifier(self) -> bool
+        isQualifier(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56929,7 +56314,7 @@ class ASTBase(_object):
 
     def isRational(self):
         """
-        isRational(self) -> bool
+        isRational(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56938,7 +56323,7 @@ class ASTBase(_object):
 
     def isReal(self):
         """
-        isReal(self) -> bool
+        isReal(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56947,7 +56332,7 @@ class ASTBase(_object):
 
     def isRelational(self):
         """
-        isRelational(self) -> bool
+        isRelational(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56956,7 +56341,7 @@ class ASTBase(_object):
 
     def isSemantics(self):
         """
-        isSemantics(self) -> bool
+        isSemantics(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56965,7 +56350,7 @@ class ASTBase(_object):
 
     def isUnaryFunction(self):
         """
-        isUnaryFunction(self) -> bool
+        isUnaryFunction(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56974,7 +56359,7 @@ class ASTBase(_object):
 
     def isUnknown(self):
         """
-        isUnknown(self) -> bool
+        isUnknown(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56983,7 +56368,7 @@ class ASTBase(_object):
 
     def isUserFunction(self):
         """
-        isUserFunction(self) -> bool
+        isUserFunction(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -56992,7 +56377,7 @@ class ASTBase(_object):
 
     def representsBvar(self):
         """
-        representsBvar(self) -> bool
+        representsBvar(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57001,7 +56386,7 @@ class ASTBase(_object):
 
     def setIsBvar(self, *args):
         """
-        setIsBvar(self, bool isbvar) -> int
+        setIsBvar(ASTBase self, bool isbvar) -> int
 
         Internal implementation method.
 
@@ -57010,7 +56395,7 @@ class ASTBase(_object):
 
     def isNumberNode(self):
         """
-        isNumberNode(self) -> bool
+        isNumberNode(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57019,7 +56404,7 @@ class ASTBase(_object):
 
     def isFunctionNode(self):
         """
-        isFunctionNode(self) -> bool
+        isFunctionNode(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57028,7 +56413,7 @@ class ASTBase(_object):
 
     def isTopLevelMathMLFunctionNodeTag(self, *args):
         """
-        isTopLevelMathMLFunctionNodeTag(self, string name) -> bool
+        isTopLevelMathMLFunctionNodeTag(ASTBase self, string name) -> bool
 
         Internal implementation method.
 
@@ -57037,7 +56422,7 @@ class ASTBase(_object):
 
     def isTopLevelMathMLNumberNodeTag(self, *args):
         """
-        isTopLevelMathMLNumberNodeTag(self, string name) -> bool
+        isTopLevelMathMLNumberNodeTag(ASTBase self, string name) -> bool
 
         Internal implementation method.
 
@@ -57046,7 +56431,7 @@ class ASTBase(_object):
 
     def write(self, *args):
         """
-        write(self, XMLOutputStream stream)
+        write(ASTBase self, XMLOutputStream stream)
 
         Internal implementation method.
 
@@ -57055,8 +56440,8 @@ class ASTBase(_object):
 
     def read(self, *args):
         """
-        read(self, XMLInputStream stream, string reqd_prefix = "") -> bool
-        read(self, XMLInputStream stream) -> bool
+        read(ASTBase self, XMLInputStream stream, string reqd_prefix="") -> bool
+        read(ASTBase self, XMLInputStream stream) -> bool
 
         Internal implementation method.
 
@@ -57065,7 +56450,7 @@ class ASTBase(_object):
 
     def addExpectedAttributes(self, *args):
         """
-        addExpectedAttributes(self, ExpectedAttributes attributes, XMLInputStream stream)
+        addExpectedAttributes(ASTBase self, ExpectedAttributes & attributes, XMLInputStream stream)
 
         Internal implementation method.
 
@@ -57074,8 +56459,8 @@ class ASTBase(_object):
 
     def readAttributes(self, *args):
         """
-        readAttributes(self, XMLAttributes attributes, ExpectedAttributes expectedAttributes, 
-            XMLInputStream stream, XMLToken element) -> bool
+        readAttributes(ASTBase self, XMLAttributes attributes, ExpectedAttributes const & expectedAttributes, XMLInputStream stream, 
+            XMLToken element) -> bool
 
         Internal implementation method.
 
@@ -57084,9 +56469,8 @@ class ASTBase(_object):
 
     def logError(self, *args):
         """
-        logError(self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code, 
-            string msg = "")
-        logError(self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code)
+        logError(ASTBase self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code, string msg="")
+        logError(ASTBase self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code)
 
         Internal implementation method.
 
@@ -57094,89 +56478,89 @@ class ASTBase(_object):
         return _libsbml.ASTBase_logError(self, *args)
 
     def setIsChildFlag(self, *args):
-        """setIsChildFlag(self, bool flag)"""
+        """setIsChildFlag(ASTBase self, bool flag)"""
         return _libsbml.ASTBase_setIsChildFlag(self, *args)
 
     def getClass(self):
-        """getClass(self) -> string"""
+        """getClass(ASTBase self) -> string"""
         return _libsbml.ASTBase_getClass(self)
 
     def getId(self):
-        """getId(self) -> string"""
+        """getId(ASTBase self) -> string"""
         return _libsbml.ASTBase_getId(self)
 
     def getStyle(self):
-        """getStyle(self) -> string"""
+        """getStyle(ASTBase self) -> string"""
         return _libsbml.ASTBase_getStyle(self)
 
     def getParentSBMLObject(self):
-        """getParentSBMLObject(self) -> SBase"""
+        """getParentSBMLObject(ASTBase self) -> SBase"""
         return _libsbml.ASTBase_getParentSBMLObject(self)
 
     def isSetClass(self):
-        """isSetClass(self) -> bool"""
+        """isSetClass(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetClass(self)
 
     def isSetId(self):
-        """isSetId(self) -> bool"""
+        """isSetId(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetId(self)
 
     def isSetStyle(self):
-        """isSetStyle(self) -> bool"""
+        """isSetStyle(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetStyle(self)
 
     def isSetParentSBMLObject(self):
-        """isSetParentSBMLObject(self) -> bool"""
+        """isSetParentSBMLObject(ASTBase self) -> bool"""
         return _libsbml.ASTBase_isSetParentSBMLObject(self)
 
     def setClass(self, *args):
-        """setClass(self, string className) -> int"""
+        """setClass(ASTBase self, string className) -> int"""
         return _libsbml.ASTBase_setClass(self, *args)
 
     def setId(self, *args):
-        """setId(self, string id) -> int"""
+        """setId(ASTBase self, string id) -> int"""
         return _libsbml.ASTBase_setId(self, *args)
 
     def setStyle(self, *args):
-        """setStyle(self, string style) -> int"""
+        """setStyle(ASTBase self, string style) -> int"""
         return _libsbml.ASTBase_setStyle(self, *args)
 
     def unsetClass(self):
-        """unsetClass(self) -> int"""
+        """unsetClass(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetClass(self)
 
     def unsetId(self):
-        """unsetId(self) -> int"""
+        """unsetId(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetId(self)
 
     def unsetStyle(self):
-        """unsetStyle(self) -> int"""
+        """unsetStyle(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetStyle(self)
 
     def unsetParentSBMLObject(self):
-        """unsetParentSBMLObject(self) -> int"""
+        """unsetParentSBMLObject(ASTBase self) -> int"""
         return _libsbml.ASTBase_unsetParentSBMLObject(self)
 
     def getFunction(self):
-        """getFunction(self) -> ASTBase"""
+        """getFunction(ASTBase self) -> ASTBase"""
         return _libsbml.ASTBase_getFunction(self)
 
     def addPlugin(self, *args):
-        """addPlugin(self, ASTBasePlugin plugin)"""
+        """addPlugin(ASTBase self, ASTBasePlugin plugin)"""
         return _libsbml.ASTBase_addPlugin(self, *args)
 
     def getPlugin(self, *args):
         """
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTBase self, string package) -> ASTBasePlugin
+        getPlugin(ASTBase self, string package) -> ASTBasePlugin
+        getPlugin(ASTBase self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTBase self, unsigned int n) -> ASTBasePlugin
         """
         return _libsbml.ASTBase_getPlugin(self, *args)
 
     def getNumPlugins(self):
         """
-        getNumPlugins(self) -> unsigned int
+        getNumPlugins(ASTBase self) -> unsigned int
 
         Internal implementation method.
 
@@ -57185,7 +56569,7 @@ class ASTBase(_object):
 
     def getTypeFromName(self, *args):
         """
-        getTypeFromName(self, string name) -> int
+        getTypeFromName(ASTBase self, string name) -> int
 
         Internal implementation method.
 
@@ -57194,7 +56578,7 @@ class ASTBase(_object):
 
     def getNameFromType(self, *args):
         """
-        getNameFromType(self, int type) -> char
+        getNameFromType(ASTBase self, int type) -> char const *
 
         Internal implementation method.
 
@@ -57203,7 +56587,7 @@ class ASTBase(_object):
 
     def isSetUserData(self):
         """
-        isSetUserData(self) -> bool
+        isSetUserData(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57212,7 +56596,7 @@ class ASTBase(_object):
 
     def unsetUserData(self):
         """
-        unsetUserData(self) -> int
+        unsetUserData(ASTBase self) -> int
 
         Internal implementation method.
 
@@ -57221,8 +56605,8 @@ class ASTBase(_object):
 
     def writeNodeOfType(self, *args):
         """
-        writeNodeOfType(self, XMLOutputStream stream, int type, bool inChildNode = False)
-        writeNodeOfType(self, XMLOutputStream stream, int type)
+        writeNodeOfType(ASTBase self, XMLOutputStream stream, int type, bool inChildNode=False)
+        writeNodeOfType(ASTBase self, XMLOutputStream stream, int type)
 
         Internal implementation method.
 
@@ -57231,7 +56615,7 @@ class ASTBase(_object):
 
     def isWellFormedNode(self):
         """
-        isWellFormedNode(self) -> bool
+        isWellFormedNode(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57240,7 +56624,7 @@ class ASTBase(_object):
 
     def hasCorrectNumberArguments(self):
         """
-        hasCorrectNumberArguments(self) -> bool
+        hasCorrectNumberArguments(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57249,7 +56633,7 @@ class ASTBase(_object):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ASTBase self) -> int
 
         Internal implementation method.
 
@@ -57258,7 +56642,7 @@ class ASTBase(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ASTBase self) -> string
 
         Internal implementation method.
 
@@ -57267,7 +56651,7 @@ class ASTBase(_object):
 
     def setPackageName(self, *args):
         """
-        setPackageName(self, string name) -> int
+        setPackageName(ASTBase self, string name) -> int
 
         Internal implementation method.
 
@@ -57276,7 +56660,7 @@ class ASTBase(_object):
 
     def hasCnUnits(self):
         """
-        hasCnUnits(self) -> bool
+        hasCnUnits(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57285,7 +56669,7 @@ class ASTBase(_object):
 
     def getUnitsPrefix(self):
         """
-        getUnitsPrefix(self) -> string
+        getUnitsPrefix(ASTBase self) -> string
 
         Internal implementation method.
 
@@ -57294,7 +56678,7 @@ class ASTBase(_object):
 
     def isPackageInfixFunction(self):
         """
-        isPackageInfixFunction(self) -> bool
+        isPackageInfixFunction(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57303,7 +56687,7 @@ class ASTBase(_object):
 
     def hasPackageOnlyInfixSyntax(self):
         """
-        hasPackageOnlyInfixSyntax(self) -> bool
+        hasPackageOnlyInfixSyntax(ASTBase self) -> bool
 
         Internal implementation method.
 
@@ -57312,7 +56696,7 @@ class ASTBase(_object):
 
     def getL3PackageInfixPrecedence(self):
         """
-        getL3PackageInfixPrecedence(self) -> int
+        getL3PackageInfixPrecedence(ASTBase self) -> int
 
         Internal implementation method.
 
@@ -57321,7 +56705,7 @@ class ASTBase(_object):
 
     def hasUnambiguousPackageInfixGrammar(self, *args):
         """
-        hasUnambiguousPackageInfixGrammar(self, ASTNode child) -> bool
+        hasUnambiguousPackageInfixGrammar(ASTBase self, ASTNode child) -> bool
 
         Internal implementation method.
 
@@ -57330,7 +56714,7 @@ class ASTBase(_object):
 
     def getValue(self):
         """
-        getValue(self) -> double
+        getValue(ASTBase self) -> double
 
         Internal implementation method.
 
@@ -57340,56 +56724,6 @@ class ASTBase(_object):
 ASTBase_swigregister = _libsbml.ASTBase_swigregister
 ASTBase_swigregister(ASTBase)
 
-def representsFunction(*args):
-  """
-    representsFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsFunction(int type) -> bool
-
-    Internal implementation method.
-
-    """
-  return _libsbml.representsFunction(*args)
-
-def representsUnaryFunction(*args):
-  """
-    representsUnaryFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsUnaryFunction(int type) -> bool
-
-    Internal implementation method.
-
-    """
-  return _libsbml.representsUnaryFunction(*args)
-
-def representsBinaryFunction(*args):
-  """
-    representsBinaryFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsBinaryFunction(int type) -> bool
-
-    Internal implementation method.
-
-    """
-  return _libsbml.representsBinaryFunction(*args)
-
-def representsNaryFunction(*args):
-  """
-    representsNaryFunction(int type, ASTBasePlugin plugin = None) -> bool
-    representsNaryFunction(int type) -> bool
-
-    Internal implementation method.
-
-    """
-  return _libsbml.representsNaryFunction(*args)
-
-def representsQualifier(*args):
-  """
-    representsQualifier(int type, ASTBasePlugin plugin = None) -> bool
-    representsQualifier(int type) -> bool
-
-    Internal implementation method.
-
-    """
-  return _libsbml.representsQualifier(*args)
-
 class ASTNode(ASTBase):
     """
     Abstract Syntax Trees for mathematical expressions.
@@ -57560,11 +56894,11 @@ class ASTNode(ASTBase):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, int type = AST_UNKNOWN) -> ASTNode
-        __init__(self) -> ASTNode
-        __init__(self, SBMLNamespaces sbmlns, int type = AST_UNKNOWN) -> ASTNode
-        __init__(self, SBMLNamespaces sbmlns) -> ASTNode
-        __init__(self, ASTNode orig) -> ASTNode
+        __init__(ASTNode self, int type=AST_UNKNOWN) -> ASTNode
+        __init__(ASTNode self) -> ASTNode
+        __init__(ASTNode self, SBMLNamespaces sbmlns, int type=AST_UNKNOWN) -> ASTNode
+        __init__(ASTNode self, SBMLNamespaces sbmlns) -> ASTNode
+        __init__(ASTNode self, ASTNode orig) -> ASTNode
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -57625,7 +56959,7 @@ class ASTNode(ASTBase):
     __del__ = lambda self : None;
     def freeName(self):
         """
-        freeName(self) -> int
+        freeName(ASTNode self) -> int
 
         Frees the name of this ASTNode and sets it to None.
 
@@ -57645,7 +56979,7 @@ class ASTNode(ASTBase):
 
     def canonicalize(self):
         """
-        canonicalize(self) -> bool
+        canonicalize(ASTNode self) -> bool
 
         Converts this ASTNode to a canonical form.
 
@@ -57681,7 +57015,7 @@ class ASTNode(ASTBase):
 
     def addChild(self, *args):
         """
-        addChild(self, ASTNode disownedChild) -> int
+        addChild(ASTNode self, ASTNode disownedChild) -> int
 
         Adds the given node as a child of this ASTNode.
 
@@ -57714,7 +57048,7 @@ class ASTNode(ASTBase):
 
     def prependChild(self, *args):
         """
-        prependChild(self, ASTNode disownedChild) -> int
+        prependChild(ASTNode self, ASTNode disownedChild) -> int
 
         Adds the given node as a child of this ASTNode.
 
@@ -57746,7 +57080,7 @@ class ASTNode(ASTBase):
 
     def removeChild(self, *args):
         """
-        removeChild(self, unsigned int n) -> int
+        removeChild(ASTNode self, unsigned int n) -> int
 
         Removes the nth child of this ASTNode object.
 
@@ -57776,8 +57110,8 @@ class ASTNode(ASTBase):
 
     def replaceChild(self, *args):
         """
-        replaceChild(self, unsigned int n, ASTNode disownedChild, bool delreplaced = False) -> int
-        replaceChild(self, unsigned int n, ASTNode disownedChild) -> int
+        replaceChild(ASTNode self, unsigned int n, ASTNode disownedChild, bool delreplaced=False) -> int
+        replaceChild(ASTNode self, unsigned int n, ASTNode disownedChild) -> int
 
         Replaces the nth child of this ASTNode with the given ASTNode.
 
@@ -57812,7 +57146,7 @@ class ASTNode(ASTBase):
 
     def insertChild(self, *args):
         """
-        insertChild(self, unsigned int n, ASTNode disownedChild) -> int
+        insertChild(ASTNode self, unsigned int n, ASTNode disownedChild) -> int
 
         Inserts the given ASTNode node at a given point in the current
         ASTNode's list of children.
@@ -57846,7 +57180,7 @@ class ASTNode(ASTBase):
 
     def deepCopy(self):
         """
-        deepCopy(self) -> ASTNode
+        deepCopy(ASTNode self) -> ASTNode
 
         Creates a recursive copy of this node and all its children.
 
@@ -57858,7 +57192,7 @@ class ASTNode(ASTBase):
 
     def getChild(self, *args):
         """
-        getChild(self, unsigned int n) -> ASTNode
+        getChild(ASTNode self, unsigned int n) -> ASTNode
 
         Returns the child at index n of this node.
 
@@ -57874,7 +57208,7 @@ class ASTNode(ASTBase):
 
     def getLeftChild(self):
         """
-        getLeftChild(self) -> ASTNode
+        getLeftChild(ASTNode self) -> ASTNode
 
         Returns the left child of this node.
 
@@ -57888,7 +57222,7 @@ class ASTNode(ASTBase):
 
     def getRightChild(self):
         """
-        getRightChild(self) -> ASTNode
+        getRightChild(ASTNode self) -> ASTNode
 
         Returns the right child of this node.
 
@@ -57905,7 +57239,7 @@ class ASTNode(ASTBase):
 
     def getNumChildren(self):
         """
-        getNumChildren(self) -> unsigned int
+        getNumChildren(ASTNode self) -> unsigned int
 
         Returns the number of children of this node.
 
@@ -57917,7 +57251,7 @@ class ASTNode(ASTBase):
 
     def addSemanticsAnnotation(self, *args):
         """
-        addSemanticsAnnotation(self, XMLNode disownedAnnotation) -> int
+        addSemanticsAnnotation(ASTNode self, XMLNode disownedAnnotation) -> int
 
         Adds the given XMLNode as a MathML <semantics> element to this
         ASTNode.
@@ -57959,7 +57293,7 @@ class ASTNode(ASTBase):
 
     def getNumSemanticsAnnotations(self):
         """
-        getNumSemanticsAnnotations(self) -> unsigned int
+        getNumSemanticsAnnotations(ASTNode self) -> unsigned int
 
         Returns the number of MathML <semantics> element elements on this
         node.
@@ -57994,7 +57328,7 @@ class ASTNode(ASTBase):
 
     def getSemanticsAnnotation(self, *args):
         """
-        getSemanticsAnnotation(self, unsigned int n) -> XMLNode
+        getSemanticsAnnotation(ASTNode self, unsigned int n) -> XMLNode
 
         Returns the nth MathML <semantics> element on this ASTNode.
 
@@ -58033,7 +57367,7 @@ class ASTNode(ASTBase):
 
     def getCharacter(self):
         """
-        getCharacter(self) -> char
+        getCharacter(ASTNode self) -> char
 
         Returns the value of this node as a single character.
 
@@ -58047,7 +57381,7 @@ class ASTNode(ASTBase):
 
     def getId(self):
         """
-        getId(self) -> string
+        getId(ASTNode self) -> string
 
         Returns the MathML id attribute value of this ASTNode.
 
@@ -58060,7 +57394,7 @@ class ASTNode(ASTBase):
 
     def getClass(self):
         """
-        getClass(self) -> string
+        getClass(ASTNode self) -> string
 
         Returns the MathML class attribute value of this ASTNode.
 
@@ -58073,7 +57407,7 @@ class ASTNode(ASTBase):
 
     def getStyle(self):
         """
-        getStyle(self) -> string
+        getStyle(ASTNode self) -> string
 
         Returns the MathML style attribute value of this ASTNode.
 
@@ -58086,7 +57420,7 @@ class ASTNode(ASTBase):
 
     def getInteger(self):
         """
-        getInteger(self) -> long
+        getInteger(ASTNode self) -> long
 
         Returns the value of this node as an integer.
 
@@ -58108,7 +57442,7 @@ class ASTNode(ASTBase):
 
     def getName(self):
         """
-        getName(self) -> char
+        getName(ASTNode self) -> char const *
 
         Returns the value of this node as a string.
 
@@ -58124,7 +57458,7 @@ class ASTNode(ASTBase):
 
     def getOperatorName(self):
         """
-        getOperatorName(self) -> char
+        getOperatorName(ASTNode self) -> char const *
 
         Returns the value of this operator node as a string.
 
@@ -58139,7 +57473,7 @@ class ASTNode(ASTBase):
 
     def getNumerator(self):
         """
-        getNumerator(self) -> long
+        getNumerator(ASTNode self) -> long
 
         Returns the value of the numerator of this node.
 
@@ -58153,7 +57487,7 @@ class ASTNode(ASTBase):
 
     def getDenominator(self):
         """
-        getDenominator(self) -> long
+        getDenominator(ASTNode self) -> long
 
         Returns the value of the denominator of this node.
 
@@ -58173,7 +57507,7 @@ class ASTNode(ASTBase):
 
     def getReal(self):
         """
-        getReal(self) -> double
+        getReal(ASTNode self) -> double
 
         Returns the real-numbered value of this node.
 
@@ -58197,7 +57531,7 @@ class ASTNode(ASTBase):
 
     def getMantissa(self):
         """
-        getMantissa(self) -> double
+        getMantissa(ASTNode self) -> double
 
         Returns the mantissa value of this node.
 
@@ -58220,7 +57554,7 @@ class ASTNode(ASTBase):
 
     def getExponent(self):
         """
-        getExponent(self) -> long
+        getExponent(ASTNode self) -> long
 
         Returns the exponent value of this ASTNode.
 
@@ -58240,7 +57574,7 @@ class ASTNode(ASTBase):
 
     def getValue(self):
         """
-        getValue(self) -> double
+        getValue(ASTNode self) -> double
 
         Returns the numerical value of this ASTNode.
 
@@ -58263,7 +57597,7 @@ class ASTNode(ASTBase):
 
     def getPrecedence(self):
         """
-        getPrecedence(self) -> int
+        getPrecedence(ASTNode self) -> int
 
         Returns the precedence of this node in the infix math syntax of SBML
         Level 1.
@@ -58278,7 +57612,7 @@ class ASTNode(ASTBase):
 
     def getType(self):
         """
-        getType(self) -> ASTNodeType_t
+        getType(ASTNode self) -> ASTNodeType_t
 
         Returns the type of this ASTNode.
 
@@ -58303,7 +57637,7 @@ class ASTNode(ASTBase):
 
     def getExtendedType(self):
         """
-        getExtendedType(self) -> int
+        getExtendedType(ASTNode self) -> int
 
         Returns the extended type of this ASTNode.
 
@@ -58327,7 +57661,7 @@ class ASTNode(ASTBase):
 
     def getUnits(self):
         """
-        getUnits(self) -> string
+        getUnits(ASTNode self) -> string
 
         Returns the units of this ASTNode.
 
@@ -58360,7 +57694,7 @@ class ASTNode(ASTBase):
 
     def isAvogadro(self):
         """
-        isAvogadro(self) -> bool
+        isAvogadro(ASTNode self) -> bool
 
         Returns True if this node represents the predefined value for
         Avogadro's constant.
@@ -58380,7 +57714,7 @@ class ASTNode(ASTBase):
 
     def isBoolean(self):
         """
-        isBoolean(self) -> bool
+        isBoolean(ASTNode self) -> bool
 
         Returns True if this node has a Boolean type.
 
@@ -58392,10 +57726,10 @@ class ASTNode(ASTBase):
         """
         return _libsbml.ASTNode_isBoolean(self)
 
-    def returnsBoolean(self, model = None):
+    def returnsBoolean(self, model=None):
         """
-        returnsBoolean(self, Model model = None) -> bool
-        returnsBoolean(self) -> bool
+        returnsBoolean(ASTNode self, Model model=None) -> bool
+        returnsBoolean(ASTNode self) -> bool
 
         Returns True if this node returns a Boolean value.
 
@@ -58419,7 +57753,7 @@ class ASTNode(ASTBase):
 
     def isConstant(self):
         """
-        isConstant(self) -> bool
+        isConstant(ASTNode self) -> bool
 
         Returns True if this node represents a MathML constant.
 
@@ -58437,7 +57771,7 @@ class ASTNode(ASTBase):
 
     def isFunction(self):
         """
-        isFunction(self) -> bool
+        isFunction(ASTNode self) -> bool
 
         Returns True if this node represents a function.
 
@@ -58453,7 +57787,7 @@ class ASTNode(ASTBase):
 
     def isInfinity(self):
         """
-        isInfinity(self) -> bool
+        isInfinity(ASTNode self) -> bool
 
         Returns True if this node represents the special IEEE 754 value for
         infinity.
@@ -58466,7 +57800,7 @@ class ASTNode(ASTBase):
 
     def isInteger(self):
         """
-        isInteger(self) -> bool
+        isInteger(ASTNode self) -> bool
 
         Returns True if this node contains an integer value.
 
@@ -58477,7 +57811,7 @@ class ASTNode(ASTBase):
 
     def isLambda(self):
         """
-        isLambda(self) -> bool
+        isLambda(ASTNode self) -> bool
 
         Returns True if this node is a MathML <lambda>.
 
@@ -58488,7 +57822,7 @@ class ASTNode(ASTBase):
 
     def isLog10(self):
         """
-        isLog10(self) -> bool
+        isLog10(ASTNode self) -> bool
 
         Returns True if this node represents a log10 function.
 
@@ -58506,7 +57840,7 @@ class ASTNode(ASTBase):
 
     def isLogical(self):
         """
-        isLogical(self) -> bool
+        isLogical(ASTNode self) -> bool
 
         Returns True if this node is a MathML logical operator.
 
@@ -58520,7 +57854,7 @@ class ASTNode(ASTBase):
 
     def isName(self):
         """
-        isName(self) -> bool
+        isName(ASTNode self) -> bool
 
         Returns True if this node is a user-defined variable name or the
         symbols for time or Avogadro's constant.
@@ -58540,7 +57874,7 @@ class ASTNode(ASTBase):
 
     def isNaN(self):
         """
-        isNaN(self) -> bool
+        isNaN(ASTNode self) -> bool
 
         Returns True if this node represents the special IEEE 754 value 'not a
         number' (NaN).
@@ -58553,7 +57887,7 @@ class ASTNode(ASTBase):
 
     def isNegInfinity(self):
         """
-        isNegInfinity(self) -> bool
+        isNegInfinity(ASTNode self) -> bool
 
         Returns True if this node represents the special IEEE 754 value
         'negative infinity'.
@@ -58566,7 +57900,7 @@ class ASTNode(ASTBase):
 
     def isNumber(self):
         """
-        isNumber(self) -> bool
+        isNumber(ASTNode self) -> bool
 
         Returns True if this node contains a number.
 
@@ -58577,7 +57911,7 @@ class ASTNode(ASTBase):
 
     def isOperator(self):
         """
-        isOperator(self) -> bool
+        isOperator(ASTNode self) -> bool
 
         Returns True if this node is a mathematical operator.
 
@@ -58591,7 +57925,7 @@ class ASTNode(ASTBase):
 
     def isPiecewise(self):
         """
-        isPiecewise(self) -> bool
+        isPiecewise(ASTNode self) -> bool
 
         Returns True if this node is the MathML
 
@@ -58605,7 +57939,7 @@ class ASTNode(ASTBase):
 
     def isQualifier(self):
         """
-        isQualifier(self) -> bool
+        isQualifier(ASTNode self) -> bool
 
         Predicate returning True if this node is a MathML qualifier.
 
@@ -58619,7 +57953,7 @@ class ASTNode(ASTBase):
 
     def isRational(self):
         """
-        isRational(self) -> bool
+        isRational(ASTNode self) -> bool
 
         Returns True if this node represents a rational number.
 
@@ -58630,7 +57964,7 @@ class ASTNode(ASTBase):
 
     def isReal(self):
         """
-        isReal(self) -> bool
+        isReal(ASTNode self) -> bool
 
         Returns True if this node can represent a real number.
 
@@ -58645,7 +57979,7 @@ class ASTNode(ASTBase):
 
     def isRelational(self):
         """
-        isRelational(self) -> bool
+        isRelational(ASTNode self) -> bool
 
         Returns True if this node is a MathML relational operator.
 
@@ -58659,7 +57993,7 @@ class ASTNode(ASTBase):
 
     def isSemantics(self):
         """
-        isSemantics(self) -> bool
+        isSemantics(ASTNode self) -> bool
 
         Predicate returning True if this node is a MathML semantics node.
 
@@ -58671,7 +58005,7 @@ class ASTNode(ASTBase):
 
     def isSqrt(self):
         """
-        isSqrt(self) -> bool
+        isSqrt(ASTNode self) -> bool
 
         Returns True if this node represents a square root function.
 
@@ -58687,7 +58021,7 @@ class ASTNode(ASTBase):
 
     def isUMinus(self):
         """
-        isUMinus(self) -> bool
+        isUMinus(ASTNode self) -> bool
 
         Returns True if this node is a unary minus operator.
 
@@ -58710,7 +58044,7 @@ class ASTNode(ASTBase):
 
     def isUPlus(self):
         """
-        isUPlus(self) -> bool
+        isUPlus(ASTNode self) -> bool
 
         Returns True if this node is a unary plus operator.
 
@@ -58724,7 +58058,7 @@ class ASTNode(ASTBase):
 
     def hasTypeAndNumChildren(self, *args):
         """
-        hasTypeAndNumChildren(self, int type, unsigned int numchildren) -> int
+        hasTypeAndNumChildren(ASTNode self, int type, unsigned int numchildren) -> int
 
         Returns True if this node is of a certain type with a specific number
         of children.
@@ -58743,7 +58077,7 @@ class ASTNode(ASTBase):
 
     def isUnknown(self):
         """
-        isUnknown(self) -> bool
+        isUnknown(ASTNode self) -> bool
 
         Returns True if this node has an unknown type.
 
@@ -58762,7 +58096,7 @@ class ASTNode(ASTBase):
 
     def isSetId(self):
         """
-        isSetId(self) -> bool
+        isSetId(ASTNode self) -> bool
 
         Returns True if this node has a value for the MathML attribute id.
 
@@ -58775,7 +58109,7 @@ class ASTNode(ASTBase):
 
     def isSetClass(self):
         """
-        isSetClass(self) -> bool
+        isSetClass(ASTNode self) -> bool
 
         Returns True if this node has a value for the MathML attribute class.
 
@@ -58788,7 +58122,7 @@ class ASTNode(ASTBase):
 
     def isSetStyle(self):
         """
-        isSetStyle(self) -> bool
+        isSetStyle(ASTNode self) -> bool
 
         Returns True if this node has a value for the MathML attribute style.
 
@@ -58801,7 +58135,7 @@ class ASTNode(ASTBase):
 
     def isSetUnits(self):
         """
-        isSetUnits(self) -> bool
+        isSetUnits(ASTNode self) -> bool
 
         Returns True if this node has the attribute sbml:units.
 
@@ -58835,7 +58169,7 @@ class ASTNode(ASTBase):
 
     def hasUnits(self):
         """
-        hasUnits(self) -> bool
+        hasUnits(ASTNode self) -> bool
 
         Returns True if this node or any of its children nodes have the
         attribute sbml:units.
@@ -58870,7 +58204,7 @@ class ASTNode(ASTBase):
 
     def setCharacter(self, *args):
         """
-        setCharacter(self, char value) -> int
+        setCharacter(ASTNode self, char value) -> int
 
         Sets the value of this ASTNode to the given character.  If character
         is one of +, -, *, / or ^, the node type will be set accordingly.  For
@@ -58889,7 +58223,7 @@ class ASTNode(ASTBase):
 
     def setId(self, *args):
         """
-        setId(self, string id) -> int
+        setId(ASTNode self, string id) -> int
 
         Sets the MathML attribute id of this ASTNode.
 
@@ -58907,7 +58241,7 @@ class ASTNode(ASTBase):
 
     def setClass(self, *args):
         """
-        setClass(self, string className) -> int
+        setClass(ASTNode self, string className) -> int
 
         Sets the MathML attribute class of this ASTNode.
 
@@ -58926,7 +58260,7 @@ class ASTNode(ASTBase):
 
     def setStyle(self, *args):
         """
-        setStyle(self, string style) -> int
+        setStyle(ASTNode self, string style) -> int
 
         Sets the MathML attribute style of this ASTNode.
 
@@ -58944,7 +58278,7 @@ class ASTNode(ASTBase):
 
     def setName(self, *args):
         """
-        setName(self, char name) -> int
+        setName(ASTNode self, char const * name) -> int
 
         Sets the value of this ASTNode to the given name.
 
@@ -58967,10 +58301,10 @@ class ASTNode(ASTBase):
 
     def setValue(self, *args):
         """
-        setValue(self, long value) -> int
-        setValue(self, long numerator, long denominator) -> int
-        setValue(self, double value) -> int
-        setValue(self, double mantissa, long exponent) -> int
+        setValue(ASTNode self, long value) -> int
+        setValue(ASTNode self, long numerator, long denominator) -> int
+        setValue(ASTNode self, double value) -> int
+        setValue(ASTNode self, double mantissa, long exponent) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -59070,7 +58404,7 @@ class ASTNode(ASTBase):
 
     def setType(self, *args):
         """
-        setType(self, int type) -> int
+        setType(ASTNode self, int type) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -59109,7 +58443,7 @@ class ASTNode(ASTBase):
 
     def setUnits(self, *args):
         """
-        setUnits(self, string units) -> int
+        setUnits(ASTNode self, string units) -> int
 
         Sets the units of this ASTNode to units.
 
@@ -59155,7 +58489,7 @@ class ASTNode(ASTBase):
 
     def swapChildren(self, *args):
         """
-        swapChildren(self, ASTNode that) -> int
+        swapChildren(ASTNode self, ASTNode that) -> int
 
         Swaps the children of this node with the children of another node.
 
@@ -59174,7 +58508,7 @@ class ASTNode(ASTBase):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(ASTNode self, string oldid, string newid)
 
         Renames all the SIdRef attributes on this node and its child nodes.
 
@@ -59186,7 +58520,7 @@ class ASTNode(ASTBase):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(ASTNode self, string oldid, string newid)
 
         Renames all the UnitSIdRef attributes on this node and its child
         nodes.
@@ -59202,7 +58536,7 @@ class ASTNode(ASTBase):
 
     def replaceIDWithFunction(self, *args):
         """
-        replaceIDWithFunction(self, string id, ASTNode function)
+        replaceIDWithFunction(ASTNode self, string id, ASTNode function)
 
         Internal implementation method.
 
@@ -59211,7 +58545,7 @@ class ASTNode(ASTBase):
 
     def setIsChildFlag(self, *args):
         """
-        setIsChildFlag(self, bool flag)
+        setIsChildFlag(ASTNode self, bool flag)
 
         Internal implementation method.
 
@@ -59220,7 +58554,7 @@ class ASTNode(ASTBase):
 
     def unsetUnits(self):
         """
-        unsetUnits(self) -> int
+        unsetUnits(ASTNode self) -> int
 
         Unsets the units of this ASTNode.
 
@@ -59238,7 +58572,7 @@ class ASTNode(ASTBase):
 
     def unsetId(self):
         """
-        unsetId(self) -> int
+        unsetId(ASTNode self) -> int
 
         Unsets the MathML id attribute of this ASTNode.
 
@@ -59254,7 +58588,7 @@ class ASTNode(ASTBase):
 
     def unsetClass(self):
         """
-        unsetClass(self) -> int
+        unsetClass(ASTNode self) -> int
 
         Unsets the MathML class attribute of this ASTNode.
 
@@ -59270,7 +58604,7 @@ class ASTNode(ASTBase):
 
     def unsetStyle(self):
         """
-        unsetStyle(self) -> int
+        unsetStyle(ASTNode self) -> int
 
         Unsets the MathML style attribute of this ASTNode.
 
@@ -59286,8 +58620,8 @@ class ASTNode(ASTBase):
 
     def setDefinitionURL(self, *args):
         """
-        setDefinitionURL(self, XMLAttributes url) -> int
-        setDefinitionURL(self, string url) -> int
+        setDefinitionURL(ASTNode self, XMLAttributes url) -> int
+        setDefinitionURL(ASTNode self, string url) -> int
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -59317,7 +58651,7 @@ class ASTNode(ASTBase):
 
     def getDefinitionURL(self):
         """
-        getDefinitionURL(self) -> XMLAttributes
+        getDefinitionURL(ASTNode self) -> XMLAttributes
 
         Returns the MathML definitionURL attribute value.
 
@@ -59332,7 +58666,7 @@ class ASTNode(ASTBase):
 
     def replaceArgument(self, *args):
         """
-        replaceArgument(self, string bvar, ASTNode arg)
+        replaceArgument(ASTNode self, string bvar, ASTNode arg)
 
         Replaces occurrences of a given name with a given ASTNode.
 
@@ -59351,7 +58685,7 @@ class ASTNode(ASTBase):
 
     def getParentSBMLObject(self):
         """
-        getParentSBMLObject(self) -> SBase
+        getParentSBMLObject(ASTNode self) -> SBase
 
         Returns the parent SBML object.
 
@@ -59364,7 +58698,7 @@ class ASTNode(ASTBase):
 
     def unsetParentSBMLObject(self):
         """
-        unsetParentSBMLObject(self) -> int
+        unsetParentSBMLObject(ASTNode self) -> int
 
         Unsets the parent SBML object.
 
@@ -59382,7 +58716,7 @@ class ASTNode(ASTBase):
 
     def isSetParentSBMLObject(self):
         """
-        isSetParentSBMLObject(self) -> bool
+        isSetParentSBMLObject(ASTNode self) -> bool
 
         Returns True if this node has a value for the parent SBML object.
 
@@ -59396,7 +58730,7 @@ class ASTNode(ASTBase):
 
     def reduceToBinary(self):
         """
-        reduceToBinary(self)
+        reduceToBinary(ASTNode self)
 
         Reduces this ASTNode to a binary tree.
 
@@ -59409,7 +58743,7 @@ class ASTNode(ASTBase):
 
     def unsetUserData(self):
         """
-        unsetUserData(self) -> int
+        unsetUserData(ASTNode self) -> int
 
         Unsets the user data of this node.
 
@@ -59430,7 +58764,7 @@ class ASTNode(ASTBase):
 
     def isSetUserData(self):
         """
-        isSetUserData(self) -> bool
+        isSetUserData(ASTNode self) -> bool
 
         Returns True if this node has a user data object.
 
@@ -59442,7 +58776,7 @@ class ASTNode(ASTBase):
 
     def isWellFormedASTNode(self):
         """
-        isWellFormedASTNode(self) -> bool
+        isWellFormedASTNode(ASTNode self) -> bool
 
         Returns True or False depending on whether this ASTNode is well-
         formed.
@@ -59462,7 +58796,7 @@ class ASTNode(ASTBase):
 
     def hasCorrectNumberArguments(self):
         """
-        hasCorrectNumberArguments(self) -> bool
+        hasCorrectNumberArguments(ASTNode self) -> bool
 
         Returns True if this ASTNode has the correct number of children for
         its type.
@@ -59484,7 +58818,7 @@ class ASTNode(ASTBase):
 
     def getDefinitionURLString(self):
         """
-        getDefinitionURLString(self) -> string
+        getDefinitionURLString(ASTNode self) -> string
 
         Returns the MathML definitionURL attribute value as a string.
 
@@ -59497,7 +58831,7 @@ class ASTNode(ASTBase):
 
     def representsBvar(self):
         """
-        representsBvar(self) -> bool
+        representsBvar(ASTNode self) -> bool
 
         Internal implementation method.
 
@@ -59506,7 +58840,7 @@ class ASTNode(ASTBase):
 
     def write(self, *args):
         """
-        write(self, XMLOutputStream stream)
+        write(ASTNode self, XMLOutputStream stream)
 
         Internal implementation method.
 
@@ -59515,8 +58849,8 @@ class ASTNode(ASTBase):
 
     def read(self, *args):
         """
-        read(self, XMLInputStream stream, string reqd_prefix = "") -> bool
-        read(self, XMLInputStream stream) -> bool
+        read(ASTNode self, XMLInputStream stream, string reqd_prefix="") -> bool
+        read(ASTNode self, XMLInputStream stream) -> bool
 
         Internal implementation method.
 
@@ -59525,8 +58859,8 @@ class ASTNode(ASTBase):
 
     def writeNodeOfType(self, *args):
         """
-        writeNodeOfType(self, XMLOutputStream stream, int type, bool inChildNode = False)
-        writeNodeOfType(self, XMLOutputStream stream, int type)
+        writeNodeOfType(ASTNode self, XMLOutputStream stream, int type, bool inChildNode=False)
+        writeNodeOfType(ASTNode self, XMLOutputStream stream, int type)
 
         Internal implementation method.
 
@@ -59535,7 +58869,7 @@ class ASTNode(ASTBase):
 
     def getNumBvars(self):
         """
-        getNumBvars(self) -> unsigned int
+        getNumBvars(ASTNode self) -> unsigned int
 
         Internal implementation method.
 
@@ -59544,7 +58878,7 @@ class ASTNode(ASTBase):
 
     def getTypeCode(self):
         """
-        getTypeCode(self) -> int
+        getTypeCode(ASTNode self) -> int
 
         Internal implementation method.
 
@@ -59553,7 +58887,7 @@ class ASTNode(ASTBase):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ASTNode self) -> string
 
         Internal implementation method.
 
@@ -59562,13 +58896,22 @@ class ASTNode(ASTBase):
 
     def getPlugin(self, *args):
         """
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, string package) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
-        getPlugin(self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTNode self, string package) -> ASTBasePlugin
+        getPlugin(ASTNode self, string package) -> ASTBasePlugin
+        getPlugin(ASTNode self, unsigned int n) -> ASTBasePlugin
+        getPlugin(ASTNode self, unsigned int n) -> ASTBasePlugin
         """
         return _libsbml.ASTNode_getPlugin(self, *args)
 
+    def getNumPiece(self):
+        """
+        getNumPiece(ASTNode self) -> unsigned int
+
+        Internal implementation method.
+
+        """
+        return _libsbml.ASTNode_getNumPiece(self)
+
     def __eq__(self, rhs):
       if ((self is None) and (rhs is None)): return True
       if ((self is None) or  (rhs is None)): return False
@@ -59585,7 +58928,7 @@ class ASTNode(ASTBase):
 
     def getListOfNodes(self):
         """
-        getListOfNodes(self) -> ASTNodeList
+        getListOfNodes(ASTNode self) -> ASTNodeList
 
         Returns a list of nodes.
 
@@ -59615,8 +58958,8 @@ class MathML(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self, SBMLNamespaces sbmlns) -> MathML
-        __init__(self) -> MathML
+        __init__(MathML self, SBMLNamespaces sbmlns) -> MathML
+        __init__(MathML self) -> MathML
         """
         this = _libsbml.new_MathML(*args)
         try: self.this.append(this)
@@ -59625,7 +58968,7 @@ class MathML(_object):
     __del__ = lambda self : None;
     def setPrefix(self, *args):
         """
-        setPrefix(self, string prefix)
+        setPrefix(MathML self, string prefix)
 
         Internal implementation method.
 
@@ -59638,7 +58981,7 @@ MathML_swigregister(MathML)
 
 def readMathMLFromString(*args):
   """
-    readMathMLFromString(char xml) -> ASTNode_t
+    readMathMLFromString(char const * xml) -> ASTNode
 
     Reads the MathML from the given XML string, constructs a corresponding
     abstract syntax tree, and returns a pointer to the root of the tree.
@@ -59654,7 +58997,7 @@ def readMathMLFromString(*args):
 
 def readMathMLFromStringWithNamespaces(*args):
   """
-    readMathMLFromStringWithNamespaces(char xml, XMLNamespaces_t xmlns) -> ASTNode_t
+    readMathMLFromStringWithNamespaces(char const * xml, XMLNamespaces xmlns) -> ASTNode
 
     Reads the MathML from the given XML string, constructs a corresponding
     abstract syntax tree, and returns a pointer to the root of the tree.
@@ -59673,7 +59016,7 @@ def readMathMLFromStringWithNamespaces(*args):
 
 def writeMathMLToString(*args):
   """
-    writeMathMLToString(ASTNode_t node) -> char
+    writeMathMLToString(ASTNode node) -> char *
 
     Writes the given AST node (and its children) to a string as MathML,
     and returns the string.
@@ -59694,7 +59037,7 @@ def writeMathMLToString(*args):
 
 def parseFormula(*args):
   """
-    parseFormula(char formula) -> ASTNode_t
+    parseFormula(char const * formula) -> ASTNode
 
     Parses a text string as a mathematical formula and returns an AST
     representation of it.
@@ -59793,7 +59136,7 @@ def parseFormula(*args):
     parser and formatter.  The entry points to this second system are
     parseL3Formula() and formulaToL3String().  The Level 1-oriented system
     (i.e., what is provided by formulaToString() and parseFormula()) is
-    provided  untouched for backwards compatibility.
+    provided untouched for backwards compatibility.
 
     Note:
 
@@ -59811,7 +59154,7 @@ def parseFormula(*args):
 
 def formulaToL3String(*args):
   """
-    formulaToL3String(ASTNode_t tree) -> char
+    formulaToL3String(ASTNode tree) -> char *
 
     Converts an AST to a text string representation of a formula using an
     extended syntax.
@@ -60092,7 +59435,7 @@ def formulaToL3String(*args):
 
 def formulaToL3StringWithSettings(*args):
   """
-    formulaToL3StringWithSettings(ASTNode_t tree, L3ParserSettings_t settings) -> char
+    formulaToL3StringWithSettings(ASTNode tree, L3ParserSettings settings) -> char *
 
     Converts an AST to a text string representation of a formula, using
     specific formatter settings.
@@ -60141,7 +59484,7 @@ def formulaToL3StringWithSettings(*args):
 
 def formulaToString(*args):
   """
-    formulaToString(ASTNode_t tree) -> char
+    formulaToString(ASTNode tree) -> char *
 
     Converts an AST to a text string representation of a formula using a
     basic syntax derived from SBML Level 1.
@@ -60241,7 +59584,7 @@ def formulaToString(*args):
     parser and formatter.  The entry points to this second system are
     parseL3Formula() and formulaToL3String().  The Level 1-oriented system
     (i.e., what is provided by formulaToString() and parseFormula()) is
-    provided  untouched for backwards compatibility.
+    provided untouched for backwards compatibility.
 
     Note:
 
@@ -60259,7 +59602,7 @@ def formulaToString(*args):
 
 def parseL3Formula(*args):
   """
-    parseL3Formula(char formula) -> ASTNode_t
+    parseL3Formula(char const * formula) -> ASTNode
 
     Parses a text string as a mathematical formula and returns an AST
     representation of it.
@@ -60550,7 +59893,7 @@ def parseL3Formula(*args):
 
 def parseL3FormulaWithModel(*args):
   """
-    parseL3FormulaWithModel(char formula, Model_t model) -> ASTNode_t
+    parseL3FormulaWithModel(char const * formula, Model model) -> ASTNode
 
     Parses a text string as a mathematical formula using a Model to
     resolve symbols, and returns an AST representation of the result.
@@ -60580,7 +59923,7 @@ def parseL3FormulaWithModel(*args):
 
 def parseL3FormulaWithSettings(*args):
   """
-    parseL3FormulaWithSettings(char formula, L3ParserSettings_t settings) -> ASTNode_t
+    parseL3FormulaWithSettings(char const * formula, L3ParserSettings settings) -> ASTNode
 
     Parses a text string as a mathematical formula using specific parser
     settings and returns an AST representation of the result.
@@ -60659,7 +60002,7 @@ def parseL3FormulaWithSettings(*args):
 
 def getDefaultL3ParserSettings():
   """
-    getDefaultL3ParserSettings() -> L3ParserSettings_t
+    getDefaultL3ParserSettings() -> L3ParserSettings
 
     Returns a copy of the default Level 3 ('L3') formula parser settings.
 
@@ -60935,7 +60278,7 @@ def getDefaultL3ParserSettings():
 
 def getLastParseL3Error():
   """
-    getLastParseL3Error() -> char
+    getLastParseL3Error() -> char *
 
     Returns the last error reported by the 'L3' mathematical formula
     parser.
@@ -61072,15 +60415,13 @@ class L3ParserSettings(_object):
     __repr__ = _swig_repr
     def __init__(self, *args): 
         """
-        __init__(self) -> L3ParserSettings
-        __init__(self, Model model, ParseLogType_t parselog, bool collapseminus, 
-            bool parseunits, bool avocsymbol, bool caseSensitive = False, 
-            SBMLNamespaces sbmlns = None) -> L3ParserSettings
-        __init__(self, Model model, ParseLogType_t parselog, bool collapseminus, 
-            bool parseunits, bool avocsymbol, bool caseSensitive = False) -> L3ParserSettings
-        __init__(self, Model model, ParseLogType_t parselog, bool collapseminus, 
-            bool parseunits, bool avocsymbol) -> L3ParserSettings
-        __init__(self, L3ParserSettings source) -> L3ParserSettings
+        __init__(L3ParserSettings self) -> L3ParserSettings
+        __init__(L3ParserSettings self, Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol, 
+            bool caseSensitive=False, SBMLNamespaces sbmlns=None) -> L3ParserSettings
+        __init__(L3ParserSettings self, Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol, 
+            bool caseSensitive=False) -> L3ParserSettings
+        __init__(L3ParserSettings self, Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol) -> L3ParserSettings
+        __init__(L3ParserSettings self, L3ParserSettings source) -> L3ParserSettings
 
         This method has multiple variants; they differ in the arguments  they
         accept.  Each variant is described separately below.
@@ -61205,7 +60546,7 @@ class L3ParserSettings(_object):
     __del__ = lambda self : None;
     def setModel(self, *args):
         """
-        setModel(self, Model model)
+        setModel(L3ParserSettings self, Model model)
 
         Sets the model reference in this L3ParserSettings object.
 
@@ -61243,7 +60584,7 @@ class L3ParserSettings(_object):
 
     def getModel(self):
         """
-        getModel(self) -> Model
+        getModel(L3ParserSettings self) -> Model
 
         Returns the Model object referenced by this L3ParserSettings object.
 
@@ -61271,7 +60612,7 @@ class L3ParserSettings(_object):
 
     def unsetModel(self):
         """
-        unsetModel(self)
+        unsetModel(L3ParserSettings self)
 
         Unsets the Model reference in this L3ParserSettings object.
 
@@ -61285,7 +60626,7 @@ class L3ParserSettings(_object):
 
     def setParseLog(self, *args):
         """
-        setParseLog(self, ParseLogType_t type)
+        setParseLog(L3ParserSettings self, ParseLogType_t type)
 
         Sets the behavior for handling log in mathematical formulas.
 
@@ -61310,7 +60651,7 @@ class L3ParserSettings(_object):
 
     def getParseLog(self):
         """
-        getParseLog(self) -> ParseLogType_t
+        getParseLog(L3ParserSettings self) -> ParseLogType_t
 
         Indicates the current behavior set for handling the function log with
         one argument.
@@ -61336,7 +60677,7 @@ class L3ParserSettings(_object):
 
     def setParseCollapseMinus(self, *args):
         """
-        setParseCollapseMinus(self, bool collapseminus)
+        setParseCollapseMinus(L3ParserSettings self, bool collapseminus)
 
         Sets the behavior for handling unary minuses appearing in mathematical
         formulas.
@@ -61370,7 +60711,7 @@ class L3ParserSettings(_object):
 
     def getParseCollapseMinus(self):
         """
-        getParseCollapseMinus(self) -> bool
+        getParseCollapseMinus(L3ParserSettings self) -> bool
 
         Indicates the current behavior set for handling multiple unary minuses
         in formulas.
@@ -61399,7 +60740,7 @@ class L3ParserSettings(_object):
 
     def setParseUnits(self, *args):
         """
-        setParseUnits(self, bool units)
+        setParseUnits(L3ParserSettings self, bool units)
 
         Sets the parser's behavior in handling units associated with numbers
         in a mathematical formula.
@@ -61433,7 +60774,7 @@ class L3ParserSettings(_object):
 
     def getParseUnits(self):
         """
-        getParseUnits(self) -> bool
+        getParseUnits(L3ParserSettings self) -> bool
 
         Indicates the current behavior set for handling units in text-string
         mathematical formulas.
@@ -61470,7 +60811,7 @@ class L3ParserSettings(_object):
 
     def setParseAvogadroCsymbol(self, *args):
         """
-        setParseAvogadroCsymbol(self, bool l2only)
+        setParseAvogadroCsymbol(L3ParserSettings self, bool l2only)
 
         Sets the parser's behavior in handling the symbol avogadro in
         mathematical formulas.
@@ -61509,7 +60850,7 @@ class L3ParserSettings(_object):
 
     def getParseAvogadroCsymbol(self):
         """
-        getParseAvogadroCsymbol(self) -> bool
+        getParseAvogadroCsymbol(L3ParserSettings self) -> bool
 
         Indicates the current behavior set for handling avogadro for SBML
         Level 3.
@@ -61543,7 +60884,7 @@ class L3ParserSettings(_object):
 
     def setComparisonCaseSensitivity(self, *args):
         """
-        setComparisonCaseSensitivity(self, bool strcmp)
+        setComparisonCaseSensitivity(L3ParserSettings self, bool strcmp)
 
         Sets the parser's behavior with respect to case sensitivity for
         recognizing predefined symbols.
@@ -61567,7 +60908,7 @@ class L3ParserSettings(_object):
 
     def getComparisonCaseSensitivity(self):
         """
-        getComparisonCaseSensitivity(self) -> bool
+        getComparisonCaseSensitivity(L3ParserSettings self) -> bool
 
         Returns True if the parser is configured to match built-in symbols in
         a case-insensitive way.
@@ -61592,7 +60933,7 @@ class L3ParserSettings(_object):
 
     def setPlugins(self, *args):
         """
-        setPlugins(self, SBMLNamespaces sbmlns)
+        setPlugins(L3ParserSettings self, SBMLNamespaces sbmlns)
 
         Set up the plugins for this L3ParserSettings, based on the
         SBMLNamespaces object.
@@ -61616,7 +60957,7 @@ class L3ParserSettings(_object):
 
     def visitPackageInfixSyntax(self, *args):
         """
-        visitPackageInfixSyntax(self, ASTNode_t parent, ASTNode_t node, StringBuffer_t sb)
+        visitPackageInfixSyntax(L3ParserSettings self, ASTNode parent, ASTNode node, StringBuffer_t * sb)
 
         Internal implementation method.
 
@@ -61641,7 +60982,7 @@ class ASTBasePlugin(_object):
     __del__ = lambda self : None;
     def clone(self):
         """
-        clone(self) -> ASTBasePlugin
+        clone(ASTBasePlugin self) -> ASTBasePlugin
 
         Internal implementation method.
 
@@ -61650,7 +60991,7 @@ class ASTBasePlugin(_object):
 
     def getElementNamespace(self):
         """
-        getElementNamespace(self) -> string
+        getElementNamespace(ASTBasePlugin self) -> string
 
         Internal implementation method.
 
@@ -61659,7 +61000,7 @@ class ASTBasePlugin(_object):
 
     def getPrefix(self):
         """
-        getPrefix(self) -> string
+        getPrefix(ASTBasePlugin self) -> string
 
         Internal implementation method.
 
@@ -61668,7 +61009,7 @@ class ASTBasePlugin(_object):
 
     def getPackageName(self):
         """
-        getPackageName(self) -> string
+        getPackageName(ASTBasePlugin self) -> string
 
         Internal implementation method.
 
@@ -61677,7 +61018,7 @@ class ASTBasePlugin(_object):
 
     def setSBMLExtension(self, *args):
         """
-        setSBMLExtension(self, SBMLExtension ext) -> int
+        setSBMLExtension(ASTBasePlugin self, SBMLExtension ext) -> int
 
         Internal implementation method.
 
@@ -61686,7 +61027,7 @@ class ASTBasePlugin(_object):
 
     def setPrefix(self, *args):
         """
-        setPrefix(self, string prefix) -> int
+        setPrefix(ASTBasePlugin self, string prefix) -> int
 
         Internal implementation method.
 
@@ -61695,7 +61036,7 @@ class ASTBasePlugin(_object):
 
     def connectToParent(self, *args):
         """
-        connectToParent(self, ASTBase astbase)
+        connectToParent(ASTBasePlugin self, ASTBase astbase)
 
         Internal implementation method.
 
@@ -61704,7 +61045,7 @@ class ASTBasePlugin(_object):
 
     def enablePackageInternal(self, *args):
         """
-        enablePackageInternal(self, string pkgURI, string pkgPrefix, bool flag)
+        enablePackageInternal(ASTBasePlugin self, string pkgURI, string pkgPrefix, bool flag)
 
         Internal implementation method.
 
@@ -61713,7 +61054,7 @@ class ASTBasePlugin(_object):
 
     def stripPackage(self, *args):
         """
-        stripPackage(self, string pkgPrefix, bool flag) -> bool
+        stripPackage(ASTBasePlugin self, string pkgPrefix, bool flag) -> bool
 
         Internal implementation method.
 
@@ -61722,7 +61063,7 @@ class ASTBasePlugin(_object):
 
     def getURI(self):
         """
-        getURI(self) -> string
+        getURI(ASTBasePlugin self) -> string
 
         Internal implementation method.
 
@@ -61731,8 +61072,8 @@ class ASTBasePlugin(_object):
 
     def getParentASTObject(self, *args):
         """
-        getParentASTObject(self) -> ASTBase
-        getParentASTObject(self) -> ASTBase
+        getParentASTObject(ASTBasePlugin self) -> ASTBase
+        getParentASTObject(ASTBasePlugin self) -> ASTBase
 
         Internal implementation method.
 
@@ -61741,7 +61082,7 @@ class ASTBasePlugin(_object):
 
     def setElementNamespace(self, *args):
         """
-        setElementNamespace(self, string uri) -> int
+        setElementNamespace(ASTBasePlugin self, string uri) -> int
 
         Internal implementation method.
 
@@ -61750,7 +61091,7 @@ class ASTBasePlugin(_object):
 
     def getLevel(self):
         """
-        getLevel(self) -> unsigned int
+        getLevel(ASTBasePlugin self) -> unsigned int
 
         Internal implementation method.
 
@@ -61759,7 +61100,7 @@ class ASTBasePlugin(_object):
 
     def getVersion(self):
         """
-        getVersion(self) -> unsigned int
+        getVersion(ASTBasePlugin self) -> unsigned int
 
         Internal implementation method.
 
@@ -61768,7 +61109,7 @@ class ASTBasePlugin(_object):
 
     def getPackageVersion(self):
         """
-        getPackageVersion(self) -> unsigned int
+        getPackageVersion(ASTBasePlugin self) -> unsigned int
 
         Internal implementation method.
 
@@ -61777,7 +61118,7 @@ class ASTBasePlugin(_object):
 
     def getSBMLNamespaces(self):
         """
-        getSBMLNamespaces(self) -> SBMLNamespaces
+        getSBMLNamespaces(ASTBasePlugin self) -> SBMLNamespaces
 
         Internal implementation method.
 
@@ -61786,7 +61127,7 @@ class ASTBasePlugin(_object):
 
     def isSetMath(self):
         """
-        isSetMath(self) -> bool
+        isSetMath(ASTBasePlugin self) -> bool
 
         Internal implementation method.
 
@@ -61795,7 +61136,7 @@ class ASTBasePlugin(_object):
 
     def getMath(self):
         """
-        getMath(self) -> ASTBase
+        getMath(ASTBasePlugin self) -> ASTBase
 
         Internal implementation method.
 
@@ -61804,7 +61145,7 @@ class ASTBasePlugin(_object):
 
     def createMath(self, *args):
         """
-        createMath(self, int type)
+        createMath(ASTBasePlugin self, int type)
 
         Internal implementation method.
 
@@ -61813,7 +61154,7 @@ class ASTBasePlugin(_object):
 
     def addChild(self, *args):
         """
-        addChild(self, ASTBase child) -> int
+        addChild(ASTBasePlugin self, ASTBase child) -> int
 
         Internal implementation method.
 
@@ -61822,7 +61163,7 @@ class ASTBasePlugin(_object):
 
     def getChild(self, *args):
         """
-        getChild(self, unsigned int n) -> ASTBase
+        getChild(ASTBasePlugin self, unsigned int n) -> ASTBase
 
         Internal implementation method.
 
@@ -61831,7 +61172,7 @@ class ASTBasePlugin(_object):
 
     def getNumChildren(self):
         """
-        getNumChildren(self) -> unsigned int
+        getNumChildren(ASTBasePlugin self) -> unsigned int
 
         Internal implementation method.
 
@@ -61840,7 +61181,7 @@ class ASTBasePlugin(_object):
 
     def insertChild(self, *args):
         """
-        insertChild(self, unsigned int n, ASTBase newChild) -> int
+        insertChild(ASTBasePlugin self, unsigned int n, ASTBase newChild) -> int
 
         Internal implementation method.
 
@@ -61849,7 +61190,7 @@ class ASTBasePlugin(_object):
 
     def prependChild(self, *args):
         """
-        prependChild(self, ASTBase newChild) -> int
+        prependChild(ASTBasePlugin self, ASTBase newChild) -> int
 
         Internal implementation method.
 
@@ -61858,7 +61199,7 @@ class ASTBasePlugin(_object):
 
     def removeChild(self, *args):
         """
-        removeChild(self, unsigned int n) -> int
+        removeChild(ASTBasePlugin self, unsigned int n) -> int
 
         Internal implementation method.
 
@@ -61867,7 +61208,7 @@ class ASTBasePlugin(_object):
 
     def replaceChild(self, *args):
         """
-        replaceChild(self, unsigned int n, ASTBase newChild, bool delreplaced) -> int
+        replaceChild(ASTBasePlugin self, unsigned int n, ASTBase newChild, bool delreplaced) -> int
 
         Internal implementation method.
 
@@ -61876,7 +61217,7 @@ class ASTBasePlugin(_object):
 
     def swapChildren(self, *args):
         """
-        swapChildren(self, ASTFunction that) -> int
+        swapChildren(ASTBasePlugin self, ASTFunction * that) -> int
 
         Internal implementation method.
 
@@ -61885,7 +61226,7 @@ class ASTBasePlugin(_object):
 
     def read(self, *args):
         """
-        read(self, XMLInputStream stream, string reqd_prefix, XMLToken currentElement) -> bool
+        read(ASTBasePlugin self, XMLInputStream stream, string reqd_prefix, XMLToken currentElement) -> bool
 
         Internal implementation method.
 
@@ -61894,8 +61235,7 @@ class ASTBasePlugin(_object):
 
     def addExpectedAttributes(self, *args):
         """
-        addExpectedAttributes(self, ExpectedAttributes attributes, XMLInputStream stream, 
-            int type)
+        addExpectedAttributes(ASTBasePlugin self, ExpectedAttributes & attributes, XMLInputStream stream, int type)
 
         Internal implementation method.
 
@@ -61904,9 +61244,8 @@ class ASTBasePlugin(_object):
 
     def readAttributes(self, *args):
         """
-        readAttributes(self, XMLAttributes attributes, ExpectedAttributes expectedAttributes, 
-            XMLInputStream stream, XMLToken element, 
-            int type) -> bool
+        readAttributes(ASTBasePlugin self, XMLAttributes attributes, ExpectedAttributes const & expectedAttributes, XMLInputStream stream, 
+            XMLToken element, int type) -> bool
 
         Internal implementation method.
 
@@ -61915,7 +61254,7 @@ class ASTBasePlugin(_object):
 
     def writeAttributes(self, *args):
         """
-        writeAttributes(self, XMLOutputStream stream, int type)
+        writeAttributes(ASTBasePlugin self, XMLOutputStream stream, int type)
 
         Internal implementation method.
 
@@ -61924,7 +61263,7 @@ class ASTBasePlugin(_object):
 
     def writeXMLNS(self, *args):
         """
-        writeXMLNS(self, XMLOutputStream stream)
+        writeXMLNS(ASTBasePlugin self, XMLOutputStream stream)
 
         Internal implementation method.
 
@@ -61933,7 +61272,7 @@ class ASTBasePlugin(_object):
 
     def isNumberNode(self, *args):
         """
-        isNumberNode(self, int type) -> bool
+        isNumberNode(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -61942,7 +61281,7 @@ class ASTBasePlugin(_object):
 
     def isFunctionNode(self, *args):
         """
-        isFunctionNode(self, int type) -> bool
+        isFunctionNode(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -61951,7 +61290,7 @@ class ASTBasePlugin(_object):
 
     def isLogical(self, *args):
         """
-        isLogical(self, int type) -> bool
+        isLogical(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -61960,7 +61299,7 @@ class ASTBasePlugin(_object):
 
     def isConstantNumber(self, *args):
         """
-        isConstantNumber(self, int type) -> bool
+        isConstantNumber(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -61969,7 +61308,7 @@ class ASTBasePlugin(_object):
 
     def isCSymbolFunction(self, *args):
         """
-        isCSymbolFunction(self, int type) -> bool
+        isCSymbolFunction(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -61978,7 +61317,7 @@ class ASTBasePlugin(_object):
 
     def isCSymbolNumber(self, *args):
         """
-        isCSymbolNumber(self, int type) -> bool
+        isCSymbolNumber(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -61987,7 +61326,7 @@ class ASTBasePlugin(_object):
 
     def isName(self, *args):
         """
-        isName(self, int type) -> bool
+        isName(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -61996,7 +61335,7 @@ class ASTBasePlugin(_object):
 
     def isNumber(self, *args):
         """
-        isNumber(self, int type) -> bool
+        isNumber(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62005,7 +61344,7 @@ class ASTBasePlugin(_object):
 
     def isOperator(self, *args):
         """
-        isOperator(self, int type) -> bool
+        isOperator(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62014,7 +61353,7 @@ class ASTBasePlugin(_object):
 
     def isRelational(self, *args):
         """
-        isRelational(self, int type) -> bool
+        isRelational(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62023,7 +61362,7 @@ class ASTBasePlugin(_object):
 
     def representsQualifier(self, *args):
         """
-        representsQualifier(self, int type) -> bool
+        representsQualifier(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62032,7 +61371,7 @@ class ASTBasePlugin(_object):
 
     def isFunction(self, *args):
         """
-        isFunction(self, int type) -> bool
+        isFunction(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62041,7 +61380,7 @@ class ASTBasePlugin(_object):
 
     def representsUnaryFunction(self, *args):
         """
-        representsUnaryFunction(self, int type) -> bool
+        representsUnaryFunction(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62050,7 +61389,7 @@ class ASTBasePlugin(_object):
 
     def representsBinaryFunction(self, *args):
         """
-        representsBinaryFunction(self, int type) -> bool
+        representsBinaryFunction(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62059,7 +61398,7 @@ class ASTBasePlugin(_object):
 
     def representsNaryFunction(self, *args):
         """
-        representsNaryFunction(self, int type) -> bool
+        representsNaryFunction(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62068,7 +61407,7 @@ class ASTBasePlugin(_object):
 
     def hasCorrectNumberArguments(self, *args):
         """
-        hasCorrectNumberArguments(self, int type) -> bool
+        hasCorrectNumberArguments(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62077,7 +61416,7 @@ class ASTBasePlugin(_object):
 
     def isWellFormedNode(self, *args):
         """
-        isWellFormedNode(self, int type) -> bool
+        isWellFormedNode(ASTBasePlugin self, int type) -> bool
 
         Internal implementation method.
 
@@ -62086,7 +61425,7 @@ class ASTBasePlugin(_object):
 
     def isTopLevelMathMLFunctionNodeTag(self, *args):
         """
-        isTopLevelMathMLFunctionNodeTag(self, string name) -> bool
+        isTopLevelMathMLFunctionNodeTag(ASTBasePlugin self, string name) -> bool
 
         Internal implementation method.
 
@@ -62095,7 +61434,7 @@ class ASTBasePlugin(_object):
 
     def isTopLevelMathMLNumberNodeTag(self, *args):
         """
-        isTopLevelMathMLNumberNodeTag(self, string name) -> bool
+        isTopLevelMathMLNumberNodeTag(ASTBasePlugin self, string name) -> bool
 
         Internal implementation method.
 
@@ -62104,7 +61443,7 @@ class ASTBasePlugin(_object):
 
     def getTypeFromName(self, *args):
         """
-        getTypeFromName(self, string name) -> int
+        getTypeFromName(ASTBasePlugin self, string name) -> int
 
         Internal implementation method.
 
@@ -62113,7 +61452,7 @@ class ASTBasePlugin(_object):
 
     def getNameFromType(self, *args):
         """
-        getNameFromType(self, int type) -> char
+        getNameFromType(ASTBasePlugin self, int type) -> char const *
 
         Internal implementation method.
 
@@ -62122,7 +61461,7 @@ class ASTBasePlugin(_object):
 
     def renameSIdRefs(self, *args):
         """
-        renameSIdRefs(self, string oldid, string newid)
+        renameSIdRefs(ASTBasePlugin self, string oldid, string newid)
 
         Internal implementation method.
 
@@ -62131,7 +61470,7 @@ class ASTBasePlugin(_object):
 
     def renameUnitSIdRefs(self, *args):
         """
-        renameUnitSIdRefs(self, string oldid, string newid)
+        renameUnitSIdRefs(ASTBasePlugin self, string oldid, string newid)
 
         Internal implementation method.
 
@@ -62140,7 +61479,7 @@ class ASTBasePlugin(_object):
 
     def replaceIDWithFunction(self, *args):
         """
-        replaceIDWithFunction(self, string id, ASTNode function)
+        replaceIDWithFunction(ASTBasePlugin self, string id, ASTNode function)
 
         Internal implementation method.
 
diff --git a/src/bindings/python/libsbml_wrap.cpp b/src/bindings/python/libsbml_wrap.cpp
index f12bd1f..02a0b0e 100644
--- a/src/bindings/python/libsbml_wrap.cpp
+++ b/src/bindings/python/libsbml_wrap.cpp
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -1223,7 +1223,7 @@ SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
 SWIGINTERN void 
 SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
   SWIG_PYTHON_THREAD_BEGIN_BLOCK;
-  PyErr_SetString(errtype, (char *) msg);
+  PyErr_SetString(errtype, msg);
   SWIG_PYTHON_THREAD_END_BLOCK;
 }
 
@@ -1242,7 +1242,11 @@ SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) {
 
 SWIGINTERN void
 SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) {   
+#if PY_VERSION_HEX < 0x02030000
   PyDict_SetItemString(d, (char *)name, obj);
+#else
+  PyDict_SetItemString(d, name, obj);
+#endif
   Py_DECREF(obj);
   if (public_interface)
     SwigPyBuiltin_AddPublicSymbol(public_interface, name);
@@ -1252,7 +1256,11 @@ SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *nam
 
 SWIGINTERN void
 SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {   
+#if PY_VERSION_HEX < 0x02030000
   PyDict_SetItemString(d, (char *)name, obj);
+#else
+  PyDict_SetItemString(d, name, obj);
+#endif
   Py_DECREF(obj);                            
 }
 
@@ -1573,7 +1581,7 @@ SwigPyObject_repr(SwigPyObject *v, PyObject *args)
 #endif
 {
   const char *name = SWIG_TypePrettyName(v->ty);
-  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", name, (void *)v);
+  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", (name ? name : "unknown"), (void *)v);
   if (v->next) {
 # ifdef METH_NOARGS
     PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
@@ -1777,8 +1785,10 @@ SwigPyObject_own(PyObject *v, PyObject *args)
   PyObject *val = 0;
 #if (PY_VERSION_HEX < 0x02020000)
   if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
-#else
+#elif (PY_VERSION_HEX < 0x02050000)
   if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) 
+#else
+  if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) 
 #endif
     {
       return NULL;
@@ -2540,7 +2550,7 @@ SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
 SWIGINTERN PyObject *
 SWIG_Python_InitShadowInstance(PyObject *args) {
   PyObject *obj[2];
-  if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
+  if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) {
     return NULL;
   } else {
     SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
@@ -2816,7 +2826,7 @@ SwigPyObject_GetDesc(PyObject *self)
 {
   SwigPyObject *v = (SwigPyObject *)self;
   swig_type_info *ty = v ? v->ty : 0;
-  return ty ? ty->str : (char*)"";
+  return ty ? ty->str : "";
 }
 
 SWIGRUNTIME void
@@ -2873,6 +2883,7 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(arg
   return result;
 }
 
+#ifdef SWIGPYTHON_BUILTIN
 SWIGRUNTIME int
 SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
   PyTypeObject *tp = obj->ob_type;
@@ -2881,15 +2892,15 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
   descrsetfunc f;
   int res;
 
-#ifdef Py_USING_UNICODE
+# ifdef Py_USING_UNICODE
   if (PyString_Check(name)) {
     name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL);
     if (!name)
       return -1;
   } else if (!PyUnicode_Check(name))
-#else
+# else
   if (!PyString_Check(name))
-#endif
+# endif
   {
     PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name);
     return -1;
@@ -2924,6 +2935,7 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
   Py_DECREF(name);
   return res;
 }
+#endif
 
 
 #ifdef __cplusplus
@@ -3192,7 +3204,7 @@ namespace Swig {
       std::cerr << "This exception was caught by the SWIG unexpected exception handler." << std::endl
                 << "Try using %feature(\"director:except\") to avoid reaching this point." << std::endl
                 << std::endl
-                << "Exception is being re-thrown, program will like abort/terminate." << std::endl;
+                << "Exception is being re-thrown, program will likely abort/terminate." << std::endl;
       throw;
     }
 
@@ -3626,7 +3638,7 @@ static swig_module_info swig_module = {swig_types, 174, 0, 0, 0, 0};
 #endif
 #define SWIG_name    "_libsbml"
 
-#define SWIGVERSION 0x020004 
+#define SWIGVERSION 0x020006 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -3858,14 +3870,14 @@ SWIG_AsVal_unsigned_SS_int (PyObject * obj, unsigned int *val)
 }
 
 
-  #define SWIG_From_long   PyInt_FromLong 
+  #define SWIG_From_long   PyLong_FromLong 
 
 
 SWIGINTERNINLINE PyObject* 
 SWIG_From_unsigned_SS_long  (unsigned long value)
 {
   return (value > LONG_MAX) ?
-    PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value)); 
+    PyLong_FromUnsignedLong(value) : PyLong_FromLong(static_cast< long >(value)); 
 }
 
 
@@ -3899,7 +3911,10 @@ SWIG_From_unsigned_SS_int  (unsigned int value)
 #include <stdexcept>
 #include <stddef.h>
 
-  
+
+  #include <stddef.h>
+
+
 namespace swig {
   struct stop_iteration {
   };
@@ -4685,8 +4700,9 @@ namespace swig {
 }
 
 namespace swig {
+  template <class Difference>
   inline size_t
-  check_index(ptrdiff_t i, size_t size, bool insert = false) {
+  check_index(Difference i, size_t size, bool insert = false) {
     if ( i < 0 ) {
       if ((size_t) (-i) <= size)
 	return (size_t) (i + size);
@@ -4695,20 +4711,42 @@ namespace swig {
     } else if (insert && ((size_t) i == size)) {
       return size;
     }
-    
     throw std::out_of_range("index out of range");
   }
 
-  inline size_t
-  slice_index(ptrdiff_t i, size_t size) {
-    if ( i < 0 ) {
-      if ((size_t) (-i) <= size) {
-	return (size_t) (i + size);
+  template <class Difference>
+  void
+  slice_adjust(Difference i, Difference j, Py_ssize_t step, size_t size, Difference &ii, Difference &jj, bool insert = false) {
+    if (step == 0) {
+      throw std::invalid_argument("slice step cannot be zero");
+    } else if (step > 0) {
+      // Required range: 0 <= i < size, 0 <= j < size
+      if (i < 0) {
+        ii = 0;
+      } else if (i < (Difference)size) {
+        ii = i;
+      } else if (insert && (i >= (Difference)size)) {
+        ii = (Difference)size;
+      }
+      if ( j < 0 ) {
+        jj = 0;
       } else {
-	throw std::out_of_range("index out of range");
+        jj = (j < (Difference)size) ? j : (Difference)size;
       }
     } else {
-      return ( (size_t) i < size ) ? ((size_t) i) : size;
+      // Required range: -1 <= i < size-1, -1 <= j < size-1
+      if (i < -1) {
+        ii = -1;
+      } else if (i < (Difference) size) {
+        ii = i;
+      } else if (i >= (Difference)(size-1)) {
+        ii = (Difference)(size-1);
+      }
+      if (j < -1) {
+        jj = -1;
+      } else {
+        jj = (j < (Difference)size ) ? j : (Difference)(size-1);
+      }
     }
   }
 
@@ -4730,58 +4768,156 @@ namespace swig {
 
   template <class Sequence, class Difference>
   inline Sequence*
-  getslice(const Sequence* self, Difference i, Difference j) {
+  getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) {
     typename Sequence::size_type size = self->size();
-    typename Sequence::size_type ii = swig::check_index(i, size);
-    typename Sequence::size_type jj = swig::slice_index(j, size);
-
-    if (jj > ii) {
-      typename Sequence::const_iterator vb = self->begin();
-      typename Sequence::const_iterator ve = self->begin();
-      std::advance(vb,ii);
-      std::advance(ve,jj);
-      return new Sequence(vb, ve);
+    Difference ii = 0;
+    Difference jj = 0;
+    swig::slice_adjust(i, j, step, size, ii, jj);
+
+    if (step > 0) {
+      typename Sequence::const_iterator sb = self->begin();
+      typename Sequence::const_iterator se = self->begin();
+      std::advance(sb,ii);
+      std::advance(se,jj);
+      if (step == 1) {
+        return new Sequence(sb, se);
+      } else {
+        Sequence *sequence = new Sequence();
+        typename Sequence::const_iterator it = sb;
+        while (it!=se) {
+          sequence->push_back(*it);
+          for (Py_ssize_t c=0; c<step && it!=se; ++c)
+            it++;
+        }
+        return sequence;
+      } 
     } else {
-      return new Sequence();
+      Sequence *sequence = new Sequence();
+      if (ii > jj) {
+        typename Sequence::const_reverse_iterator sb = self->rbegin();
+        typename Sequence::const_reverse_iterator se = self->rbegin();
+        std::advance(sb,size-ii-1);
+        std::advance(se,size-jj-1);
+        typename Sequence::const_reverse_iterator it = sb;
+        while (it!=se) {
+          sequence->push_back(*it);
+          for (Py_ssize_t c=0; c<-step && it!=se; ++c)
+            it++;
+        }
+      }
+      return sequence;
     }
   }
 
   template <class Sequence, class Difference, class InputSeq>
   inline void
-  setslice(Sequence* self, Difference i, Difference j, const InputSeq& v = InputSeq()) {
+  setslice(Sequence* self, Difference i, Difference j, Py_ssize_t step, const InputSeq& is = InputSeq()) {
     typename Sequence::size_type size = self->size();
-    typename Sequence::size_type ii = swig::check_index(i, size, true);
-    typename Sequence::size_type jj = swig::slice_index(j, size);
-    if (jj < ii) jj = ii;
-    size_t ssize = jj - ii;
-    if (ssize <= v.size()) {
-      typename Sequence::iterator sb = self->begin();
-      typename InputSeq::const_iterator vmid = v.begin();
-      std::advance(sb,ii);
-      std::advance(vmid, jj - ii);
-      self->insert(std::copy(v.begin(), vmid, sb), vmid, v.end());
+    Difference ii = 0;
+    Difference jj = 0;
+    swig::slice_adjust(i, j, step, size, ii, jj, true);
+    if (step > 0) {
+      if (jj < ii)
+        jj = ii;
+      if (step == 1) {
+        size_t ssize = jj - ii;
+        if (ssize <= is.size()) {
+          // expanding/staying the same size
+          typename Sequence::iterator sb = self->begin();
+          typename InputSeq::const_iterator isit = is.begin();
+          std::advance(sb,ii);
+          std::advance(isit, jj - ii);
+          self->insert(std::copy(is.begin(), isit, sb), isit, is.end());
+        } else {
+          // shrinking
+          typename Sequence::iterator sb = self->begin();
+          typename Sequence::iterator se = self->begin();
+          std::advance(sb,ii);
+          std::advance(se,jj);
+          self->erase(sb,se);
+          sb = self->begin();
+          std::advance(sb,ii);
+          self->insert(sb, is.begin(), is.end());
+        }
+      } else {
+        size_t replacecount = (jj - ii + step - 1) / step;
+        if (is.size() != replacecount) {
+          char msg[1024];
+          sprintf(msg, "attempt to assign sequence of size %lu to extended slice of size %lu", (unsigned long)is.size(), (unsigned long)replacecount);
+          throw std::invalid_argument(msg);
+        }
+        typename Sequence::const_iterator isit = is.begin();
+        typename Sequence::iterator it = self->begin();
+        std::advance(it,ii);
+        for (size_t rc=0; rc<replacecount; ++rc) {
+          *it++ = *isit++;
+          for (Py_ssize_t c=0; c<(step-1); ++c)
+            it++;
+        }
+      }
     } else {
-      typename Sequence::iterator sb = self->begin();
-      typename Sequence::iterator se = self->begin();
-      std::advance(sb,ii);
-      std::advance(se,jj);
-      self->erase(sb,se);
-      self->insert(sb, v.begin(), v.end());
+      if (jj > ii)
+        jj = ii;
+      size_t replacecount = (ii - jj - step - 1) / -step;
+      if (is.size() != replacecount) {
+        char msg[1024];
+        sprintf(msg, "attempt to assign sequence of size %lu to extended slice of size %lu", (unsigned long)is.size(), (unsigned long)replacecount);
+        throw std::invalid_argument(msg);
+      }
+      typename Sequence::const_iterator isit = is.begin();
+      typename Sequence::reverse_iterator it = self->rbegin();
+      std::advance(it,size-ii-1);
+      for (size_t rc=0; rc<replacecount; ++rc) {
+        *it++ = *isit++;
+        for (Py_ssize_t c=0; c<(-step-1); ++c)
+          it++;
+      }
     }
   }
 
   template <class Sequence, class Difference>
   inline void
-  delslice(Sequence* self, Difference i, Difference j) {
+  delslice(Sequence* self, Difference i, Difference j, Py_ssize_t step) {
     typename Sequence::size_type size = self->size();
-    typename Sequence::size_type ii = swig::check_index(i, size, true);
-    typename Sequence::size_type jj = swig::slice_index(j, size);
-    if (jj > ii) {
-      typename Sequence::iterator sb = self->begin();
-      typename Sequence::iterator se = self->begin();
-      std::advance(sb,ii);
-      std::advance(se,jj);
-      self->erase(sb,se);
+    Difference ii = 0;
+    Difference jj = 0;
+    swig::slice_adjust(i, j, step, size, ii, jj, true);
+    if (step > 0) {
+      if (jj > ii) {
+        typename Sequence::iterator sb = self->begin();
+        std::advance(sb,ii);
+        if (step == 1) {
+          typename Sequence::iterator se = self->begin();
+          std::advance(se,jj);
+          self->erase(sb,se);
+        } else {
+          typename Sequence::iterator it = sb;
+          size_t delcount = (jj - ii + step - 1) / step;
+          while (delcount) {
+            it = self->erase(it);
+            if (it==self->end())
+              break;
+            for (Py_ssize_t c=0; c<(step-1); ++c)
+              it++;
+            delcount--;
+          }
+        }
+      }
+    } else {
+      if (ii > jj) {
+        typename Sequence::reverse_iterator sb = self->rbegin();
+        std::advance(sb,size-ii-1);
+        typename Sequence::reverse_iterator it = sb;
+        size_t delcount = (ii - jj - step - 1) / -step;
+        while (delcount) {
+          self->erase((++it).base());
+          if (it==self->rend())
+            break;
+          for (Py_ssize_t c=0; c<(-step-1); ++c)
+            it++;
+          delcount--;
+        }
+      }
     }
   }
 }
@@ -5248,13 +5384,13 @@ SWIGINTERN std::basic_string< char >::size_type std_basic_string_Sl_char_Sg____l
       return self->size();
     }
 SWIGINTERN std::basic_string< char,std::char_traits< char >,std::allocator< char > > *std_basic_string_Sl_char_Sg____getslice__(std::basic_string< char > *self,std::basic_string< char >::difference_type i,std::basic_string< char >::difference_type j){
-      return swig::getslice(self, i, j);
+      return swig::getslice(self, i, j, 1);
     }
 SWIGINTERN void std_basic_string_Sl_char_Sg____setslice____SWIG_0(std::basic_string< char > *self,std::basic_string< char >::difference_type i,std::basic_string< char >::difference_type j,std::basic_string< char,std::char_traits< char >,std::allocator< char > > const &v=std::basic_string< char,std::char_traits< char >,std::allocator< char > >()){
-      swig::setslice(self, i, j, v);
+      swig::setslice(self, i, j, 1, v);
     }
 SWIGINTERN void std_basic_string_Sl_char_Sg____delslice__(std::basic_string< char > *self,std::basic_string< char >::difference_type i,std::basic_string< char >::difference_type j){
-      swig::delslice(self, i, j);
+      swig::delslice(self, i, j, 1);
     }
 SWIGINTERN void std_basic_string_Sl_char_Sg____delitem____SWIG_0(std::basic_string< char > *self,std::basic_string< char >::difference_type i){
       self->erase(swig::getpos(self,i));
@@ -5265,8 +5401,10 @@ SWIGINTERN std::basic_string< char,std::char_traits< char >,std::allocator< char
         SWIG_Error(SWIG_TypeError, "Slice object expected.");
         return NULL;
       }
-      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), self->size(), &i, &j, &step);
-      return swig::getslice(self, i, j);
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type id = i;
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type jd = j;
+      return swig::getslice(self, id, jd, step);
     }
 SWIGINTERN void std_basic_string_Sl_char_Sg____setitem____SWIG_0(std::basic_string< char > *self,PySliceObject *slice,std::basic_string< char,std::char_traits< char >,std::allocator< char > > const &v){
       Py_ssize_t i, j, step;
@@ -5274,8 +5412,10 @@ SWIGINTERN void std_basic_string_Sl_char_Sg____setitem____SWIG_0(std::basic_stri
         SWIG_Error(SWIG_TypeError, "Slice object expected.");
         return;
       }
-      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), self->size(), &i, &j, &step);
-      swig::setslice(self, i, j, v);
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type id = i;
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type jd = j;
+      swig::setslice(self, id, jd, step, v);
     }
 SWIGINTERN void std_basic_string_Sl_char_Sg____setitem____SWIG_1(std::basic_string< char > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5283,8 +5423,10 @@ SWIGINTERN void std_basic_string_Sl_char_Sg____setitem____SWIG_1(std::basic_stri
         SWIG_Error(SWIG_TypeError, "Slice object expected.");
         return;
       }
-      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), self->size(), &i, &j, &step);
-      swig::delslice(self, i,j);
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type id = i;
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
 SWIGINTERN void std_basic_string_Sl_char_Sg____delitem____SWIG_1(std::basic_string< char > *self,PySliceObject *slice){
       Py_ssize_t i, j, step;
@@ -5292,8 +5434,10 @@ SWIGINTERN void std_basic_string_Sl_char_Sg____delitem____SWIG_1(std::basic_stri
         SWIG_Error(SWIG_TypeError, "Slice object expected.");
         return;
       }
-      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), self->size(), &i, &j, &step);
-      swig::delslice(self, i,j);
+      PySlice_GetIndices(SWIGPY_SLICE_ARG(slice), (Py_ssize_t)self->size(), &i, &j, &step);
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type id = i;
+      std::basic_string<char,std::char_traits< char >,std::allocator< char > >::difference_type jd = j;
+      swig::delslice(self, id, jd, step);
     }
 SWIGINTERN std::basic_string< char >::value_type std_basic_string_Sl_char_Sg____getitem____SWIG_1(std::basic_string< char > *self,std::basic_string< char >::difference_type i){
       return *(swig::cgetpos(self, i));
@@ -5340,10 +5484,10 @@ SWIGINTERN int ListWrapper_Sl_SBMLNamespaces_Sg____len__(ListWrapper< SBMLNamesp
     return self->getSize();
   }
 
-SWIGINTERNINLINE PyObject *
-SWIG_From_int  (int value)
-{    
-  return SWIG_From_long  (value);
+SWIGINTERNINLINE PyObject*
+  SWIG_From_int  (int value)
+{
+  return PyInt_FromLong((long) value);
 }
 
 SWIGINTERN int ListWrapper_Sl_CVTerm_Sg____len__(ListWrapper< CVTerm > *self){
@@ -5355,6 +5499,9 @@ SWIGINTERN int ListWrapper_Sl_Date_Sg____len__(ListWrapper< Date > *self){
 SWIGINTERN int ListWrapper_Sl_ModelCreator_Sg____len__(ListWrapper< ModelCreator > *self){
     return self->getSize();
   }
+SWIGINTERN int ListWrapper_Sl_SBase_Sg____len__(ListWrapper< SBase > *self){
+    return self->getSize();
+  }
 
 SWIGINTERN int
 SWIG_AsVal_int (PyObject * obj, int *val)
@@ -12057,6 +12204,9 @@ SWIGINTERN PyObject *_wrap_string___getslice__(PyObject *SWIGUNUSEDPARM(self), P
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__basic_stringT_char_std__char_traitsT_char_t_std__allocatorT_char_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
@@ -12278,6 +12428,9 @@ SWIGINTERN PyObject *_wrap_string___delslice__(PyObject *SWIGUNUSEDPARM(self), P
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -12350,8 +12503,11 @@ SWIGINTERN PyObject *_wrap_string___getitem____SWIG_0(PyObject *SWIGUNUSEDPARM(s
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__basic_stringT_char_std__char_traitsT_char_t_std__allocatorT_char_t_t, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__basic_stringT_char_std__char_traitsT_char_t_std__allocatorT_char_t_t, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -12439,6 +12595,9 @@ SWIGINTERN PyObject *_wrap_string___setitem____SWIG_1(PyObject *SWIGUNUSEDPARM(s
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -12474,6 +12633,9 @@ SWIGINTERN PyObject *_wrap_string___delitem____SWIG_1(PyObject *SWIGUNUSEDPARM(s
   catch(std::out_of_range &_e) {
     SWIG_exception_fail(SWIG_IndexError, (&_e)->what());
   }
+  catch(std::invalid_argument &_e) {
+    SWIG_exception_fail(SWIG_ValueError, (&_e)->what());
+  }
   
   resultobj = SWIG_Py_Void();
   return resultobj;
@@ -15230,6 +15392,219 @@ SWIGINTERN PyObject *ListWrapperModelCreator_swigregister(PyObject *SWIGUNUSEDPA
   return SWIG_Py_Void();
 }
 
+SWIGINTERN PyObject *_wrap_new_ListWrapperSBase(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_ListWrapperSBase")) SWIG_fail;
+  result = (ListWrapper< SBase > *)new ListWrapper< SBase >();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ListWrapperT_SBase_t, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_ListWrapperSBase(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_ListWrapperSBase",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ListWrapperT_SBase_t, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_ListWrapperSBase" "', argument " "1"" of type '" "ListWrapper< SBase > *""'"); 
+  }
+  arg1 = reinterpret_cast< ListWrapper< SBase > * >(argp1);
+  delete arg1;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ListWrapperSBase_add(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
+  SBase *arg2 = (SBase *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:ListWrapperSBase_add",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ListWrapperT_SBase_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ListWrapperSBase_add" "', argument " "1"" of type '" "ListWrapper< SBase > *""'"); 
+  }
+  arg1 = reinterpret_cast< ListWrapper< SBase > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SBase, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ListWrapperSBase_add" "', argument " "2"" of type '" "SBase *""'"); 
+  }
+  arg2 = reinterpret_cast< SBase * >(argp2);
+  (arg1)->add(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ListWrapperSBase_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
+  unsigned int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  unsigned int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  SBase *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:ListWrapperSBase_get",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ListWrapperT_SBase_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ListWrapperSBase_get" "', argument " "1"" of type '" "ListWrapper< SBase > const *""'"); 
+  }
+  arg1 = reinterpret_cast< ListWrapper< SBase > * >(argp1);
+  ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ListWrapperSBase_get" "', argument " "2"" of type '" "unsigned int""'");
+  } 
+  arg2 = static_cast< unsigned int >(val2);
+  result = (SBase *)((ListWrapper< SBase > const *)arg1)->get(arg2);
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ListWrapperSBase_prepend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
+  SBase *arg2 = (SBase *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:ListWrapperSBase_prepend",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ListWrapperT_SBase_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ListWrapperSBase_prepend" "', argument " "1"" of type '" "ListWrapper< SBase > *""'"); 
+  }
+  arg1 = reinterpret_cast< ListWrapper< SBase > * >(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_SBase, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ListWrapperSBase_prepend" "', argument " "2"" of type '" "SBase *""'"); 
+  }
+  arg2 = reinterpret_cast< SBase * >(argp2);
+  (arg1)->prepend(arg2);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ListWrapperSBase_remove(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
+  unsigned int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  unsigned int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  SBase *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:ListWrapperSBase_remove",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ListWrapperT_SBase_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ListWrapperSBase_remove" "', argument " "1"" of type '" "ListWrapper< SBase > *""'"); 
+  }
+  arg1 = reinterpret_cast< ListWrapper< SBase > * >(argp1);
+  ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "ListWrapperSBase_remove" "', argument " "2"" of type '" "unsigned int""'");
+  } 
+  arg2 = static_cast< unsigned int >(val2);
+  result = (SBase *)(arg1)->remove(arg2);
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ListWrapperSBase_getSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  unsigned int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ListWrapperSBase_getSize",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ListWrapperT_SBase_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ListWrapperSBase_getSize" "', argument " "1"" of type '" "ListWrapper< SBase > const *""'"); 
+  }
+  arg1 = reinterpret_cast< ListWrapper< SBase > * >(argp1);
+  result = (unsigned int)((ListWrapper< SBase > const *)arg1)->getSize();
+  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ListWrapperSBase___len__(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ListWrapper< SBase > *arg1 = (ListWrapper< SBase > *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ListWrapperSBase___len__",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ListWrapperT_SBase_t, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ListWrapperSBase___len__" "', argument " "1"" of type '" "ListWrapper< SBase > *""'"); 
+  }
+  arg1 = reinterpret_cast< ListWrapper< SBase > * >(argp1);
+  result = (int)ListWrapper_Sl_SBase_Sg____len__(arg1);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *ListWrapperSBase_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_ListWrapperT_SBase_t, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
 SWIGINTERN PyObject *_wrap_getLibSBMLVersion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   int result;
@@ -25011,7 +25386,10 @@ SWIGINTERN PyObject *_wrap_Model_createReaction(PyObject *SWIGUNUSEDPARM(self),
   }
   arg1 = reinterpret_cast< Model * >(argp1);
   result = (Reaction *)(arg1)->createReaction();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -29284,7 +29662,10 @@ SWIGINTERN PyObject *_wrap_Model_getReaction__SWIG_0(PyObject *SWIGUNUSEDPARM(se
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)((Model const *)arg1)->getReaction(arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -29315,7 +29696,10 @@ SWIGINTERN PyObject *_wrap_Model_getReaction__SWIG_1(PyObject *SWIGUNUSEDPARM(se
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->getReaction(arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -29351,7 +29735,10 @@ SWIGINTERN PyObject *_wrap_Model_getReaction__SWIG_2(PyObject *SWIGUNUSEDPARM(se
     arg2 = ptr;
   }
   result = (Reaction *)((Model const *)arg1)->getReaction((std::string const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
@@ -29389,7 +29776,10 @@ SWIGINTERN PyObject *_wrap_Model_getReaction__SWIG_3(PyObject *SWIGUNUSEDPARM(se
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->getReaction((std::string const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
@@ -32891,7 +33281,10 @@ SWIGINTERN PyObject *_wrap_Model_removeReaction__SWIG_0(PyObject *SWIGUNUSEDPARM
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->removeReaction(arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_OWN |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -32927,7 +33320,10 @@ SWIGINTERN PyObject *_wrap_Model_removeReaction__SWIG_1(PyObject *SWIGUNUSEDPARM
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->removeReaction((std::string const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_OWN |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
@@ -34503,7 +34899,38 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SBMLDocument_checkL1Compatibility(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL1Compatibility__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  unsigned int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:SBMLDocument_checkL1Compatibility",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL1Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL1Compatibility" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL1Compatibility(arg2);
+  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL1Compatibility__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
@@ -34525,7 +34952,82 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v1Compatibility(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL1Compatibility(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? (int)PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL1Compatibility__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL1Compatibility__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SBMLDocument_checkL1Compatibility'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SBMLDocument::checkL1Compatibility(bool)\n"
+    "    SBMLDocument::checkL1Compatibility()\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  unsigned int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:SBMLDocument_checkL2v1Compatibility",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL2v1Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL2v1Compatibility" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL2v1Compatibility(arg2);
+  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
@@ -34547,7 +35049,82 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v2Compatibility(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v1Compatibility(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? (int)PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL2v1Compatibility__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL2v1Compatibility__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SBMLDocument_checkL2v1Compatibility'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SBMLDocument::checkL2v1Compatibility(bool)\n"
+    "    SBMLDocument::checkL2v1Compatibility()\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  unsigned int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:SBMLDocument_checkL2v2Compatibility",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL2v2Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL2v2Compatibility" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL2v2Compatibility(arg2);
+  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
@@ -34569,7 +35146,82 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v3Compatibility(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v2Compatibility(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? (int)PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL2v2Compatibility__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL2v2Compatibility__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SBMLDocument_checkL2v2Compatibility'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SBMLDocument::checkL2v2Compatibility(bool)\n"
+    "    SBMLDocument::checkL2v2Compatibility()\n");
+  return 0;
+}
+
+
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  unsigned int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:SBMLDocument_checkL2v3Compatibility",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SBMLDocument_checkL2v3Compatibility" "', argument " "1"" of type '" "SBMLDocument *""'"); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SBMLDocument_checkL2v3Compatibility" "', argument " "2"" of type '" "bool""'");
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL2v3Compatibility(arg2);
+  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
@@ -34591,6 +35243,50 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v3Compatibility(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[3];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? (int)PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL2v3Compatibility__SWIG_1(self, args);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL2v3Compatibility__SWIG_0(self, args);
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'SBMLDocument_checkL2v3Compatibility'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    SBMLDocument::checkL2v3Compatibility(bool)\n"
+    "    SBMLDocument::checkL2v3Compatibility()\n");
+  return 0;
+}
+
+
 SWIGINTERN PyObject *_wrap_SBMLDocument_checkL2v4Compatibility(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
@@ -56113,7 +56809,10 @@ SWIGINTERN PyObject *_wrap_new_Reaction__SWIG_0(PyObject *SWIGUNUSEDPARM(self),
       return NULL;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_NEW |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_NEW |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -56147,7 +56846,10 @@ SWIGINTERN PyObject *_wrap_new_Reaction__SWIG_1(PyObject *SWIGUNUSEDPARM(self),
       return NULL;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_NEW |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_NEW |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -56205,7 +56907,10 @@ SWIGINTERN PyObject *_wrap_new_Reaction__SWIG_2(PyObject *SWIGUNUSEDPARM(self),
       return NULL;
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_NEW |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_NEW |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -56281,7 +56986,10 @@ SWIGINTERN PyObject *_wrap_Reaction_clone(PyObject *SWIGUNUSEDPARM(self), PyObje
   }
   arg1 = reinterpret_cast< Reaction * >(argp1);
   result = (Reaction *)((Reaction const *)arg1)->clone();
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_OWN |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -59724,7 +60432,10 @@ SWIGINTERN PyObject *_wrap_ListOfReactions_get__SWIG_0(PyObject *SWIGUNUSEDPARM(
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->get(arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -59755,7 +60466,10 @@ SWIGINTERN PyObject *_wrap_ListOfReactions_get__SWIG_1(PyObject *SWIGUNUSEDPARM(
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)((ListOfReactions const *)arg1)->get(arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -59791,7 +60505,10 @@ SWIGINTERN PyObject *_wrap_ListOfReactions_get__SWIG_2(PyObject *SWIGUNUSEDPARM(
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->get((std::string const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
@@ -59829,7 +60546,10 @@ SWIGINTERN PyObject *_wrap_ListOfReactions_get__SWIG_3(PyObject *SWIGUNUSEDPARM(
     arg2 = ptr;
   }
   result = (Reaction *)((ListOfReactions const *)arg1)->get((std::string const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
@@ -59940,7 +60660,10 @@ SWIGINTERN PyObject *_wrap_ListOfReactions_remove__SWIG_0(PyObject *SWIGUNUSEDPA
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->remove(arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_OWN |  0 );
+  }
   return resultobj;
 fail:
   return NULL;
@@ -59976,7 +60699,10 @@ SWIGINTERN PyObject *_wrap_ListOfReactions_remove__SWIG_1(PyObject *SWIGUNUSEDPA
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->remove((std::string const &)*arg2);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result),
+      SWIG_POINTER_OWN |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return resultobj;
 fail:
@@ -71207,6 +71933,28 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_SBO_getParentBranch(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  unsigned int arg1 ;
+  unsigned int val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  unsigned int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:SBO_getParentBranch",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_unsigned_SS_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "SBO_getParentBranch" "', argument " "1"" of type '" "unsigned int""'");
+  } 
+  arg1 = static_cast< unsigned int >(val1);
+  result = (unsigned int)SBO::getParentBranch(arg1);
+  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_SBO(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   SBO *result = 0 ;
@@ -93165,7 +93913,69 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_XMLOutputStream_writeComment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_XMLOutputStream_writeComment__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
+  std::string *arg2 = 0 ;
+  std::string *arg3 = 0 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 = SWIG_OLDOBJ ;
+  int res3 = SWIG_OLDOBJ ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:XMLOutputStream_writeComment",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_XMLOutputStream, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "XMLOutputStream_writeComment" "', argument " "1"" of type '" "XMLOutputStream *""'"); 
+  }
+  arg1 = reinterpret_cast< XMLOutputStream * >(argp1);
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res2 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(obj1, &ptr);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "XMLOutputStream_writeComment" "', argument " "2"" of type '" "std::string const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_writeComment" "', argument " "2"" of type '" "std::string const &""'"); 
+    }
+    arg2 = ptr;
+  }
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res3 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(obj2, &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "XMLOutputStream_writeComment" "', argument " "3"" of type '" "std::string const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_writeComment" "', argument " "3"" of type '" "std::string const &""'"); 
+    }
+    arg3 = ptr;
+  }
+  ecode4 = SWIG_AsVal_bool(obj3, &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), "in method '" "XMLOutputStream_writeComment" "', argument " "4"" of type '" "bool""'");
+  } 
+  arg4 = static_cast< bool >(val4);
+  (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3,arg4);
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_writeComment__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
   std::string *arg2 = 0 ;
@@ -93218,6 +94028,66 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_XMLOutputStream_writeComment(PyObject *self, PyObject *args) {
+  int argc;
+  PyObject *argv[5];
+  int ii;
+  
+  if (!PyTuple_Check(args)) SWIG_fail;
+  argc = args ? (int)PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 4) && (ii < argc); ii++) {
+    argv[ii] = PyTuple_GET_ITEM(args,ii);
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_XMLOutputStream, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[1], (std::basic_string<char>**)(0));
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[2], (std::basic_string<char>**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_XMLOutputStream_writeComment__SWIG_1(self, args);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_XMLOutputStream, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[1], (std::basic_string<char>**)(0));
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[2], (std::basic_string<char>**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_XMLOutputStream_writeComment__SWIG_0(self, args);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'XMLOutputStream_writeComment'.\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    XMLOutputStream::writeComment(std::string const &,std::string const &,bool)\n"
+    "    XMLOutputStream::writeComment(std::string const &,std::string const &)\n");
+  return 0;
+}
+
+
 SWIGINTERN PyObject *_wrap_XMLOutputStream_downIndent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
@@ -93315,6 +94185,156 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_XMLOutputStream_getWriteComment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)":XMLOutputStream_getWriteComment")) SWIG_fail;
+  result = (bool)XMLOutputStream::getWriteComment();
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_setWriteComment(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  bool arg1 ;
+  bool val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:XMLOutputStream_setWriteComment",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_bool(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "XMLOutputStream_setWriteComment" "', argument " "1"" of type '" "bool""'");
+  } 
+  arg1 = static_cast< bool >(val1);
+  XMLOutputStream::setWriteComment(arg1);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_getWriteTimestamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  bool result;
+  
+  if (!PyArg_ParseTuple(args,(char *)":XMLOutputStream_getWriteTimestamp")) SWIG_fail;
+  result = (bool)XMLOutputStream::getWriteTimestamp();
+  resultobj = SWIG_From_bool(static_cast< bool >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_setWriteTimestamp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  bool arg1 ;
+  bool val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:XMLOutputStream_setWriteTimestamp",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_bool(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "XMLOutputStream_setWriteTimestamp" "', argument " "1"" of type '" "bool""'");
+  } 
+  arg1 = static_cast< bool >(val1);
+  XMLOutputStream::setWriteTimestamp(arg1);
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_getLibraryName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::string result;
+  
+  if (!PyArg_ParseTuple(args,(char *)":XMLOutputStream_getLibraryName")) SWIG_fail;
+  result = XMLOutputStream::getLibraryName();
+  resultobj = SWIG_From_std_basic_string_Sl_char_Sg_(static_cast< std::basic_string<char> >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_setLibraryName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::string *arg1 = 0 ;
+  int res1 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:XMLOutputStream_setLibraryName",&obj0)) SWIG_fail;
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res1 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(obj0, &ptr);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "XMLOutputStream_setLibraryName" "', argument " "1"" of type '" "std::string const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_setLibraryName" "', argument " "1"" of type '" "std::string const &""'"); 
+    }
+    arg1 = ptr;
+  }
+  XMLOutputStream::setLibraryName((std::basic_string< char,std::char_traits< char >,std::allocator< char > > const &)*arg1);
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_getLibraryVersion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::string result;
+  
+  if (!PyArg_ParseTuple(args,(char *)":XMLOutputStream_getLibraryVersion")) SWIG_fail;
+  result = XMLOutputStream::getLibraryVersion();
+  resultobj = SWIG_From_std_basic_string_Sl_char_Sg_(static_cast< std::basic_string<char> >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_XMLOutputStream_setLibraryVersion(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  std::string *arg1 = 0 ;
+  int res1 = SWIG_OLDOBJ ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:XMLOutputStream_setLibraryVersion",&obj0)) SWIG_fail;
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res1 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(obj0, &ptr);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "XMLOutputStream_setLibraryVersion" "', argument " "1"" of type '" "std::string const &""'"); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "XMLOutputStream_setLibraryVersion" "', argument " "1"" of type '" "std::string const &""'"); 
+    }
+    arg1 = ptr;
+  }
+  XMLOutputStream::setLibraryVersion((std::basic_string< char,std::char_traits< char >,std::allocator< char > > const &)*arg1);
+  resultobj = SWIG_Py_Void();
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return resultobj;
+fail:
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_XMLOutputStream_writeAttributeBool__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
@@ -101982,6 +103002,100 @@ SWIGINTERN PyObject *CVTerm_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObjec
   return SWIG_Py_Void();
 }
 
+SWIGINTERN PyObject *_wrap_ModelQualifierType_toString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ModelQualifierType_t arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ModelQualifierType_toString",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "ModelQualifierType_toString" "', argument " "1"" of type '" "ModelQualifierType_t""'");
+  } 
+  arg1 = static_cast< ModelQualifierType_t >(val1);
+  result = (char *)ModelQualifierType_toString(arg1);
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BiolQualifierType_toString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  BiolQualifierType_t arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:BiolQualifierType_toString",&obj0)) SWIG_fail;
+  ecode1 = SWIG_AsVal_int(obj0, &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), "in method '" "BiolQualifierType_toString" "', argument " "1"" of type '" "BiolQualifierType_t""'");
+  } 
+  arg1 = static_cast< BiolQualifierType_t >(val1);
+  result = (char *)BiolQualifierType_toString(arg1);
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_ModelQualifierType_fromString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  char *arg1 = (char *) 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  PyObject * obj0 = 0 ;
+  ModelQualifierType_t result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ModelQualifierType_fromString",&obj0)) SWIG_fail;
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ModelQualifierType_fromString" "', argument " "1"" of type '" "char const *""'");
+  }
+  arg1 = reinterpret_cast< char * >(buf1);
+  result = (ModelQualifierType_t)ModelQualifierType_fromString((char const *)arg1);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return resultobj;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_BiolQualifierType_fromString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  char *arg1 = (char *) 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  PyObject * obj0 = 0 ;
+  BiolQualifierType_t result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:BiolQualifierType_fromString",&obj0)) SWIG_fail;
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "BiolQualifierType_fromString" "', argument " "1"" of type '" "char const *""'");
+  }
+  arg1 = reinterpret_cast< char * >(buf1);
+  result = (BiolQualifierType_t)BiolQualifierType_fromString((char const *)arg1);
+  resultobj = SWIG_From_int(static_cast< int >(result));
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return resultobj;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_Date__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   unsigned int arg1 ;
@@ -116205,6 +117319,28 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_ASTNode_getNumPiece(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  ASTNode *arg1 = (ASTNode *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  unsigned int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:ASTNode_getNumPiece",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_ASTNode, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ASTNode_getNumPiece" "', argument " "1"" of type '" "ASTNode const *""'"); 
+  }
+  arg1 = reinterpret_cast< ASTNode * >(argp1);
+  result = (unsigned int)((ASTNode const *)arg1)->getNumPiece();
+  resultobj = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_ASTNode_getListOfNodes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   ASTNode *arg1 = (ASTNode *) 0 ;
@@ -119553,21 +120689,21 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"SBaseList_getSize", _wrap_SBaseList_getSize, METH_VARARGS, NULL},
 	 { (char *)"SBaseList_swigregister", SBaseList_swigregister, METH_VARARGS, NULL},
 	 { (char *)"delete_SwigPyIterator", _wrap_delete_SwigPyIterator, METH_VARARGS, (char *)"delete_SwigPyIterator(SwigPyIterator self)"},
-	 { (char *)"SwigPyIterator_value", _wrap_SwigPyIterator_value, METH_VARARGS, (char *)"SwigPyIterator_value(SwigPyIterator self) -> PyObject"},
+	 { (char *)"SwigPyIterator_value", _wrap_SwigPyIterator_value, METH_VARARGS, (char *)"SwigPyIterator_value(SwigPyIterator self) -> PyObject *"},
 	 { (char *)"SwigPyIterator_incr", _wrap_SwigPyIterator_incr, METH_VARARGS, (char *)"\n"
-		"incr(size_t n = 1) -> SwigPyIterator\n"
+		"incr(size_t n=1) -> SwigPyIterator\n"
 		"SwigPyIterator_incr(SwigPyIterator self) -> SwigPyIterator\n"
 		""},
 	 { (char *)"SwigPyIterator_decr", _wrap_SwigPyIterator_decr, METH_VARARGS, (char *)"\n"
-		"decr(size_t n = 1) -> SwigPyIterator\n"
+		"decr(size_t n=1) -> SwigPyIterator\n"
 		"SwigPyIterator_decr(SwigPyIterator self) -> SwigPyIterator\n"
 		""},
 	 { (char *)"SwigPyIterator_distance", _wrap_SwigPyIterator_distance, METH_VARARGS, (char *)"SwigPyIterator_distance(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t"},
 	 { (char *)"SwigPyIterator_equal", _wrap_SwigPyIterator_equal, METH_VARARGS, (char *)"SwigPyIterator_equal(SwigPyIterator self, SwigPyIterator x) -> bool"},
 	 { (char *)"SwigPyIterator_copy", _wrap_SwigPyIterator_copy, METH_VARARGS, (char *)"SwigPyIterator_copy(SwigPyIterator self) -> SwigPyIterator"},
-	 { (char *)"SwigPyIterator_next", _wrap_SwigPyIterator_next, METH_VARARGS, (char *)"SwigPyIterator_next(SwigPyIterator self) -> PyObject"},
-	 { (char *)"SwigPyIterator___next__", _wrap_SwigPyIterator___next__, METH_VARARGS, (char *)"SwigPyIterator___next__(SwigPyIterator self) -> PyObject"},
-	 { (char *)"SwigPyIterator_previous", _wrap_SwigPyIterator_previous, METH_VARARGS, (char *)"SwigPyIterator_previous(SwigPyIterator self) -> PyObject"},
+	 { (char *)"SwigPyIterator_next", _wrap_SwigPyIterator_next, METH_VARARGS, (char *)"SwigPyIterator_next(SwigPyIterator self) -> PyObject *"},
+	 { (char *)"SwigPyIterator___next__", _wrap_SwigPyIterator___next__, METH_VARARGS, (char *)"SwigPyIterator___next__(SwigPyIterator self) -> PyObject *"},
+	 { (char *)"SwigPyIterator_previous", _wrap_SwigPyIterator_previous, METH_VARARGS, (char *)"SwigPyIterator_previous(SwigPyIterator self) -> PyObject *"},
 	 { (char *)"SwigPyIterator_advance", _wrap_SwigPyIterator_advance, METH_VARARGS, (char *)"SwigPyIterator_advance(SwigPyIterator self, ptrdiff_t n) -> SwigPyIterator"},
 	 { (char *)"SwigPyIterator___eq__", _wrap_SwigPyIterator___eq__, METH_VARARGS, (char *)"SwigPyIterator___eq__(SwigPyIterator self, SwigPyIterator x) -> bool"},
 	 { (char *)"SwigPyIterator___ne__", _wrap_SwigPyIterator___ne__, METH_VARARGS, (char *)"SwigPyIterator___ne__(SwigPyIterator self, SwigPyIterator x) -> bool"},
@@ -119579,130 +120715,142 @@ static PyMethodDef SwigMethods[] = {
 		"SwigPyIterator___sub__(SwigPyIterator self, SwigPyIterator x) -> ptrdiff_t\n"
 		""},
 	 { (char *)"SwigPyIterator_swigregister", SwigPyIterator_swigregister, METH_VARARGS, NULL},
-	 { (char *)"string_length", _wrap_string_length, METH_VARARGS, (char *)"string_length(string self) -> size_type"},
-	 { (char *)"string_max_size", _wrap_string_max_size, METH_VARARGS, (char *)"string_max_size(string self) -> size_type"},
+	 { (char *)"string_length", _wrap_string_length, METH_VARARGS, (char *)"string_length(string self) -> std::basic_string< char >::size_type"},
+	 { (char *)"string_max_size", _wrap_string_max_size, METH_VARARGS, (char *)"string_max_size(string self) -> std::basic_string< char >::size_type"},
 	 { (char *)"string_copy", _wrap_string_copy, METH_VARARGS, (char *)"\n"
-		"copy(char __s, size_type __n, size_type __pos = 0) -> size_type\n"
-		"string_copy(string self, char __s, size_type __n) -> size_type\n"
+		"copy(char * __s, std::basic_string< char >::size_type __n, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type\n"
+		"string_copy(string self, char * __s, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type\n"
 		""},
-	 { (char *)"string_c_str", _wrap_string_c_str, METH_VARARGS, (char *)"string_c_str(string self) -> char"},
+	 { (char *)"string_c_str", _wrap_string_c_str, METH_VARARGS, (char *)"string_c_str(string self) -> char const *"},
 	 { (char *)"string_find", _wrap_string_find, METH_VARARGS, (char *)"\n"
-		"find(char __s, size_type __pos, size_type __n) -> size_type\n"
-		"find(string __str, size_type __pos = 0) -> size_type\n"
-		"find(string __str) -> size_type\n"
-		"find(char __c, size_type __pos = 0) -> size_type\n"
-		"string_find(string self, char __c) -> size_type\n"
+		"find(char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type\n"
+		"find(string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type\n"
+		"find(string __str) -> std::basic_string< char >::size_type\n"
+		"find(char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type\n"
+		"string_find(string self, char __c) -> std::basic_string< char >::size_type\n"
 		""},
 	 { (char *)"string_rfind", _wrap_string_rfind, METH_VARARGS, (char *)"\n"
-		"rfind(string __str, size_type __pos = std::basic_string< char >::npos) -> size_type\n"
-		"rfind(string __str) -> size_type\n"
-		"rfind(char __s, size_type __pos, size_type __n) -> size_type\n"
-		"rfind(char __c, size_type __pos = std::basic_string< char >::npos) -> size_type\n"
-		"string_rfind(string self, char __c) -> size_type\n"
+		"rfind(string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type\n"
+		"rfind(string __str) -> std::basic_string< char >::size_type\n"
+		"rfind(char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type\n"
+		"rfind(char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type\n"
+		"string_rfind(string self, char __c) -> std::basic_string< char >::size_type\n"
 		""},
 	 { (char *)"string_find_first_of", _wrap_string_find_first_of, METH_VARARGS, (char *)"\n"
-		"find_first_of(string __str, size_type __pos = 0) -> size_type\n"
-		"find_first_of(string __str) -> size_type\n"
-		"find_first_of(char __s, size_type __pos, size_type __n) -> size_type\n"
-		"find_first_of(char __c, size_type __pos = 0) -> size_type\n"
-		"string_find_first_of(string self, char __c) -> size_type\n"
+		"find_first_of(string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type\n"
+		"find_first_of(string __str) -> std::basic_string< char >::size_type\n"
+		"find_first_of(char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type\n"
+		"find_first_of(char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type\n"
+		"string_find_first_of(string self, char __c) -> std::basic_string< char >::size_type\n"
 		""},
 	 { (char *)"string_find_last_of", _wrap_string_find_last_of, METH_VARARGS, (char *)"\n"
-		"find_last_of(string __str, size_type __pos = std::basic_string< char >::npos) -> size_type\n"
-		"find_last_of(string __str) -> size_type\n"
-		"find_last_of(char __s, size_type __pos, size_type __n) -> size_type\n"
-		"find_last_of(char __c, size_type __pos = std::basic_string< char >::npos) -> size_type\n"
-		"string_find_last_of(string self, char __c) -> size_type\n"
+		"find_last_of(string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type\n"
+		"find_last_of(string __str) -> std::basic_string< char >::size_type\n"
+		"find_last_of(char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type\n"
+		"find_last_of(char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type\n"
+		"string_find_last_of(string self, char __c) -> std::basic_string< char >::size_type\n"
 		""},
 	 { (char *)"string_find_first_not_of", _wrap_string_find_first_not_of, METH_VARARGS, (char *)"\n"
-		"find_first_not_of(string __str, size_type __pos = 0) -> size_type\n"
-		"find_first_not_of(string __str) -> size_type\n"
-		"find_first_not_of(char __s, size_type __pos, size_type __n) -> size_type\n"
-		"find_first_not_of(char __c, size_type __pos = 0) -> size_type\n"
-		"string_find_first_not_of(string self, char __c) -> size_type\n"
+		"find_first_not_of(string __str, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type\n"
+		"find_first_not_of(string __str) -> std::basic_string< char >::size_type\n"
+		"find_first_not_of(char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type\n"
+		"find_first_not_of(char __c, std::basic_string< char >::size_type __pos=0) -> std::basic_string< char >::size_type\n"
+		"string_find_first_not_of(string self, char __c) -> std::basic_string< char >::size_type\n"
 		""},
 	 { (char *)"string_find_last_not_of", _wrap_string_find_last_not_of, METH_VARARGS, (char *)"\n"
-		"find_last_not_of(string __str, size_type __pos = std::basic_string< char >::npos) -> size_type\n"
-		"find_last_not_of(string __str) -> size_type\n"
-		"find_last_not_of(char __s, size_type __pos, size_type __n) -> size_type\n"
-		"find_last_not_of(char __c, size_type __pos = std::basic_string< char >::npos) -> size_type\n"
-		"string_find_last_not_of(string self, char __c) -> size_type\n"
+		"find_last_not_of(string __str, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type\n"
+		"find_last_not_of(string __str) -> std::basic_string< char >::size_type\n"
+		"find_last_not_of(char const * __s, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> std::basic_string< char >::size_type\n"
+		"find_last_not_of(char __c, std::basic_string< char >::size_type __pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type\n"
+		"string_find_last_not_of(string self, char __c) -> std::basic_string< char >::size_type\n"
 		""},
 	 { (char *)"string_substr", _wrap_string_substr, METH_VARARGS, (char *)"\n"
-		"substr(size_type __pos = 0, size_type __n = std::basic_string< char >::npos) -> string\n"
-		"substr(size_type __pos = 0) -> string\n"
+		"substr(std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string\n"
+		"substr(std::basic_string< char >::size_type __pos=0) -> string\n"
 		"string_substr(string self) -> string\n"
 		""},
 	 { (char *)"string_empty", _wrap_string_empty, METH_VARARGS, (char *)"string_empty(string self) -> bool"},
-	 { (char *)"string_size", _wrap_string_size, METH_VARARGS, (char *)"string_size(string self) -> size_type"},
+	 { (char *)"string_size", _wrap_string_size, METH_VARARGS, (char *)"string_size(string self) -> std::basic_string< char >::size_type"},
 	 { (char *)"string_swap", _wrap_string_swap, METH_VARARGS, (char *)"string_swap(string self, string v)"},
 	 { (char *)"string_erase", _wrap_string_erase, METH_VARARGS, (char *)"\n"
-		"erase(size_type __pos = 0, size_type __n = std::basic_string< char >::npos) -> string\n"
-		"erase(size_type __pos = 0) -> string\n"
+		"erase(std::basic_string< char >::size_type __pos=0, std::basic_string< char >::size_type __n=std::basic_string< char >::npos) -> string\n"
+		"erase(std::basic_string< char >::size_type __pos=0) -> string\n"
 		"erase() -> string\n"
-		"erase(iterator pos) -> iterator\n"
-		"string_erase(string self, iterator first, iterator last) -> iterator\n"
+		"erase(std::basic_string< char >::iterator pos) -> std::basic_string< char >::iterator\n"
+		"string_erase(string self, std::basic_string< char >::iterator first, std::basic_string< char >::iterator last) -> std::basic_string< char >::iterator\n"
 		""},
 	 { (char *)"new_string", _wrap_new_string, METH_VARARGS, (char *)"\n"
-		"string(char __s, size_type __n)\n"
+		"string(char const * __s, std::basic_string< char >::size_type __n)\n"
 		"string()\n"
-		"string(string arg0)\n"
-		"new_string(size_type size, value_type value) -> string\n"
+		"string(string arg2)\n"
+		"new_string(std::basic_string< char >::size_type size, std::basic_string< char >::value_type value) -> string\n"
 		""},
 	 { (char *)"string_assign", _wrap_string_assign, METH_VARARGS, (char *)"\n"
 		"assign(string __str) -> string\n"
-		"assign(string __str, size_type __pos, size_type __n) -> string\n"
-		"assign(char __s, size_type __n) -> string\n"
-		"string_assign(string self, size_type n, value_type x)\n"
+		"assign(string __str, std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n) -> string\n"
+		"assign(char const * __s, std::basic_string< char >::size_type __n) -> string\n"
+		"string_assign(string self, std::basic_string< char >::size_type n, std::basic_string< char >::value_type x)\n"
 		""},
 	 { (char *)"string_resize", _wrap_string_resize, METH_VARARGS, (char *)"\n"
-		"resize(size_type new_size)\n"
-		"string_resize(string self, size_type new_size, value_type x)\n"
+		"resize(std::basic_string< char >::size_type new_size)\n"
+		"string_resize(string self, std::basic_string< char >::size_type new_size, std::basic_string< char >::value_type x)\n"
 		""},
 	 { (char *)"string_iterator", _wrap_string_iterator, METH_VARARGS, (char *)"string_iterator(string self) -> SwigPyIterator"},
 	 { (char *)"string___nonzero__", _wrap_string___nonzero__, METH_VARARGS, (char *)"string___nonzero__(string self) -> bool"},
 	 { (char *)"string___bool__", _wrap_string___bool__, METH_VARARGS, (char *)"string___bool__(string self) -> bool"},
-	 { (char *)"string___len__", _wrap_string___len__, METH_VARARGS, (char *)"string___len__(string self) -> size_type"},
-	 { (char *)"string___getslice__", _wrap_string___getslice__, METH_VARARGS, (char *)"string___getslice__(string self, difference_type i, difference_type j) -> string"},
+	 { (char *)"string___len__", _wrap_string___len__, METH_VARARGS, (char *)"string___len__(string self) -> std::basic_string< char >::size_type"},
+	 { (char *)"string___getslice__", _wrap_string___getslice__, METH_VARARGS, (char *)"string___getslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j) -> string"},
 	 { (char *)"string___setslice__", _wrap_string___setslice__, METH_VARARGS, (char *)"\n"
-		"__setslice__(difference_type i, difference_type j, string v = std::basic_string< char,std::char_traits< char >,std::allocator< char > >())\n"
-		"string___setslice__(string self, difference_type i, difference_type j)\n"
+		"__setslice__(std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j, \n"
+		"    string v=std::basic_string< char,std::char_traits< char >,std::allocator< char > >())\n"
+		"string___setslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j)\n"
 		""},
-	 { (char *)"string___delslice__", _wrap_string___delslice__, METH_VARARGS, (char *)"string___delslice__(string self, difference_type i, difference_type j)"},
+	 { (char *)"string___delslice__", _wrap_string___delslice__, METH_VARARGS, (char *)"string___delslice__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::difference_type j)"},
 	 { (char *)"string___delitem__", _wrap_string___delitem__, METH_VARARGS, (char *)"\n"
-		"__delitem__(difference_type i)\n"
-		"string___delitem__(string self, PySliceObject slice)\n"
+		"__delitem__(std::basic_string< char >::difference_type i)\n"
+		"string___delitem__(string self, PySliceObject * slice)\n"
 		""},
 	 { (char *)"string___getitem__", _wrap_string___getitem__, METH_VARARGS, (char *)"\n"
-		"__getitem__(PySliceObject slice) -> string\n"
-		"string___getitem__(string self, difference_type i) -> value_type\n"
+		"__getitem__(PySliceObject * slice) -> string\n"
+		"string___getitem__(string self, std::basic_string< char >::difference_type i) -> std::basic_string< char >::value_type\n"
 		""},
 	 { (char *)"string___setitem__", _wrap_string___setitem__, METH_VARARGS, (char *)"\n"
-		"__setitem__(PySliceObject slice, string v)\n"
-		"__setitem__(PySliceObject slice)\n"
-		"string___setitem__(string self, difference_type i, value_type x)\n"
+		"__setitem__(PySliceObject * slice, string v)\n"
+		"__setitem__(PySliceObject * slice)\n"
+		"string___setitem__(string self, std::basic_string< char >::difference_type i, std::basic_string< char >::value_type x)\n"
 		""},
 	 { (char *)"string_insert", _wrap_string_insert, METH_VARARGS, (char *)"\n"
-		"insert(size_type __pos1, string __str) -> string\n"
-		"insert(size_type __pos1, string __str, size_type __pos2, size_type __n) -> string\n"
-		"insert(size_type __pos, char __s, size_type __n) -> string\n"
-		"insert(size_type __pos, size_type __n, char __c) -> string\n"
-		"insert(iterator pos, value_type x) -> iterator\n"
-		"insert(iterator pos, size_type n, value_type x)\n"
-		"string_insert(string self, iterator __p, size_type __n, char __c)\n"
+		"insert(std::basic_string< char >::size_type __pos1, string __str) -> string\n"
+		"insert(std::basic_string< char >::size_type __pos1, string __str, std::basic_string< char >::size_type __pos2, \n"
+		"    std::basic_string< char >::size_type __n) -> string\n"
+		"insert(std::basic_string< char >::size_type __pos, char const * __s, std::basic_string< char >::size_type __n) -> string\n"
+		"insert(std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, \n"
+		"    char __c) -> string\n"
+		"insert(std::basic_string< char >::iterator pos, std::basic_string< char >::value_type x) -> std::basic_string< char >::iterator\n"
+		"insert(std::basic_string< char >::iterator pos, std::basic_string< char >::size_type n, \n"
+		"    std::basic_string< char >::value_type x)\n"
+		"string_insert(string self, std::basic_string< char >::iterator __p, std::basic_string< char >::size_type __n, \n"
+		"    char __c)\n"
 		""},
 	 { (char *)"string_replace", _wrap_string_replace, METH_VARARGS, (char *)"\n"
-		"replace(size_type __pos, size_type __n, string __str) -> string\n"
-		"replace(size_type __pos1, size_type __n1, string __str, size_type __pos2, \n"
-		"    size_type __n2) -> string\n"
-		"replace(size_type __pos, size_type __n1, char __s, size_type __n2) -> string\n"
-		"replace(size_type __pos, size_type __n1, size_type __n2, char __c) -> string\n"
-		"replace(iterator __i1, iterator __i2, string __str) -> string\n"
-		"replace(iterator __i1, iterator __i2, char __s, size_type __n) -> string\n"
-		"replace(iterator __i1, iterator __i2, size_type __n, char __c) -> string\n"
-		"replace(iterator __i1, iterator __i2, char __k1, char __k2) -> string\n"
-		"string_replace(string self, iterator __i1, iterator __i2, const_iterator __k1, \n"
-		"    const_iterator __k2) -> string\n"
+		"replace(std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n, \n"
+		"    string __str) -> string\n"
+		"replace(std::basic_string< char >::size_type __pos1, std::basic_string< char >::size_type __n1, \n"
+		"    string __str, std::basic_string< char >::size_type __pos2, std::basic_string< char >::size_type __n2) -> string\n"
+		"replace(std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, \n"
+		"    char const * __s, std::basic_string< char >::size_type __n2) -> string\n"
+		"replace(std::basic_string< char >::size_type __pos, std::basic_string< char >::size_type __n1, \n"
+		"    std::basic_string< char >::size_type __n2, char __c) -> string\n"
+		"replace(std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, \n"
+		"    string __str) -> string\n"
+		"replace(std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, \n"
+		"    char const * __s, std::basic_string< char >::size_type __n) -> string\n"
+		"replace(std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, \n"
+		"    std::basic_string< char >::size_type __n, char __c) -> string\n"
+		"replace(std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, \n"
+		"    char const * __k1, char const * __k2) -> string\n"
+		"string_replace(string self, std::basic_string< char >::iterator __i1, std::basic_string< char >::iterator __i2, \n"
+		"    std::basic_string< char >::const_iterator __k1, std::basic_string< char >::const_iterator __k2) -> string\n"
 		""},
 	 { (char *)"string___iadd__", _wrap_string___iadd__, METH_VARARGS, (char *)"string___iadd__(string self, string v) -> string"},
 	 { (char *)"string___add__", _wrap_string___add__, METH_VARARGS, (char *)"string___add__(string self, string v) -> string"},
@@ -119717,11 +120865,11 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"string___le__", _wrap_string___le__, METH_VARARGS, (char *)"string___le__(string self, string v) -> bool"},
 	 { (char *)"delete_string", _wrap_delete_string, METH_VARARGS, (char *)"delete_string(string self)"},
 	 { (char *)"string_swigregister", string_swigregister, METH_VARARGS, NULL},
-	 { (char *)"new_ostream", _wrap_new_ostream, METH_VARARGS, (char *)"new_ostream(std::basic_streambuf<(char,std::char_traits<(char)>)> __sb) -> ostream"},
+	 { (char *)"new_ostream", _wrap_new_ostream, METH_VARARGS, (char *)"new_ostream(std::basic_streambuf< char,std::char_traits< char > > * __sb) -> ostream"},
 	 { (char *)"delete_ostream", _wrap_delete_ostream, METH_VARARGS, (char *)"delete_ostream(ostream self)"},
 	 { (char *)"ostream_swigregister", ostream_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_ostringstream", _wrap_new_ostringstream, METH_VARARGS, (char *)"\n"
-		"ostringstream(std::ios_base::openmode __mode = std::ios_base::out)\n"
+		"ostringstream(std::ios_base::openmode __mode=std::ios_base::out)\n"
 		"new_ostringstream() -> ostringstream\n"
 		""},
 	 { (char *)"delete_ostringstream", _wrap_delete_ostringstream, METH_VARARGS, (char *)"delete_ostringstream(ostringstream self)"},
@@ -119730,8 +120878,8 @@ static PyMethodDef SwigMethods[] = {
 		"ostringstream_str(ostringstream self, string __s)\n"
 		""},
 	 { (char *)"ostringstream_swigregister", ostringstream_swigregister, METH_VARARGS, NULL},
-	 { (char *)"endl", _wrap_endl, METH_VARARGS, (char *)"endl(ostream arg0) -> ostream"},
-	 { (char *)"flush", _wrap_flush, METH_VARARGS, (char *)"flush(ostream arg0) -> ostream"},
+	 { (char *)"endl", _wrap_endl, METH_VARARGS, (char *)"endl(ostream arg1) -> ostream"},
+	 { (char *)"flush", _wrap_flush, METH_VARARGS, (char *)"flush(ostream arg1) -> ostream"},
 	 { (char *)"new_ListWrapperSBMLNamespaces", _wrap_new_ListWrapperSBMLNamespaces, METH_VARARGS, (char *)"new_ListWrapperSBMLNamespaces() -> SBMLNamespacesList"},
 	 { (char *)"delete_ListWrapperSBMLNamespaces", _wrap_delete_ListWrapperSBMLNamespaces, METH_VARARGS, (char *)"delete_ListWrapperSBMLNamespaces(SBMLNamespacesList self)"},
 	 { (char *)"ListWrapperSBMLNamespaces_add", _wrap_ListWrapperSBMLNamespaces_add, METH_VARARGS, (char *)"ListWrapperSBMLNamespaces_add(SBMLNamespacesList self, SBMLNamespaces item)"},
@@ -119768,6 +120916,15 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"ListWrapperModelCreator_getSize", _wrap_ListWrapperModelCreator_getSize, METH_VARARGS, (char *)"ListWrapperModelCreator_getSize(ModelCreatorList self) -> unsigned int"},
 	 { (char *)"ListWrapperModelCreator___len__", _wrap_ListWrapperModelCreator___len__, METH_VARARGS, (char *)"ListWrapperModelCreator___len__(ModelCreatorList self) -> int"},
 	 { (char *)"ListWrapperModelCreator_swigregister", ListWrapperModelCreator_swigregister, METH_VARARGS, NULL},
+	 { (char *)"new_ListWrapperSBase", _wrap_new_ListWrapperSBase, METH_VARARGS, (char *)"new_ListWrapperSBase() -> SBaseList"},
+	 { (char *)"delete_ListWrapperSBase", _wrap_delete_ListWrapperSBase, METH_VARARGS, (char *)"delete_ListWrapperSBase(SBaseList self)"},
+	 { (char *)"ListWrapperSBase_add", _wrap_ListWrapperSBase_add, METH_VARARGS, (char *)"ListWrapperSBase_add(SBaseList self, SBase item)"},
+	 { (char *)"ListWrapperSBase_get", _wrap_ListWrapperSBase_get, METH_VARARGS, (char *)"ListWrapperSBase_get(SBaseList self, unsigned int n) -> SBase"},
+	 { (char *)"ListWrapperSBase_prepend", _wrap_ListWrapperSBase_prepend, METH_VARARGS, (char *)"ListWrapperSBase_prepend(SBaseList self, SBase item)"},
+	 { (char *)"ListWrapperSBase_remove", _wrap_ListWrapperSBase_remove, METH_VARARGS, (char *)"ListWrapperSBase_remove(SBaseList self, unsigned int n) -> SBase"},
+	 { (char *)"ListWrapperSBase_getSize", _wrap_ListWrapperSBase_getSize, METH_VARARGS, (char *)"ListWrapperSBase_getSize(SBaseList self) -> unsigned int"},
+	 { (char *)"ListWrapperSBase___len__", _wrap_ListWrapperSBase___len__, METH_VARARGS, (char *)"ListWrapperSBase___len__(SBaseList self) -> int"},
+	 { (char *)"ListWrapperSBase_swigregister", ListWrapperSBase_swigregister, METH_VARARGS, NULL},
 	 { (char *)"getLibSBMLVersion", _wrap_getLibSBMLVersion, METH_VARARGS, (char *)"\n"
 		"getLibSBMLVersion() -> int\n"
 		"\n"
@@ -119778,7 +120935,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"getLibSBMLDottedVersion", _wrap_getLibSBMLDottedVersion, METH_VARARGS, (char *)"\n"
-		"getLibSBMLDottedVersion() -> char\n"
+		"getLibSBMLDottedVersion() -> char const *\n"
 		"\n"
 		"Returns the version number of this copy of libSBML as a string.\n"
 		"\n"
@@ -119789,7 +120946,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"getLibSBMLVersionString", _wrap_getLibSBMLVersionString, METH_VARARGS, (char *)"\n"
-		"getLibSBMLVersionString() -> char\n"
+		"getLibSBMLVersionString() -> char const *\n"
 		"\n"
 		"Returns the version number of this copy of libSBML as a string without\n"
 		"periods.\n"
@@ -119801,7 +120958,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"isLibSBMLCompiledWith", _wrap_isLibSBMLCompiledWith, METH_VARARGS, (char *)"\n"
-		"isLibSBMLCompiledWith(char option) -> int\n"
+		"isLibSBMLCompiledWith(char const * option) -> int\n"
 		"\n"
 		"Returns an indication whether libSBML has been compiled with against a\n"
 		"specific library.\n"
@@ -119817,7 +120974,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"getLibSBMLDependencyVersionOf", _wrap_getLibSBMLDependencyVersionOf, METH_VARARGS, (char *)"\n"
-		"getLibSBMLDependencyVersionOf(char option) -> char\n"
+		"getLibSBMLDependencyVersionOf(char const * option) -> char const *\n"
 		"\n"
 		"Returns the version string for the dependency library used.\n"
 		"\n"
@@ -119832,7 +120989,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"OperationReturnValue_toString", _wrap_OperationReturnValue_toString, METH_VARARGS, (char *)"\n"
-		"OperationReturnValue_toString(int returnValue) -> char\n"
+		"OperationReturnValue_toString(int returnValue) -> char const *\n"
 		"\n"
 		"This method takes an SBML operation return value and returns a string\n"
 		"representing the code.\n"
@@ -119884,7 +121041,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_IdList", _wrap_delete_IdList, METH_VARARGS, (char *)"delete_IdList(IdList self)"},
 	 { (char *)"IdList_swigregister", IdList_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_IdentifierTransformer", _wrap_new_IdentifierTransformer, METH_VARARGS, (char *)"\n"
-		"new_IdentifierTransformer(PyObject self) -> IdentifierTransformer\n"
+		"new_IdentifierTransformer(PyObject * self) -> IdentifierTransformer\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -119894,7 +121051,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"disown_IdentifierTransformer", _wrap_disown_IdentifierTransformer, METH_VARARGS, NULL},
 	 { (char *)"IdentifierTransformer_swigregister", IdentifierTransformer_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_ElementFilter", _wrap_new_ElementFilter, METH_VARARGS, (char *)"\n"
-		"new_ElementFilter(PyObject self) -> ElementFilter\n"
+		"new_ElementFilter(PyObject * self) -> ElementFilter\n"
 		"\n"
 		"Creates a new ElementFilter object.\n"
 		"\n"
@@ -120172,7 +121329,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"SBMLReader_swigregister", SBMLReader_swigregister, METH_VARARGS, NULL},
 	 { (char *)"readSBMLFromFile", _wrap_readSBMLFromFile, METH_VARARGS, (char *)"\n"
-		"readSBMLFromFile(char filename) -> SBMLDocument_t\n"
+		"readSBMLFromFile(char const * filename) -> SBMLDocument\n"
 		"\n"
 		"Reads an SBML document from the given file.\n"
 		"\n"
@@ -120232,7 +121389,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"readSBMLFromString", _wrap_readSBMLFromString, METH_VARARGS, (char *)"\n"
-		"readSBMLFromString(char xml) -> SBMLDocument_t\n"
+		"readSBMLFromString(char const * xml) -> SBMLDocument\n"
 		"\n"
 		"Reads an SBML document from a text string.\n"
 		"\n"
@@ -120380,7 +121537,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLWriter_writeToString", _wrap_SBMLWriter_writeToString, METH_VARARGS, (char *)"\n"
-		"SBMLWriter_writeToString(SBMLWriter self, SBMLDocument d) -> char\n"
+		"SBMLWriter_writeToString(SBMLWriter self, SBMLDocument d) -> char *\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -120425,7 +121582,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLWriter_writeSBMLToString", _wrap_SBMLWriter_writeSBMLToString, METH_VARARGS, (char *)"\n"
-		"SBMLWriter_writeSBMLToString(SBMLWriter self, SBMLDocument d) -> char\n"
+		"SBMLWriter_writeSBMLToString(SBMLWriter self, SBMLDocument d) -> char *\n"
 		"\n"
 		"Writes the given SBML document to an in-memory string and returns a\n"
 		"pointer to it.\n"
@@ -120497,7 +121654,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"SBMLWriter_swigregister", SBMLWriter_swigregister, METH_VARARGS, NULL},
 	 { (char *)"writeSBML", _wrap_writeSBML, METH_VARARGS, (char *)"\n"
-		"writeSBML(SBMLDocument_t d, char filename) -> int\n"
+		"writeSBML(SBMLDocument d, char const * filename) -> int\n"
 		"\n"
 		"Writes the given SBML document 'd' to the file named by 'filename'.\n"
 		"This convenience function is functionally equivalent to:\n"
@@ -120533,7 +121690,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"writeSBMLToString", _wrap_writeSBMLToString, METH_VARARGS, (char *)"\n"
-		"writeSBMLToString(SBMLDocument_t d) -> char\n"
+		"writeSBMLToString(SBMLDocument d) -> char *\n"
 		"\n"
 		"Writes the given SBML document 'd' to an in-memory string and returns\n"
 		"a pointer to it.  The string is owned by the caller and should be\n"
@@ -120552,7 +121709,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"writeSBMLToFile", _wrap_writeSBMLToFile, METH_VARARGS, (char *)"\n"
-		"writeSBMLToFile(SBMLDocument_t d, char filename) -> int\n"
+		"writeSBMLToFile(SBMLDocument d, char const * filename) -> int\n"
 		"\n"
 		"Writes the given SBML document 'd' to the file 'filename'. This\n"
 		"convenience function is functionally equivalent to:\n"
@@ -120591,7 +121748,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLTypeCode_toString", _wrap_SBMLTypeCode_toString, METH_VARARGS, (char *)"\n"
-		"SBMLTypeCode_toString(int tc, char pkgName) -> char\n"
+		"SBMLTypeCode_toString(int tc, char const * pkgName) -> char const *\n"
 		"\n"
 		"This method takes an SBML type code and returns a string representing\n"
 		"the code.\n"
@@ -121030,9 +122187,9 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBase_getAncestorOfType", _wrap_SBase_getAncestorOfType, METH_VARARGS, (char *)"\n"
-		"getAncestorOfType(int type, string pkgName = \"core\") -> SBase\n"
+		"getAncestorOfType(int type, string pkgName=\"core\") -> SBase\n"
 		"getAncestorOfType(int type) -> SBase\n"
-		"getAncestorOfType(int type, string pkgName = \"core\") -> SBase\n"
+		"getAncestorOfType(int type, string pkgName=\"core\") -> SBase\n"
 		"SBase_getAncestorOfType(SBase self, int type) -> SBase\n"
 		"\n"
 		"Returns the first ancestor object that has the given SBML type code\n"
@@ -121495,8 +122652,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBase_removeTopLevelAnnotationElement", _wrap_SBase_removeTopLevelAnnotationElement, METH_VARARGS, (char *)"\n"
-		"removeTopLevelAnnotationElement(string elementName, string elementURI = \"\", bool removeEmpty = True) -> int\n"
-		"removeTopLevelAnnotationElement(string elementName, string elementURI = \"\") -> int\n"
+		"removeTopLevelAnnotationElement(string elementName, string elementURI=\"\", bool removeEmpty=True) -> int\n"
+		"removeTopLevelAnnotationElement(string elementName, string elementURI=\"\") -> int\n"
 		"SBase_removeTopLevelAnnotationElement(SBase self, string elementName) -> int\n"
 		"\n"
 		"Removes the top-level element within the 'annotation' subelement of\n"
@@ -121579,7 +122736,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"SBase_setNotes", _wrap_SBase_setNotes, METH_VARARGS, (char *)"\n"
 		"setNotes(XMLNode notes) -> int\n"
-		"setNotes(string notes, bool addXHTMLMarkup = False) -> int\n"
+		"setNotes(string notes, bool addXHTMLMarkup=False) -> int\n"
 		"SBase_setNotes(SBase self, string notes) -> int\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -121971,7 +123128,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBase_addCVTerm", _wrap_SBase_addCVTerm, METH_VARARGS, (char *)"\n"
-		"addCVTerm(CVTerm term, bool newBag = False) -> int\n"
+		"addCVTerm(CVTerm term, bool newBag=False) -> int\n"
 		"SBase_addCVTerm(SBase self, CVTerm term) -> int\n"
 		"\n"
 		"Adds a copy of the given CVTerm object to this SBML object.\n"
@@ -122029,7 +123186,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"SBase_getCVTerms", _wrap_SBase_getCVTerms, METH_VARARGS, (char *)"\n"
 		"getCVTerms() -> List\n"
-		"SBase_getCVTerms(SBase self) -> List\n"
+		"SBase_getCVTerms(SBase self) -> List *\n"
 		"\n"
 		"Returns a list of CVTerm objects in the annotations of this SBML\n"
 		"object.\n"
@@ -122336,9 +123493,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getPackageName(), getElementName().\n"
 		"\n"
@@ -122375,7 +123532,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBase_toSBML", _wrap_SBase_toSBML, METH_VARARGS, (char *)"\n"
-		"SBase_toSBML(SBase self) -> char\n"
+		"SBase_toSBML(SBase self) -> char *\n"
 		"\n"
 		"Returns a string consisting of a partial SBML corresponding to just\n"
 		"this object.\n"
@@ -122467,8 +123624,8 @@ static PyMethodDef SwigMethods[] = {
 		"longer considered to be part of the SBML document for the purposes of\n"
 		"searching the document or writing out the document.  However, the\n"
 		"information is still retained, so if the plugin is enabled again, the\n"
-		"same information  will once again be available, and will be written\n"
-		"out to the final model.\n"
+		"same information will once again be available, and will be written out\n"
+		"to the final model.\n"
 		"\n"
 		"Parameter 'n' is the index of the disabled plug-in to return\n"
 		"\n"
@@ -122528,15 +123685,15 @@ static PyMethodDef SwigMethods[] = {
 		"longer considered to be part of the SBML document for the purposes of\n"
 		"searching the document or writing out the document.  However, the\n"
 		"information is still retained, so if the plugin is enabled again, the\n"
-		"same information  will once again be available, and will be written\n"
-		"out to the final model.\n"
+		"same information will once again be available, and will be written out\n"
+		"to the final model.\n"
 		"\n"
 		"Returns the number of disabled plug-in objects (extension interfaces)\n"
 		"of package extensions known by this instance of libSBML.\n"
 		"\n"
 		""},
 	 { (char *)"SBase_deleteDisabledPlugins", _wrap_SBase_deleteDisabledPlugins, METH_VARARGS, (char *)"\n"
-		"deleteDisabledPlugins(bool recursive = True)\n"
+		"deleteDisabledPlugins(bool recursive=True)\n"
 		"SBase_deleteDisabledPlugins(SBase self)\n"
 		"\n"
 		"Deletes all information stored in disabled plugins.  If the plugin is\n"
@@ -122561,8 +123718,8 @@ static PyMethodDef SwigMethods[] = {
 		"longer considered to be part of the SBML document for the purposes of\n"
 		"searching the document or writing out the document.  However, the\n"
 		"information is still retained, so if the plugin is enabled again, the\n"
-		"same information  will once again be available, and will be written\n"
-		"out to the final model.\n"
+		"same information will once again be available, and will be written out\n"
+		"to the final model.\n"
 		"\n"
 		"Parameter 'recursive' is if True, the disabled information will be\n"
 		"deleted also from all child elements, otherwise only from this SBase\n"
@@ -122956,7 +124113,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBase_getListOfAllElements", _wrap_SBase_getListOfAllElements, METH_VARARGS, (char *)"\n"
-		"getListOfAllElements(ElementFilter filter = None) -> SBaseList\n"
+		"getListOfAllElements(ElementFilter filter=None) -> SBaseList\n"
 		"SBase_getListOfAllElements(SBase self) -> SBaseList\n"
 		"\n"
 		"Returns an SBaseList of all child SBase objects, including those\n"
@@ -122966,7 +124123,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBase_getListOfAllElementsFromPlugins", _wrap_SBase_getListOfAllElementsFromPlugins, METH_VARARGS, (char *)"\n"
-		"getListOfAllElementsFromPlugins(ElementFilter filter = None) -> SBaseList\n"
+		"getListOfAllElementsFromPlugins(ElementFilter filter=None) -> SBaseList\n"
 		"SBase_getListOfAllElementsFromPlugins(SBase self) -> SBaseList\n"
 		"\n"
 		"Returns a List of all child SBase objects contained in SBML package\n"
@@ -122986,8 +124143,8 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"SBase_swigregister", SBase_swigregister, METH_VARARGS, NULL},
 	 { (char *)"delete_ListOf", _wrap_delete_ListOf, METH_VARARGS, (char *)"delete_ListOf(ListOf self)"},
 	 { (char *)"new_ListOf", _wrap_new_ListOf, METH_VARARGS, (char *)"\n"
-		"ListOf(unsigned int level = SBML_DEFAULT_LEVEL, unsigned int version = SBML_DEFAULT_VERSION)\n"
-		"ListOf(unsigned int level = SBML_DEFAULT_LEVEL)\n"
+		"ListOf(unsigned int level=SBML_DEFAULT_LEVEL, unsigned int version=SBML_DEFAULT_VERSION)\n"
+		"ListOf(unsigned int level=SBML_DEFAULT_LEVEL)\n"
 		"ListOf()\n"
 		"ListOf(SBMLNamespaces sbmlns)\n"
 		"new_ListOf(ListOf orig) -> ListOf\n"
@@ -123246,7 +124403,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ListOf_clear", _wrap_ListOf_clear, METH_VARARGS, (char *)"\n"
-		"clear(bool doDelete = True)\n"
+		"clear(bool doDelete=True)\n"
 		"ListOf_clear(ListOf self)\n"
 		"\n"
 		"Removes all items in this ListOf object.\n"
@@ -123337,9 +124494,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getItemTypeCode(), getElementName(), getPackageName().\n"
 		"\n"
@@ -125804,7 +126961,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"Model_renameAllIds", _wrap_Model_renameAllIds, METH_VARARGS, (char *)"\n"
-		"renameAllIds(IdentifierTransformer idTransformer, ElementFilter filter = None) -> int\n"
+		"renameAllIds(IdentifierTransformer idTransformer, ElementFilter filter=None) -> int\n"
 		"Model_renameAllIds(Model self, IdentifierTransformer idTransformer) -> int\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -125868,36 +127025,36 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"Model_convertL1ToL3", _wrap_Model_convertL1ToL3, METH_VARARGS, (char *)"\n"
-		"convertL1ToL3(bool addDefaultUnits = True)\n"
+		"convertL1ToL3(bool addDefaultUnits=True)\n"
 		"Model_convertL1ToL3(Model self)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"Model_convertL2ToL3", _wrap_Model_convertL2ToL3, METH_VARARGS, (char *)"\n"
-		"convertL2ToL3(bool strict = False, bool addDefaultUnits = True)\n"
-		"convertL2ToL3(bool strict = False)\n"
+		"convertL2ToL3(bool strict=False, bool addDefaultUnits=True)\n"
+		"convertL2ToL3(bool strict=False)\n"
 		"Model_convertL2ToL3(Model self)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"Model_convertL2ToL1", _wrap_Model_convertL2ToL1, METH_VARARGS, (char *)"\n"
-		"convertL2ToL1(bool strict = False)\n"
+		"convertL2ToL1(bool strict=False)\n"
 		"Model_convertL2ToL1(Model self)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"Model_convertL3ToL1", _wrap_Model_convertL3ToL1, METH_VARARGS, (char *)"\n"
-		"convertL3ToL1(bool strict = False)\n"
+		"convertL3ToL1(bool strict=False)\n"
 		"Model_convertL3ToL1(Model self)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"Model_convertL3ToL2", _wrap_Model_convertL3ToL2, METH_VARARGS, (char *)"\n"
-		"convertL3ToL2(bool strict = False)\n"
+		"convertL3ToL2(bool strict=False)\n"
 		"Model_convertL3ToL2(Model self)\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -125916,7 +127073,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"Model_setSpatialDimensions", _wrap_Model_setSpatialDimensions, METH_VARARGS, (char *)"\n"
-		"setSpatialDimensions(double dims = 3.0)\n"
+		"setSpatialDimensions(double dims=3.0)\n"
 		"Model_setSpatialDimensions(Model self)\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -125965,7 +127122,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"Model_dealWithModelUnits", _wrap_Model_dealWithModelUnits, METH_VARARGS, (char *)"\n"
-		"dealWithModelUnits(bool strict = False)\n"
+		"dealWithModelUnits(bool strict=False)\n"
 		"Model_dealWithModelUnits(Model self)\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -126015,9 +127172,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -126092,13 +127249,13 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"Model_getFormulaUnitsDataForVariable", _wrap_Model_getFormulaUnitsDataForVariable, METH_VARARGS, (char *)"\n"
-		"Model_getFormulaUnitsDataForVariable(Model self, string sid) -> FormulaUnitsData\n"
+		"Model_getFormulaUnitsDataForVariable(Model self, string sid) -> FormulaUnitsData *\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"Model_getFormulaUnitsDataForAssignment", _wrap_Model_getFormulaUnitsDataForAssignment, METH_VARARGS, (char *)"\n"
-		"Model_getFormulaUnitsDataForAssignment(Model self, string sid) -> FormulaUnitsData\n"
+		"Model_getFormulaUnitsDataForAssignment(Model self, string sid) -> FormulaUnitsData *\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -126636,7 +127793,7 @@ static PyMethodDef SwigMethods[] = {
 		"The default SBML Level of new SBMLDocument objects.\n"
 		"\n"
 		"This 'default Level' corresponds to the most recent SBML\n"
-		"specification Level available at the time libSBML version 5.12.0 was\n"
+		"specification Level available at the time libSBML version 5.13.0 was\n"
 		"released.  The default Level is used by SBMLDocument if no Level is\n"
 		"explicitly specified at the time of the construction of an\n"
 		"SBMLDocument instance.\n"
@@ -126663,7 +127820,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"This 'default Version' corresponds to the most recent Version within\n"
 		"the most recent Level of SBML available at the time libSBML version\n"
-		"5.12.0 was released.  The default Version is used by SBMLDocument if\n"
+		"5.13.0 was released.  The default Version is used by SBMLDocument if\n"
 		"no Version is explicitly specified at the time of the construction of\n"
 		"an SBMLDocument instance.\n"
 		"\n"
@@ -126685,8 +127842,8 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"delete_SBMLDocument", _wrap_delete_SBMLDocument, METH_VARARGS, (char *)"delete_SBMLDocument(SBMLDocument self)"},
 	 { (char *)"new_SBMLDocument", _wrap_new_SBMLDocument, METH_VARARGS, (char *)"\n"
-		"SBMLDocument(unsigned int level = 0, unsigned int version = 0)\n"
-		"SBMLDocument(unsigned int level = 0)\n"
+		"SBMLDocument(unsigned int level=0, unsigned int version=0)\n"
+		"SBMLDocument(unsigned int level=0)\n"
 		"SBMLDocument()\n"
 		"SBMLDocument(SBMLNamespaces sbmlns)\n"
 		"new_SBMLDocument(SBMLDocument orig) -> SBMLDocument\n"
@@ -126885,9 +128042,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_setLevelAndVersion", _wrap_SBMLDocument_setLevelAndVersion, METH_VARARGS, (char *)"\n"
-		"setLevelAndVersion(unsigned int level, unsigned int version, bool strict = True, \n"
-		"    bool ignorePackages = False) -> bool\n"
-		"setLevelAndVersion(unsigned int level, unsigned int version, bool strict = True) -> bool\n"
+		"setLevelAndVersion(unsigned int level, unsigned int version, bool strict=True, bool ignorePackages=False) -> bool\n"
+		"setLevelAndVersion(unsigned int level, unsigned int version, bool strict=True) -> bool\n"
 		"SBMLDocument_setLevelAndVersion(SBMLDocument self, unsigned int level, unsigned int version) -> bool\n"
 		"\n"
 		"Sets the SBML Level and Version of this SBMLDocument instance,\n"
@@ -126977,8 +128133,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_updateSBMLNamespace", _wrap_SBMLDocument_updateSBMLNamespace, METH_VARARGS, (char *)"\n"
-		"SBMLDocument_updateSBMLNamespace(SBMLDocument self, string package, unsigned int level, \n"
-		"    unsigned int version)\n"
+		"SBMLDocument_updateSBMLNamespace(SBMLDocument self, string package, unsigned int level, unsigned int version)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -127003,7 +128158,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_createModel", _wrap_SBMLDocument_createModel, METH_VARARGS, (char *)"\n"
-		"createModel(string sid = \"\") -> Model\n"
+		"createModel(string sid=\"\") -> Model\n"
 		"SBMLDocument_createModel(SBMLDocument self) -> Model\n"
 		"\n"
 		"Creates a new Model inside this SBMLDocument, and returns a pointer to\n"
@@ -127293,6 +128448,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_checkL1Compatibility", _wrap_SBMLDocument_checkL1Compatibility, METH_VARARGS, (char *)"\n"
+		"checkL1Compatibility(bool inConversion=False) -> unsigned int\n"
 		"SBMLDocument_checkL1Compatibility(SBMLDocument self) -> unsigned int\n"
 		"\n"
 		"Performs a set of consistency checks on the document to establish\n"
@@ -127306,6 +128462,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_checkL2v1Compatibility", _wrap_SBMLDocument_checkL2v1Compatibility, METH_VARARGS, (char *)"\n"
+		"checkL2v1Compatibility(bool inConversion=False) -> unsigned int\n"
 		"SBMLDocument_checkL2v1Compatibility(SBMLDocument self) -> unsigned int\n"
 		"\n"
 		"Performs a set of consistency checks on the document to establish\n"
@@ -127319,6 +128476,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_checkL2v2Compatibility", _wrap_SBMLDocument_checkL2v2Compatibility, METH_VARARGS, (char *)"\n"
+		"checkL2v2Compatibility(bool inConversion=False) -> unsigned int\n"
 		"SBMLDocument_checkL2v2Compatibility(SBMLDocument self) -> unsigned int\n"
 		"\n"
 		"Performs a set of consistency checks on the document to establish\n"
@@ -127332,6 +128490,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_checkL2v3Compatibility", _wrap_SBMLDocument_checkL2v3Compatibility, METH_VARARGS, (char *)"\n"
+		"checkL2v3Compatibility(bool inConversion=False) -> unsigned int\n"
 		"SBMLDocument_checkL2v3Compatibility(SBMLDocument self) -> unsigned int\n"
 		"\n"
 		"Performs a set of consistency checks on the document to establish\n"
@@ -127428,7 +128587,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_printErrors", _wrap_SBMLDocument_printErrors, METH_VARARGS, (char *)"\n"
-		"printErrors(ostream stream = cerr)\n"
+		"printErrors(ostream stream=cerr)\n"
 		"printErrors()\n"
 		"SBMLDocument_printErrors(SBMLDocument self, ostream stream, unsigned int severity)\n"
 		"\n"
@@ -127482,8 +128641,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLDocument_enablePackageInternal", _wrap_SBMLDocument_enablePackageInternal, METH_VARARGS, (char *)"\n"
-		"SBMLDocument_enablePackageInternal(SBMLDocument self, string pkgURI, string pkgPrefix, \n"
-		"    bool flag)\n"
+		"SBMLDocument_enablePackageInternal(SBMLDocument self, string pkgURI, string pkgPrefix, bool flag)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -127507,9 +128665,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also SBMLDocument.getElementName(), getPackageName().\n"
 		"\n"
@@ -128142,9 +129300,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -128424,7 +129582,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"UnitKind_forName", _wrap_UnitKind_forName, METH_VARARGS, (char *)"\n"
-		"UnitKind_forName(char name) -> UnitKind_t\n"
+		"UnitKind_forName(char const * name) -> UnitKind_t\n"
 		"\n"
 		"Converts a text string naming a kind of unit to its corresponding\n"
 		"libSBML UNIT_KIND_ constant/enumeration value.\n"
@@ -128443,7 +129601,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"UnitKind_toString", _wrap_UnitKind_toString, METH_VARARGS, (char *)"\n"
-		"UnitKind_toString(UnitKind_t uk) -> char\n"
+		"UnitKind_toString(UnitKind_t uk) -> char const *\n"
 		"\n"
 		"Converts a unit code to a text string equivalent.\n"
 		"\n"
@@ -128464,7 +129622,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"UnitKind_isValidUnitKindString", _wrap_UnitKind_isValidUnitKindString, METH_VARARGS, (char *)"\n"
-		"UnitKind_isValidUnitKindString(char str, unsigned int level, unsigned int version) -> int\n"
+		"UnitKind_isValidUnitKindString(char const * str, unsigned int level, unsigned int version) -> int\n"
 		"\n"
 		"Predicate for testing whether a given string corresponds to a\n"
 		"predefined libSBML unit code.\n"
@@ -129213,9 +130371,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getPackageName(), getElementName().\n"
 		"\n"
@@ -130041,8 +131199,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"UnitDefinition_connectToChild", _wrap_UnitDefinition_connectToChild, METH_VARARGS, (char *)"UnitDefinition_connectToChild(UnitDefinition self)"},
 	 { (char *)"UnitDefinition_enablePackageInternal", _wrap_UnitDefinition_enablePackageInternal, METH_VARARGS, (char *)"\n"
-		"UnitDefinition_enablePackageInternal(UnitDefinition self, string pkgURI, string pkgPrefix, \n"
-		"    bool flag)\n"
+		"UnitDefinition_enablePackageInternal(UnitDefinition self, string pkgURI, string pkgPrefix, bool flag)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -130067,9 +131224,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getPackageName(), getElementName().\n"
 		"\n"
@@ -130277,7 +131434,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"UnitDefinition_printUnits", _wrap_UnitDefinition_printUnits, METH_VARARGS, (char *)"\n"
-		"printUnits(UnitDefinition ud, bool compact = False) -> string\n"
+		"printUnits(UnitDefinition ud, bool compact=False) -> string\n"
 		"UnitDefinition_printUnits(UnitDefinition ud) -> string\n"
 		"\n"
 		"Expresses the given definition in a plain-text form.\n"
@@ -130794,9 +131951,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -131241,9 +132398,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -132438,9 +133595,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -133747,9 +134904,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -134559,9 +135716,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -134980,9 +136137,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -135505,9 +136662,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -136319,9 +137476,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -136346,7 +137503,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"The returned value can be any of a number of different strings,\n"
 		"depending on the SBML Level in use and the kind of Rule object this\n"
-		"is.  The rules as of libSBML version 5.12.0 are the following:\n"
+		"is.  The rules as of libSBML version 5.13.0 are the following:\n"
 		"\n"
 		"* (Level 2 and 3) RateRule: returns 'rateRule'\n"
 		"\n"
@@ -137199,7 +138356,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"Constraint_setMessage", _wrap_Constraint_setMessage, METH_VARARGS, (char *)"\n"
 		"setMessage(XMLNode xhtml) -> int\n"
-		"setMessage(string message, bool addXHTMLMarkup = False) -> int\n"
+		"setMessage(string message, bool addXHTMLMarkup=False) -> int\n"
 		"Constraint_setMessage(Constraint self, string message) -> int\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -137352,9 +138509,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -138083,10 +139240,9 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"Reaction_addReactant", _wrap_Reaction_addReactant, METH_VARARGS, (char *)"\n"
 		"addReactant(SpeciesReference sr) -> int\n"
-		"addReactant(Species species, double stoichiometry = 1.0, string id = \"\", \n"
-		"    bool constant = True) -> int\n"
-		"addReactant(Species species, double stoichiometry = 1.0, string id = \"\") -> int\n"
-		"addReactant(Species species, double stoichiometry = 1.0) -> int\n"
+		"addReactant(Species species, double stoichiometry=1.0, string id=\"\", bool constant=True) -> int\n"
+		"addReactant(Species species, double stoichiometry=1.0, string id=\"\") -> int\n"
+		"addReactant(Species species, double stoichiometry=1.0) -> int\n"
 		"Reaction_addReactant(Reaction self, Species species) -> int\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -138144,10 +139300,9 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"Reaction_addProduct", _wrap_Reaction_addProduct, METH_VARARGS, (char *)"\n"
 		"addProduct(SpeciesReference sr) -> int\n"
-		"addProduct(Species species, double stoichiometry = 1.0, string id = \"\", \n"
-		"    bool constant = True) -> int\n"
-		"addProduct(Species species, double stoichiometry = 1.0, string id = \"\") -> int\n"
-		"addProduct(Species species, double stoichiometry = 1.0) -> int\n"
+		"addProduct(Species species, double stoichiometry=1.0, string id=\"\", bool constant=True) -> int\n"
+		"addProduct(Species species, double stoichiometry=1.0, string id=\"\") -> int\n"
+		"addProduct(Species species, double stoichiometry=1.0) -> int\n"
 		"Reaction_addProduct(Reaction self, Species species) -> int\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -138205,7 +139360,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"Reaction_addModifier", _wrap_Reaction_addModifier, METH_VARARGS, (char *)"\n"
 		"addModifier(ModifierSpeciesReference msr) -> int\n"
-		"addModifier(Species species, string id = \"\") -> int\n"
+		"addModifier(Species species, string id=\"\") -> int\n"
 		"Reaction_addModifier(Reaction self, Species species) -> int\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -138626,9 +139781,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -139641,9 +140796,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -140837,9 +141992,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -141746,9 +142901,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -142255,9 +143410,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -142867,9 +144022,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -143218,9 +144373,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -143487,9 +144642,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -144229,6 +145384,12 @@ static PyMethodDef SwigMethods[] = {
 		"functionally identical.\n"
 		"\n"
 		""},
+	 { (char *)"SBO_getParentBranch", _wrap_SBO_getParentBranch, METH_VARARGS, (char *)"\n"
+		"SBO_getParentBranch(unsigned int term) -> unsigned int\n"
+		"\n"
+		"Internal implementation method.\n"
+		"\n"
+		""},
 	 { (char *)"new_SBO", _wrap_new_SBO, METH_VARARGS, (char *)"\n"
 		"new_SBO() -> SBO\n"
 		"\n"
@@ -144454,7 +145615,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SyntaxChecker_hasExpectedXHTMLSyntax", _wrap_SyntaxChecker_hasExpectedXHTMLSyntax, METH_VARARGS, (char *)"\n"
-		"hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns = None) -> bool\n"
+		"hasExpectedXHTMLSyntax(XMLNode xhtml, SBMLNamespaces sbmlns=None) -> bool\n"
 		"SyntaxChecker_hasExpectedXHTMLSyntax(XMLNode xhtml) -> bool\n"
 		"\n"
 		"Returns True or False depending on whether the given XMLNode object\n"
@@ -144856,9 +146017,9 @@ static PyMethodDef SwigMethods[] = {
 		"WARNING:\n"
 		"\n"
 		"The specific integer values of the possible type codes may be reused\n"
-		"by different Level 3 package plug-ins. Thus, to identifiy the correct\n"
-		"code, it is necessary to invoke both getTypeCode() and\n"
-		"getPackageName().\n"
+		"by different libSBML plug-ins for SBML Level 3. packages,  To fully\n"
+		"identify the correct code, it is necessary to invoke both\n"
+		"getTypeCode() and getPackageName().\n"
 		"\n"
 		"See also getElementName(), getPackageName().\n"
 		"\n"
@@ -144964,13 +146125,12 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"StoichiometryMath_swigregister", StoichiometryMath_swigregister, METH_VARARGS, NULL},
 	 { (char *)"delete_SBMLNamespaces", _wrap_delete_SBMLNamespaces, METH_VARARGS, (char *)"delete_SBMLNamespaces(SBMLNamespaces self)"},
 	 { (char *)"new_SBMLNamespaces", _wrap_new_SBMLNamespaces, METH_VARARGS, (char *)"\n"
-		"SBMLNamespaces(unsigned int level = SBML_DEFAULT_LEVEL, unsigned int version = SBML_DEFAULT_VERSION)\n"
-		"SBMLNamespaces(unsigned int level = SBML_DEFAULT_LEVEL)\n"
+		"SBMLNamespaces(unsigned int level=SBML_DEFAULT_LEVEL, unsigned int version=SBML_DEFAULT_VERSION)\n"
+		"SBMLNamespaces(unsigned int level=SBML_DEFAULT_LEVEL)\n"
 		"SBMLNamespaces()\n"
-		"SBMLNamespaces(unsigned int level, unsigned int version, string pkgName, \n"
-		"    unsigned int pkgVersion, string pkgPrefix = \"\")\n"
-		"SBMLNamespaces(unsigned int level, unsigned int version, string pkgName, \n"
-		"    unsigned int pkgVersion)\n"
+		"SBMLNamespaces(unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion, \n"
+		"    string pkgPrefix=\"\")\n"
+		"SBMLNamespaces(unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion)\n"
 		"new_SBMLNamespaces(SBMLNamespaces orig) -> SBMLNamespaces\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -145101,7 +146261,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLNamespaces_getSupportedNamespaces", _wrap_SBMLNamespaces_getSupportedNamespaces, METH_VARARGS, (char *)"\n"
-		"SBMLNamespaces_getSupportedNamespaces() -> List\n"
+		"SBMLNamespaces_getSupportedNamespaces() -> List const *\n"
 		"\n"
 		"Returns a list of all supported SBMLNamespaces in this version of\n"
 		"libsbml.\n"
@@ -145120,7 +146280,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLNamespaces_freeSBMLNamespaces", _wrap_SBMLNamespaces_freeSBMLNamespaces, METH_VARARGS, (char *)"\n"
-		"SBMLNamespaces_freeSBMLNamespaces(List supportedNS)\n"
+		"SBMLNamespaces_freeSBMLNamespaces(List * supportedNS)\n"
 		"\n"
 		"Frees the list of supported namespaces as generated by\n"
 		"getSupportedNamespaces().\n"
@@ -145268,7 +146428,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLNamespaces_addPackageNamespace", _wrap_SBMLNamespaces_addPackageNamespace, METH_VARARGS, (char *)"\n"
-		"addPackageNamespace(string pkgName, unsigned int pkgVersion, string prefix = \"\") -> int\n"
+		"addPackageNamespace(string pkgName, unsigned int pkgVersion, string prefix=\"\") -> int\n"
 		"SBMLNamespaces_addPackageNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion) -> int\n"
 		"\n"
 		"Add an XML namespace (a pair of URI and prefix) of a package extension\n"
@@ -145320,8 +146480,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLNamespaces_removePackageNamespace", _wrap_SBMLNamespaces_removePackageNamespace, METH_VARARGS, (char *)"\n"
-		"SBMLNamespaces_removePackageNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, \n"
-		"    string pkgName, unsigned int pkgVersion) -> int\n"
+		"SBMLNamespaces_removePackageNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> int\n"
 		"\n"
 		"Removes an XML namespace of a package extension from the set of\n"
 		"namespaces  within this SBMLNamespaces object.\n"
@@ -145341,7 +146500,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLNamespaces_addPkgNamespace", _wrap_SBMLNamespaces_addPkgNamespace, METH_VARARGS, (char *)"\n"
-		"addPkgNamespace(string pkgName, unsigned int pkgVersion, string prefix = \"\") -> int\n"
+		"addPkgNamespace(string pkgName, unsigned int pkgVersion, string prefix=\"\") -> int\n"
 		"SBMLNamespaces_addPkgNamespace(SBMLNamespaces self, string pkgName, unsigned int pkgVersion) -> int\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -145354,8 +146513,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLNamespaces_removePkgNamespace", _wrap_SBMLNamespaces_removePkgNamespace, METH_VARARGS, (char *)"\n"
-		"SBMLNamespaces_removePkgNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, \n"
-		"    string pkgName, unsigned int pkgVersion) -> int\n"
+		"SBMLNamespaces_removePkgNamespace(SBMLNamespaces self, unsigned int level, unsigned int version, string pkgName, unsigned int pkgVersion) -> int\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -145401,9 +146559,9 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"SBMLNamespaces_swigregister", SBMLNamespaces_swigregister, METH_VARARGS, NULL},
 	 { (char *)"SBMLTransforms_replaceFD", _wrap_SBMLTransforms_replaceFD, METH_VARARGS, (char *)"\n"
-		"replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude = None)\n"
+		"replaceFD(ASTNode math, FunctionDefinition fd, IdList idsToExclude=None)\n"
 		"replaceFD(ASTNode math, FunctionDefinition fd)\n"
-		"replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude = None)\n"
+		"replaceFD(ASTNode math, ListOfFunctionDefinitions lofd, IdList idsToExclude=None)\n"
 		"SBMLTransforms_replaceFD(ASTNode math, ListOfFunctionDefinitions lofd)\n"
 		""},
 	 { (char *)"SBMLTransforms_expandInitialAssignments", _wrap_SBMLTransforms_expandInitialAssignments, METH_VARARGS, (char *)"\n"
@@ -145413,7 +146571,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLTransforms_evaluateASTNode", _wrap_SBMLTransforms_evaluateASTNode, METH_VARARGS, (char *)"\n"
-		"evaluateASTNode(ASTNode node, Model m = None) -> double\n"
+		"evaluateASTNode(ASTNode node, Model m=None) -> double\n"
 		"SBMLTransforms_evaluateASTNode(ASTNode node) -> double\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -145425,20 +146583,19 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_SBMLTransforms", _wrap_delete_SBMLTransforms, METH_VARARGS, (char *)"delete_SBMLTransforms(SBMLTransforms self)"},
 	 { (char *)"SBMLTransforms_swigregister", SBMLTransforms_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_ConversionOption", _wrap_new_ConversionOption, METH_VARARGS, (char *)"\n"
-		"ConversionOption(string key, string value = \"\", ConversionOptionType_t type = CNV_TYPE_STRING, \n"
-		"    string description = \"\")\n"
-		"ConversionOption(string key, string value = \"\", ConversionOptionType_t type = CNV_TYPE_STRING)\n"
-		"ConversionOption(string key, string value = \"\")\n"
+		"ConversionOption(string key, string value=\"\", ConversionOptionType_t type=CNV_TYPE_STRING, string description=\"\")\n"
+		"ConversionOption(string key, string value=\"\", ConversionOptionType_t type=CNV_TYPE_STRING)\n"
+		"ConversionOption(string key, string value=\"\")\n"
 		"ConversionOption(string key)\n"
-		"ConversionOption(string key, char value, string description = \"\")\n"
-		"ConversionOption(string key, char value)\n"
-		"ConversionOption(string key, bool value, string description = \"\")\n"
+		"ConversionOption(string key, char const * value, string description=\"\")\n"
+		"ConversionOption(string key, char const * value)\n"
+		"ConversionOption(string key, bool value, string description=\"\")\n"
 		"ConversionOption(string key, bool value)\n"
-		"ConversionOption(string key, double value, string description = \"\")\n"
+		"ConversionOption(string key, double value, string description=\"\")\n"
 		"ConversionOption(string key, double value)\n"
-		"ConversionOption(string key, float value, string description = \"\")\n"
+		"ConversionOption(string key, float value, string description=\"\")\n"
 		"ConversionOption(string key, float value)\n"
-		"ConversionOption(string key, int value, string description = \"\")\n"
+		"ConversionOption(string key, int value, string description=\"\")\n"
 		"ConversionOption(string key, int value)\n"
 		"new_ConversionOption(ConversionOption orig) -> ConversionOption\n"
 		"\n"
@@ -145756,7 +146913,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"ConversionOption_swigregister", ConversionOption_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_ConversionProperties", _wrap_new_ConversionProperties, METH_VARARGS, (char *)"\n"
-		"ConversionProperties(SBMLNamespaces targetNS = None)\n"
+		"ConversionProperties(SBMLNamespaces targetNS=None)\n"
 		"ConversionProperties()\n"
 		"new_ConversionProperties(ConversionProperties orig) -> ConversionProperties\n"
 		"\n"
@@ -145881,20 +147038,19 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"ConversionProperties_addOption", _wrap_ConversionProperties_addOption, METH_VARARGS, (char *)"\n"
 		"addOption(ConversionOption option)\n"
-		"addOption(string key, string value = \"\", ConversionOptionType_t type = CNV_TYPE_STRING, \n"
-		"    string description = \"\")\n"
-		"addOption(string key, string value = \"\", ConversionOptionType_t type = CNV_TYPE_STRING)\n"
-		"addOption(string key, string value = \"\")\n"
+		"addOption(string key, string value=\"\", ConversionOptionType_t type=CNV_TYPE_STRING, string description=\"\")\n"
+		"addOption(string key, string value=\"\", ConversionOptionType_t type=CNV_TYPE_STRING)\n"
+		"addOption(string key, string value=\"\")\n"
 		"addOption(string key)\n"
-		"addOption(string key, char value, string description = \"\")\n"
-		"addOption(string key, char value)\n"
-		"addOption(string key, bool value, string description = \"\")\n"
+		"addOption(string key, char const * value, string description=\"\")\n"
+		"addOption(string key, char const * value)\n"
+		"addOption(string key, bool value, string description=\"\")\n"
 		"addOption(string key, bool value)\n"
-		"addOption(string key, double value, string description = \"\")\n"
+		"addOption(string key, double value, string description=\"\")\n"
 		"addOption(string key, double value)\n"
-		"addOption(string key, float value, string description = \"\")\n"
+		"addOption(string key, float value, string description=\"\")\n"
 		"addOption(string key, float value)\n"
-		"addOption(string key, int value, string description = \"\")\n"
+		"addOption(string key, int value, string description=\"\")\n"
 		"ConversionProperties_addOption(ConversionProperties self, string key, int value)\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -146183,7 +147339,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_SBMLConverter", _wrap_new_SBMLConverter, METH_VARARGS, (char *)"\n"
 		"SBMLConverter()\n"
 		"SBMLConverter(string name)\n"
-		"new_SBMLConverter(PyObject self, SBMLConverter orig) -> SBMLConverter\n"
+		"new_SBMLConverter(PyObject * self, SBMLConverter orig) -> SBMLConverter\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
 		"accept.  Each variant is described separately below.\n"
@@ -147614,7 +148770,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"SBMLUnitsConverter_swigregister", SBMLUnitsConverter_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_SBMLValidator", _wrap_new_SBMLValidator, METH_VARARGS, (char *)"\n"
 		"SBMLValidator()\n"
-		"new_SBMLValidator(PyObject self, SBMLValidator orig) -> SBMLValidator\n"
+		"new_SBMLValidator(PyObject * self, SBMLValidator orig) -> SBMLValidator\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
 		"accept.  Each variant is described separately below.\n"
@@ -147806,7 +148962,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"SBMLValidator_swigregister", SBMLValidator_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_SBMLExternalValidator", _wrap_new_SBMLExternalValidator, METH_VARARGS, (char *)"\n"
 		"SBMLExternalValidator()\n"
-		"new_SBMLExternalValidator(SBMLExternalValidator arg0) -> SBMLExternalValidator\n"
+		"new_SBMLExternalValidator(SBMLExternalValidator arg1) -> SBMLExternalValidator\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -147919,9 +149075,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLAttributes_add", _wrap_XMLAttributes_add, METH_VARARGS, (char *)"\n"
-		"add(string name, string value, string namespaceURI = \"\", \n"
-		"    string prefix = \"\") -> int\n"
-		"add(string name, string value, string namespaceURI = \"\") -> int\n"
+		"add(string name, string value, string namespaceURI=\"\", string prefix=\"\") -> int\n"
+		"add(string name, string value, string namespaceURI=\"\") -> int\n"
 		"add(string name, string value) -> int\n"
 		"XMLAttributes_add(XMLAttributes self, XMLTriple triple, string value) -> int\n"
 		"\n"
@@ -148056,7 +149211,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLAttributes_remove", _wrap_XMLAttributes_remove, METH_VARARGS, (char *)"\n"
 		"remove(int n) -> int\n"
-		"remove(string name, string uri = \"\") -> int\n"
+		"remove(string name, string uri=\"\") -> int\n"
 		"remove(string name) -> int\n"
 		"XMLAttributes_remove(XMLAttributes self, XMLTriple triple) -> int\n"
 		"\n"
@@ -148312,7 +149467,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLAttributes_hasAttribute", _wrap_XMLAttributes_hasAttribute, METH_VARARGS, (char *)"\n"
 		"hasAttribute(int index) -> bool\n"
-		"hasAttribute(string name, string uri = \"\") -> bool\n"
+		"hasAttribute(string name, string uri=\"\") -> bool\n"
 		"hasAttribute(string name) -> bool\n"
 		"XMLAttributes_hasAttribute(XMLAttributes self, XMLTriple triple) -> bool\n"
 		"\n"
@@ -148378,7 +149533,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLNamespaces_add", _wrap_XMLNamespaces_add, METH_VARARGS, (char *)"\n"
-		"add(string uri, string prefix = \"\") -> int\n"
+		"add(string uri, string prefix=\"\") -> int\n"
 		"XMLNamespaces_add(XMLNamespaces self, string uri) -> int\n"
 		"\n"
 		"Appends an XML namespace prefix and URI pair to this list of namespace\n"
@@ -148580,7 +149735,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLNamespaces_getURI", _wrap_XMLNamespaces_getURI, METH_VARARGS, (char *)"\n"
 		"getURI(int index) -> string\n"
-		"getURI(string prefix = \"\") -> string\n"
+		"getURI(string prefix=\"\") -> string\n"
 		"XMLNamespaces_getURI(XMLNamespaces self) -> string\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -148658,20 +149813,18 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_XMLToken", _wrap_delete_XMLToken, METH_VARARGS, (char *)"delete_XMLToken(XMLToken self)"},
 	 { (char *)"new_XMLToken", _wrap_new_XMLToken, METH_VARARGS, (char *)"\n"
 		"XMLToken()\n"
-		"XMLToken(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, \n"
-		"    unsigned int line = 0, unsigned int column = 0)\n"
-		"XMLToken(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, \n"
-		"    unsigned int line = 0)\n"
+		"XMLToken(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0, \n"
+		"    unsigned int const column=0)\n"
+		"XMLToken(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0)\n"
 		"XMLToken(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces)\n"
-		"XMLToken(XMLTriple triple, XMLAttributes attributes, unsigned int line = 0, \n"
-		"    unsigned int column = 0)\n"
-		"XMLToken(XMLTriple triple, XMLAttributes attributes, unsigned int line = 0)\n"
+		"XMLToken(XMLTriple triple, XMLAttributes attributes, unsigned int const line=0, unsigned int const column=0)\n"
+		"XMLToken(XMLTriple triple, XMLAttributes attributes, unsigned int const line=0)\n"
 		"XMLToken(XMLTriple triple, XMLAttributes attributes)\n"
-		"XMLToken(XMLTriple triple, unsigned int line = 0, unsigned int column = 0)\n"
-		"XMLToken(XMLTriple triple, unsigned int line = 0)\n"
+		"XMLToken(XMLTriple triple, unsigned int const line=0, unsigned int const column=0)\n"
+		"XMLToken(XMLTriple triple, unsigned int const line=0)\n"
 		"XMLToken(XMLTriple triple)\n"
-		"XMLToken(string chars, unsigned int line = 0, unsigned int column = 0)\n"
-		"XMLToken(string chars, unsigned int line = 0)\n"
+		"XMLToken(string chars, unsigned int const line=0, unsigned int const column=0)\n"
+		"XMLToken(string chars, unsigned int const line=0)\n"
 		"XMLToken(string chars)\n"
 		"new_XMLToken(XMLToken orig) -> XMLToken\n"
 		"\n"
@@ -148870,9 +150023,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLToken_addAttr", _wrap_XMLToken_addAttr, METH_VARARGS, (char *)"\n"
-		"addAttr(string name, string value, string namespaceURI = \"\", \n"
-		"    string prefix = \"\") -> int\n"
-		"addAttr(string name, string value, string namespaceURI = \"\") -> int\n"
+		"addAttr(string name, string value, string namespaceURI=\"\", string prefix=\"\") -> int\n"
+		"addAttr(string name, string value, string namespaceURI=\"\") -> int\n"
 		"addAttr(string name, string value) -> int\n"
 		"XMLToken_addAttr(XMLToken self, XMLTriple triple, string value) -> int\n"
 		"\n"
@@ -148971,7 +150123,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLToken_removeAttr", _wrap_XMLToken_removeAttr, METH_VARARGS, (char *)"\n"
 		"removeAttr(int n) -> int\n"
-		"removeAttr(string name, string uri = \"\") -> int\n"
+		"removeAttr(string name, string uri=\"\") -> int\n"
 		"removeAttr(string name) -> int\n"
 		"XMLToken_removeAttr(XMLToken self, XMLTriple triple) -> int\n"
 		"\n"
@@ -149027,7 +150179,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLToken_getAttrIndex", _wrap_XMLToken_getAttrIndex, METH_VARARGS, (char *)"\n"
-		"getAttrIndex(string name, string uri = \"\") -> int\n"
+		"getAttrIndex(string name, string uri=\"\") -> int\n"
 		"getAttrIndex(string name) -> int\n"
 		"XMLToken_getAttrIndex(XMLToken self, XMLTriple triple) -> int\n"
 		"\n"
@@ -149175,7 +150327,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLToken_getAttrValue", _wrap_XMLToken_getAttrValue, METH_VARARGS, (char *)"\n"
 		"getAttrValue(int index) -> string\n"
-		"getAttrValue(string name, string uri = \"\") -> string\n"
+		"getAttrValue(string name, string uri=\"\") -> string\n"
 		"getAttrValue(string name) -> string\n"
 		"XMLToken_getAttrValue(XMLToken self, XMLTriple triple) -> string\n"
 		"\n"
@@ -149260,7 +150412,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLToken_hasAttr", _wrap_XMLToken_hasAttr, METH_VARARGS, (char *)"\n"
 		"hasAttr(int index) -> bool\n"
-		"hasAttr(string name, string uri = \"\") -> bool\n"
+		"hasAttr(string name, string uri=\"\") -> bool\n"
 		"hasAttr(string name) -> bool\n"
 		"XMLToken_hasAttr(XMLToken self, XMLTriple triple) -> bool\n"
 		"\n"
@@ -149371,7 +150523,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLToken_addNamespace", _wrap_XMLToken_addNamespace, METH_VARARGS, (char *)"\n"
-		"addNamespace(string uri, string prefix = \"\") -> int\n"
+		"addNamespace(string uri, string prefix=\"\") -> int\n"
 		"XMLToken_addNamespace(XMLToken self, string uri) -> int\n"
 		"\n"
 		"Appends an XML namespace declaration to this token.\n"
@@ -149547,7 +150699,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLToken_getNamespaceURI", _wrap_XMLToken_getNamespaceURI, METH_VARARGS, (char *)"\n"
 		"getNamespaceURI(int index) -> string\n"
-		"getNamespaceURI(string prefix = \"\") -> string\n"
+		"getNamespaceURI(string prefix=\"\") -> string\n"
 		"XMLToken_getNamespaceURI(XMLToken self) -> string\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -149886,20 +151038,18 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_XMLNode", _wrap_new_XMLNode, METH_VARARGS, (char *)"\n"
 		"XMLNode()\n"
 		"XMLNode(XMLToken token)\n"
-		"XMLNode(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, \n"
-		"    unsigned int line = 0, unsigned int column = 0)\n"
-		"XMLNode(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, \n"
-		"    unsigned int line = 0)\n"
+		"XMLNode(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0, \n"
+		"    unsigned int const column=0)\n"
+		"XMLNode(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces, unsigned int const line=0)\n"
 		"XMLNode(XMLTriple triple, XMLAttributes attributes, XMLNamespaces namespaces)\n"
-		"XMLNode(XMLTriple triple, XMLAttributes attributes, unsigned int line = 0, \n"
-		"    unsigned int column = 0)\n"
-		"XMLNode(XMLTriple triple, XMLAttributes attributes, unsigned int line = 0)\n"
+		"XMLNode(XMLTriple triple, XMLAttributes attributes, unsigned int const line=0, unsigned int const column=0)\n"
+		"XMLNode(XMLTriple triple, XMLAttributes attributes, unsigned int const line=0)\n"
 		"XMLNode(XMLTriple triple, XMLAttributes attributes)\n"
-		"XMLNode(XMLTriple triple, unsigned int line = 0, unsigned int column = 0)\n"
-		"XMLNode(XMLTriple triple, unsigned int line = 0)\n"
+		"XMLNode(XMLTriple triple, unsigned int const line=0, unsigned int const column=0)\n"
+		"XMLNode(XMLTriple triple, unsigned int const line=0)\n"
 		"XMLNode(XMLTriple triple)\n"
-		"XMLNode(string chars, unsigned int line = 0, unsigned int column = 0)\n"
-		"XMLNode(string chars, unsigned int line = 0)\n"
+		"XMLNode(string chars, unsigned int const line=0, unsigned int const column=0)\n"
+		"XMLNode(string chars, unsigned int const line=0)\n"
 		"XMLNode(string chars)\n"
 		"XMLNode(XMLInputStream stream)\n"
 		"new_XMLNode(XMLNode orig) -> XMLNode\n"
@@ -150173,7 +151323,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLNode_equals", _wrap_XMLNode_equals, METH_VARARGS, (char *)"\n"
-		"equals(XMLNode other, bool ignoreURI = False) -> bool\n"
+		"equals(XMLNode other, bool ignoreURI=False) -> bool\n"
 		"XMLNode_equals(XMLNode self, XMLNode other) -> bool\n"
 		"\n"
 		"Compare this XMLNode against another XMLNode returning true if both\n"
@@ -150215,7 +151365,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLNode_convertStringToXMLNode", _wrap_XMLNode_convertStringToXMLNode, METH_VARARGS, (char *)"\n"
-		"convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns = None) -> XMLNode\n"
+		"convertStringToXMLNode(string xmlstr, XMLNamespaces xmlns=None) -> XMLNode\n"
 		"XMLNode_convertStringToXMLNode(string xmlstr) -> XMLNode\n"
 		"\n"
 		"Returns an XMLNode which is derived from a string containing XML\n"
@@ -150259,7 +151409,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_XMLTriple", _wrap_new_XMLTriple, METH_VARARGS, (char *)"\n"
 		"XMLTriple()\n"
 		"XMLTriple(string name, string uri, string prefix)\n"
-		"XMLTriple(string triplet, char sepchar = ' ')\n"
+		"XMLTriple(string triplet, char const sepchar=' ')\n"
 		"XMLTriple(string triplet)\n"
 		"new_XMLTriple(XMLTriple orig) -> XMLTriple\n"
 		"\n"
@@ -150381,12 +151531,11 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_XMLTriple", _wrap_delete_XMLTriple, METH_VARARGS, (char *)"delete_XMLTriple(XMLTriple self)"},
 	 { (char *)"XMLTriple_swigregister", XMLTriple_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_XMLOutputStream", _wrap_new_XMLOutputStream, METH_VARARGS, (char *)"\n"
-		"XMLOutputStream(ostream stream, string encoding = \"UTF-8\", bool writeXMLDecl = True, \n"
-		"    string programName = \"\", string programVersion = \"\")\n"
-		"XMLOutputStream(ostream stream, string encoding = \"UTF-8\", bool writeXMLDecl = True, \n"
-		"    string programName = \"\")\n"
-		"XMLOutputStream(ostream stream, string encoding = \"UTF-8\", bool writeXMLDecl = True)\n"
-		"XMLOutputStream(ostream stream, string encoding = \"UTF-8\")\n"
+		"XMLOutputStream(ostream stream, string encoding=\"UTF-8\", bool writeXMLDecl=True, string programName=\"\", \n"
+		"    string programVersion=\"\")\n"
+		"XMLOutputStream(ostream stream, string encoding=\"UTF-8\", bool writeXMLDecl=True, string programName=\"\")\n"
+		"XMLOutputStream(ostream stream, string encoding=\"UTF-8\", bool writeXMLDecl=True)\n"
+		"XMLOutputStream(ostream stream, string encoding=\"UTF-8\")\n"
 		"new_XMLOutputStream(ostream stream) -> XMLOutputStream\n"
 		"\n"
 		"Creates a new XMLOutputStream that wraps the given @p stream.\n"
@@ -150434,7 +151583,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"delete_XMLOutputStream", _wrap_delete_XMLOutputStream, METH_VARARGS, (char *)"delete_XMLOutputStream(XMLOutputStream self)"},
 	 { (char *)"XMLOutputStream_endElement", _wrap_XMLOutputStream_endElement, METH_VARARGS, (char *)"\n"
-		"endElement(string name, string prefix = \"\")\n"
+		"endElement(string name, string prefix=\"\")\n"
 		"endElement(string name)\n"
 		"XMLOutputStream_endElement(XMLOutputStream self, XMLTriple triple)\n"
 		"\n"
@@ -150484,7 +151633,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLOutputStream_startElement", _wrap_XMLOutputStream_startElement, METH_VARARGS, (char *)"\n"
-		"startElement(string name, string prefix = \"\")\n"
+		"startElement(string name, string prefix=\"\")\n"
 		"startElement(string name)\n"
 		"XMLOutputStream_startElement(XMLOutputStream self, XMLTriple triple)\n"
 		"\n"
@@ -150526,7 +151675,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLOutputStream_startEndElement", _wrap_XMLOutputStream_startEndElement, METH_VARARGS, (char *)"\n"
-		"startEndElement(string name, string prefix = \"\")\n"
+		"startEndElement(string name, string prefix=\"\")\n"
 		"startEndElement(string name)\n"
 		"XMLOutputStream_startEndElement(XMLOutputStream self, XMLTriple triple)\n"
 		"\n"
@@ -150572,22 +151721,22 @@ static PyMethodDef SwigMethods[] = {
 		"writeAttribute(string name, string value)\n"
 		"writeAttribute(string name, string prefix, string value)\n"
 		"writeAttribute(XMLTriple triple, string value)\n"
-		"writeAttribute(string name, char value)\n"
-		"writeAttribute(string name, string prefix, char value)\n"
-		"writeAttribute(XMLTriple triple, char value)\n"
-		"writeAttribute(string name, bool value)\n"
-		"writeAttribute(string name, string prefix, bool value)\n"
-		"writeAttribute(XMLTriple triple, bool value)\n"
-		"writeAttribute(string name, double value)\n"
-		"writeAttribute(string name, string prefix, double value)\n"
-		"writeAttribute(XMLTriple triple, double value)\n"
-		"writeAttribute(string name, long value)\n"
-		"writeAttribute(string name, string prefix, long value)\n"
-		"writeAttribute(XMLTriple triple, long value)\n"
-		"writeAttribute(string name, int value)\n"
-		"writeAttribute(string name, string prefix, int value)\n"
-		"writeAttribute(XMLTriple triple, int value)\n"
-		"XMLOutputStream_writeAttribute(XMLOutputStream self, string name, string prefix, unsigned int value)\n"
+		"writeAttribute(string name, char const * value)\n"
+		"writeAttribute(string name, string prefix, char const * value)\n"
+		"writeAttribute(XMLTriple triple, char const * value)\n"
+		"writeAttribute(string name, bool const & value)\n"
+		"writeAttribute(string name, string prefix, bool const & value)\n"
+		"writeAttribute(XMLTriple triple, bool const & value)\n"
+		"writeAttribute(string name, double const & value)\n"
+		"writeAttribute(string name, string prefix, double const & value)\n"
+		"writeAttribute(XMLTriple triple, double const & value)\n"
+		"writeAttribute(string name, long const & value)\n"
+		"writeAttribute(string name, string prefix, long const & value)\n"
+		"writeAttribute(XMLTriple triple, long const & value)\n"
+		"writeAttribute(string name, int const & value)\n"
+		"writeAttribute(string name, string prefix, int const & value)\n"
+		"writeAttribute(XMLTriple triple, int const & value)\n"
+		"XMLOutputStream_writeAttribute(XMLOutputStream self, string name, string prefix, unsigned int const & value)\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
 		"accept.  Each variant is described separately below.\n"
@@ -150874,6 +152023,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLOutputStream_writeComment", _wrap_XMLOutputStream_writeComment, METH_VARARGS, (char *)"\n"
+		"writeComment(string programName, string programVersion, bool writeTimestamp=True)\n"
 		"XMLOutputStream_writeComment(XMLOutputStream self, string programName, string programVersion)\n"
 		"\n"
 		"Writes an XML comment with the name and version of this program.\n"
@@ -150892,6 +152042,9 @@ static PyMethodDef SwigMethods[] = {
 		"Parameter 'programVersion' is an optional version identification\n"
 		"string to write as a comment in the output stream.\n"
 		"\n"
+		"Parameter 'writeTimestamp' is an optional flag indicating that a\n"
+		"timestamp should be written\n"
+		"\n"
 		""},
 	 { (char *)"XMLOutputStream_downIndent", _wrap_XMLOutputStream_downIndent, METH_VARARGS, (char *)"\n"
 		"XMLOutputStream_downIndent(XMLOutputStream self)\n"
@@ -150937,20 +152090,79 @@ static PyMethodDef SwigMethods[] = {
 		"Parameter 'sbmlns' is the namespace object.\n"
 		"\n"
 		""},
+	 { (char *)"XMLOutputStream_getWriteComment", _wrap_XMLOutputStream_getWriteComment, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_getWriteComment() -> bool\n"
+		"\n"
+		"Returns a boolean, whether the output stream will write an XML comment\n"
+		"at the top of the file. (Enabled by default)\n"
+		"\n"
+		""},
+	 { (char *)"XMLOutputStream_setWriteComment", _wrap_XMLOutputStream_setWriteComment, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_setWriteComment(bool writeComment)\n"
+		"\n"
+		"sets a flag, whether the output stream will write an XML comment at\n"
+		"the top of the file. (Enabled by default)\n"
+		"\n"
+		"Parameter 'writeComment' is the flag\n"
+		"\n"
+		""},
+	 { (char *)"XMLOutputStream_getWriteTimestamp", _wrap_XMLOutputStream_getWriteTimestamp, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_getWriteTimestamp() -> bool\n"
+		"\n"
+		"Returns a boolean, whether the output stream will write an XML comment\n"
+		"with a timestamp at the top of the file. (Enabled by default)\n"
+		"\n"
+		""},
+	 { (char *)"XMLOutputStream_setWriteTimestamp", _wrap_XMLOutputStream_setWriteTimestamp, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_setWriteTimestamp(bool writeTimestamp)\n"
+		"\n"
+		"sets a flag, whether the output stream will write an XML comment with\n"
+		"a timestamp at the top of the file. (Enabled by default)\n"
+		"\n"
+		"Parameter 'writeTimestamp' is the flag\n"
+		"\n"
+		""},
+	 { (char *)"XMLOutputStream_getLibraryName", _wrap_XMLOutputStream_getLibraryName, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_getLibraryName() -> string\n"
+		"\n"
+		"Returns the name of the library to be used in comments ('libSBML' by\n"
+		"default)\n"
+		"\n"
+		""},
+	 { (char *)"XMLOutputStream_setLibraryName", _wrap_XMLOutputStream_setLibraryName, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_setLibraryName(string libraryName)\n"
+		"\n"
+		"sets the name of the library writing the XML Parameter 'libraryName'\n"
+		"is the name of the library to be used in comments\n"
+		"\n"
+		""},
+	 { (char *)"XMLOutputStream_getLibraryVersion", _wrap_XMLOutputStream_getLibraryVersion, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_getLibraryVersion() -> string\n"
+		"\n"
+		"Returns a string representing the version of the library writing the\n"
+		"output. This is the value of getLibSBMLDottedVersion() by default.\n"
+		"\n"
+		""},
+	 { (char *)"XMLOutputStream_setLibraryVersion", _wrap_XMLOutputStream_setLibraryVersion, METH_VARARGS, (char *)"\n"
+		"XMLOutputStream_setLibraryVersion(string libraryVersion)\n"
+		"\n"
+		"sets the name of the library writing the output\n"
+		"\n"
+		"Parameter 'libraryVersion' is the version information as string\n"
+		"\n"
+		""},
 	 { (char *)"XMLOutputStream_writeAttributeBool", _wrap_XMLOutputStream_writeAttributeBool, METH_VARARGS, (char *)"\n"
-		"writeAttributeBool(string name, bool value)\n"
-		"XMLOutputStream_writeAttributeBool(XMLOutputStream self, XMLTriple name, bool value)\n"
+		"writeAttributeBool(string name, bool const & value)\n"
+		"XMLOutputStream_writeAttributeBool(XMLOutputStream self, XMLTriple name, bool const & value)\n"
 		"\n"
 		"@internal\n"
 		""},
 	 { (char *)"XMLOutputStream_swigregister", XMLOutputStream_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_XMLOwningOutputStringStream", _wrap_new_XMLOwningOutputStringStream, METH_VARARGS, (char *)"\n"
-		"XMLOwningOutputStringStream(string encoding = \"UTF-8\", bool writeXMLDecl = True, \n"
-		"    string programName = \"\", string programVersion = \"\")\n"
-		"XMLOwningOutputStringStream(string encoding = \"UTF-8\", bool writeXMLDecl = True, \n"
-		"    string programName = \"\")\n"
-		"XMLOwningOutputStringStream(string encoding = \"UTF-8\", bool writeXMLDecl = True)\n"
-		"XMLOwningOutputStringStream(string encoding = \"UTF-8\")\n"
+		"XMLOwningOutputStringStream(string encoding=\"UTF-8\", bool writeXMLDecl=True, string programName=\"\", string programVersion=\"\")\n"
+		"XMLOwningOutputStringStream(string encoding=\"UTF-8\", bool writeXMLDecl=True, string programName=\"\")\n"
+		"XMLOwningOutputStringStream(string encoding=\"UTF-8\", bool writeXMLDecl=True)\n"
+		"XMLOwningOutputStringStream(string encoding=\"UTF-8\")\n"
 		"new_XMLOwningOutputStringStream() -> XMLOwningOutputStringStream\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -150959,12 +152171,11 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_XMLOwningOutputStringStream", _wrap_delete_XMLOwningOutputStringStream, METH_VARARGS, (char *)"delete_XMLOwningOutputStringStream(XMLOwningOutputStringStream self)"},
 	 { (char *)"XMLOwningOutputStringStream_swigregister", XMLOwningOutputStringStream_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_XMLOwningOutputFileStream", _wrap_new_XMLOwningOutputFileStream, METH_VARARGS, (char *)"\n"
-		"XMLOwningOutputFileStream(string filename, string encoding = \"UTF-8\", bool writeXMLDecl = True, \n"
-		"    string programName = \"\", string programVersion = \"\")\n"
-		"XMLOwningOutputFileStream(string filename, string encoding = \"UTF-8\", bool writeXMLDecl = True, \n"
-		"    string programName = \"\")\n"
-		"XMLOwningOutputFileStream(string filename, string encoding = \"UTF-8\", bool writeXMLDecl = True)\n"
-		"XMLOwningOutputFileStream(string filename, string encoding = \"UTF-8\")\n"
+		"XMLOwningOutputFileStream(string filename, string encoding=\"UTF-8\", bool writeXMLDecl=True, string programName=\"\", \n"
+		"    string programVersion=\"\")\n"
+		"XMLOwningOutputFileStream(string filename, string encoding=\"UTF-8\", bool writeXMLDecl=True, string programName=\"\")\n"
+		"XMLOwningOutputFileStream(string filename, string encoding=\"UTF-8\", bool writeXMLDecl=True)\n"
+		"XMLOwningOutputFileStream(string filename, string encoding=\"UTF-8\")\n"
 		"new_XMLOwningOutputFileStream(string filename) -> XMLOwningOutputFileStream\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -150973,11 +152184,10 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_XMLOwningOutputFileStream", _wrap_delete_XMLOwningOutputFileStream, METH_VARARGS, (char *)"delete_XMLOwningOutputFileStream(XMLOwningOutputFileStream self)"},
 	 { (char *)"XMLOwningOutputFileStream_swigregister", XMLOwningOutputFileStream_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_XMLInputStream", _wrap_new_XMLInputStream, METH_VARARGS, (char *)"\n"
-		"XMLInputStream(char content, bool isFile = True, string library = \"\", \n"
-		"    XMLErrorLog errorLog = None)\n"
-		"XMLInputStream(char content, bool isFile = True, string library = \"\")\n"
-		"XMLInputStream(char content, bool isFile = True)\n"
-		"new_XMLInputStream(char content) -> XMLInputStream\n"
+		"XMLInputStream(char const * content, bool isFile=True, string library=\"\", XMLErrorLog errorLog=None)\n"
+		"XMLInputStream(char const * content, bool isFile=True, string library=\"\")\n"
+		"XMLInputStream(char const * content, bool isFile=True)\n"
+		"new_XMLInputStream(char const * content) -> XMLInputStream\n"
 		"\n"
 		"Creates a new XMLInputStream.\n"
 		"\n"
@@ -151159,7 +152369,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLInputStream_determineNumberChildren", _wrap_XMLInputStream_determineNumberChildren, METH_VARARGS, (char *)"\n"
-		"determineNumberChildren(string elementName = \"\") -> unsigned int\n"
+		"determineNumberChildren(string elementName=\"\") -> unsigned int\n"
 		"XMLInputStream_determineNumberChildren(XMLInputStream self) -> unsigned int\n"
 		"\n"
 		"Returns the number of child tokens of the given element in this\n"
@@ -151255,16 +152465,14 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"XMLInputStream_swigregister", XMLInputStream_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_XMLError", _wrap_new_XMLError, METH_VARARGS, (char *)"\n"
-		"XMLError(int errorId = 0, string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_FATAL, \n"
-		"    unsigned int category = LIBSBML_CAT_INTERNAL)\n"
-		"XMLError(int errorId = 0, string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_FATAL)\n"
-		"XMLError(int errorId = 0, string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0)\n"
-		"XMLError(int errorId = 0, string details = \"\", unsigned int line = 0)\n"
-		"XMLError(int errorId = 0, string details = \"\")\n"
-		"XMLError(int errorId = 0)\n"
+		"XMLError(int const errorId=0, string details=\"\", unsigned int const line=0, unsigned int const column=0, \n"
+		"    unsigned int const severity=LIBSBML_SEV_FATAL, unsigned int const category=LIBSBML_CAT_INTERNAL)\n"
+		"XMLError(int const errorId=0, string details=\"\", unsigned int const line=0, unsigned int const column=0, \n"
+		"    unsigned int const severity=LIBSBML_SEV_FATAL)\n"
+		"XMLError(int const errorId=0, string details=\"\", unsigned int const line=0, unsigned int const column=0)\n"
+		"XMLError(int const errorId=0, string details=\"\", unsigned int const line=0)\n"
+		"XMLError(int const errorId=0, string details=\"\")\n"
+		"XMLError(int const errorId=0)\n"
 		"XMLError()\n"
 		"new_XMLError(XMLError orig) -> XMLError\n"
 		"\n"
@@ -151676,7 +152884,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLError_getStandardMessage", _wrap_XMLError_getStandardMessage, METH_VARARGS, (char *)"\n"
-		"XMLError_getStandardMessage(int code) -> string\n"
+		"XMLError_getStandardMessage(int const code) -> string\n"
 		"\n"
 		"Returns a copy of the message string associated with the given\n"
 		"predefined XMLError code.\n"
@@ -151785,7 +152993,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_XMLErrorLog", _wrap_delete_XMLErrorLog, METH_VARARGS, (char *)"delete_XMLErrorLog(XMLErrorLog self)"},
 	 { (char *)"XMLErrorLog_add", _wrap_XMLErrorLog_add, METH_VARARGS, (char *)"\n"
 		"add(XMLError error)\n"
-		"XMLErrorLog_add(XMLErrorLog self, std::vector<(p.XMLError)> errors)\n"
+		"XMLErrorLog_add(XMLErrorLog self, std::vector< XMLError * > const & errors)\n"
 		""},
 	 { (char *)"XMLErrorLog_toString", _wrap_XMLErrorLog_toString, METH_VARARGS, (char *)"\n"
 		"XMLErrorLog_toString(XMLErrorLog self) -> string\n"
@@ -151802,7 +153010,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLErrorLog_printErrors", _wrap_XMLErrorLog_printErrors, METH_VARARGS, (char *)"\n"
-		"printErrors(ostream stream = cerr)\n"
+		"printErrors(ostream stream=cerr)\n"
 		"printErrors()\n"
 		"XMLErrorLog_printErrors(XMLErrorLog self, ostream stream, unsigned int severity)\n"
 		"\n"
@@ -151953,10 +153161,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"XMLErrorLog_changeErrorSeverity", _wrap_XMLErrorLog_changeErrorSeverity, METH_VARARGS, (char *)"\n"
-		"changeErrorSeverity(XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity, \n"
-		"    string package = \"all\")\n"
-		"XMLErrorLog_changeErrorSeverity(XMLErrorLog self, XMLErrorSeverity_t originalSeverity, \n"
-		"    XMLErrorSeverity_t targetSeverity)\n"
+		"changeErrorSeverity(XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity, string package=\"all\")\n"
+		"XMLErrorLog_changeErrorSeverity(XMLErrorLog self, XMLErrorSeverity_t originalSeverity, XMLErrorSeverity_t targetSeverity)\n"
 		"\n"
 		"Changes the severity override for errors in the log that have a given\n"
 		"severity.\n"
@@ -152075,71 +153281,53 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"delete_SBMLErrorLog", _wrap_delete_SBMLErrorLog, METH_VARARGS, (char *)"delete_SBMLErrorLog(SBMLErrorLog self)"},
 	 { (char *)"SBMLErrorLog_logError", _wrap_SBMLErrorLog_logError, METH_VARARGS, (char *)"\n"
-		"logError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, \n"
-		"    unsigned int category = LIBSBML_CAT_SBML)\n"
-		"logError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR)\n"
-		"logError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0)\n"
-		"logError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0)\n"
-		"logError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\")\n"
-		"logError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION)\n"
-		"logError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL)\n"
-		"logError(unsigned int errorId = 0)\n"
+		"logError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, \n"
+		"    unsigned int const category=LIBSBML_CAT_SBML)\n"
+		"logError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR)\n"
+		"logError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0)\n"
+		"logError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0)\n"
+		"logError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\")\n"
+		"logError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION)\n"
+		"logError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL)\n"
+		"logError(unsigned int const errorId=0)\n"
 		"SBMLErrorLog_logError(SBMLErrorLog self)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"SBMLErrorLog_logPackageError", _wrap_SBMLErrorLog_logPackageError, METH_VARARGS, (char *)"\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", \n"
-		"    unsigned int line = 0, unsigned int column = 0, \n"
-		"    unsigned int severity = LIBSBML_SEV_ERROR, \n"
-		"    unsigned int category = LIBSBML_CAT_SBML)\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", \n"
-		"    unsigned int line = 0, unsigned int column = 0, \n"
-		"    unsigned int severity = LIBSBML_SEV_ERROR)\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", \n"
-		"    unsigned int line = 0, unsigned int column = 0)\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", \n"
-		"    unsigned int line = 0)\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\")\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION)\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1, unsigned int level = SBML_DEFAULT_LEVEL)\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0, \n"
-		"    unsigned int pkgVersion = 1)\n"
-		"logPackageError(string package = \"core\", unsigned int errorId = 0)\n"
-		"logPackageError(string package = \"core\")\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1, \n"
+		"    unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, unsigned int const column=0, \n"
+		"    unsigned int const severity=LIBSBML_SEV_ERROR, unsigned int const category=LIBSBML_CAT_SBML)\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1, \n"
+		"    unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, unsigned int const column=0, \n"
+		"    unsigned int const severity=LIBSBML_SEV_ERROR)\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1, \n"
+		"    unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, unsigned int const column=0)\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1, \n"
+		"    unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0)\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1, \n"
+		"    unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\")\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1, \n"
+		"    unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION)\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1, \n"
+		"    unsigned int const level=SBML_DEFAULT_LEVEL)\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0, unsigned int const pkgVersion=1)\n"
+		"logPackageError(string package=\"core\", unsigned int const errorId=0)\n"
+		"logPackageError(string package=\"core\")\n"
 		"SBMLErrorLog_logPackageError(SBMLErrorLog self)\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -152147,7 +153335,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"SBMLErrorLog_add", _wrap_SBMLErrorLog_add, METH_VARARGS, (char *)"SBMLErrorLog_add(SBMLErrorLog self, SBMLError error)"},
 	 { (char *)"SBMLErrorLog_remove", _wrap_SBMLErrorLog_remove, METH_VARARGS, (char *)"\n"
-		"SBMLErrorLog_remove(SBMLErrorLog self, unsigned int errorId)\n"
+		"SBMLErrorLog_remove(SBMLErrorLog self, unsigned int const errorId)\n"
 		"\n"
 		"Removes an error having errorId from the SBMLError list.\n"
 		"\n"
@@ -152159,7 +153347,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLErrorLog_removeAll", _wrap_SBMLErrorLog_removeAll, METH_VARARGS, (char *)"\n"
-		"SBMLErrorLog_removeAll(SBMLErrorLog self, unsigned int errorId)\n"
+		"SBMLErrorLog_removeAll(SBMLErrorLog self, unsigned int const errorId)\n"
 		"\n"
 		"Removes all errors having errorId from the SBMLError list.\n"
 		"\n"
@@ -152168,7 +153356,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLErrorLog_contains", _wrap_SBMLErrorLog_contains, METH_VARARGS, (char *)"\n"
-		"SBMLErrorLog_contains(SBMLErrorLog self, unsigned int errorId) -> bool\n"
+		"SBMLErrorLog_contains(SBMLErrorLog self, unsigned int const errorId) -> bool\n"
 		"\n"
 		"Returns true if SBMLErrorLog contains an errorId\n"
 		"\n"
@@ -152177,42 +153365,32 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"SBMLErrorLog_swigregister", SBMLErrorLog_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_SBMLError", _wrap_new_SBMLError, METH_VARARGS, (char *)"\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, \n"
-		"    unsigned int category = LIBSBML_CAT_SBML, \n"
-		"    string package = \"core\", \n"
-		"    unsigned int pkgVersion = 1)\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, \n"
-		"    unsigned int category = LIBSBML_CAT_SBML, \n"
-		"    string package = \"core\")\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR, \n"
-		"    unsigned int category = LIBSBML_CAT_SBML)\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0, unsigned int severity = LIBSBML_SEV_ERROR)\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0, \n"
-		"    unsigned int column = 0)\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\", unsigned int line = 0)\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION, \n"
-		"    string details = \"\")\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL, \n"
-		"    unsigned int version = SBML_DEFAULT_VERSION)\n"
-		"SBMLError(unsigned int errorId = 0, unsigned int level = SBML_DEFAULT_LEVEL)\n"
-		"SBMLError(unsigned int errorId = 0)\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, \n"
+		"    unsigned int const category=LIBSBML_CAT_SBML, string package=\"core\", \n"
+		"    unsigned int const pkgVersion=1)\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, \n"
+		"    unsigned int const category=LIBSBML_CAT_SBML, string package=\"core\")\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR, \n"
+		"    unsigned int const category=LIBSBML_CAT_SBML)\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0, unsigned int const severity=LIBSBML_SEV_ERROR)\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0, \n"
+		"    unsigned int const column=0)\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\", unsigned int const line=0)\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION, \n"
+		"    string details=\"\")\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL, unsigned int const version=SBML_DEFAULT_VERSION)\n"
+		"SBMLError(unsigned int const errorId=0, unsigned int const level=SBML_DEFAULT_LEVEL)\n"
+		"SBMLError(unsigned int const errorId=0)\n"
 		"SBMLError()\n"
 		"new_SBMLError(SBMLError orig) -> SBMLError\n"
 		"\n"
@@ -152324,7 +153502,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"SBMLError_swigregister", SBMLError_swigregister, METH_VARARGS, NULL},
 	 { (char *)"delete_CVTerm", _wrap_delete_CVTerm, METH_VARARGS, (char *)"delete_CVTerm(CVTerm self)"},
 	 { (char *)"new_CVTerm", _wrap_new_CVTerm, METH_VARARGS, (char *)"\n"
-		"CVTerm(QualifierType_t type = UNKNOWN_QUALIFIER)\n"
+		"CVTerm(QualifierType_t type=UNKNOWN_QUALIFIER)\n"
 		"CVTerm()\n"
 		"CVTerm(XMLNode node)\n"
 		"new_CVTerm(CVTerm orig) -> CVTerm\n"
@@ -152411,7 +153589,7 @@ static PyMethodDef SwigMethods[] = {
 		"BioModels.net qualifiers web page for an explanation of the meaning of\n"
 		"these different qualifiers.\n"
 		"\n"
-		"Parameter 'type' is a qualifier type\n"
+		"Parameter 'type' is a qualifier type.\n"
 		"\n"
 		"Documentation note: The native C++ implementation of this method\n"
 		"defines a default argument value. In the documentation generated for\n"
@@ -152488,8 +153666,8 @@ static PyMethodDef SwigMethods[] = {
 		"Returns the qualifier type of this object or UNKNOWN_QUALIFIER (the\n"
 		"default).\n"
 		"\n"
-		"See also CVTerm.getResources(), CVTerm.getModelQualifierType(),\n"
-		"CVTerm.getBiologicalQualifierType().\n"
+		"See also getResources(), getModelQualifierType(),\n"
+		"getBiologicalQualifierType().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_getModelQualifierType", _wrap_CVTerm_getModelQualifierType, METH_VARARGS, (char *)"\n"
@@ -152694,8 +153872,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"Returns the XMLAttributes that store the resources of this CVTerm.\n"
 		"\n"
-		"See also CVTerm.getQualifierType(), CVTerm.addResource(),\n"
-		"CVTerm.getResourceURI().\n"
+		"See also getQualifierType(), addResource(), getResourceURI().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_getNumResources", _wrap_CVTerm_getNumResources, METH_VARARGS, (char *)"\n"
@@ -152736,7 +153913,7 @@ static PyMethodDef SwigMethods[] = {
 		"Returns the number of resources in the set of XMLAttributes of this\n"
 		"CVTerm.\n"
 		"\n"
-		"See also CVTerm.getResources(), CVTerm.getResourceURI().\n"
+		"See also getResources(), getResourceURI().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_getResourceURI", _wrap_CVTerm_getResourceURI, METH_VARARGS, (char *)"\n"
@@ -152776,12 +153953,12 @@ static PyMethodDef SwigMethods[] = {
 		"many resources are stored in this CVTerm object, then call this method\n"
 		"to retrieve the nth resource URI.\n"
 		"\n"
-		"Parameter 'n' is the index of the resource to query\n"
+		"Parameter 'n' is the index of the resource to query.\n"
 		"\n"
 		"Returns string representing the value of the nth resource in the set\n"
 		"of XMLAttributes of this CVTerm.\n"
 		"\n"
-		"See also CVTerm.getNumResources(), CVTerm.getQualifierType().\n"
+		"See also getNumResources(), getQualifierType().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_setQualifierType", _wrap_CVTerm_setQualifierType, METH_VARARGS, (char *)"\n"
@@ -152796,7 +153973,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"* LIBSBML_OPERATION_SUCCESS\n"
 		"\n"
-		"See also CVTerm.getQualifierType().\n"
+		"See also getQualifierType().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_setModelQualifierType", _wrap_CVTerm_setModelQualifierType, METH_VARARGS, (char *)"\n"
@@ -152813,7 +153990,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"Sets the model qualifier type value of this CVTerm object.\n"
 		"\n"
-		"Parameter 'qualifier' is the string representing a model qualifier\n"
+		"Parameter 'qualifier' is the string representing a model qualifier.\n"
 		"\n"
 		"Returns integer value indicating success/failure of the function.\n"
 		"The possible values returned by this function are:\n"
@@ -152827,8 +154004,8 @@ static PyMethodDef SwigMethods[] = {
 		"If the Qualifier Type of this object is not MODEL_QUALIFIER,  then the\n"
 		"model qualifier type will default to BQM_UNKNOWN.\n"
 		"\n"
-		"See also CVTerm.getQualifierType(), CVTerm.setQualifierType(),\n"
-		"CVTerm.getQualifierType(), CVTerm.setQualifierType().\n"
+		"See also getQualifierType(), setQualifierType(), getQualifierType(),\n"
+		"setQualifierType().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_setBiologicalQualifierType", _wrap_CVTerm_setBiologicalQualifierType, METH_VARARGS, (char *)"\n"
@@ -152845,7 +154022,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"Sets the biology qualifier type code of this CVTerm object.\n"
 		"\n"
-		"Parameter 'qualifier' is the string representing a biology qualifier\n"
+		"Parameter 'qualifier' is the string representing a biology qualifier.\n"
 		"\n"
 		"Returns integer value indicating success/failure of the function.\n"
 		"The possible values returned by this function are:\n"
@@ -152859,8 +154036,8 @@ static PyMethodDef SwigMethods[] = {
 		"If the Qualifier Type of this object is not BIOLOGICAL_QUALIFIER, then\n"
 		"the biology qualifier type code will default to BQB_UNKNOWN.\n"
 		"\n"
-		"See also CVTerm.getQualifierType(), CVTerm.setQualifierType(),\n"
-		"CVTerm.getQualifierType(), CVTerm.setQualifierType().\n"
+		"See also getQualifierType(), setQualifierType(), getQualifierType(),\n"
+		"setQualifierType().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_addResource", _wrap_CVTerm_addResource, METH_VARARGS, (char *)"\n"
@@ -152936,9 +154113,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"* LIBSBML_OPERATION_FAILED\n"
 		"\n"
-		"See also CVTerm.getResources(), CVTerm.removeResource(),\n"
-		"CVTerm.getQualifierType(), CVTerm.getModelQualifierType(),\n"
-		"CVTerm.getBiologicalQualifierType().\n"
+		"See also getResources(), removeResource(), getQualifierType(),\n"
+		"getModelQualifierType(), getBiologicalQualifierType().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_removeResource", _wrap_CVTerm_removeResource, METH_VARARGS, (char *)"\n"
@@ -152959,7 +154135,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"* LIBSBML_INVALID_ATTRIBUTE_VALUE\n"
 		"\n"
-		"See also CVTerm.addResource().\n"
+		"See also addResource().\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_hasBeenModified", _wrap_CVTerm_hasBeenModified, METH_VARARGS, (char *)"\n"
@@ -153011,14 +154187,14 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		"Returns the nth CVTerm in the list of CVTerms of this CVTerm object.\n"
 		"\n"
-		"Parameter 'n' is long the index of the CVTerm to retrieve\n"
+		"Parameter 'n' is long the index of the CVTerm to retrieve.\n"
 		"\n"
 		"Returns the nth CVTerm in the list of CVTerms for this CVTerm object.\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_getListNestedCVTerms", _wrap_CVTerm_getListNestedCVTerms, METH_VARARGS, (char *)"\n"
 		"getListNestedCVTerms() -> List\n"
-		"CVTerm_getListNestedCVTerms(CVTerm self) -> List\n"
+		"CVTerm_getListNestedCVTerms(CVTerm self) -> List const *\n"
 		"\n"
 		"Returns a list of CVTerm objects contained within this CVTerm object.\n"
 		"\n"
@@ -153049,38 +154225,107 @@ static PyMethodDef SwigMethods[] = {
 		"Removes the nth CVTerm in the list of CVTerms of this CVTerm object\n"
 		"and returns a pointer to it.\n"
 		"\n"
-		"Parameter 'n' is long the index of the CVTerm to retrieve\n"
+		"Parameter 'n' is long the index of the CVTerm to retrieve.\n"
 		"\n"
 		"Returns a pointer to the nth CVTerm in the list of CVTerms for this\n"
 		"CVTerm object.\n"
 		"\n"
 		""},
 	 { (char *)"CVTerm_swigregister", CVTerm_swigregister, METH_VARARGS, NULL},
+	 { (char *)"ModelQualifierType_toString", _wrap_ModelQualifierType_toString, METH_VARARGS, (char *)"\n"
+		"ModelQualifierType_toString(ModelQualifierType_t type) -> char const *\n"
+		"\n"
+		"This method takes a model qualifier type code and returns a string\n"
+		"representing the code.\n"
+		"\n"
+		"This method takes a model qualifier type as argument and returns a\n"
+		"string name corresponding to that code.  For example, passing it the\n"
+		"qualifier BQM_IS_DESCRIBED_BY will return the string 'isDescribedBy'.\n"
+		"\n"
+		"Parameter 'type' is The  value to translate. The value should be a\n"
+		"libSBML constant whose name begins with BQM_, such as (for example)\n"
+		"BQM_IS.\n"
+		"\n"
+		"Returns a human readable qualifier name for the given qualifier type.\n"
+		"\n"
+		"Note:\n"
+		"\n"
+		"The caller does not own the returned string and is therefore not\n"
+		"allowed to modify it.\n"
+		"\n"
+		""},
+	 { (char *)"BiolQualifierType_toString", _wrap_BiolQualifierType_toString, METH_VARARGS, (char *)"\n"
+		"BiolQualifierType_toString(BiolQualifierType_t type) -> char const *\n"
+		"\n"
+		"This method takes a biol qualifier type code and returns a string\n"
+		"representing the code.\n"
+		"\n"
+		"This method takes a biol qualifier type as argument and returns a\n"
+		"string name corresponding to that code.  For example, passing it the\n"
+		"qualifier BQB_HAS_VERSION will return the string 'hasVersion'.\n"
+		"\n"
+		"Parameter 'type' is The  value to translate. The value should be a\n"
+		"constant whose name begins with BQB_, such as (for example) BQB_IS.\n"
+		"\n"
+		"Returns a human readable qualifier name for the given type.\n"
+		"\n"
+		"Note:\n"
+		"\n"
+		"The caller does not own the returned string and is therefore not\n"
+		"allowed to modify it.\n"
+		"\n"
+		""},
+	 { (char *)"ModelQualifierType_fromString", _wrap_ModelQualifierType_fromString, METH_VARARGS, (char *)"\n"
+		"ModelQualifierType_fromString(char const * s) -> ModelQualifierType_t\n"
+		"\n"
+		"This method takes a a string and returns a model qualifier\n"
+		"representing the string.\n"
+		"\n"
+		"This method takes a string as argument and returns a model qualifier\n"
+		"type corresponding to that string.  For example, passing it the string\n"
+		"'isDescribedBy' will return the qualifier BQM_IS_DESCRIBED_BY.\n"
+		"\n"
+		"Parameter 's' is The string to translate to a libSBML constant value\n"
+		"representing a model qualifier.\n"
+		"\n"
+		"Returns a libSBML qualifier enumeration value for the given human\n"
+		"readable qualifier name.\n"
+		"\n"
+		""},
+	 { (char *)"BiolQualifierType_fromString", _wrap_BiolQualifierType_fromString, METH_VARARGS, (char *)"\n"
+		"BiolQualifierType_fromString(char const * s) -> BiolQualifierType_t\n"
+		"\n"
+		"This method takes a a string and returns a biol qualifier representing\n"
+		"the string.\n"
+		"\n"
+		"This method takes a string as argument and returns a biol qualifier\n"
+		"type corresponding to that string.  For example, passing it the string\n"
+		"'hasVersion' will return the qualifier BQB_HAS_VERSION.\n"
+		"\n"
+		"Parameter 's' is The string to translate to a libSBML constant value\n"
+		"representing a biological qualifier.\n"
+		"\n"
+		"Returns a libSBML qualifier enumeration value for the given human\n"
+		"readable qualifier name.\n"
+		"\n"
+		""},
 	 { (char *)"delete_Date", _wrap_delete_Date, METH_VARARGS, (char *)"delete_Date(Date self)"},
 	 { (char *)"new_Date", _wrap_new_Date, METH_VARARGS, (char *)"\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, \n"
-		"    unsigned int hour = 0, unsigned int minute = 0, \n"
-		"    unsigned int second = 0, \n"
-		"    unsigned int sign = 0, unsigned int hoursOffset = 0, \n"
-		"    unsigned int minutesOffset = 0)\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, \n"
-		"    unsigned int hour = 0, unsigned int minute = 0, \n"
-		"    unsigned int second = 0, \n"
-		"    unsigned int sign = 0, unsigned int hoursOffset = 0)\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, \n"
-		"    unsigned int hour = 0, unsigned int minute = 0, \n"
-		"    unsigned int second = 0, \n"
-		"    unsigned int sign = 0)\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, \n"
-		"    unsigned int hour = 0, unsigned int minute = 0, \n"
-		"    unsigned int second = 0)\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, \n"
-		"    unsigned int hour = 0, unsigned int minute = 0)\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1, \n"
-		"    unsigned int hour = 0)\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1, unsigned int day = 1)\n"
-		"Date(unsigned int year = 2000, unsigned int month = 1)\n"
-		"Date(unsigned int year = 2000)\n"
+		"Date(unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, \n"
+		"    unsigned int minute=0, unsigned int second=0, unsigned int sign=0, unsigned int hoursOffset=0, \n"
+		"    unsigned int minutesOffset=0)\n"
+		"Date(unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, \n"
+		"    unsigned int minute=0, unsigned int second=0, unsigned int sign=0, unsigned int hoursOffset=0)\n"
+		"Date(unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, \n"
+		"    unsigned int minute=0, unsigned int second=0, unsigned int sign=0)\n"
+		"Date(unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, \n"
+		"    unsigned int minute=0, unsigned int second=0)\n"
+		"Date(unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0, \n"
+		"    unsigned int minute=0)\n"
+		"Date(unsigned int year=2000, unsigned int month=1, unsigned int day=1, unsigned int hour=0)\n"
+		"Date(unsigned int year=2000, unsigned int month=1, unsigned int day=1)\n"
+		"Date(unsigned int year=2000, unsigned int month=1)\n"
+		"Date(unsigned int year=2000)\n"
 		"Date()\n"
 		"Date(string date)\n"
 		"new_Date(Date orig) -> Date\n"
@@ -154034,7 +155279,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ModelHistory_getListModifiedDates", _wrap_ModelHistory_getListModifiedDates, METH_VARARGS, (char *)"\n"
-		"ModelHistory_getListModifiedDates(ModelHistory self) -> List\n"
+		"ModelHistory_getListModifiedDates(ModelHistory self) -> List *\n"
 		"\n"
 		"Returns the list of 'modified date' values (as Date objects) stored in\n"
 		"this ModelHistory object.\n"
@@ -154121,7 +155366,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ModelHistory_getListCreators", _wrap_ModelHistory_getListCreators, METH_VARARGS, (char *)"\n"
-		"ModelHistory_getListCreators(ModelHistory self) -> List\n"
+		"ModelHistory_getListCreators(ModelHistory self) -> List *\n"
 		"\n"
 		"Returns the list of ModelCreator objects stored in this ModelHistory\n"
 		"object.\n"
@@ -154228,8 +155473,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"RDFAnnotationParser_createRDFAnnotation", _wrap_RDFAnnotationParser_createRDFAnnotation, METH_VARARGS, (char *)"\n"
-		"createRDFAnnotation(unsigned int level = 3, unsigned int version = 1) -> XMLNode\n"
-		"createRDFAnnotation(unsigned int level = 3) -> XMLNode\n"
+		"createRDFAnnotation(unsigned int level=3, unsigned int version=1) -> XMLNode\n"
+		"createRDFAnnotation(unsigned int level=3) -> XMLNode\n"
 		"RDFAnnotationParser_createRDFAnnotation() -> XMLNode\n"
 		"\n"
 		"Creates a blank RDF element suitable for use in SBML annotations.\n"
@@ -154458,13 +155703,12 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"RDFAnnotationParser_parseRDFAnnotation", _wrap_RDFAnnotationParser_parseRDFAnnotation, METH_VARARGS, (char *)"\n"
-		"parseRDFAnnotation(XMLNode annotation, char metaId = None, XMLInputStream stream = None) -> ModelHistory\n"
-		"parseRDFAnnotation(XMLNode annotation, char metaId = None) -> ModelHistory\n"
+		"parseRDFAnnotation(XMLNode annotation, char const * metaId=None, XMLInputStream stream=None) -> ModelHistory\n"
+		"parseRDFAnnotation(XMLNode annotation, char const * metaId=None) -> ModelHistory\n"
 		"parseRDFAnnotation(XMLNode annotation) -> ModelHistory\n"
 		"parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms)\n"
-		"parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None, \n"
-		"    XMLInputStream stream = None)\n"
-		"RDFAnnotationParser_parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char metaId = None)\n"
+		"parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None, XMLInputStream stream=None)\n"
+		"RDFAnnotationParser_parseRDFAnnotation(XMLNode annotation, CVTermList CVTerms, char const * metaId=None)\n"
 		"\n"
 		"Parses an annotation (given as an XMLNode tree) into a list of\n"
 		"CVTerm objects.\n"
@@ -154516,7 +155760,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_SBaseExtensionPoint", _wrap_delete_SBaseExtensionPoint, METH_VARARGS, (char *)"delete_SBaseExtensionPoint(SBaseExtensionPoint self)"},
 	 { (char *)"new_SBaseExtensionPoint", _wrap_new_SBaseExtensionPoint, METH_VARARGS, (char *)"\n"
 		"SBaseExtensionPoint(string pkgName, int typeCode)\n"
-		"SBaseExtensionPoint(string pkgName, int typeCode, string elementName, bool elementOnly = False)\n"
+		"SBaseExtensionPoint(string pkgName, int typeCode, string elementName, bool elementOnly=False)\n"
 		"SBaseExtensionPoint(string pkgName, int typeCode, string elementName)\n"
 		"new_SBaseExtensionPoint(SBaseExtensionPoint rhs) -> SBaseExtensionPoint\n"
 		"\n"
@@ -154705,8 +155949,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBasePlugin_enablePackageInternal", _wrap_SBasePlugin_enablePackageInternal, METH_VARARGS, (char *)"\n"
-		"SBasePlugin_enablePackageInternal(SBasePlugin self, string pkgURI, string pkgPrefix, \n"
-		"    bool flag)\n"
+		"SBasePlugin_enablePackageInternal(SBasePlugin self, string pkgURI, string pkgPrefix, bool flag)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -154766,8 +156009,7 @@ static PyMethodDef SwigMethods[] = {
 		"Returns a string, the URI of the XML namespace to which this object\n"
 		"belongs.\n"
 		"\n"
-		"See also getPackageName(), getElementNamespace(),\n"
-		"SBMLDocument.getSBMLNamespaces(), getSBMLDocument().\n"
+		"See also getPackageName(), getElementNamespace(), getSBMLDocument().\n"
 		"\n"
 		""},
 	 { (char *)"SBasePlugin_getParentSBMLObject", _wrap_SBasePlugin_getParentSBMLObject, METH_VARARGS, (char *)"\n"
@@ -154967,8 +156209,8 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBasePlugin_logUnknownElement", _wrap_SBasePlugin_logUnknownElement, METH_VARARGS, (char *)"\n"
-		"SBasePlugin_logUnknownElement(SBasePlugin self, string element, unsigned int sbmlLevel, \n"
-		"    unsigned int sbmlVersion, unsigned int pkgVersion)\n"
+		"SBasePlugin_logUnknownElement(SBasePlugin self, string element, unsigned int const sbmlLevel, unsigned int const sbmlVersion, \n"
+		"    unsigned int const pkgVersion)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -154984,7 +156226,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBasePlugin_getListOfAllElements", _wrap_SBasePlugin_getListOfAllElements, METH_VARARGS, (char *)"\n"
-		"getListOfAllElements(ElementFilter filter = None) -> SBaseList\n"
+		"getListOfAllElements(ElementFilter filter=None) -> SBaseList\n"
 		"SBasePlugin_getListOfAllElements(SBasePlugin self) -> SBaseList\n"
 		"\n"
 		"Returns an SBaseList of all child SBase objects, including those\n"
@@ -155262,8 +156504,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLExtension_getURI", _wrap_SBMLExtension_getURI, METH_VARARGS, (char *)"\n"
-		"SBMLExtension_getURI(SBMLExtension self, unsigned int sbmlLevel, unsigned int sbmlVersion, \n"
-		"    unsigned int pkgVersion) -> string\n"
+		"SBMLExtension_getURI(SBMLExtension self, unsigned int sbmlLevel, unsigned int sbmlVersion, unsigned int pkgVersion) -> string\n"
 		"\n"
 		"Returns the XML namespace URI for a given Level and Version.\n"
 		"\n"
@@ -155336,7 +156577,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLExtension_getStringFromTypeCode", _wrap_SBMLExtension_getStringFromTypeCode, METH_VARARGS, (char *)"\n"
-		"SBMLExtension_getStringFromTypeCode(SBMLExtension self, int typeCode) -> char\n"
+		"SBMLExtension_getStringFromTypeCode(SBMLExtension self, int typeCode) -> char const *\n"
 		"\n"
 		"Returns a string representation of a type code.\n"
 		"\n"
@@ -155464,8 +156705,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLExtension_getMessage", _wrap_SBMLExtension_getMessage, METH_VARARGS, (char *)"\n"
-		"SBMLExtension_getMessage(SBMLExtension self, unsigned int index, unsigned int pkgVersion, \n"
-		"    string details) -> string\n"
+		"SBMLExtension_getMessage(SBMLExtension self, unsigned int index, unsigned int pkgVersion, string details) -> string\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -155655,7 +156895,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"SBMLExtensionRegistry_getAllRegisteredPackageNames", _wrap_SBMLExtensionRegistry_getAllRegisteredPackageNames, METH_VARARGS, (char *)"\n"
-		"SBMLExtensionRegistry_getAllRegisteredPackageNames() -> std::vector<(std::string)>\n"
+		"SBMLExtensionRegistry_getAllRegisteredPackageNames() -> std::vector< std::string >\n"
 		"\n"
 		"Returns a list of registered packages.\n"
 		"\n"
@@ -155695,35 +156935,35 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"representsFunction", _wrap_representsFunction, METH_VARARGS, (char *)"\n"
-		"representsFunction(int type, ASTBasePlugin plugin = None) -> bool\n"
+		"representsFunction(int type, ASTBasePlugin plugin=None) -> bool\n"
 		"representsFunction(int type) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"representsUnaryFunction", _wrap_representsUnaryFunction, METH_VARARGS, (char *)"\n"
-		"representsUnaryFunction(int type, ASTBasePlugin plugin = None) -> bool\n"
+		"representsUnaryFunction(int type, ASTBasePlugin plugin=None) -> bool\n"
 		"representsUnaryFunction(int type) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"representsBinaryFunction", _wrap_representsBinaryFunction, METH_VARARGS, (char *)"\n"
-		"representsBinaryFunction(int type, ASTBasePlugin plugin = None) -> bool\n"
+		"representsBinaryFunction(int type, ASTBasePlugin plugin=None) -> bool\n"
 		"representsBinaryFunction(int type) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"representsNaryFunction", _wrap_representsNaryFunction, METH_VARARGS, (char *)"\n"
-		"representsNaryFunction(int type, ASTBasePlugin plugin = None) -> bool\n"
+		"representsNaryFunction(int type, ASTBasePlugin plugin=None) -> bool\n"
 		"representsNaryFunction(int type) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"representsQualifier", _wrap_representsQualifier, METH_VARARGS, (char *)"\n"
-		"representsQualifier(int type, ASTBasePlugin plugin = None) -> bool\n"
+		"representsQualifier(int type, ASTBasePlugin plugin=None) -> bool\n"
 		"representsQualifier(int type) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -155742,7 +156982,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"getNameFromCoreType", _wrap_getNameFromCoreType, METH_VARARGS, (char *)"\n"
-		"getNameFromCoreType(int type) -> char\n"
+		"getNameFromCoreType(int type) -> char const *\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -155993,31 +157233,28 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTBase_read", _wrap_ASTBase_read, METH_VARARGS, (char *)"\n"
-		"read(XMLInputStream stream, string reqd_prefix = \"\") -> bool\n"
+		"read(XMLInputStream stream, string reqd_prefix=\"\") -> bool\n"
 		"ASTBase_read(ASTBase self, XMLInputStream stream) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTBase_addExpectedAttributes", _wrap_ASTBase_addExpectedAttributes, METH_VARARGS, (char *)"\n"
-		"ASTBase_addExpectedAttributes(ASTBase self, ExpectedAttributes attributes, XMLInputStream stream)\n"
+		"ASTBase_addExpectedAttributes(ASTBase self, ExpectedAttributes & attributes, XMLInputStream stream)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTBase_readAttributes", _wrap_ASTBase_readAttributes, METH_VARARGS, (char *)"\n"
-		"ASTBase_readAttributes(ASTBase self, XMLAttributes attributes, ExpectedAttributes expectedAttributes, \n"
-		"    XMLInputStream stream, \n"
-		"    XMLToken element) -> bool\n"
+		"ASTBase_readAttributes(ASTBase self, XMLAttributes attributes, ExpectedAttributes const & expectedAttributes, \n"
+		"    XMLInputStream stream, XMLToken element) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTBase_logError", _wrap_ASTBase_logError, METH_VARARGS, (char *)"\n"
-		"logError(XMLInputStream stream, XMLToken element, SBMLErrorCode_t code, \n"
-		"    string msg = \"\")\n"
-		"ASTBase_logError(ASTBase self, XMLInputStream stream, XMLToken element, \n"
-		"    SBMLErrorCode_t code)\n"
+		"logError(XMLInputStream stream, XMLToken element, SBMLErrorCode_t code, string msg=\"\")\n"
+		"ASTBase_logError(ASTBase self, XMLInputStream stream, XMLToken element, SBMLErrorCode_t code)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -156059,7 +157296,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTBase_getNameFromType", _wrap_ASTBase_getNameFromType, METH_VARARGS, (char *)"\n"
-		"ASTBase_getNameFromType(ASTBase self, int type) -> char\n"
+		"ASTBase_getNameFromType(ASTBase self, int type) -> char const *\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -156077,7 +157314,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTBase_writeNodeOfType", _wrap_ASTBase_writeNodeOfType, METH_VARARGS, (char *)"\n"
-		"writeNodeOfType(XMLOutputStream stream, int type, bool inChildNode = False)\n"
+		"writeNodeOfType(XMLOutputStream stream, int type, bool inChildNode=False)\n"
 		"ASTBase_writeNodeOfType(ASTBase self, XMLOutputStream stream, int type)\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -156157,9 +157394,9 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"ASTBase_swigregister", ASTBase_swigregister, METH_VARARGS, NULL},
 	 { (char *)"new_ASTNode", _wrap_new_ASTNode, METH_VARARGS, (char *)"\n"
-		"ASTNode(int type = AST_UNKNOWN)\n"
+		"ASTNode(int type=AST_UNKNOWN)\n"
 		"ASTNode()\n"
-		"ASTNode(SBMLNamespaces sbmlns, int type = AST_UNKNOWN)\n"
+		"ASTNode(SBMLNamespaces sbmlns, int type=AST_UNKNOWN)\n"
 		"ASTNode(SBMLNamespaces sbmlns)\n"
 		"new_ASTNode(ASTNode orig) -> ASTNode\n"
 		"\n"
@@ -156353,7 +157590,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTNode_replaceChild", _wrap_ASTNode_replaceChild, METH_VARARGS, (char *)"\n"
-		"replaceChild(unsigned int n, ASTNode disownedChild, bool delreplaced = False) -> int\n"
+		"replaceChild(unsigned int n, ASTNode disownedChild, bool delreplaced=False) -> int\n"
 		"ASTNode_replaceChild(ASTNode self, unsigned int n, ASTNode disownedChild) -> int\n"
 		"\n"
 		"Replaces the nth child of this ASTNode with the given ASTNode.\n"
@@ -156640,7 +157877,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTNode_getName", _wrap_ASTNode_getName, METH_VARARGS, (char *)"\n"
-		"ASTNode_getName(ASTNode self) -> char\n"
+		"ASTNode_getName(ASTNode self) -> char const *\n"
 		"\n"
 		"Returns the value of this node as a string.\n"
 		"\n"
@@ -156653,7 +157890,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTNode_getOperatorName", _wrap_ASTNode_getOperatorName, METH_VARARGS, (char *)"\n"
-		"ASTNode_getOperatorName(ASTNode self) -> char\n"
+		"ASTNode_getOperatorName(ASTNode self) -> char const *\n"
 		"\n"
 		"Returns the value of this operator node as a string.\n"
 		"\n"
@@ -156884,7 +158121,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTNode_returnsBoolean", _wrap_ASTNode_returnsBoolean, METH_VARARGS, (char *)"\n"
-		"returnsBoolean(Model model = None) -> bool\n"
+		"returnsBoolean(Model model=None) -> bool\n"
 		"ASTNode_returnsBoolean(ASTNode self) -> bool\n"
 		"\n"
 		"Returns True if this node returns a Boolean value.\n"
@@ -157335,7 +158572,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTNode_setName", _wrap_ASTNode_setName, METH_VARARGS, (char *)"\n"
-		"ASTNode_setName(ASTNode self, char name) -> int\n"
+		"ASTNode_setName(ASTNode self, char const * name) -> int\n"
 		"\n"
 		"Sets the value of this ASTNode to the given name.\n"
 		"\n"
@@ -157825,14 +159062,14 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTNode_read", _wrap_ASTNode_read, METH_VARARGS, (char *)"\n"
-		"read(XMLInputStream stream, string reqd_prefix = \"\") -> bool\n"
+		"read(XMLInputStream stream, string reqd_prefix=\"\") -> bool\n"
 		"ASTNode_read(ASTNode self, XMLInputStream stream) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTNode_writeNodeOfType", _wrap_ASTNode_writeNodeOfType, METH_VARARGS, (char *)"\n"
-		"writeNodeOfType(XMLOutputStream stream, int type, bool inChildNode = False)\n"
+		"writeNodeOfType(XMLOutputStream stream, int type, bool inChildNode=False)\n"
 		"ASTNode_writeNodeOfType(ASTNode self, XMLOutputStream stream, int type)\n"
 		"\n"
 		"Internal implementation method.\n"
@@ -157862,6 +159099,12 @@ static PyMethodDef SwigMethods[] = {
 		"getPlugin(unsigned int n) -> ASTBasePlugin\n"
 		"ASTNode_getPlugin(ASTNode self, unsigned int n) -> ASTBasePlugin\n"
 		""},
+	 { (char *)"ASTNode_getNumPiece", _wrap_ASTNode_getNumPiece, METH_VARARGS, (char *)"\n"
+		"ASTNode_getNumPiece(ASTNode self) -> unsigned int\n"
+		"\n"
+		"Internal implementation method.\n"
+		"\n"
+		""},
 	 { (char *)"ASTNode_getListOfNodes", _wrap_ASTNode_getListOfNodes, METH_VARARGS, (char *)"\n"
 		"ASTNode_getListOfNodes(ASTNode self) -> ASTNodeList\n"
 		"\n"
@@ -157893,7 +159136,7 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"MathML_swigregister", MathML_swigregister, METH_VARARGS, NULL},
 	 { (char *)"readMathMLFromString", _wrap_readMathMLFromString, METH_VARARGS, (char *)"\n"
-		"readMathMLFromString(char xml) -> ASTNode_t\n"
+		"readMathMLFromString(char const * xml) -> ASTNode\n"
 		"\n"
 		"Reads the MathML from the given XML string, constructs a corresponding\n"
 		"abstract syntax tree, and returns a pointer to the root of the tree.\n"
@@ -157906,7 +159149,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"readMathMLFromStringWithNamespaces", _wrap_readMathMLFromStringWithNamespaces, METH_VARARGS, (char *)"\n"
-		"readMathMLFromStringWithNamespaces(char xml, XMLNamespaces_t xmlns) -> ASTNode_t\n"
+		"readMathMLFromStringWithNamespaces(char const * xml, XMLNamespaces xmlns) -> ASTNode\n"
 		"\n"
 		"Reads the MathML from the given XML string, constructs a corresponding\n"
 		"abstract syntax tree, and returns a pointer to the root of the tree.\n"
@@ -157922,7 +159165,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"writeMathMLToString", _wrap_writeMathMLToString, METH_VARARGS, (char *)"\n"
-		"writeMathMLToString(ASTNode_t node) -> char\n"
+		"writeMathMLToString(ASTNode node) -> char *\n"
 		"\n"
 		"Writes the given AST node (and its children) to a string as MathML,\n"
 		"and returns the string.\n"
@@ -157940,7 +159183,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"parseFormula", _wrap_parseFormula, METH_VARARGS, (char *)"\n"
-		"parseFormula(char formula) -> ASTNode_t\n"
+		"parseFormula(char const * formula) -> ASTNode\n"
 		"\n"
 		"Parses a text string as a mathematical formula and returns an AST\n"
 		"representation of it.\n"
@@ -158039,7 +159282,7 @@ static PyMethodDef SwigMethods[] = {
 		"parser and formatter.  The entry points to this second system are\n"
 		"parseL3Formula() and formulaToL3String().  The Level 1-oriented system\n"
 		"(i.e., what is provided by formulaToString() and parseFormula()) is\n"
-		"provided  untouched for backwards compatibility.\n"
+		"provided untouched for backwards compatibility.\n"
 		"\n"
 		"Note:\n"
 		"\n"
@@ -158054,7 +159297,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"formulaToL3String", _wrap_formulaToL3String, METH_VARARGS, (char *)"\n"
-		"formulaToL3String(ASTNode_t tree) -> char\n"
+		"formulaToL3String(ASTNode tree) -> char *\n"
 		"\n"
 		"Converts an AST to a text string representation of a formula using an\n"
 		"extended syntax.\n"
@@ -158332,7 +159575,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"formulaToL3StringWithSettings", _wrap_formulaToL3StringWithSettings, METH_VARARGS, (char *)"\n"
-		"formulaToL3StringWithSettings(ASTNode_t tree, L3ParserSettings_t settings) -> char\n"
+		"formulaToL3StringWithSettings(ASTNode tree, L3ParserSettings settings) -> char *\n"
 		"\n"
 		"Converts an AST to a text string representation of a formula, using\n"
 		"specific formatter settings.\n"
@@ -158378,7 +159621,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"formulaToString", _wrap_formulaToString, METH_VARARGS, (char *)"\n"
-		"formulaToString(ASTNode_t tree) -> char\n"
+		"formulaToString(ASTNode tree) -> char *\n"
 		"\n"
 		"Converts an AST to a text string representation of a formula using a\n"
 		"basic syntax derived from SBML Level 1.\n"
@@ -158478,7 +159721,7 @@ static PyMethodDef SwigMethods[] = {
 		"parser and formatter.  The entry points to this second system are\n"
 		"parseL3Formula() and formulaToL3String().  The Level 1-oriented system\n"
 		"(i.e., what is provided by formulaToString() and parseFormula()) is\n"
-		"provided  untouched for backwards compatibility.\n"
+		"provided untouched for backwards compatibility.\n"
 		"\n"
 		"Note:\n"
 		"\n"
@@ -158493,7 +159736,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"parseL3Formula", _wrap_parseL3Formula, METH_VARARGS, (char *)"\n"
-		"parseL3Formula(char formula) -> ASTNode_t\n"
+		"parseL3Formula(char const * formula) -> ASTNode\n"
 		"\n"
 		"Parses a text string as a mathematical formula and returns an AST\n"
 		"representation of it.\n"
@@ -158781,7 +160024,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"parseL3FormulaWithModel", _wrap_parseL3FormulaWithModel, METH_VARARGS, (char *)"\n"
-		"parseL3FormulaWithModel(char formula, Model_t model) -> ASTNode_t\n"
+		"parseL3FormulaWithModel(char const * formula, Model model) -> ASTNode\n"
 		"\n"
 		"Parses a text string as a mathematical formula using a Model to\n"
 		"resolve symbols, and returns an AST representation of the result.\n"
@@ -158808,7 +160051,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"parseL3FormulaWithSettings", _wrap_parseL3FormulaWithSettings, METH_VARARGS, (char *)"\n"
-		"parseL3FormulaWithSettings(char formula, L3ParserSettings_t settings) -> ASTNode_t\n"
+		"parseL3FormulaWithSettings(char const * formula, L3ParserSettings settings) -> ASTNode\n"
 		"\n"
 		"Parses a text string as a mathematical formula using specific parser\n"
 		"settings and returns an AST representation of the result.\n"
@@ -158884,7 +160127,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"getDefaultL3ParserSettings", _wrap_getDefaultL3ParserSettings, METH_VARARGS, (char *)"\n"
-		"getDefaultL3ParserSettings() -> L3ParserSettings_t\n"
+		"getDefaultL3ParserSettings() -> L3ParserSettings\n"
 		"\n"
 		"Returns a copy of the default Level 3 ('L3') formula parser settings.\n"
 		"\n"
@@ -159157,7 +160400,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"getLastParseL3Error", _wrap_getLastParseL3Error, METH_VARARGS, (char *)"\n"
-		"getLastParseL3Error() -> char\n"
+		"getLastParseL3Error() -> char *\n"
 		"\n"
 		"Returns the last error reported by the 'L3' mathematical formula\n"
 		"parser.\n"
@@ -159183,13 +160426,11 @@ static PyMethodDef SwigMethods[] = {
 		""},
 	 { (char *)"new_L3ParserSettings", _wrap_new_L3ParserSettings, METH_VARARGS, (char *)"\n"
 		"L3ParserSettings()\n"
-		"L3ParserSettings(Model model, ParseLogType_t parselog, bool collapseminus, \n"
-		"    bool parseunits, bool avocsymbol, bool caseSensitive = False, \n"
-		"    SBMLNamespaces sbmlns = None)\n"
-		"L3ParserSettings(Model model, ParseLogType_t parselog, bool collapseminus, \n"
-		"    bool parseunits, bool avocsymbol, bool caseSensitive = False)\n"
-		"L3ParserSettings(Model model, ParseLogType_t parselog, bool collapseminus, \n"
-		"    bool parseunits, bool avocsymbol)\n"
+		"L3ParserSettings(Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol, \n"
+		"    bool caseSensitive=False, SBMLNamespaces sbmlns=None)\n"
+		"L3ParserSettings(Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol, \n"
+		"    bool caseSensitive=False)\n"
+		"L3ParserSettings(Model model, ParseLogType_t parselog, bool collapseminus, bool parseunits, bool avocsymbol)\n"
 		"new_L3ParserSettings(L3ParserSettings source) -> L3ParserSettings\n"
 		"\n"
 		"This method has multiple variants; they differ in the arguments  they\n"
@@ -159679,8 +160920,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"L3ParserSettings_visitPackageInfixSyntax", _wrap_L3ParserSettings_visitPackageInfixSyntax, METH_VARARGS, (char *)"\n"
-		"L3ParserSettings_visitPackageInfixSyntax(L3ParserSettings self, ASTNode_t parent, ASTNode_t node, \n"
-		"    StringBuffer_t sb)\n"
+		"L3ParserSettings_visitPackageInfixSyntax(L3ParserSettings self, ASTNode parent, ASTNode node, StringBuffer_t * sb)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -159730,8 +160970,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTBasePlugin_enablePackageInternal", _wrap_ASTBasePlugin_enablePackageInternal, METH_VARARGS, (char *)"\n"
-		"ASTBasePlugin_enablePackageInternal(ASTBasePlugin self, string pkgURI, string pkgPrefix, \n"
-		"    bool flag)\n"
+		"ASTBasePlugin_enablePackageInternal(ASTBasePlugin self, string pkgURI, string pkgPrefix, bool flag)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -159840,36 +161079,32 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTBasePlugin_replaceChild", _wrap_ASTBasePlugin_replaceChild, METH_VARARGS, (char *)"\n"
-		"ASTBasePlugin_replaceChild(ASTBasePlugin self, unsigned int n, ASTBase newChild, \n"
-		"    bool delreplaced) -> int\n"
+		"ASTBasePlugin_replaceChild(ASTBasePlugin self, unsigned int n, ASTBase newChild, bool delreplaced) -> int\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTBasePlugin_swapChildren", _wrap_ASTBasePlugin_swapChildren, METH_VARARGS, (char *)"\n"
-		"ASTBasePlugin_swapChildren(ASTBasePlugin self, ASTFunction that) -> int\n"
+		"ASTBasePlugin_swapChildren(ASTBasePlugin self, ASTFunction * that) -> int\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTBasePlugin_read", _wrap_ASTBasePlugin_read, METH_VARARGS, (char *)"\n"
-		"ASTBasePlugin_read(ASTBasePlugin self, XMLInputStream stream, string reqd_prefix, \n"
-		"    XMLToken currentElement) -> bool\n"
+		"ASTBasePlugin_read(ASTBasePlugin self, XMLInputStream stream, string reqd_prefix, XMLToken currentElement) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTBasePlugin_addExpectedAttributes", _wrap_ASTBasePlugin_addExpectedAttributes, METH_VARARGS, (char *)"\n"
-		"ASTBasePlugin_addExpectedAttributes(ASTBasePlugin self, ExpectedAttributes attributes, \n"
-		"    XMLInputStream stream, int type)\n"
+		"ASTBasePlugin_addExpectedAttributes(ASTBasePlugin self, ExpectedAttributes & attributes, XMLInputStream stream, int type)\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
 		""},
 	 { (char *)"ASTBasePlugin_readAttributes", _wrap_ASTBasePlugin_readAttributes, METH_VARARGS, (char *)"\n"
-		"ASTBasePlugin_readAttributes(ASTBasePlugin self, XMLAttributes attributes, ExpectedAttributes expectedAttributes, \n"
-		"    XMLInputStream stream, \n"
-		"    XMLToken element, int type) -> bool\n"
+		"ASTBasePlugin_readAttributes(ASTBasePlugin self, XMLAttributes attributes, ExpectedAttributes const & expectedAttributes, \n"
+		"    XMLInputStream stream, XMLToken element, int type) -> bool\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -160007,7 +161242,7 @@ static PyMethodDef SwigMethods[] = {
 		"\n"
 		""},
 	 { (char *)"ASTBasePlugin_getNameFromType", _wrap_ASTBasePlugin_getNameFromType, METH_VARARGS, (char *)"\n"
-		"ASTBasePlugin_getNameFromType(ASTBasePlugin self, int type) -> char\n"
+		"ASTBasePlugin_getNameFromType(ASTBasePlugin self, int type) -> char const *\n"
 		"\n"
 		"Internal implementation method.\n"
 		"\n"
@@ -161723,9 +162958,9 @@ SWIG_init(void) {
   SWIG_addvarlink(SWIG_globals(),(char*)"cout",Swig_var_cout_get, Swig_var_cout_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"cerr",Swig_var_cerr_get, Swig_var_cerr_set);
   SWIG_addvarlink(SWIG_globals(),(char*)"clog",Swig_var_clog_get, Swig_var_clog_set);
-  SWIG_Python_SetConstant(d, "LIBSBML_DOTTED_VERSION",SWIG_FromCharPtr("5.12.0"));
-  SWIG_Python_SetConstant(d, "LIBSBML_VERSION",SWIG_From_int(static_cast< int >(51200)));
-  SWIG_Python_SetConstant(d, "LIBSBML_VERSION_STRING",SWIG_FromCharPtr("51200"));
+  SWIG_Python_SetConstant(d, "LIBSBML_DOTTED_VERSION",SWIG_FromCharPtr("5.13.0"));
+  SWIG_Python_SetConstant(d, "LIBSBML_VERSION",SWIG_From_int(static_cast< int >(51300)));
+  SWIG_Python_SetConstant(d, "LIBSBML_VERSION_STRING",SWIG_FromCharPtr("51300"));
   SWIG_Python_SetConstant(d, "LIBSBML_OPERATION_SUCCESS",SWIG_From_int(static_cast< int >(LIBSBML_OPERATION_SUCCESS)));
   SWIG_Python_SetConstant(d, "LIBSBML_INDEX_EXCEEDS_SIZE",SWIG_From_int(static_cast< int >(LIBSBML_INDEX_EXCEEDS_SIZE)));
   SWIG_Python_SetConstant(d, "LIBSBML_UNEXPECTED_ATTRIBUTE",SWIG_From_int(static_cast< int >(LIBSBML_UNEXPECTED_ATTRIBUTE)));
@@ -161741,6 +162976,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "LIBSBML_ANNOTATION_NAME_NOT_FOUND",SWIG_From_int(static_cast< int >(LIBSBML_ANNOTATION_NAME_NOT_FOUND)));
   SWIG_Python_SetConstant(d, "LIBSBML_ANNOTATION_NS_NOT_FOUND",SWIG_From_int(static_cast< int >(LIBSBML_ANNOTATION_NS_NOT_FOUND)));
   SWIG_Python_SetConstant(d, "LIBSBML_MISSING_METAID",SWIG_From_int(static_cast< int >(LIBSBML_MISSING_METAID)));
+  SWIG_Python_SetConstant(d, "LIBSBML_DEPRECATED_ATTRIBUTE",SWIG_From_int(static_cast< int >(LIBSBML_DEPRECATED_ATTRIBUTE)));
   SWIG_Python_SetConstant(d, "LIBSBML_PKG_VERSION_MISMATCH",SWIG_From_int(static_cast< int >(LIBSBML_PKG_VERSION_MISMATCH)));
   SWIG_Python_SetConstant(d, "LIBSBML_PKG_UNKNOWN",SWIG_From_int(static_cast< int >(LIBSBML_PKG_UNKNOWN)));
   SWIG_Python_SetConstant(d, "LIBSBML_PKG_UNKNOWN_VERSION",SWIG_From_int(static_cast< int >(LIBSBML_PKG_UNKNOWN_VERSION)));
diff --git a/src/bindings/python/libsbml_wrap.h b/src/bindings/python/libsbml_wrap.h
index 5bdd613..92a012c 100644
--- a/src/bindings/python/libsbml_wrap.h
+++ b/src/bindings/python/libsbml_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -50,7 +50,7 @@ private:
           Swig::DirectorMethodException::raise(msg.c_str());
         }
         vtable[method_index] = method;
-      };
+      }
       return method;
     }
 private:
@@ -95,7 +95,7 @@ private:
           Swig::DirectorMethodException::raise(msg.c_str());
         }
         vtable[method_index] = method;
-      };
+      }
       return method;
     }
 private:
@@ -152,7 +152,7 @@ private:
           Swig::DirectorMethodException::raise(msg.c_str());
         }
         vtable[method_index] = method;
-      };
+      }
       return method;
     }
 private:
@@ -203,7 +203,7 @@ private:
           Swig::DirectorMethodException::raise(msg.c_str());
         }
         vtable[method_index] = method;
-      };
+      }
       return method;
     }
 private:
diff --git a/src/bindings/python/local-contrib.i b/src/bindings/python/local-contrib.i
index d51b3bf..9fd6db8 100644
--- a/src/bindings/python/local-contrib.i
+++ b/src/bindings/python/local-contrib.i
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/python/local-doc-extras.i b/src/bindings/python/local-doc-extras.i
index fde2f63..c80767a 100644
--- a/src/bindings/python/local-doc-extras.i
+++ b/src/bindings/python/local-doc-extras.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/python/local-downcast-converters.cpp.in b/src/bindings/python/local-downcast-converters.cpp.in
index 40bcd52..7ad7ab9 100644
--- a/src/bindings/python/local-downcast-converters.cpp.in
+++ b/src/bindings/python/local-downcast-converters.cpp.in
@@ -1,17 +1,17 @@
-// This file is autogenerated and will be overwritten by the configuration process
-
-#ifdef USE_COMP
-#include "local-downcast-converters-comp.cpp"
-#endif
-#ifdef USE_FBC
-#include "local-downcast-converters-fbc.cpp"
-#endif
-#ifdef USE_LAYOUT
-#include "local-downcast-converters-layout.cpp"
-#endif
-#ifdef USE_QUAL
-#include "local-downcast-converters-qual.cpp"
-#endif
-
-
-
+// This file is autogenerated and will be overwritten by the configuration process
+
+#ifdef USE_COMP
+#include "local-downcast-converters-comp.cpp"
+#endif
+#ifdef USE_FBC
+#include "local-downcast-converters-fbc.cpp"
+#endif
+#ifdef USE_LAYOUT
+#include "local-downcast-converters-layout.cpp"
+#endif
+#ifdef USE_QUAL
+#include "local-downcast-converters-qual.cpp"
+#endif
+
+
+
diff --git a/src/bindings/python/local-downcast-packages-groups.cpp b/src/bindings/python/local-downcast-packages-groups.cpp
index f69e10f..0bf0934 100644
--- a/src/bindings/python/local-downcast-packages-groups.cpp
+++ b/src/bindings/python/local-downcast-packages-groups.cpp
@@ -2,30 +2,26 @@
 #ifdef USE_GROUPS
 else if (pkgName == "groups")
 {
-	switch (sb->getTypeCode())
-	{
-		case SBML_LIST_OF:
-			name = sb->getElementName();
-			if(name == "listOfMembers"){
-				return SWIGTYPE_p_ListOfMembers;
-			}
-			else if (name == "listOfMemberConstraints")
-			{
-				return SWIGTYPE_p_ListOfMemberConstraints;
-			}
-			else if(name == "listOfGroups"){
-				return SWIGTYPE_p_ListOfGroups;
-			}
-			return SWIGTYPE_p_ListOf;				  
-			
-		case SBML_GROUPS_MEMBER:
-			return SWIGTYPE_p_Member;
+  switch ( sb->getTypeCode() )
+  {
+    case SBML_LIST_OF:
+      name = sb->getElementName();
+      if (name == "listOfGroups")
+      {
+        return SWIGTYPE_p_ListOfGroups;
+      }
+      else if (name == "listOfMembers")
+      {
+        return SWIGTYPE_p_ListOfMembers;
+      }
 
-		case SBML_GROUPS_MEMBER_CONSTRAINT:
-			return SWIGTYPE_p_MemberConstraint;
+      return SWIGTYPE_p_ListOf;
 
-		case SBML_GROUPS_GROUP:
-			return SWIGTYPE_p_Group;
+    case SBML_GROUPS_GROUP:
+      return SWIGTYPE_p_Group;
+
+    case SBML_GROUPS_MEMBER:
+      return SWIGTYPE_p_Member;
 
 		default:
 			return SWIGTYPE_p_SBase;
diff --git a/src/bindings/python/local-downcast-packages-multi.cpp b/src/bindings/python/local-downcast-packages-multi.cpp
index 4b845a5..2b88667 100644
--- a/src/bindings/python/local-downcast-packages-multi.cpp
+++ b/src/bindings/python/local-downcast-packages-multi.cpp
@@ -25,10 +25,6 @@ else if (pkgName == "multi")
       {
         return SWIGTYPE_p_ListOfInSpeciesTypeBonds;
       }
-      else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-      {
-        return SWIGTYPE_p_ListOfDenotedSpeciesTypeComponentIndexes;
-      }
       else if (name == "listOfOutwardBindingSites")
       {
         return SWIGTYPE_p_ListOfOutwardBindingSites;
@@ -75,9 +71,6 @@ else if (pkgName == "multi")
     case SBML_MULTI_IN_SPECIES_TYPE_BOND:
       return SWIGTYPE_p_InSpeciesTypeBond;
 
-    case SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-      return SWIGTYPE_p_DenotedSpeciesTypeComponentIndex;
-
     case SBML_MULTI_OUTWARD_BINDING_SITE:
       return SWIGTYPE_p_OutwardBindingSite;
 
diff --git a/src/bindings/python/local-downcast-plugins-multi.cpp b/src/bindings/python/local-downcast-plugins-multi.cpp
index e3f77ff..cee4db7 100644
--- a/src/bindings/python/local-downcast-plugins-multi.cpp
+++ b/src/bindings/python/local-downcast-plugins-multi.cpp
@@ -21,6 +21,10 @@ if (pkgName == "multi")
   {
     return SWIGTYPE_p_MultiSpeciesReferencePlugin;
   }
+  else if (sb->getElementName() == "listOfReactions")
+  {
+    return SWIGTYPE_p_MultiListOfReactionsPlugin;
+  }
 }
 
 #endif // USE_MULTI 
diff --git a/src/bindings/python/local-groups.i b/src/bindings/python/local-groups.i
index 4300394..2910199 100644
--- a/src/bindings/python/local-groups.i
+++ b/src/bindings/python/local-groups.i
@@ -8,12 +8,11 @@
 #ifdef USE_GROUPS
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
+
 
 #endif // USE_GROUPS 
 
diff --git a/src/bindings/python/local-multi.i b/src/bindings/python/local-multi.i
index bc10578..7f7703e 100644
--- a/src/bindings/python/local-multi.i
+++ b/src/bindings/python/local-multi.i
@@ -6,7 +6,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -21,7 +20,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/python/local-packages.i.in b/src/bindings/python/local-packages.i.in
index 84217c2..aca50cb 100644
--- a/src/bindings/python/local-packages.i.in
+++ b/src/bindings/python/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-layout.i"
 #endif
diff --git a/src/bindings/python/local.cpp b/src/bindings/python/local.cpp
index 715c74d..f82fafb 100644
--- a/src/bindings/python/local.cpp
+++ b/src/bindings/python/local.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/python/local.i b/src/bindings/python/local.i
index 118cd17..425fff3 100644
--- a/src/bindings/python/local.i
+++ b/src/bindings/python/local.i
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -258,7 +258,7 @@ namespace std
 /**
  * Convert SBase, SimpleSpeciesReference and Rule objects into the most specific type possible.
  */
-%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*
+%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*, Reaction*
 {
   $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), GetDowncastSwigType($1),
                                $owner | %newpointer_flags);
@@ -857,6 +857,7 @@ WRAP_LISTWRAPPER(SBMLNamespaces)
 WRAP_LISTWRAPPER(CVTerm)
 WRAP_LISTWRAPPER(Date)
 WRAP_LISTWRAPPER(ModelCreator)
+WRAP_LISTWRAPPER(SBase)
 
 
 /**
@@ -909,6 +910,8 @@ SBMLNamespaces::getSupportedNamespaces
                                SWIG_POINTER_OWN |  0 );
 }
  
+
+ 
 %feature("shadow")
 ModelHistory::getListCreators
 %{
@@ -916,7 +919,7 @@ ModelHistory::getListCreators
     """
     getListCreators(self) -> ModelCreatorList
 
-    Get the ModelCreatorList of ModelCreator objects in this 
+    Get the List of ModelCreator objects in this 
     ModelHistory.
 
     Returns the ModelCreatorList for this ModelHistory.
@@ -946,7 +949,7 @@ ModelHistory::getListModifiedDates
     """
     getListModifiedDates(self) -> DateList
 
-    Get the DateList of Date objects in this ModelHistory.
+    Get the List of Date objects in this ModelHistory.
 
     Returns the DateList for this ModelHistory.
           
@@ -974,9 +977,9 @@ SBase::getCVTerms
     """
     getCVTerms(self) -> CVTermList
 
-    Get the CVTermList of CVTerm objects in this SBase.
+    Get the List of CVTerm objects in this element.
 
-    Returns the CVTermList for this SBase.
+    Returns the CVTermList for this element.
 
 
     """
@@ -995,6 +998,93 @@ SBase::getCVTerms
                                SWIG_POINTER_OWN |  0 );
 }
 
+
+%feature("shadow")
+SBase::getListOfAllElements
+%{
+  def getListOfAllElements(self):
+    """
+    getListOfAllElements(self) -> SBaseList
+
+    Get the List of all SBase objects in this element.
+
+    Returns the List of all child elements.
+
+
+    """
+    return _libsbml.SBase_getListOfAllElements(self)
+%}
+
+%typemap(out) List* SBase::getListOfAllElements
+{
+  ListWrapper<SBase> *listw = ($1 != 0) ? new ListWrapper<SBase>($1) : 0;
+  $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), 
+#if SWIG_VERSION > 0x010333
+                               SWIGTYPE_p_ListWrapperT_SBase_t, 
+#else
+                               SWIGTYPE_p_ListWrapperTSBase_t, 
+#endif
+                               SWIG_POINTER_OWN |  0 );
+}
+
+
+%feature("shadow")
+SBase::getListOfAllElementsFromPlugins
+%{
+  def getListOfAllElementsFromPlugins(self):
+    """
+    getListOfAllElementsFromPlugins(self) -> SBaseList
+
+    Get the List of SBase objects in this elements plugins.
+
+    Returns the SBaseList of all plugins for this element.
+
+
+    """
+    return _libsbml.SBase_getListOfAllElementsFromPlugins(self)
+%}
+
+%typemap(out) List* SBase::getListOfAllElementsFromPlugins
+{
+  ListWrapper<SBase> *listw = ($1 != 0) ? new ListWrapper<SBase>($1) : 0;
+  $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), 
+#if SWIG_VERSION > 0x010333
+                               SWIGTYPE_p_ListWrapperT_SBase_t, 
+#else
+                               SWIGTYPE_p_ListWrapperTSBase_t, 
+#endif
+                               SWIG_POINTER_OWN |  0 );
+}
+
+%feature("shadow")
+SBasePlugin::getListOfAllElements
+%{
+  def getListOfAllElements(self):
+    """
+    getListOfAllElements(self) -> SBaseList
+
+    Get the List of SBase objects in this plugin.
+
+    Returns the SBaseList of all element for this plugin.
+
+
+    """
+    return _libsbml.SBasePlugin_getListOfAllElements(self)
+%}
+
+%typemap(out) List* SBasePlugin::getListOfAllElements
+{
+  ListWrapper<SBase> *listw = ($1 != 0) ? new ListWrapper<SBase>($1) : 0;
+  $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), 
+#if SWIG_VERSION > 0x010333
+                               SWIGTYPE_p_ListWrapperT_SBase_t, 
+#else
+                               SWIGTYPE_p_ListWrapperTSBase_t, 
+#endif
+                               SWIG_POINTER_OWN |  0 );
+}
+
+
 #endif
 
 %include "local-packages.i"
diff --git a/src/bindings/python/pydoc-doxygen.i b/src/bindings/python/pydoc-doxygen.i
index e47197b..bb30851 100644
--- a/src/bindings/python/pydoc-doxygen.i
+++ b/src/bindings/python/pydoc-doxygen.i
@@ -3789,9 +3789,9 @@ subclasses of SBase are not required to implement this method to return
 a type code.
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getPackageName()
 @see getElementName()
@@ -3924,7 +3924,7 @@ packages.
 If a plugin is <em>disabled</em>, the package information it contains is
 no longer considered to be part of the SBML document for the purposes of
 searching the document or writing out the document.  However, the information
-is still retained, so if the plugin is enabled again, the same information 
+is still retained, so if the plugin is enabled again, the same information
 will once again be available, and will be written out to the final model.
 
 @param n the index of the disabled plug-in to return
@@ -3986,7 +3986,7 @@ packages.
 If a plugin is <em>disabled</em>, the package information it contains is
 no longer considered to be part of the SBML document for the purposes of
 searching the document or writing out the document.  However, the information
-is still retained, so if the plugin is enabled again, the same information 
+is still retained, so if the plugin is enabled again, the same information
 will once again be available, and will be written out to the final model.
 
 @return the number of disabled plug-in objects (extension interfaces) 
@@ -4017,7 +4017,7 @@ packages.
 If a plugin is <em>disabled</em>, the package information it contains is
 no longer considered to be part of the SBML document for the purposes of
 searching the document or writing out the document.  However, the information
-is still retained, so if the plugin is enabled again, the same information 
+is still retained, so if the plugin is enabled again, the same information
 will once again be available, and will be written out to the final model.
 
 @param recursive if @c True, the disabled information will be deleted
@@ -4814,11 +4814,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -5200,9 +5195,9 @@ contain.  Hence, one must call getItemTypeCode() to fully determine the
 class of this SBML object.
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getItemTypeCode()
 @see getElementName()
@@ -8130,9 +8125,9 @@ method on the object.
 @link libsbml#SBML_MODEL SBML_MODEL at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -10193,9 +10188,9 @@ method on the object.
 @link libsbml#SBML_DOCUMENT SBML_DOCUMENT at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see SBMLDocument.getElementName()
 @see getPackageName()
@@ -10638,11 +10633,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -10997,9 +10987,9 @@ method on the object.
 @link libsbml#SBML_FUNCTION_DEFINITION SBML_FUNCTION_DEFINITION at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -11599,11 +11589,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -12369,9 +12354,9 @@ method on the object.
 @link libsbml#SBML_UNIT SBML_UNIT at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getPackageName()
 @see getElementName()
@@ -13140,11 +13125,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -13613,9 +13593,9 @@ method on the object.
 @link libsbml#SBML_UNIT_DEFINITION SBML_UNIT_DEFINITION at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getPackageName()
 @see getElementName()
@@ -14223,11 +14203,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -14524,9 +14499,9 @@ method on the object.
 @link libsbml#SBML_COMPARTMENT_TYPE SBML_COMPARTMENT_TYPE at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -14863,11 +14838,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -15132,9 +15102,9 @@ method on the object.
 @link libsbml#SBML_SPECIES_TYPE SBML_SPECIES_TYPE at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -15761,11 +15731,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -16822,9 +16787,9 @@ method on the object.
 @link libsbml#SBML_COMPARTMENT SBML_COMPARTMENT at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -17450,11 +17415,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -18480,9 +18440,9 @@ method on the object.
 @link libsbml#SBML_SPECIES SBML_SPECIES at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -18963,11 +18923,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -19529,9 +19484,9 @@ method on the object.
 @link libsbml#SBML_PARAMETER SBML_PARAMETER at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -20002,11 +19957,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -20223,9 +20173,9 @@ method on the object.
 @link libsbml#SBML_LOCAL_PARAMETER SBML_LOCAL_PARAMETER at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -20699,11 +20649,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -20997,9 +20942,9 @@ method on the object.
 @link libsbml#SBML_INITIAL_ASSIGNMENT SBML_INITIAL_ASSIGNMENT at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -21564,11 +21509,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -22061,9 +22001,9 @@ method on the object.
 for %SBML Core.
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -23625,11 +23565,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -23964,9 +23899,9 @@ method on the object.
 @link libsbml#SBML_CONSTRAINT SBML_CONSTRAINT at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -24340,11 +24275,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -25502,9 +25432,9 @@ method on the object.
 @link libsbml#SBML_REACTION SBML_REACTION at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -26622,9 +26552,9 @@ method on the object.
 @link libsbml#SBML_KINETIC_LAW SBML_KINETIC_LAW at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -27391,11 +27321,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -28491,9 +28416,9 @@ method on the object.
 @link libsbml#SBML_MODIFIER_SPECIES_REFERENCE SBML_MODIFIER_SPECIES_REFERENCE at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -28717,11 +28642,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -29590,9 +29510,9 @@ method on the object.
 @link libsbml#SBML_EVENT SBML_EVENT at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -30063,11 +29983,6 @@ which provides all of the various ListOf___
 defined by the SBML specification, such as \'metaid\' attributes and
 annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
- at htmlinclude listof-illustration.html
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -30376,9 +30291,9 @@ method on the object.
 @link libsbml#SBML_EVENT_ASSIGNMENT SBML_EVENT_ASSIGNMENT at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -31145,9 +31060,9 @@ method on the object.
 @link libsbml#SBML_TRIGGER SBML_TRIGGER at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -31671,9 +31586,9 @@ method on the object.
 @link libsbml#SBML_DELAY SBML_DELAY at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -32142,9 +32057,9 @@ method on the object.
 @link libsbml#SBML_PRIORITY SBML_PRIORITY at endlink (default).\
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -32975,6 +32890,13 @@ methods are functionally identical. @endif@~
 ";
 
 
+%feature("docstring") SBO::getParentBranch "
+ at internal
+
+ at internal
+";
+
+
 %feature("docstring") SBO::isChildOf "
 @internal
 
@@ -33737,9 +33659,9 @@ method on the object.
 @link libsbml#SBML_STOICHIOMETRY_MATH SBML_STOICHIOMETRY_MATH at endlink (default).
 
 @warning <span class=\'warning\'>The specific integer values of the possible
-type codes may be reused by different Level 3 package plug-ins.
-Thus, to identifiy the correct code, <strong>it is necessary to invoke
-both getTypeCode() and getPackageName()</strong>.</span>
+type codes may be reused by different libSBML plug-ins for SBML Level 3.
+packages,  To fully identify the correct code, <strong>it is necessary to
+invoke both getTypeCode() and getPackageName()</strong>.</span>
 
 @see getElementName()
 @see getPackageName()
@@ -34979,21 +34901,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 
 @see ConversionOption
 @see SBMLNamespaces
@@ -35488,21 +35396,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -36005,21 +35899,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -36314,21 +36194,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -36596,21 +36462,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -36915,21 +36767,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -37222,21 +37060,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -37403,46 +37227,46 @@ otherwise.
 @sbmlpackage{core}
 
 @htmlinclude pkg-marker-core.html Whole-document SBML Level/Version converter.
-
- at htmlinclude libsbml-facility-only-warning.html
-
-This SBML converter takes an SBML document having one SBML Level+Version
-combination, and attempts to convert it to an SBML document having a
-different Level+Version combination.  This converter
-(SBMLLevel1Version1Converter) converts models to SBML Level 1
-Version 1, to the extent possible by the limited features of
-that Level/Version combination of SBML.
-
- at section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
-
-SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
-object with the option @c \'convertToL1V1\', and passing this
-properties object to SBMLDocument.convert().  The target SBML Level and Version
-combination are determined by the value of the SBML namespace set on the
-ConversionProperties object (using
-ConversionProperties.setTargetNamespaces()).
-
-In addition, this converter offers the following options:
-
- at li @c \'changePow\': Mathematical expressions for exponentiation of
-the form <code>pow(s1, 2)</code> will be converted to the expression
-<code>s1^2</code>.
-
- at li @c \'inlineCompartmentSizes\': Back in the days of SBML Level 1
-Version 1, many software tools assumed that the \'kinetic laws\' of
-SBML were written in terms of units of
-<em>concentration</em>/<em>time</em>.  These tools would not expect (and
-thus not handle) rate expressions such as
-<code>CompartmentOfS1 * k * S1</code>.
-When the option @c \'inlineCompartmentSizes\' is enabled, libSBML will
-replace the references to compartments (such as @c \'CompartmentOfS1\' in
-this example) with their initial sizes.  This is not strictly correct in
-all cases; in particular, if the compartment volume varies during
-simulation, this conversion will not reflect the expected behavior.
-However, many models do not have time-varying compartment sizes, so this
-option makes it easy to get modern SBML rate expressions into a form that
-old software tools may better understand.
-
+
+ at htmlinclude libsbml-facility-only-warning.html
+
+This SBML converter takes an SBML document having one SBML Level+Version
+combination, and attempts to convert it to an SBML document having a
+different Level+Version combination.  This converter
+(SBMLLevel1Version1Converter) converts models to SBML Level 1
+Version 1, to the extent possible by the limited features of
+that Level/Version combination of SBML.
+
+ at section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
+
+SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
+object with the option @c \'convertToL1V1\', and passing this
+properties object to SBMLDocument.convert().  The target SBML Level and Version
+combination are determined by the value of the SBML namespace set on the
+ConversionProperties object (using
+ConversionProperties.setTargetNamespaces()).
+
+In addition, this converter offers the following options:
+
+ at li @c \'changePow\': Mathematical expressions for exponentiation of
+the form <code>pow(s1, 2)</code> will be converted to the expression
+<code>s1^2</code>.
+
+ at li @c \'inlineCompartmentSizes\': Back in the days of SBML Level 1
+Version 1, many software tools assumed that the \'kinetic laws\' of
+SBML were written in terms of units of
+<em>concentration</em>/<em>time</em>.  These tools would not expect (and
+thus not handle) rate expressions such as
+<code>CompartmentOfS1 * k * S1</code>.
+When the option @c \'inlineCompartmentSizes\' is enabled, libSBML will
+replace the references to compartments (such as @c \'CompartmentOfS1\' in
+this example) with their initial sizes.  This is not strictly correct in
+all cases; in particular, if the compartment volume varies during
+simulation, this conversion will not reflect the expected behavior.
+However, many models do not have time-varying compartment sizes, so this
+option makes it easy to get modern SBML rate expressions into a form that
+old software tools may better understand.
+
 @section using-converters General information about the use of SBML converters
 
 The use of all the converters follows a similar approach.  First, one
@@ -37595,21 +37419,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -37629,79 +37439,79 @@ This method has multiple variants; they differ in the arguments
 <span class='variant-sig-heading'>Method variant with the following signature</span>:
  <pre class='signature'>SBMLLevel1Version1Converter()</pre>
 
-Creates a new SBMLLevel1Version1Converter object.
-   
+Creates a new SBMLLevel1Version1Converter object.
+   
 
 @par
 <hr>
 <span class='variant-sig-heading'>Method variant with the following signature</span>:
  <pre class='signature'>SBMLLevel1Version1Converter(SBMLLevel1Version1Converter obj)</pre>
 
-Copy constructor; creates a copy of an SBMLLevel1Version1Converter
-object.
-
+Copy constructor; creates a copy of an SBMLLevel1Version1Converter
+object.
+
 @param obj the SBMLLevel1Version1Converter object to copy.
 ";
 
 
 %feature("docstring") SBMLLevel1Version1Converter::clone "
-Creates and returns a deep copy of this SBMLLevel1Version1Converter
-object.
-
+Creates and returns a deep copy of this SBMLLevel1Version1Converter
+object.
+
 @return a (deep) copy of this converter.
 ";
 
 
 %feature("docstring") SBMLLevel1Version1Converter::matchesProperties "
-Returns @c True if this converter object\'s properties match the given
-properties.
-
-A typical use of this method involves creating a ConversionProperties
-object, setting the options desired, and then calling this method on
-an SBMLLevel1Version1Converter object to find out if the object\'s
-property values match the given ones.  This method is also used by
-SBMLConverterRegistry.getConverterFor()
-to search across all registered converters for one matching particular
-properties.
-
- at param props the properties to match.
-
- at return @c True if this converter\'s properties match, @c False
+Returns @c True if this converter object\'s properties match the given
+properties.
+
+A typical use of this method involves creating a ConversionProperties
+object, setting the options desired, and then calling this method on
+an SBMLLevel1Version1Converter object to find out if the object\'s
+property values match the given ones.  This method is also used by
+SBMLConverterRegistry.getConverterFor()
+to search across all registered converters for one matching particular
+properties.
+
+ at param props the properties to match.
+
+ at return @c True if this converter\'s properties match, @c False
 otherwise.
 ";
 
 
 %feature("docstring") SBMLLevel1Version1Converter::convert "
-Perform the conversion.
-
-This method causes the converter to do the actual conversion work,
-that is, to convert the SBMLDocument object set by
-SBMLConverter.setDocument() and
-with the configuration options set by
-SBMLConverter.setProperties().
-
- at return integer value indicating success/failure of the
-function.  @if clike The value is drawn from the
-enumeration #OperationReturnValues_t. @endif@~ The possible values
-returned by this function are:
- at li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
- at li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
- at li @link libsbml#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
- at li @link libsbml#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
+Perform the conversion.
+
+This method causes the converter to do the actual conversion work,
+that is, to convert the SBMLDocument object set by
+SBMLConverter.setDocument() and
+with the configuration options set by
+SBMLConverter.setProperties().
+
+ at return integer value indicating success/failure of the
+function.  @if clike The value is drawn from the
+enumeration #OperationReturnValues_t. @endif@~ The possible values
+returned by this function are:
+ at li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
+ at li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
+ at li @link libsbml#LIBSBML_CONV_INVALID_TARGET_NAMESPACE LIBSBML_CONV_INVALID_TARGET_NAMESPACE at endlink
+ at li @link libsbml#LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE at endlink
 @li @link libsbml#LIBSBML_CONV_INVALID_SRC_DOCUMENT LIBSBML_CONV_INVALID_SRC_DOCUMENT at endlink
 ";
 
 
 %feature("docstring") SBMLLevel1Version1Converter::getDefaultProperties "
-Returns the default properties of this converter.
-
-A given converter exposes one or more properties that can be adjusted
-in order to influence the behavior of the converter.  This method
-returns the @em default property settings for this converter.  It is
-meant to be called in order to discover all the settings for the
-converter object.
-
- at return the ConversionProperties object describing the default properties
+Returns the default properties of this converter.
+
+A given converter exposes one or more properties that can be adjusted
+in order to influence the behavior of the converter.  This method
+returns the @em default property settings for this converter.  It is
+meant to be called in order to discover all the settings for the
+converter object.
+
+ at return the ConversionProperties object describing the default properties
 for this converter.
 ";
 
@@ -37898,21 +37708,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -38180,21 +37976,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -38567,21 +38349,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -38862,21 +38630,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -39174,21 +38928,7 @@ LibSBML provides a number of built-in converters; by convention, their
 names end in @em Converter. The following are the built-in converters
 provided by libSBML @htmlinclude libsbml-version.html:
 
- at par
- at li CobraToFbcConverter
- at li CompFlatteningConverter
- at li FbcToCobraConverter
- at li SBMLFunctionDefinitionConverter
- at li SBMLIdConverter
- at li SBMLInferUnitsConverter
- at li SBMLInitialAssignmentConverter
- at li SBMLLevelVersionConverter
- at li SBMLLocalParameterConverter
- at li SBMLReactionConverter
- at li SBMLRuleConverter
- at li SBMLStripPackageConverter
- at li SBMLUnitsConverter
-<p>
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -44016,6 +43756,9 @@ in the output stream.
 
 @param programVersion an optional version identification string to write
 as a comment in the output stream.
+
+ at param writeTimestamp an optional flag indicating that a timestamp should
+be written
 ";
 
 
@@ -44068,6 +43811,58 @@ Sets the SBMLNamespaces object associated with this output stream.
 ";
 
 
+%feature("docstring") XMLOutputStream::getWriteComment "
+ at return a boolean, whether the output stream will write an XML
+comment at the top of the file. (Enabled by default)
+";
+
+
+%feature("docstring") XMLOutputStream::setWriteComment "
+sets a flag, whether the output stream will write an XML
+comment at the top of the file. (Enabled by default)
+
+ at param writeComment the flag
+";
+
+
+%feature("docstring") XMLOutputStream::getWriteTimestamp "
+ at return a boolean, whether the output stream will write an XML
+comment with a timestamp at the top of the file. (Enabled by default)
+";
+
+
+%feature("docstring") XMLOutputStream::setWriteTimestamp "
+sets a flag, whether the output stream will write an XML
+comment with a timestamp at the top of the file. (Enabled by default)
+
+ at param writeTimestamp the flag
+";
+
+
+%feature("docstring") XMLOutputStream::getLibraryName "
+ at return the name of the library to be used in comments (\'libSBML\' by default)
+";
+
+
+%feature("docstring") XMLOutputStream::setLibraryName "
+sets the name of the library writing the XML
+ at param libraryName the name of the library to be used in comments
+";
+
+
+%feature("docstring") XMLOutputStream::getLibraryVersion "
+ at return a string representing the version of the library writing the output.
+This is the value of getLibSBMLDottedVersion() by default.
+";
+
+
+%feature("docstring") XMLOutputStream::setLibraryVersion "
+sets the name of the library writing the output
+
+ at param libraryVersion the version information as string
+";
+
+
 %feature("docstring") XMLOutputStream::writeChars "
 @internal
 
@@ -54730,7 +54525,7 @@ target=\'_blank\' href=\'http://co.mbine.org/standards/qualifiers/\'>BioModels.n
 qualifiers web page</a> for an explanation of the meaning of these
 different qualifiers.
 
- at param type a @if clike #QualifierType_t value at else qualifier type at endif@~
+ at param type a @if clike #QualifierType_t value at else qualifier type at endif@~.
 
 @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
 ";
@@ -54799,9 +54594,9 @@ methods to call to find out the specific relationship.
 of this object or @link libsbml#UNKNOWN_QUALIFIER UNKNOWN_QUALIFIER at endlink
 (the default).
 
- at see CVTerm.getResources()
- at see CVTerm.getModelQualifierType()
- at see CVTerm.getBiologicalQualifierType()
+ at see getResources()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 ";
 
 
@@ -54990,9 +54785,9 @@ a value for the relationship qualifier.
 
 @return the XMLAttributes that store the resources of this CVTerm.
 
- at see CVTerm.getQualifierType()
- at see CVTerm.addResource()
- at see CVTerm.getResourceURI()
+ at see getQualifierType()
+ at see addResource()
+ at see getResourceURI()
 ";
 
 
@@ -55036,8 +54831,8 @@ method returns a count of the resources stored in this CVTerm object.
 @return the number of resources in the set of XMLAttributes
 of this CVTerm.
 
- at see CVTerm.getResources()
- at see CVTerm.getResourceURI()
+ at see getResources()
+ at see getResourceURI()
 ";
 
 
@@ -55081,13 +54876,13 @@ Callers can use CVTerm.getNumResources() to find out how many resources
 are stored in this CVTerm object, then call this method to retrieve the
 <em>n</em>th resource URI.
 
- at param n the index of the resource to query
+ at param n the index of the resource to query.
 
 @return string representing the value of the nth resource
 in the set of XMLAttributes of this CVTerm.
 
- at see CVTerm.getNumResources()
- at see CVTerm.getQualifierType()
+ at see getNumResources()
+ at see getQualifierType()
 ";
 
 
@@ -55103,7 +54898,7 @@ enumeration #OperationReturnValues_t. @endif@~ The possible values
 returned by this function are:
 @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 
- at see CVTerm.getQualifierType()
+ at see getQualifierType()
 ";
 
 
@@ -55119,7 +54914,7 @@ This method has multiple variants; they differ in the arguments
 Sets the @if clike #ModelQualifierType_t at else model qualifier
 type at endif@~ value of this CVTerm object.
 
- at param qualifier the string representing a model qualifier
+ at param qualifier the string representing a model qualifier.
 
 @return integer value indicating success/failure of the
 function.  @if clike The value is drawn from the
@@ -55133,8 +54928,8 @@ returned by this function are:
 then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
 
- at see CVTerm.getQualifierType()
- at see CVTerm.setQualifierType()
+ at see getQualifierType()
+ at see setQualifierType()
    
 
 @par
@@ -55145,7 +54940,7 @@ will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
 Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 of this CVTerm object.
 
- at param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
+ at param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~.
 
 @return integer value indicating success/failure of the
 function.  @if clike The value is drawn from the
@@ -55159,8 +54954,8 @@ returned by this function are:
 then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
 will default to @link libsbml#BQM_UNKNOWN BQM_UNKNOWN at endlink.
 
- at see CVTerm.getQualifierType()
- at see CVTerm.setQualifierType()
+ at see getQualifierType()
+ at see setQualifierType()
 ";
 
 
@@ -55176,7 +54971,7 @@ This method has multiple variants; they differ in the arguments
 Sets the @if clike #BiolQualifierType_t at else biology qualifier
 type code at endif@~ of this CVTerm object.
 
- at param qualifier the string representing a biology qualifier
+ at param qualifier the string representing a biology qualifier.
 
 @return integer value indicating success/failure of the
 function.  @if clike The value is drawn from the
@@ -55190,8 +54985,8 @@ returned by this function are:
 then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif@~
 will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
 
- at see CVTerm.getQualifierType()
- at see CVTerm.setQualifierType()
+ at see getQualifierType()
+ at see setQualifierType()
    
 
 @par
@@ -55217,8 +55012,8 @@ returned by this function are:
 then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif@~
 will default to @link libsbml#BQB_UNKNOWN BQB_UNKNOWN at endlink.
 
- at see CVTerm.getQualifierType()
- at see CVTerm.setQualifierType()
+ at see getQualifierType()
+ at see setQualifierType()
 ";
 
 
@@ -55304,11 +55099,11 @@ returned by this function are:
 @li @link libsbml#LIBSBML_OPERATION_SUCCESS LIBSBML_OPERATION_SUCCESS at endlink
 @li @link libsbml#LIBSBML_OPERATION_FAILED LIBSBML_OPERATION_FAILED at endlink
 
- at see CVTerm.getResources()
- at see CVTerm.removeResource()
- at see CVTerm.getQualifierType()
- at see CVTerm.getModelQualifierType()
- at see CVTerm.getBiologicalQualifierType()
+ at see getResources()
+ at see removeResource()
+ at see getQualifierType()
+ at see getModelQualifierType()
+ at see getBiologicalQualifierType()
 ";
 
 
@@ -55327,7 +55122,7 @@ returned by this function are:
 @li @link libsbml#LIBSBML_INDEX_EXCEEDS_SIZE LIBSBML_INDEX_EXCEEDS_SIZE at endlink
 @li @link libsbml#LIBSBML_INVALID_ATTRIBUTE_VALUE LIBSBML_INVALID_ATTRIBUTE_VALUE at endlink
 
- at see CVTerm.addResource()
+ at see addResource()
 ";
 
 
@@ -55371,7 +55166,7 @@ nested within this CVTerm.
 Returns the nth CVTerm in the list of CVTerms of this CVTerm
 object.
 
- at param n long the index of the CVTerm to retrieve
+ at param n long the index of the CVTerm to retrieve.
 
 @return the nth CVTerm in the list of CVTerms for this CVTerm object.
 ";
@@ -55405,7 +55200,7 @@ returned by this function are:
 Removes the nth CVTerm in the list of CVTerms of this CVTerm
 object and returns a pointer to it.
 
- at param n long the index of the CVTerm to retrieve
+ at param n long the index of the CVTerm to retrieve.
 
 @return a pointer to the nth CVTerm in the list of CVTerms for this 
 CVTerm object.
@@ -55419,6 +55214,98 @@ CVTerm object.
 ";
 
 
+%feature("docstring") ModelQualifierType_toString "
+This method takes a model qualifier type code and returns a string
+representing the code.
+
+This method takes a model qualifier type as argument
+and returns a string name corresponding to that code.  For example,
+passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+the string <code>\'isDescribedBy\'</code>.
+
+ at param type The @if clike ModelQualifierType_t at endif@~ value to
+translate. @ifnot clike The value should be a libSBML constant whose
+name begins with @c BQM_, such as (for example)
+ at link libsbml#BQM_IS BQM_IS at endlink.@endif@~
+
+ at return a human readable qualifier name for the given qualifier type.
+
+ at note The caller does not own the returned string and is therefore not
+allowed to modify it.
+
+ at if conly
+ at memberof CVTerm_t
+ at endif
+";
+
+
+%feature("docstring") BiolQualifierType_toString "
+This method takes a biol qualifier type code and returns a string
+representing the code.
+
+This method takes a biol qualifier type as argument
+and returns a string name corresponding to that code.  For example,
+passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+the string <code>\'hasVersion\'</code>.
+
+ at param type The @if clike BiolQualifierType_t at endif@~ value to
+translate. @ifnot clike The value should be a constant whose name
+begins with @c BQB_, such as (for example)
+ at link libsbml#BQB_IS BQB_IS at endlink.@endif@~
+
+ at return a human readable qualifier name for the given type.
+
+ at note The caller does not own the returned string and is therefore not
+allowed to modify it.
+
+ at if conly
+ at memberof CVTerm_t
+ at endif
+";
+
+
+%feature("docstring") ModelQualifierType_fromString "
+This method takes a a string and returns a model qualifier
+representing the string.
+
+This method takes a string as argument and returns a model qualifier type
+corresponding to that string.  For example, passing it the string
+<code>\'isDescribedBy\'</code> will return the qualifier
+<code>BQM_IS_DESCRIBED_BY</code>.
+
+ at param s The string to translate to a @if clike ModelQualifierType_t
+value at else libSBML constant value representing a model qualifier at endif.
+
+ at return a libSBML qualifier enumeration value for the given human readable
+qualifier name.
+
+ at if conly
+ at memberof CVTerm_t
+ at endif
+";
+
+
+%feature("docstring") BiolQualifierType_fromString "
+This method takes a a string and returns a biol qualifier
+representing the string.
+
+This method takes a string as argument and returns a biol qualifier type
+corresponding to that string.  For example, passing it the string
+<code>\'hasVersion\'</code> will return the qualifier
+<code>BQB_HAS_VERSION</code>.
+
+ at param s The string to translate to a @if clike BiolQualifierType_t
+value at else libSBML constant value representing a biological qualifier at endif.
+
+ at return a libSBML qualifier enumeration value for the given human readable
+qualifier name.
+
+ at if conly
+ at memberof CVTerm_t
+ at endif
+";
+
+
 %feature("docstring") Date "
 @sbmlpackage{core}
 
@@ -57646,7 +57533,6 @@ found, this method returns the result of getElementNamespace().
 
 @see getPackageName()
 @see getElementNamespace()
- at see SBMLDocument.getSBMLNamespaces()
 @see getSBMLDocument()
 ";
 
@@ -58384,7 +58270,7 @@ for the package.  One method should be defined for each SBML Level/Version
 combination for which the package can be used.  For instance, if a package
 is only usable in SBML Level 3 Version 1, and the libSBML
 extension for the package implements version 1 of the package, the
-necessary method is <code>getXmlnsL3V1V1()</code>.  
+necessary method is <code>getXmlnsL3V1V1()</code>.
 @code{.cpp}
 string GroupsExtension.getXmlnsL3V1V1 ()
 {
@@ -62311,6 +62197,13 @@ Returns the MathML @c definitionURL attribute value as a string.
 ";
 
 
+%feature("docstring") ASTNode::getNumPiece "
+ at internal
+
+ at internal
+";
+
+
 %feature("docstring") ASTNode::containsVariable "
 @internal
 
@@ -62598,7 +62491,7 @@ formula parser and formatter.  The entry points to this second system are
 @sbmlfunction{parseL3Formula, String} and
 @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
 system (i.e., what is provided by @sbmlfunction{formulaToString, String}
-and @sbmlfunction{parseFormula, ASTNode}) is provided 
+and @sbmlfunction{parseFormula, ASTNode}) is provided
 untouched for backwards compatibility.
 
 @note We urge developers to keep in mind that the text-string formula
@@ -63006,7 +62899,7 @@ formula parser and formatter.  The entry points to this second system are
 @sbmlfunction{parseL3Formula, String} and
 @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
 system (i.e., what is provided by @sbmlfunction{formulaToString, String}
-and @sbmlfunction{parseFormula, ASTNode}) is provided 
+and @sbmlfunction{parseFormula, ASTNode}) is provided
 untouched for backwards compatibility.
 
 @note We urge developers to keep in mind that the text-string formula
@@ -63357,7 +63250,7 @@ be treated as an ASTNode of type
 @link libsbml#AST_NAME AST_NAME at endlink.
 @li Strings that match built-in functions and constants can either be parsed
 as a match regardless of capitalization, or may be required to be
-all-lower-case to be considered a match.  
+all-lower-case to be considered a match.
 @li LibSBML plug-ins implementing support for SBML Level 3 packages
 may introduce extensions to the syntax understood by the parser.  The
 precise nature of the extensions will be documented by the individual
@@ -63731,7 +63624,7 @@ be treated as an ASTNode of type
 @link libsbml#AST_NAME AST_NAME at endlink.
 @li Strings that match built-in functions and constants can either be parsed
 as a match regardless of capitalization, or may be required to be
-all-lower-case to be considered a match.  
+all-lower-case to be considered a match.
 @li LibSBML plug-ins implementing support for SBML Level 3 packages
 may introduce extensions to the syntax understood by the parser.  The
 precise nature of the extensions will be documented by the individual
diff --git a/src/bindings/python/pydoc-normal.i b/src/bindings/python/pydoc-normal.i
index 8e6a8e0..d6828b5 100644
--- a/src/bindings/python/pydoc-normal.i
+++ b/src/bindings/python/pydoc-normal.i
@@ -2778,9 +2778,9 @@ code.
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getPackageName(), getElementName().
 ";
@@ -2879,8 +2879,8 @@ If a plugin is disabled, the package information it contains is no
 longer considered to be part of the SBML document for the purposes of
 searching the document or writing out the document.  However, the
 information is still retained, so if the plugin is enabled again, the
-same information  will once again be available, and will be written
-out to the final model.
+same information will once again be available, and will be written out
+to the final model.
 
 Parameter 'n' is the index of the disabled plug-in to return
 
@@ -2938,8 +2938,8 @@ If a plugin is disabled, the package information it contains is no
 longer considered to be part of the SBML document for the purposes of
 searching the document or writing out the document.  However, the
 information is still retained, so if the plugin is enabled again, the
-same information  will once again be available, and will be written
-out to the final model.
+same information will once again be available, and will be written out
+to the final model.
 
 Returns the number of disabled plug-in objects (extension interfaces)
 of package extensions known by this instance of libSBML.
@@ -2969,8 +2969,8 @@ If a plugin is disabled, the package information it contains is no
 longer considered to be part of the SBML document for the purposes of
 searching the document or writing out the document.  However, the
 information is still retained, so if the plugin is enabled again, the
-same information  will once again be available, and will be written
-out to the final model.
+same information will once again be available, and will be written out
+to the final model.
 
 Parameter 'recursive' is if True, the disabled information will be
 deleted also from all child elements, otherwise only from this SBase
@@ -3600,46 +3600,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -4005,9 +3965,9 @@ the class of this SBML object.
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getItemTypeCode(), getElementName(), getPackageName().
 ";
@@ -4082,7 +4042,7 @@ the overall container for the lists of the various model components.
 All of the lists are optional, but if a given list container is
 present within the model, the list must not be empty; that is, it must
 have length one or more.  The following are the components and lists
-permitted in different Levels and Versions of SBML in version 5.12.0
+permitted in different Levels and Versions of SBML in version 5.13.0
 of libSBML:
 
 * In SBML Level 1, the components are: UnitDefinition, Compartment,
@@ -4201,7 +4161,7 @@ Consistency and adherence to SBML specifications
 ======================================================================
 
 To make it easier for applications to do whatever they need, libSBML
-version 5.12.0 is relatively lax when it comes to enforcing
+version 5.13.0 is relatively lax when it comes to enforcing
 correctness and completeness of models during model construction and
 editing. Essentially, libSBML will not in most cases check
 automatically that a model's components have valid attribute values,
@@ -6820,9 +6780,9 @@ Returns the SBML type code for this object: SBML_MODEL (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -7837,7 +7797,7 @@ or using the methods on the SBMLErrorLog object.
 The default SBML Level of new SBMLDocument objects.
 
 This 'default Level' corresponds to the most recent SBML
-specification Level available at the time libSBML version 5.12.0 was
+specification Level available at the time libSBML version 5.13.0 was
 released.  The default Level is used by SBMLDocument if no Level is
 explicitly specified at the time of the construction of an
 SBMLDocument instance.
@@ -7863,7 +7823,7 @@ The default Version of new SBMLDocument objects.
 
 This 'default Version' corresponds to the most recent Version within
 the most recent Level of SBML available at the time libSBML version
-5.12.0 was released.  The default Version is used by SBMLDocument if
+5.13.0 was released.  The default Version is used by SBMLDocument if
 no Version is explicitly specified at the time of the construction of
 an SBMLDocument instance.
 
@@ -8675,9 +8635,9 @@ Returns the SBML type code for this object: SBML_DOCUMENT (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also SBMLDocument.getElementName(), getPackageName().
 ";
@@ -9072,46 +9032,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -9439,9 +9359,9 @@ Returns the SBML type code for this object: SBML_FUNCTION_DEFINITION
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -9954,46 +9874,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -10682,9 +10562,9 @@ Returns the SBML type code for this object: SBML_UNIT (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getPackageName(), getElementName().
 ";
@@ -11383,46 +11263,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -11870,9 +11710,9 @@ Returns the SBML type code for this object: SBML_UNIT_DEFINITION
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getPackageName(), getElementName().
 ";
@@ -12431,46 +12271,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -12726,9 +12526,9 @@ Returns the SBML type code for this object: SBML_COMPARTMENT_TYPE
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -13013,46 +12813,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -13290,9 +13050,9 @@ Returns the SBML type code for this object: SBML_SPECIES_TYPE
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -13785,46 +13545,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -14782,9 +14502,9 @@ Returns the SBML type code for this object: SBML_COMPARTMENT
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -15359,46 +15079,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -16448,9 +16128,9 @@ Returns the SBML type code for this object: SBML_SPECIES (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -16873,46 +16553,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -17442,9 +17082,9 @@ Returns the SBML type code for this object: SBML_PARAMETER (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -17838,46 +17478,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -18064,9 +17664,9 @@ Returns the SBML type code for this object: SBML_LOCAL_PARAMETER
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -18486,46 +18086,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -18797,9 +18357,9 @@ Returns the SBML type code for this object: SBML_INITIAL_ASSIGNMENT
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -19309,46 +18869,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -19828,9 +19348,9 @@ Core.
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -19853,7 +19373,7 @@ Returns the XML element name of this object.
 
 The returned value can be any of a number of different strings,
 depending on the SBML Level in use and the kind of Rule object this
-is.  The rules as of libSBML version 5.12.0 are the following:
+is.  The rules as of libSBML version 5.13.0 are the following:
 
 * (Level 2 and 3) RateRule: returns 'rateRule'
 
@@ -21305,46 +20825,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -21644,9 +21124,9 @@ Returns the SBML type code for this object: SBML_CONSTRAINT (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -21986,46 +21466,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -23073,9 +22513,9 @@ Returns the SBML type code for this object: SBML_REACTION (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -24179,9 +23619,9 @@ Returns the SBML type code for this object: SBML_KINETIC_LAW
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -24892,46 +24332,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -25871,9 +25271,9 @@ SBML_MODIFIER_SPECIES_REFERENCE (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -26083,46 +25483,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -26979,9 +26339,9 @@ Returns the SBML type code for this object: SBML_EVENT (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -27393,46 +26753,6 @@ turn derived from SBase, which provides all of the various ListOf___
 classes with common features defined by the SBML specification, such
 as 'metaid' attributes and annotations.
 
-The relationship between the lists and the rest of an SBML model is
-illustrated by the following (for SBML Level 2 Version 4):
-
-  <?xml version=\"1.0\" encoding=\"UTF-8\"?>
-  <sbml xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" 
-        level=\"3\" version=\"1\">
-    <model id=\"My_Model\">
-      <listOfFunctionDefinitions>
-        <functionDefinition> ... </functionDefinition> 
-      </listOfFunctionDefinitions>
-      <listOfUnitDefinitions>
-        <unitDefinition> ... </unitDefinition> 
-      </listOfUnitDefinitions>
-      <listOfCompartments>
-        <compartment> ... </compartment> 
-      </listOfCompartments>
-      <listOfSpecies>
-        <species> ... </species> 
-      </listOfSpecies>
-      <listOfParameters>
-        <parameter> ... </parameter> 
-      </listOfParameters>
-      <listOfInitialAssignments>
-        <initialAssignment> ... </initialAssignment> 
-      </listOfInitialAssignments>
-      <listOfRules>
-        ... elements of subclasses of Rule ...
-      </listOfRules>
-      <listOfConstraints>
-        <constraint> ... </constraint> 
-      </listOfConstraints>
-      <listOfReactions>
-        <reaction> ... </reaction> 
-      </listOfReactions>
-      <listOfEvents>
-        <event> ... </event> 
-      </listOfEvents>
-    </model>
-  </sbml>
-
 Readers may wonder about the motivations for using the ListOf___
 containers in SBML.  A simpler approach in XML might be to place the
 components all directly at the top level of the model definition.  The
@@ -27718,9 +27038,9 @@ Returns the SBML type code for this object: SBML_EVENT_ASSIGNMENT
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -28437,9 +27757,9 @@ Returns the SBML type code for this object: SBML_TRIGGER (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -28932,9 +28252,9 @@ Returns the SBML type code for this object: SBML_DELAY (default).
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -29363,9 +28683,9 @@ Returns the SBML type code for this object: SBML_PRIORITY (default).\
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -30273,6 +29593,11 @@ functionally identical.
 ";
 
 
+%feature("docstring") SBO::getParentBranch "
+Internal implementation method.
+";
+
+
 %feature("docstring") SBO::isChildOf "
 Internal implementation method.
 ";
@@ -31055,9 +30380,9 @@ Returns the SBML type code for this object: SBML_STOICHIOMETRY_MATH
 WARNING:
 
 The specific integer values of the possible type codes may be reused
-by different Level 3 package plug-ins. Thus, to identifiy the correct
-code, it is necessary to invoke both getTypeCode() and
-getPackageName().
+by different libSBML plug-ins for SBML Level 3. packages,  To fully
+identify the correct code, it is necessary to invoke both
+getTypeCode() and getPackageName().
 
 See also getElementName(), getPackageName().
 ";
@@ -32134,33 +31459,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
+provided by libSBML 5.13.0:
 
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 
 See also ConversionOption, SBMLNamespaces.
 ";
@@ -32634,33 +31935,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
+provided by libSBML 5.13.0:
 
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -33060,33 +32337,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
+provided by libSBML 5.13.0:
 
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -33296,33 +32549,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
+provided by libSBML 5.13.0:
 
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -33504,33 +32733,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
+provided by libSBML 5.13.0:
 
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -33732,33 +32937,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
+provided by libSBML 5.13.0:
 
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -33963,33 +33144,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
+provided by libSBML 5.13.0:
 
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -34250,33 +33407,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
+provided by libSBML 5.13.0:
 
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -34478,33 +33611,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
+provided by libSBML 5.13.0:
 
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -34686,33 +33795,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
+provided by libSBML 5.13.0:
 
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -34983,33 +34068,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
+provided by libSBML 5.13.0:
 
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -35203,33 +34264,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
-
-* CompFlatteningConverter
-
-* FbcToCobraConverter
+provided by libSBML 5.13.0:
 
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -35438,33 +34475,9 @@ Available SBML converters in libSBML
 
 LibSBML provides a number of built-in converters; by convention, their
 names end in Converter. The following are the built-in converters
-provided by libSBML 5.12.0:
-
-* CobraToFbcConverter
+provided by libSBML 5.13.0:
 
-* CompFlatteningConverter
-
-* FbcToCobraConverter
-
-* SBMLFunctionDefinitionConverter
-
-* SBMLIdConverter
-
-* SBMLInferUnitsConverter
-
-* SBMLInitialAssignmentConverter
-
-* SBMLLevelVersionConverter
-
-* SBMLLocalParameterConverter
-
-* SBMLReactionConverter
-
-* SBMLRuleConverter
-
-* SBMLStripPackageConverter
-
-* SBMLUnitsConverter
+ at copydetails doc_list_of_libsbml_converters
 ";
 
 
@@ -39908,6 +38921,9 @@ comment in the output stream.
 
 Parameter 'programVersion' is an optional version identification
 string to write as a comment in the output stream.
+
+Parameter 'writeTimestamp' is an optional flag indicating that a
+timestamp should be written
 ";
 
 
@@ -39956,6 +38972,59 @@ Parameter 'sbmlns' is the namespace object.
 ";
 
 
+%feature("docstring") XMLOutputStream::getWriteComment "
+Returns a boolean, whether the output stream will write an XML comment
+at the top of the file. (Enabled by default)
+";
+
+
+%feature("docstring") XMLOutputStream::setWriteComment "
+sets a flag, whether the output stream will write an XML comment at
+the top of the file. (Enabled by default)
+
+Parameter 'writeComment' is the flag
+";
+
+
+%feature("docstring") XMLOutputStream::getWriteTimestamp "
+Returns a boolean, whether the output stream will write an XML comment
+with a timestamp at the top of the file. (Enabled by default)
+";
+
+
+%feature("docstring") XMLOutputStream::setWriteTimestamp "
+sets a flag, whether the output stream will write an XML comment with
+a timestamp at the top of the file. (Enabled by default)
+
+Parameter 'writeTimestamp' is the flag
+";
+
+
+%feature("docstring") XMLOutputStream::getLibraryName "
+Returns the name of the library to be used in comments ('libSBML' by
+default)
+";
+
+
+%feature("docstring") XMLOutputStream::setLibraryName "
+sets the name of the library writing the XML Parameter 'libraryName'
+is the name of the library to be used in comments
+";
+
+
+%feature("docstring") XMLOutputStream::getLibraryVersion "
+Returns a string representing the version of the library writing the
+output. This is the value of getLibSBMLDottedVersion() by default.
+";
+
+
+%feature("docstring") XMLOutputStream::setLibraryVersion "
+sets the name of the library writing the output
+
+Parameter 'libraryVersion' is the version information as string
+";
+
+
 %feature("docstring") XMLOutputStream::writeChars "
 Internal implementation method.
 ";
@@ -42297,7 +41366,7 @@ of its meaning.
 with SBMLError objects
 ......................................................................
 
-In libSBML version 5.12.0 there are no additional severity codes
+In libSBML version 5.13.0 there are no additional severity codes
 beyond those defined by XMLError. They are implemented as static
 integer constants defined in the interface class libsbml, and have
 names beginning with LIBSBML_SEV_.
@@ -42680,7 +41749,7 @@ relationships.  Please refer to the SBML specification or the
 BioModels.net qualifiers web page for an explanation of the meaning of
 these different qualifiers.
 
-Parameter 'type' is a qualifier type
+Parameter 'type' is a qualifier type.
 
 Documentation note: The native C++ implementation of this method
 defines a default argument value. In the documentation generated for
@@ -42754,8 +41823,8 @@ to call to find out the specific relationship.
 Returns the qualifier type of this object or UNKNOWN_QUALIFIER (the
 default).
 
-See also CVTerm.getResources(), CVTerm.getModelQualifierType(),
-CVTerm.getBiologicalQualifierType().
+See also getResources(), getModelQualifierType(),
+getBiologicalQualifierType().
 ";
 
 
@@ -42954,8 +42023,7 @@ value for the relationship qualifier.
 
 Returns the XMLAttributes that store the resources of this CVTerm.
 
-See also CVTerm.getQualifierType(), CVTerm.addResource(),
-CVTerm.getResourceURI().
+See also getQualifierType(), addResource(), getResourceURI().
 ";
 
 
@@ -42994,7 +42062,7 @@ CVTerm object.
 Returns the number of resources in the set of XMLAttributes of this
 CVTerm.
 
-See also CVTerm.getResources(), CVTerm.getResourceURI().
+See also getResources(), getResourceURI().
 ";
 
 
@@ -43032,12 +42100,12 @@ relationship. Callers can use CVTerm.getNumResources() to find out how
 many resources are stored in this CVTerm object, then call this method
 to retrieve the nth resource URI.
 
-Parameter 'n' is the index of the resource to query
+Parameter 'n' is the index of the resource to query.
 
 Returns string representing the value of the nth resource in the set
 of XMLAttributes of this CVTerm.
 
-See also CVTerm.getNumResources(), CVTerm.getQualifierType().
+See also getNumResources(), getQualifierType().
 ";
 
 
@@ -43051,7 +42119,7 @@ The possible values returned by this function are:
 
 * LIBSBML_OPERATION_SUCCESS
 
-See also CVTerm.getQualifierType().
+See also getQualifierType().
 ";
 
 
@@ -43066,7 +42134,7 @@ setModelQualifierType(string qualifier)
 
 Sets the model qualifier type value of this CVTerm object.
 
-Parameter 'qualifier' is the string representing a model qualifier
+Parameter 'qualifier' is the string representing a model qualifier.
 
 Returns integer value indicating success/failure of the function.
 The possible values returned by this function are:
@@ -43080,8 +42148,8 @@ Note:
 If the Qualifier Type of this object is not MODEL_QUALIFIER,  then the
 model qualifier type will default to BQM_UNKNOWN.
 
-See also CVTerm.getQualifierType(), CVTerm.setQualifierType(),
-CVTerm.getQualifierType(), CVTerm.setQualifierType().
+See also getQualifierType(), setQualifierType(), getQualifierType(),
+setQualifierType().
 ";
 
 
@@ -43096,7 +42164,7 @@ setBiologicalQualifierType(string qualifier)
 
 Sets the biology qualifier type code of this CVTerm object.
 
-Parameter 'qualifier' is the string representing a biology qualifier
+Parameter 'qualifier' is the string representing a biology qualifier.
 
 Returns integer value indicating success/failure of the function.
 The possible values returned by this function are:
@@ -43110,8 +42178,8 @@ Note:
 If the Qualifier Type of this object is not BIOLOGICAL_QUALIFIER, then
 the biology qualifier type code will default to BQB_UNKNOWN.
 
-See also CVTerm.getQualifierType(), CVTerm.setQualifierType(),
-CVTerm.getQualifierType(), CVTerm.setQualifierType().
+See also getQualifierType(), setQualifierType(), getQualifierType(),
+setQualifierType().
 ";
 
 
@@ -43186,9 +42254,8 @@ The possible values returned by this function are:
 
 * LIBSBML_OPERATION_FAILED
 
-See also CVTerm.getResources(), CVTerm.removeResource(),
-CVTerm.getQualifierType(), CVTerm.getModelQualifierType(),
-CVTerm.getBiologicalQualifierType().
+See also getResources(), removeResource(), getQualifierType(),
+getModelQualifierType(), getBiologicalQualifierType().
 ";
 
 
@@ -43208,7 +42275,7 @@ The possible values returned by this function are:
 
 * LIBSBML_INVALID_ATTRIBUTE_VALUE
 
-See also CVTerm.addResource().
+See also addResource().
 ";
 
 
@@ -43253,7 +42320,7 @@ nested within this CVTerm.
 %feature("docstring") CVTerm::getNestedCVTerm "
 Returns the nth CVTerm in the list of CVTerms of this CVTerm object.
 
-Parameter 'n' is long the index of the CVTerm to retrieve
+Parameter 'n' is long the index of the CVTerm to retrieve.
 
 Returns the nth CVTerm in the list of CVTerms for this CVTerm object.
 ";
@@ -43287,7 +42354,7 @@ The possible values returned by this function are:
 Removes the nth CVTerm in the list of CVTerms of this CVTerm object
 and returns a pointer to it.
 
-Parameter 'n' is long the index of the CVTerm to retrieve
+Parameter 'n' is long the index of the CVTerm to retrieve.
 
 Returns a pointer to the nth CVTerm in the list of CVTerms for this
 CVTerm object.
@@ -43299,6 +42366,79 @@ Internal implementation method.
 ";
 
 
+%feature("docstring") ModelQualifierType_toString "
+This method takes a model qualifier type code and returns a string
+representing the code.
+
+This method takes a model qualifier type as argument and returns a
+string name corresponding to that code.  For example, passing it the
+qualifier BQM_IS_DESCRIBED_BY will return the string 'isDescribedBy'.
+
+Parameter 'type' is The  value to translate. The value should be a
+libSBML constant whose name begins with BQM_, such as (for example)
+BQM_IS.
+
+Returns a human readable qualifier name for the given qualifier type.
+
+Note:
+
+The caller does not own the returned string and is therefore not
+allowed to modify it.
+";
+
+
+%feature("docstring") BiolQualifierType_toString "
+This method takes a biol qualifier type code and returns a string
+representing the code.
+
+This method takes a biol qualifier type as argument and returns a
+string name corresponding to that code.  For example, passing it the
+qualifier BQB_HAS_VERSION will return the string 'hasVersion'.
+
+Parameter 'type' is The  value to translate. The value should be a
+constant whose name begins with BQB_, such as (for example) BQB_IS.
+
+Returns a human readable qualifier name for the given type.
+
+Note:
+
+The caller does not own the returned string and is therefore not
+allowed to modify it.
+";
+
+
+%feature("docstring") ModelQualifierType_fromString "
+This method takes a a string and returns a model qualifier
+representing the string.
+
+This method takes a string as argument and returns a model qualifier
+type corresponding to that string.  For example, passing it the string
+'isDescribedBy' will return the qualifier BQM_IS_DESCRIBED_BY.
+
+Parameter 's' is The string to translate to a libSBML constant value
+representing a model qualifier.
+
+Returns a libSBML qualifier enumeration value for the given human
+readable qualifier name.
+";
+
+
+%feature("docstring") BiolQualifierType_fromString "
+This method takes a a string and returns a biol qualifier representing
+the string.
+
+This method takes a string as argument and returns a biol qualifier
+type corresponding to that string.  For example, passing it the string
+'hasVersion' will return the qualifier BQB_HAS_VERSION.
+
+Parameter 's' is The string to translate to a libSBML constant value
+representing a biological qualifier.
+
+Returns a libSBML qualifier enumeration value for the given human
+readable qualifier name.
+";
+
+
 %feature("docstring") Date "
 A MIRIAM-compliant date representation.
 
@@ -45249,8 +44389,7 @@ be found, this method returns the result of getElementNamespace().
 Returns a string, the URI of the XML namespace to which this object
 belongs.
 
-See also getPackageName(), getElementNamespace(),
-SBMLDocument.getSBMLNamespaces(), getSBMLDocument().
+See also getPackageName(), getElementNamespace(), getSBMLDocument().
 ";
 
 
@@ -48674,6 +47813,11 @@ Internal implementation method.
 ";
 
 
+%feature("docstring") ASTNode::getNumPiece "
+Internal implementation method.
+";
+
+
 %feature("docstring") ASTNode::containsVariable "
 Internal implementation method.
 ";
@@ -48921,7 +48065,7 @@ provided by libSBML's newer and more powerful Level 3-oriented formula
 parser and formatter.  The entry points to this second system are
 parseL3Formula() and formulaToL3String().  The Level 1-oriented system
 (i.e., what is provided by formulaToString() and parseFormula()) is
-provided  untouched for backwards compatibility.
+provided untouched for backwards compatibility.
 
 Note:
 
@@ -49357,7 +48501,7 @@ provided by libSBML's newer and more powerful Level 3-oriented formula
 parser and formatter.  The entry points to this second system are
 parseL3Formula() and formulaToL3String().  The Level 1-oriented system
 (i.e., what is provided by formulaToString() and parseFormula()) is
-provided  untouched for backwards compatibility.
+provided untouched for backwards compatibility.
 
 Note:
 
diff --git a/src/bindings/python/setup.cfg b/src/bindings/python/setup.cfg
index 2bb2d6d..e97ff23 100644
--- a/src/bindings/python/setup.cfg
+++ b/src/bindings/python/setup.cfg
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2014 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/python/setup.py.in b/src/bindings/python/setup.py.in
index bab1eff..1acdb74 100644
--- a/src/bindings/python/setup.py.in
+++ b/src/bindings/python/setup.py.in
@@ -13,7 +13,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -45,7 +45,11 @@ if not os.path.isfile('build/libsbml/__init__.py'):
       print("Please run 'make create-build-dir' prior to using this setup script.")
       sys.exit(1)
 
-from distutils.core import setup, Extension
+try:
+  from setuptools import setup, Extension, Command
+except ImportError:
+  from distutils.core import setup, Extension
+ 
 
 
 
diff --git a/src/bindings/python/test.py b/src/bindings/python/test.py
index 0ab21a7..3b6a267 100755
--- a/src/bindings/python/test.py
+++ b/src/bindings/python/test.py
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2014 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/r/CMakeLists.txt b/src/bindings/r/CMakeLists.txt
index 28cfde3..8aa0d2c 100644
--- a/src/bindings/r/CMakeLists.txt
+++ b/src/bindings/r/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/r/configure b/src/bindings/r/configure
index aa7961f..aab02fe 100755
--- a/src/bindings/r/configure
+++ b/src/bindings/r/configure
@@ -1720,7 +1720,7 @@ if test  -n "${LIBSBML_INCLUDE}"  ; then
 else
   LIBSBML_CPPFLAGS="-I/usr/include/sbml -I/usr/local/include/sbml"
 fi
-PACKAGE_FLAGS="-DUSE_COMP=1 -DUSE_LAYOUT=1 -DUSE_FBC=1 -DUSE_QUAL=1 -DUSE_LIBXML=1 "
+PACKAGE_FLAGS="-DUSE_COMP=1 -DUSE_GROUPS=1 -DUSE_LAYOUT=1 -DUSE_FBC=1 -DUSE_QUAL=1 -DUSE_LIBXML=1 "
 CPPFLAGS="${CPPFLAGS} -I./src -I./src/sbml -Iswig -Isbml -I. -I../.. ${PACKAGE_FLAGS} ${LIBSBML_CPPFLAGS} ${XML2_CFLAGS}"
 
 LIBS="${XML2_LIBS}"
diff --git a/src/bindings/r/configure.in b/src/bindings/r/configure.in
index f85114a..8988e08 100755
--- a/src/bindings/r/configure.in
+++ b/src/bindings/r/configure.in
@@ -47,7 +47,7 @@ if test [ -n "${LIBSBML_INCLUDE}" ] ; then
 else
   LIBSBML_CPPFLAGS="-I/usr/include/sbml -I/usr/local/include/sbml"
 fi
-PACKAGE_FLAGS="-DUSE_COMP=1 -DUSE_LAYOUT=1 -DUSE_FBC=1 -DUSE_QUAL=1 -DUSE_LIBXML=1 "
+PACKAGE_FLAGS="-DUSE_COMP=1 -DUSE_GROUPS=1 -DUSE_LAYOUT=1 -DUSE_FBC=1 -DUSE_QUAL=1 -DUSE_LIBXML=1 "
 CPPFLAGS="${CPPFLAGS} -I./src -I./src/sbml -Iswig -Isbml -I. -I../.. ${PACKAGE_FLAGS} ${LIBSBML_CPPFLAGS} ${XML2_CFLAGS}"
 
 LIBS="${XML2_LIBS}"
diff --git a/src/bindings/r/create-r-package.cmake b/src/bindings/r/create-r-package.cmake
index fefdb53..8bfd337 100644
--- a/src/bindings/r/create-r-package.cmake
+++ b/src/bindings/r/create-r-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/r/create_package.cmake b/src/bindings/r/create_package.cmake
index 11db45d..714ef11 100644
--- a/src/bindings/r/create_package.cmake
+++ b/src/bindings/r/create_package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -107,6 +107,13 @@ set(DIRECTORIES
   sbml/packages/qual/validator
   sbml/packages/qual/validator/constraints
   
+  sbml/packages/groups/common
+  sbml/packages/groups/extension
+  sbml/packages/groups/sbml
+  sbml/packages/groups/util
+  sbml/packages/groups/validator
+  sbml/packages/groups/validator/constraints  
+
   sbml/units
   sbml/util
   sbml/validator
diff --git a/src/bindings/r/libsbml.i b/src/bindings/r/libsbml.i
index f8f082d..a0d70ca 100644
--- a/src/bindings/r/libsbml.i
+++ b/src/bindings/r/libsbml.i
@@ -1,6 +1,6 @@
 /**
  * @file    libsbml.i
- * @brief   Ruby-specific SWIG directives for wrapping libSBML API
+ * @brief   R-specific SWIG directives for wrapping libSBML API
  * @author  Alex Gutteridge
  * @author  Ben Bornstein
  * @author  Akiya Jouraku
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/r/local-downcast-converters.cpp.in b/src/bindings/r/local-downcast-converters.cpp.in
index 40bcd52..7ad7ab9 100644
--- a/src/bindings/r/local-downcast-converters.cpp.in
+++ b/src/bindings/r/local-downcast-converters.cpp.in
@@ -1,17 +1,17 @@
-// This file is autogenerated and will be overwritten by the configuration process
-
-#ifdef USE_COMP
-#include "local-downcast-converters-comp.cpp"
-#endif
-#ifdef USE_FBC
-#include "local-downcast-converters-fbc.cpp"
-#endif
-#ifdef USE_LAYOUT
-#include "local-downcast-converters-layout.cpp"
-#endif
-#ifdef USE_QUAL
-#include "local-downcast-converters-qual.cpp"
-#endif
-
-
-
+// This file is autogenerated and will be overwritten by the configuration process
+
+#ifdef USE_COMP
+#include "local-downcast-converters-comp.cpp"
+#endif
+#ifdef USE_FBC
+#include "local-downcast-converters-fbc.cpp"
+#endif
+#ifdef USE_LAYOUT
+#include "local-downcast-converters-layout.cpp"
+#endif
+#ifdef USE_QUAL
+#include "local-downcast-converters-qual.cpp"
+#endif
+
+
+
diff --git a/src/bindings/r/local-downcast-packages-groups.cpp b/src/bindings/r/local-downcast-packages-groups.cpp
index f69e10f..aa3a4e5 100644
--- a/src/bindings/r/local-downcast-packages-groups.cpp
+++ b/src/bindings/r/local-downcast-packages-groups.cpp
@@ -2,34 +2,30 @@
 #ifdef USE_GROUPS
 else if (pkgName == "groups")
 {
-	switch (sb->getTypeCode())
-	{
-		case SBML_LIST_OF:
-			name = sb->getElementName();
-			if(name == "listOfMembers"){
-				return SWIGTYPE_p_ListOfMembers;
-			}
-			else if (name == "listOfMemberConstraints")
-			{
-				return SWIGTYPE_p_ListOfMemberConstraints;
-			}
-			else if(name == "listOfGroups"){
-				return SWIGTYPE_p_ListOfGroups;
-			}
-			return SWIGTYPE_p_ListOf;				  
-			
-		case SBML_GROUPS_MEMBER:
-			return SWIGTYPE_p_Member;
+  switch ( sb->getTypeCode() )
+  {
+    case SBML_LIST_OF:
+      name = sb->getElementName();
+      if (name == "listOfGroups")
+      {
+        return SWIGTYPE_p_ListOfGroups;
+      }
+      else if (name == "listOfMembers")
+      {
+        return SWIGTYPE_p_ListOfMembers;
+      }
 
-		case SBML_GROUPS_MEMBER_CONSTRAINT:
-			return SWIGTYPE_p_MemberConstraint;
+      return SWIGTYPE_p_ListOf;
 
-		case SBML_GROUPS_GROUP:
-			return SWIGTYPE_p_Group;
+    case SBML_GROUPS_GROUP:
+      return SWIGTYPE_p_Group;
 
-		default:
-			return SWIGTYPE_p_SBase;
-	}
+    case SBML_GROUPS_MEMBER:
+      return SWIGTYPE_p_Member;
+
+    default:
+      return SWIGTYPE_p_SBase;
+    }
 }
 #endif // USE_GROUPS				  
 
diff --git a/src/bindings/r/local-downcast-packages-multi.cpp b/src/bindings/r/local-downcast-packages-multi.cpp
index 4b845a5..2b88667 100644
--- a/src/bindings/r/local-downcast-packages-multi.cpp
+++ b/src/bindings/r/local-downcast-packages-multi.cpp
@@ -25,10 +25,6 @@ else if (pkgName == "multi")
       {
         return SWIGTYPE_p_ListOfInSpeciesTypeBonds;
       }
-      else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-      {
-        return SWIGTYPE_p_ListOfDenotedSpeciesTypeComponentIndexes;
-      }
       else if (name == "listOfOutwardBindingSites")
       {
         return SWIGTYPE_p_ListOfOutwardBindingSites;
@@ -75,9 +71,6 @@ else if (pkgName == "multi")
     case SBML_MULTI_IN_SPECIES_TYPE_BOND:
       return SWIGTYPE_p_InSpeciesTypeBond;
 
-    case SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-      return SWIGTYPE_p_DenotedSpeciesTypeComponentIndex;
-
     case SBML_MULTI_OUTWARD_BINDING_SITE:
       return SWIGTYPE_p_OutwardBindingSite;
 
diff --git a/src/bindings/r/local-downcast-plugins-multi.cpp b/src/bindings/r/local-downcast-plugins-multi.cpp
index e3f77ff..cee4db7 100644
--- a/src/bindings/r/local-downcast-plugins-multi.cpp
+++ b/src/bindings/r/local-downcast-plugins-multi.cpp
@@ -21,6 +21,10 @@ if (pkgName == "multi")
   {
     return SWIGTYPE_p_MultiSpeciesReferencePlugin;
   }
+  else if (sb->getElementName() == "listOfReactions")
+  {
+    return SWIGTYPE_p_MultiListOfReactionsPlugin;
+  }
 }
 
 #endif // USE_MULTI 
diff --git a/src/bindings/r/local-groups.i b/src/bindings/r/local-groups.i
index 4300394..2910199 100644
--- a/src/bindings/r/local-groups.i
+++ b/src/bindings/r/local-groups.i
@@ -8,12 +8,11 @@
 #ifdef USE_GROUPS
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
+
 
 #endif // USE_GROUPS 
 
diff --git a/src/bindings/r/local-multi.i b/src/bindings/r/local-multi.i
index bc10578..7f7703e 100644
--- a/src/bindings/r/local-multi.i
+++ b/src/bindings/r/local-multi.i
@@ -6,7 +6,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -21,7 +20,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/r/local-packages.i.in b/src/bindings/r/local-packages.i.in
index 84217c2..aca50cb 100644
--- a/src/bindings/r/local-packages.i.in
+++ b/src/bindings/r/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-layout.i"
 #endif
diff --git a/src/bindings/r/local.cpp b/src/bindings/r/local.cpp
index 67b6fa7..f42342b 100644
--- a/src/bindings/r/local.cpp
+++ b/src/bindings/r/local.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/r/local.i b/src/bindings/r/local.i
index a87602d..ce45a63 100644
--- a/src/bindings/r/local.i
+++ b/src/bindings/r/local.i
@@ -1,6 +1,6 @@
 /**
  * @file    local.i
- * @brief   Ruby-specific SWIG directives for wrapping libSBML API
+ * @brief   R-specific SWIG directives for wrapping libSBML API
  * @author  Alex Gutteridge
  * @author  Ben Bornstein
  * @author  Akiya Jouraku
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -172,7 +172,7 @@ namespace std
 /**
  * Convert SBase, SimpleSpeciesReference, and Rule objects into the most specific type possible.
  */
-%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*
+%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*, Reaction*
 {
   $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), GetDowncastSwigType($1), $owner | %newpointer_flags);
 }
@@ -351,11 +351,6 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
   $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), SWIGTYPE_p_ListWrapperT_Date_t, SWIG_POINTER_OWN |  0 );
 }
 
-%typemap(out) List* SBase::getCVTerms
-{
-  ListWrapper<CVTerm> *listw = ($1 != 0)? new ListWrapper<CVTerm>($1) : 0;
-  $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), SWIGTYPE_p_ListWrapperT_CVTerm_t, SWIG_POINTER_OWN |  0 );
-}
  
 
 %include "local-packages.i"
@@ -392,13 +387,26 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
     $result <- new("_p_ListWrapperT_Date_t", ref=$result) ;
  %}
  
- 
-%typemap(scoerceout) List* SBase::getCVTerms
+%define LIST_WRAPPER(_FNAME_,_TYPENAME_)
+%typemap(out) List* _FNAME_
+{
+  ListWrapper<_TYPENAME_> *listw = ($1 != 0)? new ListWrapper<_TYPENAME_>($1) : 0;
+  $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), SWIGTYPE_p_ListWrapperT_ ## _TYPENAME_ ## _t, SWIG_POINTER_OWN |  0 );
+}
+
+%typemap(scoerceout) List* _FNAME_
 %{ 
    if (length(grep("0x0>",capture.output($result))) > 0 ||
       length(grep("nil",capture.output($result))) > 0)
     {
       return(NULL);
     }
-    $result <- new("_p_ListWrapperT_CVTerm_t", ref=$result) ;
+    $result <- new("_p_ListWrapperT_##_TYPENAME_##_t", ref=$result) ;
  %}
+%enddef
+
+LIST_WRAPPER(SBase::getCVTerms,CVTerm)
+LIST_WRAPPER(SBase::getListOfAllElements,SBase)
+LIST_WRAPPER(SBasePlugin::getListOfAllElements,SBase)
+LIST_WRAPPER(SBase::getListOfAllElementsFromPlugins,SBase)
+
diff --git a/src/bindings/r/swig-binding.cmake b/src/bindings/r/swig-binding.cmake
index 337e0ec..058c8a1 100644
--- a/src/bindings/r/swig-binding.cmake
+++ b/src/bindings/r/swig-binding.cmake
@@ -1,73 +1,73 @@
-###############################################################################
-#
-# Description       : CMake build script for swigging the R bindings
-# Original author(s): Frank Bergmann <fbergman at caltech.edu>
-# Organization      : California Institute of Technology
-#
-# This file is part of libSBML.  Please visit http://sbml.org for more
-# information about SBML, and the latest version of libSBML.
-#
-# Copyright (C) 2013-2015 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#     3. University of Heidelberg, Heidelberg, Germany
-#
-# Copyright (C) 2009-2013 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#  
-# Copyright (C) 2006-2008 by the California Institute of Technology,
-#     Pasadena, CA, USA 
-#  
-# Copyright (C) 2002-2005 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. Japan Science and Technology Agency, Japan
-# 
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation.  A copy of the license agreement is provided
-# in the file named "LICENSE.txt" included with this software distribution
-# and also available online as http://sbml.org/software/libsbml/license.html
-#
-###############################################################################
-
-# separate munged arguments
-separate_arguments(SWIG_ARGS)
-
-#
-# Remove SWIG wrappers if requested
-#
-if (LIBSBML_REMOVE_WRAPPERS)
- foreach(file 
-    ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
-    ${CUR_BIN_DIRECTORY}/libSBML.R
-  )
-    if (EXISTS ${file})
-      FILE(REMOVE ${file})
-    endif()
-  endforeach()
-endif()
-
-# execute swig
-execute_process(
-
-    COMMAND "${SWIG_EXECUTABLE}"
-         -I${CUR_SRC_DIRECTORY}/../swig/
-         -I${BIN_DIRECTORY}/src
-         -I${SRC_DIRECTORY}/src
-         -I${SRC_DIRECTORY}/include
-         -I${CUR_SRC_DIRECTORY}
-         -c++
-         -r
-         ${SWIG_ARGS}
-         -o ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
-         ${CUR_SRC_DIRECTORY}/libsbml.i
-
-    WORKING_DIRECTORY "${CUR_BIN_DIRECTORY}"
-    ERROR_VARIABLE  VAR_ERROR
-    OUTPUT_VARIABLE OUT_ERROR
-)
-
-if (VAR_ERROR)
-  message(${VAR_ERROR})
-endif()
+###############################################################################
+#
+# Description       : CMake build script for swigging the R bindings
+# Original author(s): Frank Bergmann <fbergman at caltech.edu>
+# Organization      : California Institute of Technology
+#
+# This file is part of libSBML.  Please visit http://sbml.org for more
+# information about SBML, and the latest version of libSBML.
+#
+# Copyright (C) 2013-2016 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#     3. University of Heidelberg, Heidelberg, Germany
+#
+# Copyright (C) 2009-2013 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#  
+# Copyright (C) 2006-2008 by the California Institute of Technology,
+#     Pasadena, CA, USA 
+#  
+# Copyright (C) 2002-2005 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. Japan Science and Technology Agency, Japan
+# 
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation.  A copy of the license agreement is provided
+# in the file named "LICENSE.txt" included with this software distribution
+# and also available online as http://sbml.org/software/libsbml/license.html
+#
+###############################################################################
+
+# separate munged arguments
+separate_arguments(SWIG_ARGS)
+
+#
+# Remove SWIG wrappers if requested
+#
+if (LIBSBML_REMOVE_WRAPPERS)
+ foreach(file 
+    ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
+    ${CUR_BIN_DIRECTORY}/libSBML.R
+  )
+    if (EXISTS ${file})
+      FILE(REMOVE ${file})
+    endif()
+  endforeach()
+endif()
+
+# execute swig
+execute_process(
+
+    COMMAND "${SWIG_EXECUTABLE}"
+         -I${CUR_SRC_DIRECTORY}/../swig/
+         -I${BIN_DIRECTORY}/src
+         -I${SRC_DIRECTORY}/src
+         -I${SRC_DIRECTORY}/include
+         -I${CUR_SRC_DIRECTORY}
+         -c++
+         -r
+         ${SWIG_ARGS}
+         -o ${CUR_BIN_DIRECTORY}/libsbml_wrap.cpp
+         ${CUR_SRC_DIRECTORY}/libsbml.i
+
+    WORKING_DIRECTORY "${CUR_BIN_DIRECTORY}"
+    ERROR_VARIABLE  VAR_ERROR
+    OUTPUT_VARIABLE OUT_ERROR
+)
+
+if (VAR_ERROR)
+  message(${VAR_ERROR})
+endif()
diff --git a/src/bindings/ruby/CMakeLists.txt b/src/bindings/ruby/CMakeLists.txt
index 0cd4cc9..15f1540 100644
--- a/src/bindings/ruby/CMakeLists.txt
+++ b/src/bindings/ruby/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/ruby/Makefile.in b/src/bindings/ruby/Makefile.in
index f861b78..6e3d49b 100644
--- a/src/bindings/ruby/Makefile.in
+++ b/src/bindings/ruby/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -137,6 +137,11 @@ ifdef USE_FBC
   SWIGDOCDEFINES += --define USE_FBC
 endif # USE_FBC  
 
+ifdef USE_GROUPS
+  SWIGFLAGS      += -DUSE_GROUPS
+  SWIGDOCDEFINES += --define USE_GROUPS
+endif # USE_GROUPS  
+
 ifdef USE_LAYOUT
   SWIGFLAGS      += -DUSE_LAYOUT
   SWIGDOCDEFINES += --define USE_LAYOUT
@@ -217,6 +222,13 @@ ifdef USE_FBC
                ../../sbml/packages/fbc/validator \
                ../../sbml/packages/fbc/validator/constraints 
 endif
+ifdef USE_GROUPS
+  otherdirs += ../../sbml/packages/groups/common \
+               ../../sbml/packages/groups/extension \
+               ../../sbml/packages/groups/sbml \
+               ../../sbml/packages/groups/validator \
+               ../../sbml/packages/groups/validator/constraints 
+endif
 ifdef USE_LAYOUT
   otherdirs += ../../sbml/packages/layout/common \
                ../../sbml/packages/layout/extension \
@@ -344,6 +356,18 @@ else
   endef
 endif
 
+ifdef USE_GROUPS
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -z "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+else
+  define check_groups
+    if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
+    if test -n "`grep ListOfGroups libsbml_wrap.cpp`"; then echo "do_reswig"; fi;
+  endef
+endif
+
 ifdef USE_LAYOUT
   define check_layout
     if test ! -f libsbml_wrap.cpp; then echo "do_reswig"; exit; fi; \
@@ -370,7 +394,8 @@ endif
 
 libsbml_wrap.cpp: $(swig_sources) $(main_sources) \
   $(shell $(call check_comp)) $(shell $(call check_fbc)) \
-  $(shell $(call check_layout)) $(shell $(call check_qual))
+  $(shell $(call check_layout)) $(shell $(call check_qual)) \
+  $(shell $(call check_groups))
 	@top_srcdir@/config/chk_swig_version.sh || exit
 	$(SWIG) $(SWIGFLAGS) $(sort $(default_includes) $(INCLUDES)) \
 		-c++ -ruby -o libsbml_wrap.cpp libsbml.i
@@ -382,7 +407,7 @@ libsbml_wrap.cpp: $(swig_sources) $(main_sources) \
 
 check: $(libraries) $(shell $(call check_layout)) \
   $(shell $(call check_comp)) $(shell $(call check_fbc)) \
-  $(shell $(call check_qual))
+  $(shell $(call check_qual)) $(shell $(call check_groups))
 	@echo
 	@echo
 	@echo Running Tests in $(thisdir)
diff --git a/src/bindings/ruby/libsbml.i b/src/bindings/ruby/libsbml.i
index f8f082d..42e43e4 100644
--- a/src/bindings/ruby/libsbml.i
+++ b/src/bindings/ruby/libsbml.i
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/ruby/libsbml_wrap.cpp b/src/bindings/ruby/libsbml_wrap.cpp
index 521c08f..d599b30 100644
--- a/src/bindings/ruby/libsbml_wrap.cpp
+++ b/src/bindings/ruby/libsbml_wrap.cpp
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -1553,7 +1553,7 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
         downcast methods. */
       if (obj != Qnil) {
         VALUE value = rb_iv_get(obj, "@__swigtype__");
-        char* type_name = RSTRING_PTR(value);
+        const char* type_name = RSTRING_PTR(value);
 				
         if (strcmp(type->name, type_name) == 0) {
           return obj;
@@ -2389,7 +2389,7 @@ static VALUE mLibSBML;
 #define SWIG_RUBY_THREAD_END_BLOCK
 
 
-#define SWIGVERSION 0x020004 
+#define SWIGVERSION 0x020006 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -2454,7 +2454,7 @@ SWIG_ruby_failed(void)
 } 
 
 
-/*@SWIG:/usr/local/share/swig/2.0.4/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/usr/local/share/swig/2.0.6/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2ULONG(VALUE *args)
 {
   VALUE obj = args[0];
@@ -2800,7 +2800,10 @@ namespace swig {
 #include <stdexcept>
 #include <stddef.h>
 
-  
+
+  #include <stddef.h>
+
+
 namespace swig {
   struct stop_iteration {
   };
@@ -3074,7 +3077,7 @@ SWIG_From_bool  (bool value)
 }
 
 
-/*@SWIG:/usr/local/share/swig/2.0.4/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/usr/local/share/swig/2.0.6/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
 {
   VALUE obj = args[0];
@@ -4909,7 +4912,7 @@ SWIGINTERN void ListOf_each(ListOf *self){
      }
   }
 
-/*@SWIG:/usr/local/share/swig/2.0.4/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
+/*@SWIG:/usr/local/share/swig/2.0.6/ruby/rubyprimtypes.swg,19,%ruby_aux_method@*/
 SWIGINTERN VALUE SWIG_AUX_NUM2DBL(VALUE *args)
 {
   VALUE obj = args[0];
@@ -5458,7 +5461,7 @@ void SwigDirector_SBMLValidator::clearFailures() {
 }
 
 
-swig_class SwigClassModelCreatorList;
+static swig_class SwigClassModelCreatorList;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -5644,7 +5647,7 @@ fail:
 }
 
 
-swig_class SwigClassDateList;
+static swig_class SwigClassDateList;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -5830,7 +5833,7 @@ fail:
 }
 
 
-swig_class SwigClassCVTermList;
+static swig_class SwigClassCVTermList;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -6016,7 +6019,7 @@ fail:
 }
 
 
-swig_class SwigClassASTNodeList;
+static swig_class SwigClassASTNodeList;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -6202,7 +6205,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLNamespacesList;
+static swig_class SwigClassSBMLNamespacesList;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -6388,7 +6391,7 @@ fail:
 }
 
 
-swig_class SwigClassSBaseList;
+static swig_class SwigClassSBaseList;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -6574,7 +6577,7 @@ fail:
 }
 
 
-swig_class SwigClassGC_VALUE;
+static swig_class SwigClassGC_VALUE;
 
 
 /*
@@ -6632,7 +6635,7 @@ fail:
 }
 
 
-swig_class SwigClassConstIterator;
+static swig_class SwigClassConstIterator;
 
 SWIGINTERN void
 free_swig_ConstIterator(swig::ConstIterator *arg1) {
@@ -7227,7 +7230,7 @@ fail:
 }
 
 
-swig_class SwigClassIterator;
+static swig_class SwigClassIterator;
 
 SWIGINTERN VALUE
 _wrap_Iterator_valuee___(int argc, VALUE *argv, VALUE self) {
@@ -7816,7 +7819,7 @@ free_swig_Iterator(swig::Iterator *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassString;
+static swig_class SwigClassString;
 
 SWIGINTERN VALUE
 _wrap_string_npos_get(VALUE self) {
@@ -7868,7 +7871,7 @@ fail:
   Document-method: LibSBML::string.length
 
   call-seq:
-    length -> size_type
+    length -> std::basic_string< char >::size_type
 
 Size or Length of the string.
 */
@@ -7901,7 +7904,7 @@ fail:
   Document-method: LibSBML::string.max_size
 
   call-seq:
-    max_size -> size_type
+    max_size -> std::basic_string< char >::size_type
 
 Maximum size of elements allowed in the string.
 */
@@ -8087,7 +8090,7 @@ fail:
     insert(pos1, str, pos2, n) -> string
     insert(pos, s, n) -> string
     insert(pos, n, c) -> string
-    insert(pos, x) -> iterator
+    insert(pos, x) -> std::basic_string< char >::iterator
     insert(pos, n, x)
     insert(p, n, c)
 
@@ -8310,8 +8313,8 @@ fail:
     erase(pos=0, n=std::basic_string< char >::npos) -> string
     erase(pos=0) -> string
     erase -> string
-    erase(pos) -> iterator
-    erase(first, last) -> iterator
+    erase(pos) -> std::basic_string< char >::iterator
+    erase(first, last) -> std::basic_string< char >::iterator
 
 Delete a portion of the string.
 */
@@ -8831,7 +8834,7 @@ fail:
   Document-method: LibSBML::string.c_str
 
   call-seq:
-    c_str -> char
+    c_str -> char const *
 
 Convert class to a String representation.
 */
@@ -8864,11 +8867,11 @@ fail:
   Document-method: LibSBML::string.find
 
   call-seq:
-    find(s, pos, n) -> size_type
-    find(str, pos=0) -> size_type
-    find(str) -> size_type
-    find(c, pos=0) -> size_type
-    find(c) -> size_type
+    find(s, pos, n) -> std::basic_string< char >::size_type
+    find(str, pos=0) -> std::basic_string< char >::size_type
+    find(str) -> std::basic_string< char >::size_type
+    find(c, pos=0) -> std::basic_string< char >::size_type
+    find(c) -> std::basic_string< char >::size_type
 
 Find an element in the class.
 */
@@ -9198,11 +9201,11 @@ fail:
   Document-method: LibSBML::string.rfind
 
   call-seq:
-    rfind(str, pos=std::basic_string< char >::npos) -> size_type
-    rfind(str) -> size_type
-    rfind(s, pos, n) -> size_type
-    rfind(c, pos=std::basic_string< char >::npos) -> size_type
-    rfind(c) -> size_type
+    rfind(str, pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+    rfind(str) -> std::basic_string< char >::size_type
+    rfind(s, pos, n) -> std::basic_string< char >::size_type
+    rfind(c, pos=std::basic_string< char >::npos) -> std::basic_string< char >::size_type
+    rfind(c) -> std::basic_string< char >::size_type
 
 Find an element in reverse usually starting from the end of the string.
 */
@@ -11069,7 +11072,7 @@ fail:
   Document-method: LibSBML::string.size
 
   call-seq:
-    size -> size_type
+    size -> std::basic_string< char >::size_type
 
 Size or Length of the string.
 */
@@ -11176,8 +11179,8 @@ fail:
     erase(pos=0, n=std::basic_string< char >::npos) -> string
     erase(pos=0) -> string
     erase -> string
-    erase(pos) -> iterator
-    erase(first, last) -> iterator
+    erase(pos) -> std::basic_string< char >::iterator
+    erase(first, last) -> std::basic_string< char >::iterator
 
 Delete a portion of the string.
 */
@@ -11738,7 +11741,7 @@ fail:
     insert(pos1, str, pos2, n) -> string
     insert(pos, s, n) -> string
     insert(pos, n, c) -> string
-    insert(pos, x) -> iterator
+    insert(pos, x) -> std::basic_string< char >::iterator
     insert(pos, n, x)
     insert(p, n, c)
 
@@ -12201,7 +12204,7 @@ fail:
   Document-method: LibSBML::string.push
 
   call-seq:
-    push(e) -> value_type
+    push(e) -> std::basic_string< char >::value_type const
 
 Add an element at the end of the string.
 */
@@ -12676,7 +12679,7 @@ fail:
     insert(pos1, str, pos2, n) -> string
     insert(pos, s, n) -> string
     insert(pos, n, c) -> string
-    insert(pos, x) -> iterator
+    insert(pos, x) -> std::basic_string< char >::iterator
     insert(pos, n, x)
     insert(p, n, c)
 
@@ -13985,7 +13988,7 @@ free_std_basic_string_Sl_char_Sg_(std::basic_string< char > *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassOstream;
+static swig_class SwigClassOstream;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -14035,7 +14038,7 @@ free_std_basic_ostream_Sl_char_Sg_(std::basic_ostream< char > *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassOstringstream;
+static swig_class SwigClassOstringstream;
 
 SWIGINTERN VALUE
 _wrap_new_Ostringstream__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -14450,7 +14453,7 @@ fail:
 }
 
 
-swig_class SwigClassIdList;
+static swig_class SwigClassIdList;
 
 SWIGINTERN VALUE
 _wrap_new_IdList__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -14770,7 +14773,7 @@ free_IdList(IdList *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassIdentifierTransformer;
+static swig_class SwigClassIdentifierTransformer;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -14890,7 +14893,7 @@ fail:
 }
 
 
-swig_class SwigClassElementFilter;
+static swig_class SwigClassElementFilter;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -15010,7 +15013,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLReader;
+static swig_class SwigClassSBMLReader;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -15282,7 +15285,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLWriter;
+static swig_class SwigClassSBMLWriter;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -15825,7 +15828,7 @@ fail:
 }
 
 
-swig_class SwigClassSBase;
+static swig_class SwigClassSBase;
 
 SWIGINTERN void
 free_SBase(SBase *arg1) {
@@ -21487,7 +21490,7 @@ fail:
 }
 
 
-swig_class SwigClassListOf;
+static swig_class SwigClassListOf;
 
 SWIGINTERN VALUE
 _wrap_new_ListOf__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -22605,7 +22608,7 @@ fail:
   Document-method: LibSBML::ListOf.each
 
   call-seq:
-    each(?)
+    each
 
 Iterate thru each element in the ListOf.  A block must be provided.
 */
@@ -22630,7 +22633,7 @@ fail:
 }
 
 
-swig_class SwigClassModel;
+static swig_class SwigClassModel;
 
 SWIGINTERN VALUE
 _wrap_new_Model__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -24659,7 +24662,9 @@ _wrap_Model_createReaction(int argc, VALUE *argv, VALUE self) {
   }
   arg1 = reinterpret_cast< Model * >(argp1);
   result = (Reaction *)(arg1)->createReaction();
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -29079,7 +29084,9 @@ _wrap_Model_getReaction__SWIG_0(int argc, VALUE *argv, VALUE self) {
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)((Model const *)arg1)->getReaction(arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -29111,7 +29118,9 @@ _wrap_Model_getReaction__SWIG_1(int argc, VALUE *argv, VALUE self) {
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->getReaction(arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -29148,7 +29157,9 @@ _wrap_Model_getReaction__SWIG_2(int argc, VALUE *argv, VALUE self) {
     arg2 = ptr;
   }
   result = (Reaction *)((Model const *)arg1)->getReaction((std::string const &)*arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return vresult;
 fail:
@@ -29187,7 +29198,9 @@ _wrap_Model_getReaction__SWIG_3(int argc, VALUE *argv, VALUE self) {
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->getReaction((std::string const &)*arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return vresult;
 fail:
@@ -32758,7 +32771,9 @@ _wrap_Model_removeReaction__SWIG_0(int argc, VALUE *argv, VALUE self) {
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->removeReaction(arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), SWIG_POINTER_OWN |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -32795,7 +32810,9 @@ _wrap_Model_removeReaction__SWIG_1(int argc, VALUE *argv, VALUE self) {
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->removeReaction((std::string const &)*arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), SWIG_POINTER_OWN |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return vresult;
 fail:
@@ -33101,7 +33118,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLDocument;
+static swig_class SwigClassSBMLDocument;
 
 SWIGINTERN VALUE
 _wrap_SBMLDocument_getDefaultLevel(int argc, VALUE *argv, VALUE self) {
@@ -34421,7 +34438,39 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_SBMLDocument_checkL1Compatibility(int argc, VALUE *argv, VALUE self) {
+_wrap_SBMLDocument_checkL1Compatibility__SWIG_0(int argc, VALUE *argv, VALUE self) {
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  unsigned int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "SBMLDocument *","checkL1Compatibility", 1, self )); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","checkL1Compatibility", 2, argv[0] ));
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL1Compatibility(arg2);
+  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_SBMLDocument_checkL1Compatibility__SWIG_1(int argc, VALUE *argv, VALUE self) {
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34444,8 +34493,85 @@ fail:
 }
 
 
+SWIGINTERN VALUE _wrap_SBMLDocument_checkL1Compatibility(int nargs, VALUE *args, VALUE self) {
+  int argc;
+  VALUE argv[3];
+  int ii;
+  
+  argc = nargs + 1;
+  argv[0] = self;
+  if (argc > 3) SWIG_fail;
+  for (ii = 1; (ii < argc); ++ii) {
+    argv[ii] = args[ii-1];
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL1Compatibility__SWIG_1(nargs, args, self);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL1Compatibility__SWIG_0(nargs, args, self);
+      }
+    }
+  }
+  
+fail:
+  Ruby_Format_OverloadedError( argc, 3, "SBMLDocument.checkL1Compatibility", 
+    "    unsigned int SBMLDocument.checkL1Compatibility(bool inConversion)\n"
+    "    unsigned int SBMLDocument.checkL1Compatibility()\n");
+  
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_0(int argc, VALUE *argv, VALUE self) {
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  unsigned int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "SBMLDocument *","checkL2v1Compatibility", 1, self )); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","checkL2v1Compatibility", 2, argv[0] ));
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL2v1Compatibility(arg2);
+  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
 SWIGINTERN VALUE
-_wrap_SBMLDocument_checkL2v1Compatibility(int argc, VALUE *argv, VALUE self) {
+_wrap_SBMLDocument_checkL2v1Compatibility__SWIG_1(int argc, VALUE *argv, VALUE self) {
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34468,8 +34594,85 @@ fail:
 }
 
 
+SWIGINTERN VALUE _wrap_SBMLDocument_checkL2v1Compatibility(int nargs, VALUE *args, VALUE self) {
+  int argc;
+  VALUE argv[3];
+  int ii;
+  
+  argc = nargs + 1;
+  argv[0] = self;
+  if (argc > 3) SWIG_fail;
+  for (ii = 1; (ii < argc); ++ii) {
+    argv[ii] = args[ii-1];
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL2v1Compatibility__SWIG_1(nargs, args, self);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL2v1Compatibility__SWIG_0(nargs, args, self);
+      }
+    }
+  }
+  
+fail:
+  Ruby_Format_OverloadedError( argc, 3, "SBMLDocument.checkL2v1Compatibility", 
+    "    unsigned int SBMLDocument.checkL2v1Compatibility(bool inConversion)\n"
+    "    unsigned int SBMLDocument.checkL2v1Compatibility()\n");
+  
+  return Qnil;
+}
+
+
 SWIGINTERN VALUE
-_wrap_SBMLDocument_checkL2v2Compatibility(int argc, VALUE *argv, VALUE self) {
+_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_0(int argc, VALUE *argv, VALUE self) {
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  unsigned int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "SBMLDocument *","checkL2v2Compatibility", 1, self )); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","checkL2v2Compatibility", 2, argv[0] ));
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL2v2Compatibility(arg2);
+  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_SBMLDocument_checkL2v2Compatibility__SWIG_1(int argc, VALUE *argv, VALUE self) {
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34492,8 +34695,85 @@ fail:
 }
 
 
+SWIGINTERN VALUE _wrap_SBMLDocument_checkL2v2Compatibility(int nargs, VALUE *args, VALUE self) {
+  int argc;
+  VALUE argv[3];
+  int ii;
+  
+  argc = nargs + 1;
+  argv[0] = self;
+  if (argc > 3) SWIG_fail;
+  for (ii = 1; (ii < argc); ++ii) {
+    argv[ii] = args[ii-1];
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL2v2Compatibility__SWIG_1(nargs, args, self);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL2v2Compatibility__SWIG_0(nargs, args, self);
+      }
+    }
+  }
+  
+fail:
+  Ruby_Format_OverloadedError( argc, 3, "SBMLDocument.checkL2v2Compatibility", 
+    "    unsigned int SBMLDocument.checkL2v2Compatibility(bool inConversion)\n"
+    "    unsigned int SBMLDocument.checkL2v2Compatibility()\n");
+  
+  return Qnil;
+}
+
+
 SWIGINTERN VALUE
-_wrap_SBMLDocument_checkL2v3Compatibility(int argc, VALUE *argv, VALUE self) {
+_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_0(int argc, VALUE *argv, VALUE self) {
+  SBMLDocument *arg1 = (SBMLDocument *) 0 ;
+  bool arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  bool val2 ;
+  int ecode2 = 0 ;
+  unsigned int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_SBMLDocument, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "SBMLDocument *","checkL2v3Compatibility", 1, self )); 
+  }
+  arg1 = reinterpret_cast< SBMLDocument * >(argp1);
+  ecode2 = SWIG_AsVal_bool(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "bool","checkL2v3Compatibility", 2, argv[0] ));
+  } 
+  arg2 = static_cast< bool >(val2);
+  result = (unsigned int)(arg1)->checkL2v3Compatibility(arg2);
+  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_SBMLDocument_checkL2v3Compatibility__SWIG_1(int argc, VALUE *argv, VALUE self) {
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -34516,6 +34796,51 @@ fail:
 }
 
 
+SWIGINTERN VALUE _wrap_SBMLDocument_checkL2v3Compatibility(int nargs, VALUE *args, VALUE self) {
+  int argc;
+  VALUE argv[3];
+  int ii;
+  
+  argc = nargs + 1;
+  argv[0] = self;
+  if (argc > 3) SWIG_fail;
+  for (ii = 1; (ii < argc); ++ii) {
+    argv[ii] = args[ii-1];
+  }
+  if (argc == 1) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      return _wrap_SBMLDocument_checkL2v3Compatibility__SWIG_1(nargs, args, self);
+    }
+  }
+  if (argc == 2) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_SBMLDocument, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      {
+        int res = SWIG_AsVal_bool(argv[1], NULL);
+        _v = SWIG_CheckState(res);
+      }
+      if (_v) {
+        return _wrap_SBMLDocument_checkL2v3Compatibility__SWIG_0(nargs, args, self);
+      }
+    }
+  }
+  
+fail:
+  Ruby_Format_OverloadedError( argc, 3, "SBMLDocument.checkL2v3Compatibility", 
+    "    unsigned int SBMLDocument.checkL2v3Compatibility(bool inConversion)\n"
+    "    unsigned int SBMLDocument.checkL2v3Compatibility()\n");
+  
+  return Qnil;
+}
+
+
 SWIGINTERN VALUE
 _wrap_SBMLDocument_checkL2v4Compatibility(int argc, VALUE *argv, VALUE self) {
   SBMLDocument *arg1 = (SBMLDocument *) 0 ;
@@ -36029,7 +36354,7 @@ fail:
 }
 
 
-swig_class SwigClassFunctionDefinition;
+static swig_class SwigClassFunctionDefinition;
 
 SWIGINTERN VALUE
 _wrap_new_FunctionDefinition__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -36944,7 +37269,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfFunctionDefinitions;
+static swig_class SwigClassListOfFunctionDefinitions;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfFunctionDefinitions__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -37644,7 +37969,7 @@ fail:
 }
 
 
-swig_class SwigClassUnit;
+static swig_class SwigClassUnit;
 
 SWIGINTERN VALUE
 _wrap_new_Unit__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -39642,7 +39967,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfUnits;
+static swig_class SwigClassListOfUnits;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfUnits__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -40022,7 +40347,7 @@ free_ListOfUnits(ListOfUnits *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassUnitDefinition;
+static swig_class SwigClassUnitDefinition;
 
 SWIGINTERN VALUE
 _wrap_new_UnitDefinition__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -41513,7 +41838,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfUnitDefinitions;
+static swig_class SwigClassListOfUnitDefinitions;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfUnitDefinitions__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -42128,7 +42453,7 @@ free_ListOfUnitDefinitions(ListOfUnitDefinitions *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassCompartmentType;
+static swig_class SwigClassCompartmentType;
 
 SWIGINTERN VALUE
 _wrap_new_CompartmentType__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -42633,7 +42958,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfCompartmentTypes;
+static swig_class SwigClassListOfCompartmentTypes;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfCompartmentTypes__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -43207,7 +43532,7 @@ free_ListOfCompartmentTypes(ListOfCompartmentTypes *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassSpeciesType;
+static swig_class SwigClassSpeciesType;
 
 SWIGINTERN VALUE
 _wrap_new_SpeciesType__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -43712,7 +44037,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfSpeciesTypes;
+static swig_class SwigClassListOfSpeciesTypes;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfSpeciesTypes__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -44286,7 +44611,7 @@ free_ListOfSpeciesTypes(ListOfSpeciesTypes *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassCompartment;
+static swig_class SwigClassCompartment;
 
 SWIGINTERN VALUE
 _wrap_new_Compartment__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -45857,7 +46182,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfCompartments;
+static swig_class SwigClassListOfCompartments;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfCompartments__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -46431,7 +46756,7 @@ free_ListOfCompartments(ListOfCompartments *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassSpecies;
+static swig_class SwigClassSpecies;
 
 SWIGINTERN VALUE
 _wrap_new_Species__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -48436,7 +48761,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfSpecies;
+static swig_class SwigClassListOfSpecies;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfSpecies__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -49010,7 +49335,7 @@ free_ListOfSpecies(ListOfSpecies *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassParameter;
+static swig_class SwigClassParameter;
 
 SWIGINTERN VALUE
 _wrap_new_Parameter__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -50022,7 +50347,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfParameters;
+static swig_class SwigClassListOfParameters;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfParameters__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -50596,7 +50921,7 @@ free_ListOfParameters(ListOfParameters *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassLocalParameter;
+static swig_class SwigClassLocalParameter;
 
 SWIGINTERN VALUE
 _wrap_new_LocalParameter__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -51144,7 +51469,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfLocalParameters;
+static swig_class SwigClassListOfLocalParameters;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfLocalParameters__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -51759,7 +52084,7 @@ free_ListOfLocalParameters(ListOfLocalParameters *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassInitialAssignment;
+static swig_class SwigClassInitialAssignment;
 
 SWIGINTERN VALUE
 _wrap_new_InitialAssignment__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -52713,7 +53038,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfInitialAssignments;
+static swig_class SwigClassListOfInitialAssignments;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfInitialAssignments__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -53328,7 +53653,7 @@ free_ListOfInitialAssignments(ListOfInitialAssignments *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassRule;
+static swig_class SwigClassRule;
 
 SWIGINTERN void
 free_Rule(Rule *arg1) {
@@ -54581,7 +54906,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfRules;
+static swig_class SwigClassListOfRules;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfRules__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -55208,7 +55533,7 @@ free_ListOfRules(ListOfRules *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassAlgebraicRule;
+static swig_class SwigClassAlgebraicRule;
 
 SWIGINTERN VALUE
 _wrap_new_AlgebraicRule__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -55417,7 +55742,7 @@ fail:
 }
 
 
-swig_class SwigClassAssignmentRule;
+static swig_class SwigClassAssignmentRule;
 
 SWIGINTERN VALUE
 _wrap_new_AssignmentRule__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -55677,7 +56002,7 @@ fail:
 }
 
 
-swig_class SwigClassRateRule;
+static swig_class SwigClassRateRule;
 
 SWIGINTERN VALUE
 _wrap_new_RateRule__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -55937,7 +56262,7 @@ fail:
 }
 
 
-swig_class SwigClassConstraint;
+static swig_class SwigClassConstraint;
 
 SWIGINTERN VALUE
 _wrap_new_Constraint__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -56752,7 +57077,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfConstraints;
+static swig_class SwigClassListOfConstraints;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfConstraints__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -57132,7 +57457,7 @@ free_ListOfConstraints(ListOfConstraints *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassReaction;
+static swig_class SwigClassReaction;
 
 SWIGINTERN VALUE
 _wrap_new_Reaction__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -57360,7 +57685,9 @@ _wrap_Reaction_clone(int argc, VALUE *argv, VALUE self) {
   }
   arg1 = reinterpret_cast< Reaction * >(argp1);
   result = (Reaction *)((Reaction const *)arg1)->clone();
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), SWIG_POINTER_OWN |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -60684,7 +61011,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfReactions;
+static swig_class SwigClassListOfReactions;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfReactions__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -60936,7 +61263,9 @@ _wrap_ListOfReactions_get__SWIG_0(int argc, VALUE *argv, VALUE self) {
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->get(arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -60968,7 +61297,9 @@ _wrap_ListOfReactions_get__SWIG_1(int argc, VALUE *argv, VALUE self) {
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)((ListOfReactions const *)arg1)->get(arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -61005,7 +61336,9 @@ _wrap_ListOfReactions_get__SWIG_2(int argc, VALUE *argv, VALUE self) {
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->get((std::string const &)*arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return vresult;
 fail:
@@ -61044,7 +61377,9 @@ _wrap_ListOfReactions_get__SWIG_3(int argc, VALUE *argv, VALUE self) {
     arg2 = ptr;
   }
   result = (Reaction *)((ListOfReactions const *)arg1)->get((std::string const &)*arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, 0 |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), 0 |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return vresult;
 fail:
@@ -61157,7 +61492,9 @@ _wrap_ListOfReactions_remove__SWIG_0(int argc, VALUE *argv, VALUE self) {
   } 
   arg2 = static_cast< unsigned int >(val2);
   result = (Reaction *)(arg1)->remove(arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), SWIG_POINTER_OWN |  0 );
+  }
   return vresult;
 fail:
   return Qnil;
@@ -61194,7 +61531,9 @@ _wrap_ListOfReactions_remove__SWIG_1(int argc, VALUE *argv, VALUE self) {
     arg2 = ptr;
   }
   result = (Reaction *)(arg1)->remove((std::string const &)*arg2);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Reaction, SWIG_POINTER_OWN |  0 );
+  {
+    vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), GetDowncastSwigType(result), SWIG_POINTER_OWN |  0 );
+  }
   if (SWIG_IsNewObj(res2)) delete arg2;
   return vresult;
 fail:
@@ -61258,7 +61597,7 @@ free_ListOfReactions(ListOfReactions *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassKineticLaw;
+static swig_class SwigClassKineticLaw;
 
 SWIGINTERN VALUE
 _wrap_new_KineticLaw__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -63588,7 +63927,7 @@ fail:
 }
 
 
-swig_class SwigClassSimpleSpeciesReference;
+static swig_class SwigClassSimpleSpeciesReference;
 
 SWIGINTERN void
 free_SimpleSpeciesReference(SimpleSpeciesReference *arg1) {
@@ -64004,7 +64343,7 @@ fail:
 }
 
 
-swig_class SwigClassSpeciesReference;
+static swig_class SwigClassSpeciesReference;
 
 SWIGINTERN VALUE
 _wrap_new_SpeciesReference__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -65025,7 +65364,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfSpeciesReferences;
+static swig_class SwigClassListOfSpeciesReferences;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfSpeciesReferences__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -65611,7 +65950,7 @@ free_ListOfSpeciesReferences(ListOfSpeciesReferences *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassModifierSpeciesReference;
+static swig_class SwigClassModifierSpeciesReference;
 
 SWIGINTERN VALUE
 _wrap_new_ModifierSpeciesReference__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -65868,7 +66207,7 @@ fail:
 }
 
 
-swig_class SwigClassEvent;
+static swig_class SwigClassEvent;
 
 SWIGINTERN VALUE
 _wrap_new_Event__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -67900,7 +68239,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfEvents;
+static swig_class SwigClassListOfEvents;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfEvents__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -68474,7 +68813,7 @@ free_ListOfEvents(ListOfEvents *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassEventAssignment;
+static swig_class SwigClassEventAssignment;
 
 SWIGINTERN VALUE
 _wrap_new_EventAssignment__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -69428,7 +69767,7 @@ fail:
 }
 
 
-swig_class SwigClassListOfEventAssignments;
+static swig_class SwigClassListOfEventAssignments;
 
 SWIGINTERN VALUE
 _wrap_new_ListOfEventAssignments__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -70043,7 +70382,7 @@ free_ListOfEventAssignments(ListOfEventAssignments *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassTrigger;
+static swig_class SwigClassTrigger;
 
 SWIGINTERN VALUE
 _wrap_new_Trigger__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -70832,7 +71171,7 @@ fail:
 }
 
 
-swig_class SwigClassDelay;
+static swig_class SwigClassDelay;
 
 SWIGINTERN VALUE
 _wrap_new_Delay__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -71563,7 +71902,7 @@ fail:
 }
 
 
-swig_class SwigClassPriority;
+static swig_class SwigClassPriority;
 
 SWIGINTERN VALUE
 _wrap_new_Priority__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -72120,7 +72459,7 @@ fail:
 }
 
 
-swig_class SwigClassSBO;
+static swig_class SwigClassSBO;
 
 SWIGINTERN VALUE
 _wrap_SBO_isQuantitativeParameter(int argc, VALUE *argv, VALUE self) {
@@ -72942,6 +73281,30 @@ fail:
 }
 
 
+SWIGINTERN VALUE
+_wrap_SBO_getParentBranch(int argc, VALUE *argv, VALUE self) {
+  unsigned int arg1 ;
+  unsigned int val1 ;
+  int ecode1 = 0 ;
+  unsigned int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_unsigned_SS_int(argv[0], &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "unsigned int","SBO::getParentBranch", 1, argv[0] ));
+  } 
+  arg1 = static_cast< unsigned int >(val1);
+  result = (unsigned int)SBO::getParentBranch(arg1);
+  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
 _wrap_SBO_allocate(VALUE self) {
@@ -72982,7 +73345,7 @@ free_SBO(SBO *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassSyntaxChecker;
+static swig_class SwigClassSyntaxChecker;
 
 SWIGINTERN VALUE
 _wrap_SyntaxChecker_isValidSBMLSId(int argc, VALUE *argv, VALUE self) {
@@ -73279,7 +73642,7 @@ free_SyntaxChecker(SyntaxChecker *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassStoichiometryMath;
+static swig_class SwigClassStoichiometryMath;
 
 SWIGINTERN VALUE
 _wrap_new_StoichiometryMath__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -74010,7 +74373,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLNamespaces;
+static swig_class SwigClassSBMLNamespaces;
 
 SWIGINTERN VALUE
 _wrap_new_SBMLNamespaces__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -75591,7 +75954,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLTransforms;
+static swig_class SwigClassSBMLTransforms;
 
 SWIGINTERN VALUE
 _wrap_SBMLTransforms_replaceFD__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -76012,7 +76375,7 @@ free_SBMLTransforms(SBMLTransforms *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassSBMLConstructorException;
+static swig_class SwigClassSBMLConstructorException;
 
 SWIGINTERN VALUE
 _wrap_new_SBMLConstructorException__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -76235,7 +76598,7 @@ fail:
 }
 
 
-swig_class SwigClassConversionOption;
+static swig_class SwigClassConversionOption;
 
 SWIGINTERN VALUE
 _wrap_new_ConversionOption__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -77709,7 +78072,7 @@ fail:
 }
 
 
-swig_class SwigClassConversionProperties;
+static swig_class SwigClassConversionProperties;
 
 SWIGINTERN VALUE
 _wrap_new_ConversionProperties__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -79787,7 +80150,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLConverter;
+static swig_class SwigClassSBMLConverter;
 
 SWIGINTERN VALUE
 _wrap_new_SBMLConverter__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -80480,7 +80843,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLConverterRegistry;
+static swig_class SwigClassSBMLConverterRegistry;
 
 SWIGINTERN VALUE
 _wrap_SBMLConverterRegistry_getInstance(int argc, VALUE *argv, VALUE self) {
@@ -80643,7 +81006,7 @@ free_SBMLConverterRegistry(SBMLConverterRegistry *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassSBMLFunctionDefinitionConverter;
+static swig_class SwigClassSBMLFunctionDefinitionConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLFunctionDefinitionConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -80873,7 +81236,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLIdConverter;
+static swig_class SwigClassSBMLIdConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLIdConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -81103,7 +81466,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLInferUnitsConverter;
+static swig_class SwigClassSBMLInferUnitsConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLInferUnitsConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -81333,7 +81696,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLInitialAssignmentConverter;
+static swig_class SwigClassSBMLInitialAssignmentConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLInitialAssignmentConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -81563,7 +81926,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLLevelVersionConverter;
+static swig_class SwigClassSBMLLevelVersionConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLLevelVersionConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -81889,7 +82252,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLLevel1Version1Converter;
+static swig_class SwigClassSBMLLevel1Version1Converter;
 
 SWIGINTERN VALUE
 _wrap_SBMLLevel1Version1Converter_init(int argc, VALUE *argv, VALUE self) {
@@ -82119,7 +82482,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLLocalParameterConverter;
+static swig_class SwigClassSBMLLocalParameterConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLLocalParameterConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -82349,7 +82712,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLReactionConverter;
+static swig_class SwigClassSBMLReactionConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLReactionConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -82611,7 +82974,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLRuleConverter;
+static swig_class SwigClassSBMLRuleConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLRuleConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -82841,7 +83204,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLStripPackageConverter;
+static swig_class SwigClassSBMLStripPackageConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLStripPackageConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -83119,7 +83482,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLUnitsConverter;
+static swig_class SwigClassSBMLUnitsConverter;
 
 SWIGINTERN VALUE
 _wrap_SBMLUnitsConverter_init(int argc, VALUE *argv, VALUE self) {
@@ -83349,7 +83712,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLValidator;
+static swig_class SwigClassSBMLValidator;
 
 SWIGINTERN VALUE
 _wrap_new_SBMLValidator__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -84117,7 +84480,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLExternalValidator;
+static swig_class SwigClassSBMLExternalValidator;
 
 SWIGINTERN VALUE
 _wrap_new_SBMLExternalValidator__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -84555,7 +84918,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLAttributes;
+static swig_class SwigClassXMLAttributes;
 
 SWIGINTERN VALUE
 _wrap_new_XMLAttributes__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -86222,7 +86585,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLConstructorException;
+static swig_class SwigClassXMLConstructorException;
 
 SWIGINTERN VALUE
 _wrap_new_XMLConstructorException__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -86322,7 +86685,7 @@ free_XMLConstructorException(XMLConstructorException *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassXMLNamespaces;
+static swig_class SwigClassXMLNamespaces;
 
 SWIGINTERN VALUE
 _wrap_new_XMLNamespaces__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -87350,7 +87713,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLToken;
+static swig_class SwigClassXMLToken;
 
 SWIGINTERN VALUE
 _wrap_new_XMLToken__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -91232,7 +91595,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLNode;
+static swig_class SwigClassXMLNode;
 
 SWIGINTERN VALUE
 _wrap_new_XMLNode__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -93097,7 +93460,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLTriple;
+static swig_class SwigClassXMLTriple;
 
 SWIGINTERN VALUE
 _wrap_new_XMLTriple__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -93527,7 +93890,7 @@ free_XMLTriple(XMLTriple *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassXMLOutputStream;
+static swig_class SwigClassXMLOutputStream;
 
 SWIGINTERN VALUE
 _wrap_new_XMLOutputStream__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -95975,7 +96338,66 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_XMLOutputStream_writeComment(int argc, VALUE *argv, VALUE self) {
+_wrap_XMLOutputStream_writeComment__SWIG_0(int argc, VALUE *argv, VALUE self) {
+  XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
+  std::string *arg2 = 0 ;
+  std::string *arg3 = 0 ;
+  bool arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 = SWIG_OLDOBJ ;
+  int res3 = SWIG_OLDOBJ ;
+  bool val4 ;
+  int ecode4 = 0 ;
+  
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_XMLOutputStream, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "XMLOutputStream *","writeComment", 1, self )); 
+  }
+  arg1 = reinterpret_cast< XMLOutputStream * >(argp1);
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res2 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[0], &ptr);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "std::string const &","writeComment", 2, argv[0] )); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","writeComment", 2, argv[0])); 
+    }
+    arg2 = ptr;
+  }
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res3 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[1], &ptr);
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "std::string const &","writeComment", 3, argv[1] )); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","writeComment", 3, argv[1])); 
+    }
+    arg3 = ptr;
+  }
+  ecode4 = SWIG_AsVal_bool(argv[2], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "bool","writeComment", 4, argv[2] ));
+  } 
+  arg4 = static_cast< bool >(val4);
+  (arg1)->writeComment((std::string const &)*arg2,(std::string const &)*arg3,arg4);
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return Qnil;
+fail:
+  if (SWIG_IsNewObj(res2)) delete arg2;
+  if (SWIG_IsNewObj(res3)) delete arg3;
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_writeComment__SWIG_1(int argc, VALUE *argv, VALUE self) {
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
   std::string *arg2 = 0 ;
   std::string *arg3 = 0 ;
@@ -96025,6 +96447,67 @@ fail:
 }
 
 
+SWIGINTERN VALUE _wrap_XMLOutputStream_writeComment(int nargs, VALUE *args, VALUE self) {
+  int argc;
+  VALUE argv[5];
+  int ii;
+  
+  argc = nargs + 1;
+  argv[0] = self;
+  if (argc > 5) SWIG_fail;
+  for (ii = 1; (ii < argc); ++ii) {
+    argv[ii] = args[ii-1];
+  }
+  if (argc == 3) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_XMLOutputStream, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[1], (std::basic_string<char>**)(0));
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[2], (std::basic_string<char>**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          return _wrap_XMLOutputStream_writeComment__SWIG_1(nargs, args, self);
+        }
+      }
+    }
+  }
+  if (argc == 4) {
+    int _v;
+    void *vptr = 0;
+    int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_XMLOutputStream, 0);
+    _v = SWIG_CheckState(res);
+    if (_v) {
+      int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[1], (std::basic_string<char>**)(0));
+      _v = SWIG_CheckState(res);
+      if (_v) {
+        int res = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[2], (std::basic_string<char>**)(0));
+        _v = SWIG_CheckState(res);
+        if (_v) {
+          {
+            int res = SWIG_AsVal_bool(argv[3], NULL);
+            _v = SWIG_CheckState(res);
+          }
+          if (_v) {
+            return _wrap_XMLOutputStream_writeComment__SWIG_0(nargs, args, self);
+          }
+        }
+      }
+    }
+  }
+  
+fail:
+  Ruby_Format_OverloadedError( argc, 5, "XMLOutputStream.writeComment", 
+    "    void XMLOutputStream.writeComment(std::string const &programName, std::string const &programVersion, bool writeTimestamp)\n"
+    "    void XMLOutputStream.writeComment(std::string const &programName, std::string const &programVersion)\n");
+  
+  return Qnil;
+}
+
+
 SWIGINTERN VALUE
 _wrap_XMLOutputStream_downIndent(int argc, VALUE *argv, VALUE self) {
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
@@ -96123,6 +96606,168 @@ fail:
 
 
 SWIGINTERN VALUE
+_wrap_XMLOutputStream_getWriteComment(int argc, VALUE *argv, VALUE self) {
+  bool result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (bool)XMLOutputStream::getWriteComment();
+  vresult = SWIG_From_bool(static_cast< bool >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_setWriteComment(int argc, VALUE *argv, VALUE self) {
+  bool arg1 ;
+  bool val1 ;
+  int ecode1 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_bool(argv[0], &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "bool","XMLOutputStream::setWriteComment", 1, argv[0] ));
+  } 
+  arg1 = static_cast< bool >(val1);
+  XMLOutputStream::setWriteComment(arg1);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_getWriteTimestamp(int argc, VALUE *argv, VALUE self) {
+  bool result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (bool)XMLOutputStream::getWriteTimestamp();
+  vresult = SWIG_From_bool(static_cast< bool >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_setWriteTimestamp(int argc, VALUE *argv, VALUE self) {
+  bool arg1 ;
+  bool val1 ;
+  int ecode1 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_bool(argv[0], &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "bool","XMLOutputStream::setWriteTimestamp", 1, argv[0] ));
+  } 
+  arg1 = static_cast< bool >(val1);
+  XMLOutputStream::setWriteTimestamp(arg1);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_getLibraryName(int argc, VALUE *argv, VALUE self) {
+  std::string result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = XMLOutputStream::getLibraryName();
+  vresult = SWIG_From_std_basic_string_Sl_char_Sg_(static_cast< std::basic_string<char> >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_setLibraryName(int argc, VALUE *argv, VALUE self) {
+  std::string *arg1 = 0 ;
+  int res1 = SWIG_OLDOBJ ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res1 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[0], &ptr);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::string const &","XMLOutputStream::setLibraryName", 1, argv[0] )); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","XMLOutputStream::setLibraryName", 1, argv[0])); 
+    }
+    arg1 = ptr;
+  }
+  XMLOutputStream::setLibraryName((std::basic_string< char,std::char_traits< char >,std::allocator< char > > const &)*arg1);
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return Qnil;
+fail:
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_getLibraryVersion(int argc, VALUE *argv, VALUE self) {
+  std::string result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = XMLOutputStream::getLibraryVersion();
+  vresult = SWIG_From_std_basic_string_Sl_char_Sg_(static_cast< std::basic_string<char> >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_XMLOutputStream_setLibraryVersion(int argc, VALUE *argv, VALUE self) {
+  std::string *arg1 = 0 ;
+  int res1 = SWIG_OLDOBJ ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  {
+    std::basic_string<char> *ptr = (std::basic_string<char> *)0;
+    res1 = SWIG_AsPtr_std_basic_string_Sl_char_Sg_(argv[0], &ptr);
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "std::string const &","XMLOutputStream::setLibraryVersion", 1, argv[0] )); 
+    }
+    if (!ptr) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "std::string const &","XMLOutputStream::setLibraryVersion", 1, argv[0])); 
+    }
+    arg1 = ptr;
+  }
+  XMLOutputStream::setLibraryVersion((std::basic_string< char,std::char_traits< char >,std::allocator< char > > const &)*arg1);
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return Qnil;
+fail:
+  if (SWIG_IsNewObj(res1)) delete arg1;
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
 _wrap_XMLOutputStream_writeAttributeBool__SWIG_0(int argc, VALUE *argv, VALUE self) {
   XMLOutputStream *arg1 = (XMLOutputStream *) 0 ;
   std::string *arg2 = 0 ;
@@ -96270,7 +96915,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLOwningOutputStringStream;
+static swig_class SwigClassXMLOwningOutputStringStream;
 
 SWIGINTERN VALUE
 _wrap_new_XMLOwningOutputStringStream__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -96597,7 +97242,7 @@ free_XMLOwningOutputStringStream(XMLOwningOutputStringStream *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassXMLOwningOutputFileStream;
+static swig_class SwigClassXMLOwningOutputFileStream;
 
 SWIGINTERN VALUE
 _wrap_new_XMLOwningOutputFileStream__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -97020,7 +97665,7 @@ free_XMLOwningOutputFileStream(XMLOwningOutputFileStream *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassXMLInputStream;
+static swig_class SwigClassXMLInputStream;
 
 SWIGINTERN VALUE
 _wrap_new_XMLInputStream__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -97864,7 +98509,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLError;
+static swig_class SwigClassXMLError;
 
 SWIGINTERN VALUE
 _wrap_new_XMLError__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -99025,7 +99670,7 @@ fail:
 }
 
 
-swig_class SwigClassXMLErrorLog;
+static swig_class SwigClassXMLErrorLog;
 
 SWIGINTERN VALUE
 _wrap_XMLErrorLog_getNumErrors(int argc, VALUE *argv, VALUE self) {
@@ -99748,7 +100393,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLErrorLog;
+static swig_class SwigClassSBMLErrorLog;
 
 SWIGINTERN VALUE
 _wrap_SBMLErrorLog_getError(int argc, VALUE *argv, VALUE self) {
@@ -102191,7 +102836,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLError;
+static swig_class SwigClassSBMLError;
 
 SWIGINTERN VALUE
 _wrap_new_SBMLError__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -103328,7 +103973,7 @@ free_SBMLError(SBMLError *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassCVTerm;
+static swig_class SwigClassCVTerm;
 
 SWIGINTERN VALUE
 _wrap_new_CVTerm__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -104857,7 +105502,109 @@ fail:
 }
 
 
-swig_class SwigClassDate;
+SWIGINTERN VALUE
+_wrap_ModelQualifierType_toString(int argc, VALUE *argv, VALUE self) {
+  ModelQualifierType_t arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  char *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(argv[0], &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "ModelQualifierType_t","ModelQualifierType_toString", 1, argv[0] ));
+  } 
+  arg1 = static_cast< ModelQualifierType_t >(val1);
+  result = (char *)ModelQualifierType_toString(arg1);
+  vresult = SWIG_FromCharPtr((const char *)result);
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_BiolQualifierType_toString(int argc, VALUE *argv, VALUE self) {
+  BiolQualifierType_t arg1 ;
+  int val1 ;
+  int ecode1 = 0 ;
+  char *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  ecode1 = SWIG_AsVal_int(argv[0], &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "BiolQualifierType_t","BiolQualifierType_toString", 1, argv[0] ));
+  } 
+  arg1 = static_cast< BiolQualifierType_t >(val1);
+  result = (char *)BiolQualifierType_toString(arg1);
+  vresult = SWIG_FromCharPtr((const char *)result);
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_ModelQualifierType_fromString(int argc, VALUE *argv, VALUE self) {
+  char *arg1 = (char *) 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  ModelQualifierType_t result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","ModelQualifierType_fromString", 1, argv[0] ));
+  }
+  arg1 = reinterpret_cast< char * >(buf1);
+  result = (ModelQualifierType_t)ModelQualifierType_fromString((char const *)arg1);
+  vresult = SWIG_From_int(static_cast< int >(result));
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return vresult;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_BiolQualifierType_fromString(int argc, VALUE *argv, VALUE self) {
+  char *arg1 = (char *) 0 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
+  BiolQualifierType_t result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char const *","BiolQualifierType_fromString", 1, argv[0] ));
+  }
+  arg1 = reinterpret_cast< char * >(buf1);
+  result = (BiolQualifierType_t)BiolQualifierType_fromString((char const *)arg1);
+  vresult = SWIG_From_int(static_cast< int >(result));
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return vresult;
+fail:
+  if (alloc1 == SWIG_NEWOBJ) delete[] buf1;
+  return Qnil;
+}
+
+
+static swig_class SwigClassDate;
 
 SWIGINTERN VALUE
 _wrap_new_Date__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -106497,7 +107244,7 @@ fail:
 }
 
 
-swig_class SwigClassModelCreator;
+static swig_class SwigClassModelCreator;
 
 SWIGINTERN VALUE
 _wrap_new_ModelCreator__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -107297,7 +108044,7 @@ fail:
 }
 
 
-swig_class SwigClassModelHistory;
+static swig_class SwigClassModelHistory;
 
 SWIGINTERN VALUE
 _wrap_new_ModelHistory__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -107948,7 +108695,7 @@ fail:
 }
 
 
-swig_class SwigClassRDFAnnotationParser;
+static swig_class SwigClassRDFAnnotationParser;
 
 SWIGINTERN VALUE
 _wrap_RDFAnnotationParser_parseRDFAnnotation__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -108634,7 +109381,7 @@ free_RDFAnnotationParser(RDFAnnotationParser *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassISBMLExtensionNamespaces;
+static swig_class SwigClassISBMLExtensionNamespaces;
 
 SWIGINTERN void
 free_ISBMLExtensionNamespaces(ISBMLExtensionNamespaces *arg1) {
@@ -108743,7 +109490,7 @@ fail:
 }
 
 
-swig_class SwigClassSBaseExtensionPoint;
+static swig_class SwigClassSBaseExtensionPoint;
 
 SWIGINTERN VALUE
 _wrap_new_SBaseExtensionPoint__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -109170,7 +109917,7 @@ fail:
 }
 
 
-swig_class SwigClassSBasePlugin;
+static swig_class SwigClassSBasePlugin;
 
 SWIGINTERN void
 free_SBasePlugin(SBasePlugin *arg1) {
@@ -110502,7 +111249,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLDocumentPlugin;
+static swig_class SwigClassSBMLDocumentPlugin;
 
 SWIGINTERN VALUE
 _wrap_new_SBMLDocumentPlugin__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -110841,7 +111588,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLExtension;
+static swig_class SwigClassSBMLExtension;
 
 SWIGINTERN void
 free_SBMLExtension(SBMLExtension *arg1) {
@@ -111679,7 +112426,7 @@ fail:
 }
 
 
-swig_class SwigClassSBMLExtensionException;
+static swig_class SwigClassSBMLExtensionException;
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
@@ -111736,7 +112483,7 @@ free_SBMLExtensionException(SBMLExtensionException *arg1) {
     delete arg1;
 }
 
-swig_class SwigClassSBMLExtensionRegistry;
+static swig_class SwigClassSBMLExtensionRegistry;
 
 SWIGINTERN VALUE
 _wrap_SBMLExtensionRegistry_getInstance(int argc, VALUE *argv, VALUE self) {
@@ -112916,7 +113663,7 @@ fail:
 }
 
 
-swig_class SwigClassASTBase;
+static swig_class SwigClassASTBase;
 
 SWIGINTERN void
 free_ASTBase(ASTBase *arg1) {
@@ -115747,7 +116494,7 @@ fail:
 }
 
 
-swig_class SwigClassASTNode;
+static swig_class SwigClassASTNode;
 
 SWIGINTERN VALUE
 _wrap_new_ASTNode__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -119604,6 +120351,30 @@ fail:
 
 
 SWIGINTERN VALUE
+_wrap_ASTNode_getNumPiece(int argc, VALUE *argv, VALUE self) {
+  ASTNode *arg1 = (ASTNode *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  unsigned int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_ASTNode, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "ASTNode const *","getNumPiece", 1, self )); 
+  }
+  arg1 = reinterpret_cast< ASTNode * >(argp1);
+  result = (unsigned int)((ASTNode const *)arg1)->getNumPiece();
+  vresult = SWIG_From_unsigned_SS_int(static_cast< unsigned int >(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
 _wrap_ASTNode_getListOfNodes(int argc, VALUE *argv, VALUE self) {
   ASTNode *arg1 = (ASTNode *) 0 ;
   void *argp1 = 0 ;
@@ -119627,7 +120398,7 @@ fail:
 }
 
 
-swig_class SwigClassMathML;
+static swig_class SwigClassMathML;
 
 SWIGINTERN VALUE
 _wrap_new_MathML__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -120101,7 +120872,7 @@ fail:
 }
 
 
-swig_class SwigClassL3ParserSettings;
+static swig_class SwigClassL3ParserSettings;
 
 SWIGINTERN VALUE
 _wrap_new_L3ParserSettings__SWIG_0(int argc, VALUE *argv, VALUE self) {
@@ -120930,7 +121701,7 @@ fail:
 }
 
 
-swig_class SwigClassASTBasePlugin;
+static swig_class SwigClassASTBasePlugin;
 
 SWIGINTERN void
 free_ASTBasePlugin(ASTBasePlugin *arg1) {
@@ -124408,9 +125179,9 @@ SWIGEXPORT void Init_libSBML(void) {
   rb_define_singleton_method(mLibSBML, "cout", VALUEFUNC(_wrap_cout_get), 0);
   rb_define_singleton_method(mLibSBML, "cerr", VALUEFUNC(_wrap_cerr_get), 0);
   rb_define_singleton_method(mLibSBML, "clog", VALUEFUNC(_wrap_clog_get), 0);
-  rb_define_const(mLibSBML, "LIBSBML_DOTTED_VERSION", SWIG_FromCharPtr("5.12.0"));
-  rb_define_const(mLibSBML, "LIBSBML_VERSION", SWIG_From_int(static_cast< int >(51200)));
-  rb_define_const(mLibSBML, "LIBSBML_VERSION_STRING", SWIG_FromCharPtr("51200"));
+  rb_define_const(mLibSBML, "LIBSBML_DOTTED_VERSION", SWIG_FromCharPtr("5.13.0"));
+  rb_define_const(mLibSBML, "LIBSBML_VERSION", SWIG_From_int(static_cast< int >(51300)));
+  rb_define_const(mLibSBML, "LIBSBML_VERSION_STRING", SWIG_FromCharPtr("51300"));
   rb_define_module_function(mLibSBML, "getLibSBMLVersion", VALUEFUNC(_wrap_getLibSBMLVersion), -1);
   rb_define_module_function(mLibSBML, "getLibSBMLDottedVersion", VALUEFUNC(_wrap_getLibSBMLDottedVersion), -1);
   rb_define_module_function(mLibSBML, "getLibSBMLVersionString", VALUEFUNC(_wrap_getLibSBMLVersionString), -1);
@@ -124431,6 +125202,7 @@ SWIGEXPORT void Init_libSBML(void) {
   rb_define_const(mLibSBML, "LIBSBML_ANNOTATION_NAME_NOT_FOUND", SWIG_From_int(static_cast< int >(LIBSBML_ANNOTATION_NAME_NOT_FOUND)));
   rb_define_const(mLibSBML, "LIBSBML_ANNOTATION_NS_NOT_FOUND", SWIG_From_int(static_cast< int >(LIBSBML_ANNOTATION_NS_NOT_FOUND)));
   rb_define_const(mLibSBML, "LIBSBML_MISSING_METAID", SWIG_From_int(static_cast< int >(LIBSBML_MISSING_METAID)));
+  rb_define_const(mLibSBML, "LIBSBML_DEPRECATED_ATTRIBUTE", SWIG_From_int(static_cast< int >(LIBSBML_DEPRECATED_ATTRIBUTE)));
   rb_define_const(mLibSBML, "LIBSBML_PKG_VERSION_MISMATCH", SWIG_From_int(static_cast< int >(LIBSBML_PKG_VERSION_MISMATCH)));
   rb_define_const(mLibSBML, "LIBSBML_PKG_UNKNOWN", SWIG_From_int(static_cast< int >(LIBSBML_PKG_UNKNOWN)));
   rb_define_const(mLibSBML, "LIBSBML_PKG_UNKNOWN_VERSION", SWIG_From_int(static_cast< int >(LIBSBML_PKG_UNKNOWN_VERSION)));
@@ -126062,6 +126834,7 @@ SWIGEXPORT void Init_libSBML(void) {
   rb_define_singleton_method(SwigClassSBO.klass, "intToString", VALUEFUNC(_wrap_SBO_intToString), -1);
   rb_define_singleton_method(SwigClassSBO.klass, "stringToInt", VALUEFUNC(_wrap_SBO_stringToInt), -1);
   rb_define_singleton_method(SwigClassSBO.klass, "checkTerm", VALUEFUNC(_wrap_SBO_checkTerm), -1);
+  rb_define_singleton_method(SwigClassSBO.klass, "getParentBranch", VALUEFUNC(_wrap_SBO_getParentBranch), -1);
   SwigClassSBO.mark = 0;
   SwigClassSBO.destroy = (void (*)(void *)) free_SBO;
   SwigClassSBO.trackObjects = 1;
@@ -126590,6 +127363,14 @@ SWIGEXPORT void Init_libSBML(void) {
   rb_define_method(SwigClassXMLOutputStream.klass, "upIndent", VALUEFUNC(_wrap_XMLOutputStream_upIndent), -1);
   rb_define_method(SwigClassXMLOutputStream.klass, "getSBMLNamespaces", VALUEFUNC(_wrap_XMLOutputStream_getSBMLNamespaces), -1);
   rb_define_method(SwigClassXMLOutputStream.klass, "setSBMLNamespaces", VALUEFUNC(_wrap_XMLOutputStream_setSBMLNamespaces), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "getWriteComment", VALUEFUNC(_wrap_XMLOutputStream_getWriteComment), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "setWriteComment", VALUEFUNC(_wrap_XMLOutputStream_setWriteComment), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "getWriteTimestamp", VALUEFUNC(_wrap_XMLOutputStream_getWriteTimestamp), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "setWriteTimestamp", VALUEFUNC(_wrap_XMLOutputStream_setWriteTimestamp), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "getLibraryName", VALUEFUNC(_wrap_XMLOutputStream_getLibraryName), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "setLibraryName", VALUEFUNC(_wrap_XMLOutputStream_setLibraryName), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "getLibraryVersion", VALUEFUNC(_wrap_XMLOutputStream_getLibraryVersion), -1);
+  rb_define_singleton_method(SwigClassXMLOutputStream.klass, "setLibraryVersion", VALUEFUNC(_wrap_XMLOutputStream_setLibraryVersion), -1);
   rb_define_method(SwigClassXMLOutputStream.klass, "writeAttributeBool", VALUEFUNC(_wrap_XMLOutputStream_writeAttributeBool), -1);
   SwigClassXMLOutputStream.mark = 0;
   SwigClassXMLOutputStream.destroy = (void (*)(void *)) free_XMLOutputStream;
@@ -127255,6 +128036,10 @@ SWIGEXPORT void Init_libSBML(void) {
   SwigClassCVTerm.mark = 0;
   SwigClassCVTerm.destroy = (void (*)(void *)) free_CVTerm;
   SwigClassCVTerm.trackObjects = 1;
+  rb_define_module_function(mLibSBML, "ModelQualifierType_toString", VALUEFUNC(_wrap_ModelQualifierType_toString), -1);
+  rb_define_module_function(mLibSBML, "BiolQualifierType_toString", VALUEFUNC(_wrap_BiolQualifierType_toString), -1);
+  rb_define_module_function(mLibSBML, "ModelQualifierType_fromString", VALUEFUNC(_wrap_ModelQualifierType_fromString), -1);
+  rb_define_module_function(mLibSBML, "BiolQualifierType_fromString", VALUEFUNC(_wrap_BiolQualifierType_fromString), -1);
   
   SwigClassDate.klass = rb_define_class_under(mLibSBML, "Date", rb_cObject);
   SWIG_TypeClientData(SWIGTYPE_p_Date, (void *) &SwigClassDate);
@@ -127801,6 +128586,7 @@ SWIGEXPORT void Init_libSBML(void) {
   rb_define_method(SwigClassASTNode.klass, "getTypeCode", VALUEFUNC(_wrap_ASTNode_getTypeCode), -1);
   rb_define_method(SwigClassASTNode.klass, "getPackageName", VALUEFUNC(_wrap_ASTNode_getPackageName), -1);
   rb_define_method(SwigClassASTNode.klass, "getPlugin", VALUEFUNC(_wrap_ASTNode_getPlugin), -1);
+  rb_define_method(SwigClassASTNode.klass, "getNumPiece", VALUEFUNC(_wrap_ASTNode_getNumPiece), -1);
   rb_define_method(SwigClassASTNode.klass, "getListOfNodes", VALUEFUNC(_wrap_ASTNode_getListOfNodes), -1);
   SwigClassASTNode.mark = 0;
   SwigClassASTNode.destroy = (void (*)(void *)) free_ASTNode;
diff --git a/src/bindings/ruby/libsbml_wrap.h b/src/bindings/ruby/libsbml_wrap.h
index 9303904..7ccdcad 100644
--- a/src/bindings/ruby/libsbml_wrap.h
+++ b/src/bindings/ruby/libsbml_wrap.h
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 2.0.4
+ * Version 2.0.6
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
diff --git a/src/bindings/ruby/local-downcast-converters.cpp.in b/src/bindings/ruby/local-downcast-converters.cpp.in
index 40bcd52..7ad7ab9 100644
--- a/src/bindings/ruby/local-downcast-converters.cpp.in
+++ b/src/bindings/ruby/local-downcast-converters.cpp.in
@@ -1,17 +1,17 @@
-// This file is autogenerated and will be overwritten by the configuration process
-
-#ifdef USE_COMP
-#include "local-downcast-converters-comp.cpp"
-#endif
-#ifdef USE_FBC
-#include "local-downcast-converters-fbc.cpp"
-#endif
-#ifdef USE_LAYOUT
-#include "local-downcast-converters-layout.cpp"
-#endif
-#ifdef USE_QUAL
-#include "local-downcast-converters-qual.cpp"
-#endif
-
-
-
+// This file is autogenerated and will be overwritten by the configuration process
+
+#ifdef USE_COMP
+#include "local-downcast-converters-comp.cpp"
+#endif
+#ifdef USE_FBC
+#include "local-downcast-converters-fbc.cpp"
+#endif
+#ifdef USE_LAYOUT
+#include "local-downcast-converters-layout.cpp"
+#endif
+#ifdef USE_QUAL
+#include "local-downcast-converters-qual.cpp"
+#endif
+
+
+
diff --git a/src/bindings/ruby/local-downcast-packages-groups.cpp b/src/bindings/ruby/local-downcast-packages-groups.cpp
index e691afa..aa3a4e5 100644
--- a/src/bindings/ruby/local-downcast-packages-groups.cpp
+++ b/src/bindings/ruby/local-downcast-packages-groups.cpp
@@ -2,33 +2,30 @@
 #ifdef USE_GROUPS
 else if (pkgName == "groups")
 {
-	switch (sb->getTypeCode())
-	{
-		case SBML_LIST_OF:
-			name = sb->getElementName();
-			if(name == "listOfMembers"){
-				return SWIGTYPE_p_ListOfMembers;
-			}
-			else if (name == "listOfMemberConstraints")
-			{
-				return SWIGTYPE_p_ListOfMemberConstraints;
-			}
-			else if(name == "listOfGroups"){
-				return SWIGTYPE_p_ListOfGroups;
-			}
-			return SWIGTYPE_p_ListOf;				  
-			
-		case SBML_GROUPS_MEMBER:
-			return SWIGTYPE_p_Member;
+  switch ( sb->getTypeCode() )
+  {
+    case SBML_LIST_OF:
+      name = sb->getElementName();
+      if (name == "listOfGroups")
+      {
+        return SWIGTYPE_p_ListOfGroups;
+      }
+      else if (name == "listOfMembers")
+      {
+        return SWIGTYPE_p_ListOfMembers;
+      }
 
-		case SBML_GROUPS_MEMBER_CONSTRAINT:
-			return SWIGTYPE_p_MemberConstraint;
+      return SWIGTYPE_p_ListOf;
 
-		case SBML_GROUPS_GROUP:
-			return SWIGTYPE_p_Group;
-		default:
-			return SWIGTYPE_p_SBase;
-	}
+    case SBML_GROUPS_GROUP:
+      return SWIGTYPE_p_Group;
+
+    case SBML_GROUPS_MEMBER:
+      return SWIGTYPE_p_Member;
+
+    default:
+      return SWIGTYPE_p_SBase;
+    }
 }
 #endif // USE_GROUPS				  
 
diff --git a/src/bindings/ruby/local-downcast-packages-multi.cpp b/src/bindings/ruby/local-downcast-packages-multi.cpp
index 4b845a5..2b88667 100644
--- a/src/bindings/ruby/local-downcast-packages-multi.cpp
+++ b/src/bindings/ruby/local-downcast-packages-multi.cpp
@@ -25,10 +25,6 @@ else if (pkgName == "multi")
       {
         return SWIGTYPE_p_ListOfInSpeciesTypeBonds;
       }
-      else if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-      {
-        return SWIGTYPE_p_ListOfDenotedSpeciesTypeComponentIndexes;
-      }
       else if (name == "listOfOutwardBindingSites")
       {
         return SWIGTYPE_p_ListOfOutwardBindingSites;
@@ -75,9 +71,6 @@ else if (pkgName == "multi")
     case SBML_MULTI_IN_SPECIES_TYPE_BOND:
       return SWIGTYPE_p_InSpeciesTypeBond;
 
-    case SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX:
-      return SWIGTYPE_p_DenotedSpeciesTypeComponentIndex;
-
     case SBML_MULTI_OUTWARD_BINDING_SITE:
       return SWIGTYPE_p_OutwardBindingSite;
 
diff --git a/src/bindings/ruby/local-downcast-plugins-multi.cpp b/src/bindings/ruby/local-downcast-plugins-multi.cpp
index e3f77ff..cee4db7 100644
--- a/src/bindings/ruby/local-downcast-plugins-multi.cpp
+++ b/src/bindings/ruby/local-downcast-plugins-multi.cpp
@@ -21,6 +21,10 @@ if (pkgName == "multi")
   {
     return SWIGTYPE_p_MultiSpeciesReferencePlugin;
   }
+  else if (sb->getElementName() == "listOfReactions")
+  {
+    return SWIGTYPE_p_MultiListOfReactionsPlugin;
+  }
 }
 
 #endif // USE_MULTI 
diff --git a/src/bindings/ruby/local-groups.i b/src/bindings/ruby/local-groups.i
index 4300394..2910199 100644
--- a/src/bindings/ruby/local-groups.i
+++ b/src/bindings/ruby/local-groups.i
@@ -8,12 +8,11 @@
 #ifdef USE_GROUPS
 
 SBMLCONSTRUCTOR_EXCEPTION(GroupsPkgNamespaces)
-SBMLCONSTRUCTOR_EXCEPTION(Member)
-SBMLCONSTRUCTOR_EXCEPTION(MemberConstraint)
 SBMLCONSTRUCTOR_EXCEPTION(Group)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfMemberConstraints)
+SBMLCONSTRUCTOR_EXCEPTION(Member)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfGroups)
+SBMLCONSTRUCTOR_EXCEPTION(ListOfMembers)
+
 
 #endif // USE_GROUPS 
 
diff --git a/src/bindings/ruby/local-multi.i b/src/bindings/ruby/local-multi.i
index bc10578..7f7703e 100644
--- a/src/bindings/ruby/local-multi.i
+++ b/src/bindings/ruby/local-multi.i
@@ -6,7 +6,6 @@ SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureValue)
 SBMLCONSTRUCTOR_EXCEPTION(CompartmentReference)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesTypeInstance)
 SBMLCONSTRUCTOR_EXCEPTION(InSpeciesTypeBond)
-SBMLCONSTRUCTOR_EXCEPTION(DenotedSpeciesTypeComponentIndex)
 SBMLCONSTRUCTOR_EXCEPTION(OutwardBindingSite)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureChange)
 SBMLCONSTRUCTOR_EXCEPTION(SpeciesFeatureType)
@@ -21,7 +20,6 @@ SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureValues)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfCompartmentReferences)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesTypeInstances)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfInSpeciesTypeBonds)
-SBMLCONSTRUCTOR_EXCEPTION(ListOfDenotedSpeciesTypeComponentIndexes)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfOutwardBindingSites)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureChanges)
 SBMLCONSTRUCTOR_EXCEPTION(ListOfSpeciesFeatureTypes)
diff --git a/src/bindings/ruby/local-packages.i.in b/src/bindings/ruby/local-packages.i.in
index 84217c2..aca50cb 100644
--- a/src/bindings/ruby/local-packages.i.in
+++ b/src/bindings/ruby/local-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "local-fbc.i"
 #endif
+#ifdef USE_GROUPS
+%include "local-groups.i"
+#endif
 #ifdef USE_LAYOUT
 %include "local-layout.i"
 #endif
diff --git a/src/bindings/ruby/local.cpp b/src/bindings/ruby/local.cpp
index 2ba1cf3..0f27001 100644
--- a/src/bindings/ruby/local.cpp
+++ b/src/bindings/ruby/local.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/ruby/local.i b/src/bindings/ruby/local.i
index 0f59a64..2d4cbff 100644
--- a/src/bindings/ruby/local.i
+++ b/src/bindings/ruby/local.i
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -197,7 +197,7 @@ namespace std
 /**
  * Convert SBase, SimpleSpeciesReference, and Rule objects into the most specific type possible.
  */
-%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*
+%typemap(out) SBase*, SimpleSpeciesReference*, Rule*, SBasePlugin*, SBMLExtension*, SBMLNamespaces*, SBMLConverter*, Reaction*
 {
   $result = SWIG_NewPointerObj(SWIG_as_voidptr($1), GetDowncastSwigType($1), $owner | %newpointer_flags);
 }
@@ -410,17 +410,24 @@ XMLCONSTRUCTOR_EXCEPTION(XMLTripple)
                                SWIG_POINTER_OWN |  0 );
 }
 
-%typemap(out) List* SBase::getCVTerms
+%define LIST_WRAPPER(_FNAME_,_TYPENAME_)
+%typemap(out) List* _FNAME_
 {
-  ListWrapper<CVTerm> *listw = ($1 != 0)? new ListWrapper<CVTerm>($1) : 0;
+  ListWrapper<_TYPENAME_> *listw = ($1 != 0)? new ListWrapper<_TYPENAME_>($1) : 0;
   $result = SWIG_NewPointerObj(SWIG_as_voidptr(listw), 
 #if SWIG_VERSION > 0x010333
-                               SWIGTYPE_p_ListWrapperT_CVTerm_t, 
+                               SWIGTYPE_p_ListWrapperT_ ## _TYPENAME_ ## _t, 
 #else
-                               SWIGTYPE_p_ListWrapperTCVTerm_t, 
+                               SWIGTYPE_p_ListWrapperT ## _TYPENAME_ ## _t, 
 #endif
                                SWIG_POINTER_OWN |  0 );
 }
+%enddef
+LIST_WRAPPER(SBase::getCVTerms,CVTerm)
+LIST_WRAPPER(SBase::getListOfAllElements,SBase)
+LIST_WRAPPER(SBasePlugin::getListOfAllElements,SBase)
+LIST_WRAPPER(SBase::getListOfAllElementsFromPlugins,SBase)
+
 
 %include "local-packages.i"
 
diff --git a/src/bindings/swig/ListWrapper.h b/src/bindings/swig/ListWrapper.h
index e9743f0..59b958b 100644
--- a/src/bindings/swig/ListWrapper.h
+++ b/src/bindings/swig/ListWrapper.h
@@ -13,7 +13,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/OStream.cpp b/src/bindings/swig/OStream.cpp
index b799682..a826d6a 100644
--- a/src/bindings/swig/OStream.cpp
+++ b/src/bindings/swig/OStream.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/OStream.h b/src/bindings/swig/OStream.h
index 0143dff..3d447b5 100644
--- a/src/bindings/swig/OStream.h
+++ b/src/bindings/swig/OStream.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/arrays-package.h b/src/bindings/swig/arrays-package.h
index 3a477f6..c8ad49f 100644
--- a/src/bindings/swig/arrays-package.h
+++ b/src/bindings/swig/arrays-package.h
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/arrays-package.i b/src/bindings/swig/arrays-package.i
index 47dcda3..dfb5f0b 100644
--- a/src/bindings/swig/arrays-package.i
+++ b/src/bindings/swig/arrays-package.i
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/comp-package.h b/src/bindings/swig/comp-package.h
index 903826b..0f74c96 100644
--- a/src/bindings/swig/comp-package.h
+++ b/src/bindings/swig/comp-package.h
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/comp-package.i b/src/bindings/swig/comp-package.i
index 87004be..ba2acea 100644
--- a/src/bindings/swig/comp-package.i
+++ b/src/bindings/swig/comp-package.i
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -32,6 +32,7 @@
 
 #ifdef USE_COMP
 
+%feature("director") SBMLResolver;  
 
 %ignore Submodel::getAllInstantiatedElements;
 
diff --git a/src/bindings/swig/fbc-package.h b/src/bindings/swig/fbc-package.h
index 94db07e..b9b8d6b 100644
--- a/src/bindings/swig/fbc-package.h
+++ b/src/bindings/swig/fbc-package.h
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/fbc-package.i b/src/bindings/swig/fbc-package.i
index 487ab1f..a2e6f5c 100644
--- a/src/bindings/swig/fbc-package.i
+++ b/src/bindings/swig/fbc-package.i
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/groups-package.h b/src/bindings/swig/groups-package.h
index 8bcd8ae..81c471d 100644
--- a/src/bindings/swig/groups-package.h
+++ b/src/bindings/swig/groups-package.h
@@ -1,43 +1,45 @@
-/**
- * Filename    : groups.h
- * Description : groups include file for bindings.
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->
- */
-
-#ifdef USE_GROUPS
-
-#include <sbml/packages/groups/extension/GroupsExtension.h>
-#include <sbml/packages/groups/extension/GroupsModelPlugin.h>
-#include <sbml/packages/groups/common/GroupsExtensionTypes.h>
-#include <sbml/packages/groups/sbml/Member.h>
-#include <sbml/packages/groups/sbml/MemberConstraint.h>
-#include <sbml/packages/groups/sbml/Group.h>
-
-#endif // USE_GROUPS 
-
+/**
+ * Filename    : groups.h
+ * Description : groups include file for bindings.
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->
+ */
+
+#ifdef USE_GROUPS
+
+#include <sbml/packages/groups/extension/GroupsExtension.h>
+#include <sbml/packages/groups/extension/GroupsModelPlugin.h>
+#include <sbml/packages/groups/common/GroupsExtensionTypes.h>
+#include <sbml/packages/groups/sbml/Group.h>
+#include <sbml/packages/groups/sbml/Member.h>
+#include <sbml/packages/groups/sbml/ListOfGroups.h>
+#include <sbml/packages/groups/sbml/ListOfMembers.h>
+#include <sbml/packages/groups/validator/GroupsSBMLError.h>
+
+#endif // USE_GROUPS 
+
diff --git a/src/bindings/swig/groups-package.i b/src/bindings/swig/groups-package.i
index 60e6ada..d003a45 100644
--- a/src/bindings/swig/groups-package.i
+++ b/src/bindings/swig/groups-package.i
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -32,17 +32,18 @@
 
 #ifdef USE_GROUPS
 
-%newobject removeMember;
-%newobject removeMemberConstraint;
 %newobject removeGroup;
+%newobject removeMember;
 
 %template (GroupsPkgNamespaces) SBMLExtensionNamespaces<GroupsExtension>;
 
 %include <sbml/packages/groups/extension/GroupsExtension.h>
 %include <sbml/packages/groups/extension/GroupsModelPlugin.h>
-%include <sbml/packages/groups/sbml/Member.h>
-%include <sbml/packages/groups/sbml/MemberConstraint.h>
 %include <sbml/packages/groups/sbml/Group.h>
+%include <sbml/packages/groups/sbml/Member.h>
+%include <sbml/packages/groups/sbml/ListOfGroups.h>
+%include <sbml/packages/groups/sbml/ListOfMembers.h>
+%include <sbml/packages/groups/validator/GroupsSBMLError.h>
 
 #endif /* USE_GROUPS */
 
diff --git a/src/bindings/swig/libsbml-packages.h.in b/src/bindings/swig/libsbml-packages.h.in
index df39379..bb352a1 100644
--- a/src/bindings/swig/libsbml-packages.h.in
+++ b/src/bindings/swig/libsbml-packages.h.in
@@ -7,6 +7,9 @@
 #ifdef USE_FBC
 #include "fbc-package.h"
 #endif
+#ifdef USE_GROUPS
+#include "groups-package.h"
+#endif
 #ifdef USE_LAYOUT
 #include "layout-package.h"
 #endif
diff --git a/src/bindings/swig/libsbml-packages.i.in b/src/bindings/swig/libsbml-packages.i.in
index e0d3202..81ae827 100644
--- a/src/bindings/swig/libsbml-packages.i.in
+++ b/src/bindings/swig/libsbml-packages.i.in
@@ -6,6 +6,9 @@
 #ifdef USE_FBC
 %include "fbc-package.i"
 #endif
+#ifdef USE_GROUPS
+%include "groups-package.i"
+#endif
 #ifdef USE_LAYOUT
 %include "layout-package.i"
 #endif
diff --git a/src/bindings/swig/libsbml.h b/src/bindings/swig/libsbml.h
index 3acbd99..9135686 100644
--- a/src/bindings/swig/libsbml.h
+++ b/src/bindings/swig/libsbml.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/libsbml.i b/src/bindings/swig/libsbml.i
index fb6c4ea..b975517 100644
--- a/src/bindings/swig/libsbml.i
+++ b/src/bindings/swig/libsbml.i
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/libsbmlutils.py b/src/bindings/swig/libsbmlutils.py
index ce9de71..5116f38 100644
--- a/src/bindings/swig/libsbmlutils.py
+++ b/src/bindings/swig/libsbmlutils.py
@@ -9,7 +9,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/multi-package.h b/src/bindings/swig/multi-package.h
index 5da940e..2f32584 100644
--- a/src/bindings/swig/multi-package.h
+++ b/src/bindings/swig/multi-package.h
@@ -6,13 +6,13 @@
 #include <sbml/packages/multi/extension/MultiSpeciesPlugin.h>
 #include <sbml/packages/multi/extension/MultiSimpleSpeciesReferencePlugin.h>
 #include <sbml/packages/multi/extension/MultiSpeciesReferencePlugin.h>
+#include <sbml/packages/multi/extension/MultiListOfReactionsPlugin.h>
 #include <sbml/packages/multi/common/MultiExtensionTypes.h>
 #include <sbml/packages/multi/sbml/PossibleSpeciesFeatureValue.h>
 #include <sbml/packages/multi/sbml/SpeciesFeatureValue.h>
 #include <sbml/packages/multi/sbml/CompartmentReference.h>
 #include <sbml/packages/multi/sbml/SpeciesTypeInstance.h>
 #include <sbml/packages/multi/sbml/InSpeciesTypeBond.h>
-#include <sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h>
 #include <sbml/packages/multi/sbml/OutwardBindingSite.h>
 #include <sbml/packages/multi/sbml/SpeciesFeatureChange.h>
 #include <sbml/packages/multi/sbml/SpeciesFeatureType.h>
diff --git a/src/bindings/swig/multi-package.i b/src/bindings/swig/multi-package.i
index 3777605..2607575 100644
--- a/src/bindings/swig/multi-package.i
+++ b/src/bindings/swig/multi-package.i
@@ -5,7 +5,6 @@
 %newobject removeCompartmentReference;
 %newobject removeSpeciesTypeInstance;
 %newobject removeInSpeciesTypeBond;
-%newobject removeDenotedSpeciesTypeComponentIndex;
 %newobject removeOutwardBindingSite;
 %newobject removeSpeciesFeatureChange;
 %newobject removeSpeciesFeatureType;
@@ -22,12 +21,12 @@
 %include <sbml/packages/multi/extension/MultiSpeciesPlugin.h>
 %include <sbml/packages/multi/extension/MultiSimpleSpeciesReferencePlugin.h>
 %include <sbml/packages/multi/extension/MultiSpeciesReferencePlugin.h>
+%include <sbml/packages/multi/extension/MultiListOfReactionsPlugin.h>
 %include <sbml/packages/multi/sbml/PossibleSpeciesFeatureValue.h>
 %include <sbml/packages/multi/sbml/SpeciesFeatureValue.h>
 %include <sbml/packages/multi/sbml/CompartmentReference.h>
 %include <sbml/packages/multi/sbml/SpeciesTypeInstance.h>
 %include <sbml/packages/multi/sbml/InSpeciesTypeBond.h>
-%include <sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h>
 %include <sbml/packages/multi/sbml/OutwardBindingSite.h>
 %include <sbml/packages/multi/sbml/SpeciesFeatureChange.h>
 %include <sbml/packages/multi/sbml/SpeciesFeatureType.h>
diff --git a/src/bindings/swig/qual-package.h b/src/bindings/swig/qual-package.h
index 43cb6be..b74dcce 100644
--- a/src/bindings/swig/qual-package.h
+++ b/src/bindings/swig/qual-package.h
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/qual-package.i b/src/bindings/swig/qual-package.i
index 30cf9fd..82dc961 100644
--- a/src/bindings/swig/qual-package.i
+++ b/src/bindings/swig/qual-package.i
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/render-package.h b/src/bindings/swig/render-package.h
index b4b863c..f063f2a 100644
--- a/src/bindings/swig/render-package.h
+++ b/src/bindings/swig/render-package.h
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/render-package.i b/src/bindings/swig/render-package.i
index cbb149d..e09e414 100644
--- a/src/bindings/swig/render-package.i
+++ b/src/bindings/swig/render-package.i
@@ -6,7 +6,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/bindings/swig/swigdoc.py b/src/bindings/swig/swigdoc.py
index 1c6ed5b..785a31a 100755
--- a/src/bindings/swig/swigdoc.py
+++ b/src/bindings/swig/swigdoc.py
@@ -12,7 +12,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2014 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
@@ -68,6 +68,7 @@ overriders = \
 'Event'                     : [ 'clone', 'getId', 'getName', 'isSetId', 'isSetName', 'getTypeCode', 'getElementName', 'hasRequiredAttributes', 'hasRequiredElements', 'setId', 'setName', 'unsetId', 'unsetName', 'connectToChild', 'enablePackageInternal' ],
 'EventAssignment'           : [ 'clone', 'getTypeCode', 'getElementName', 'hasRequiredAttributes', 'hasRequiredElements', 'getId' ],
 'FbcExtension'              : [ 'clone', 'getErrorIdOffset' ],
+'GroupsExtension'           : [ 'clone', 'getErrorIdOffset' ],
 'FunctionDefinition'        : [ 'clone', 'getId', 'getName', 'isSetId', 'isSetName', 'getTypeCode', 'getElementName', 'hasRequiredAttributes', 'hasRequiredElements', 'setId', 'setName', 'unsetId', 'unsetName' ],
 'InitialAssignment'         : [ 'clone', 'getTypeCode', 'getElementName', 'hasRequiredAttributes', 'hasRequiredElements', 'getId' ],
 'ISBMLExtensionNamespaces'  : [ 'getURI', 'getPackageName' ],
@@ -149,6 +150,27 @@ preprocessor_defines = ['SWIG', '__cplusplus']
 
 
 #
+# Global list of known package nicknames.
+# This is used in making sense of @ref's.
+#
+
+l3_packages = { 'annot'   : 'Annotations',
+                'arrays'  : 'Arrays',
+                'comp'    : 'Hierarchical Model Composition',
+                'distrib' : 'Distributions',
+                'dyn'     : 'Dynamic Processes',
+                'fbc'     : 'Flux Balance Constraints',
+                'groups'  : 'Groups',
+                'layout'  : 'Layout',
+                'multi'   : 'Multistate and Multicomponent Species',
+                'qual'    : 'Qualitative Models',
+                'render'  : 'Rendering',
+                'req'     : 'Required Elements',
+                'spatial' : 'Spatial Processes'
+              }
+
+
+#
 # Classes and methods.
 #
 
@@ -740,6 +762,15 @@ def translateCopydetails (match):
 
 
 
+def translateRef (match):
+  name = match.group(1)
+  # Only try to do something if we recognize a package nickname.
+  if name in l3_packages:
+    return '<a href="../../../extensions-summary.html#{0}">{1}</a>'.format(
+      name, l3_packages[name])
+
+
+
 def translateIfElse (match):
   # Our possible conditional elements and their meanings are:
   #
@@ -968,10 +999,6 @@ def sanitizeForHTML (docstring):
   p = re.compile('^\s*\*\s+ at par(\s)', re.MULTILINE)
   docstring = p.sub(r'\1', docstring)
 
-  # Remove @ref's, since we currently have no way to deal with them.
-
-  docstring = re.sub('@ref\s+\w+', '', docstring)
-
   # First do conditional section inclusion based on the current language.
 
   p = re.compile('(@if|@ifnot)[\s*]+(\w+)[\s*]+(.+?)((@else)\s+(.+?))?@endif', re.DOTALL)
@@ -1099,6 +1126,11 @@ def sanitizeForHTML (docstring):
   p = re.compile(r'(<p>\s*)+\Z', re.MULTILINE)
   docstring = p.sub(r'', docstring)
 
+  # Translate @ref's.
+
+  p = re.compile('@ref\s+\*?\s*(\w+)', re.DOTALL)
+  docstring = p.sub(translateRef, docstring)
+
   # Take out any left-over Doxygen-style quotes, because Javadoc doesn't have
   # the %foo quoting mechanism.
 
diff --git a/src/comp-package.cmake b/src/comp-package.cmake
index 1f6232a..a6ae821 100644
--- a/src/comp-package.cmake
+++ b/src/comp-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/dyn-package.cmake b/src/dyn-package.cmake
index cf80bf3..c30d9fd 100644
--- a/src/dyn-package.cmake
+++ b/src/dyn-package.cmake
@@ -8,7 +8,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/fbc-package.cmake b/src/fbc-package.cmake
index a0b4860..e446607 100644
--- a/src/fbc-package.cmake
+++ b/src/fbc-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/groups-package.cmake b/src/groups-package.cmake
index 36ad93e..9c9f2ce 100644
--- a/src/groups-package.cmake
+++ b/src/groups-package.cmake
@@ -1,89 +1,90 @@
-###############################################################################
-#
-# @file:   groups-package.cmake
-# @brief:  CMake configuration for L3 Groups package
-# Original author(s): Frank Bergmann <fbergman at caltech.edu>
-# Organization      : California Institute of Technology
-#
-# This file is part of libSBML.  Please visit http://sbml.org for more
-# information about SBML, and the latest version of libSBML.
-#
-# Copyright (C) 2009-2013 jointly by the following organizations:
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
-#  
-# Copyright (C) 2006-2008 by the California Institute of Technology,
-#     Pasadena, CA, USA 
-#  
-# Copyright (C) 2002-2005 jointly by the following organizations: 
-#     1. California Institute of Technology, Pasadena, CA, USA
-#     2. Japan Science and Technology Agency, Japan
-# 
-# This library is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation.  A copy of the license agreement is provided
-# in the file named "LICENSE.txt" included with this software distribution
-# and also available online as http://sbml.org/software/libsbml/license.html
-#
-###############################################################################
-
-if(ENABLE_GROUPS)
-
-include(${LIBSBML_ROOT_SOURCE_DIR}/groups-package.cmake)
-
-#build up sources
-set(GROUPS_SOURCES)
-
-# go through all directories: common, extension and sbml
-foreach(dir common extension sbml validator)
-
-	# add to include directory
-	include_directories(${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir})
-	
-	# file sources
-	file(GLOB current ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.cpp
-	                  ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.c
-	                  ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.h)
-	
-        # Set the *Constraints.cpp files to be 'header' files so they won't be compiled--
-        #  they are #included directly, instead.
-        if ("${dir}" STREQUAL "validator/constraints")
-            foreach(tempFile ${current})
-                if ("${tempFile}" MATCHES ".*Constraints.cpp")
-                    set_source_files_properties(
-                        ${tempFile}
-                        PROPERTIES HEADER_FILE_ONLY true
-                        )
-                endif()
-            endforeach()
-        endif()
-
-	# add sources 
-	set(GROUPS_SOURCES ${GROUPS_SOURCES} ${current})
-	
-    # mark header files for installation 
-	file(GLOB groups_headers
-	                  ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.h)
-	
-	install(FILES       ${groups_headers} 
-		    DESTINATION include/sbml/packages/groups/${dir} )
-	
-endforeach()
-
-# create source group for IDEs
-source_group(groups_package FILES ${GROUPS_SOURCES})
-
-# add groups sources to SBML sources
-SET(LIBSBML_SOURCES ${LIBSBML_SOURCES} ${GROUPS_SOURCES})
-
-####################################################################
-#
-# add test scripts
-#
-if(WITH_CHECK)
-
-	add_subdirectory(sbml/packages/groups/extension/test)
-
-endif()
-
-endif()
+###############################################################################
+#
+# @file:   groups-package.cmake
+# @brief:  CMake configuration for L3 Groups package
+# Original author(s): Frank Bergmann <fbergman at caltech.edu>
+# Organization      : California Institute of Technology
+#
+# This file is part of libSBML.  Please visit http://sbml.org for more
+# information about SBML, and the latest version of libSBML.
+#
+# Copyright (C) 2009-2013 jointly by the following organizations:
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+#  
+# Copyright (C) 2006-2008 by the California Institute of Technology,
+#     Pasadena, CA, USA 
+#  
+# Copyright (C) 2002-2005 jointly by the following organizations: 
+#     1. California Institute of Technology, Pasadena, CA, USA
+#     2. Japan Science and Technology Agency, Japan
+# 
+# This library is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation.  A copy of the license agreement is provided
+# in the file named "LICENSE.txt" included with this software distribution
+# and also available online as http://sbml.org/software/libsbml/license.html
+#
+###############################################################################
+
+if(ENABLE_GROUPS)
+
+include(${LIBSBML_ROOT_SOURCE_DIR}/groups-package.cmake)
+
+#build up sources
+set(GROUPS_SOURCES)
+
+# go through all directories: common, extension and sbml
+foreach(dir common extension sbml validator validator/constraints)
+
+	# add to include directory
+	include_directories(${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir})
+	
+	# file sources
+	file(GLOB current ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.cpp
+	                  ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.c
+	                  ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.h)
+	
+        # Set the *Constraints.cpp files to be 'header' files so they won't be compiled--
+        #  they are #included directly, instead.
+        if ("${dir}" STREQUAL "validator/constraints")
+            foreach(tempFile ${current})
+                if ("${tempFile}" MATCHES ".*Constraints.cpp")
+                    set_source_files_properties(
+                        ${tempFile}
+                        PROPERTIES HEADER_FILE_ONLY true
+                        )
+                endif()
+            endforeach()
+        endif()
+
+	# add sources 
+	set(GROUPS_SOURCES ${GROUPS_SOURCES} ${current})
+	
+    # mark header files for installation 
+	file(GLOB groups_headers
+	                  ${CMAKE_CURRENT_SOURCE_DIR}/sbml/packages/groups/${dir}/*.h)
+	
+	install(FILES       ${groups_headers} 
+		    DESTINATION include/sbml/packages/groups/${dir} )
+	
+endforeach()
+
+# create source group for IDEs
+source_group(groups_package FILES ${GROUPS_SOURCES})
+
+# add groups sources to SBML sources
+SET(LIBSBML_SOURCES ${LIBSBML_SOURCES} ${GROUPS_SOURCES})
+
+####################################################################
+#
+# add test scripts
+#
+if(WITH_CHECK)
+
+	add_subdirectory(sbml/packages/groups/extension/test)
+	add_subdirectory(sbml/packages/groups/validator/test)
+
+endif()
+
+endif()
diff --git a/src/layout-package.cmake b/src/layout-package.cmake
index 98b1c5a..dcc26b6 100644
--- a/src/layout-package.cmake
+++ b/src/layout-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/multi-package.cmake b/src/multi-package.cmake
index 1cef741..7faf641 100644
--- a/src/multi-package.cmake
+++ b/src/multi-package.cmake
@@ -8,7 +8,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/qual-package.cmake b/src/qual-package.cmake
index 0f8db4e..aed29ab 100644
--- a/src/qual-package.cmake
+++ b/src/qual-package.cmake
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/req-package.cmake b/src/req-package.cmake
index 38199f6..3301bab 100644
--- a/src/req-package.cmake
+++ b/src/req-package.cmake
@@ -8,7 +8,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/AlgebraicRule.cpp b/src/sbml/AlgebraicRule.cpp
index 57d9003..ce28a9a 100644
--- a/src/sbml/AlgebraicRule.cpp
+++ b/src/sbml/AlgebraicRule.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/AlgebraicRule.h b/src/sbml/AlgebraicRule.h
index 871a2c9..63fd563 100644
--- a/src/sbml/AlgebraicRule.h
+++ b/src/sbml/AlgebraicRule.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/AssignmentRule.cpp b/src/sbml/AssignmentRule.cpp
index 730281a..ef52869 100644
--- a/src/sbml/AssignmentRule.cpp
+++ b/src/sbml/AssignmentRule.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/AssignmentRule.h b/src/sbml/AssignmentRule.h
index 10ac5a7..79b296b 100644
--- a/src/sbml/AssignmentRule.h
+++ b/src/sbml/AssignmentRule.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/CMakeLists.txt b/src/sbml/CMakeLists.txt
index 0118e23..e175d10 100644
--- a/src/sbml/CMakeLists.txt
+++ b/src/sbml/CMakeLists.txt
@@ -7,7 +7,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Compartment.cpp b/src/sbml/Compartment.cpp
index ac1135a..0536bbf 100644
--- a/src/sbml/Compartment.cpp
+++ b/src/sbml/Compartment.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Compartment.h b/src/sbml/Compartment.h
index cb2d014..0ba8ebf 100644
--- a/src/sbml/Compartment.h
+++ b/src/sbml/Compartment.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/CompartmentType.cpp b/src/sbml/CompartmentType.cpp
index 0712119..26d5623 100644
--- a/src/sbml/CompartmentType.cpp
+++ b/src/sbml/CompartmentType.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/CompartmentType.h b/src/sbml/CompartmentType.h
index c80bc8c..d7b0475 100644
--- a/src/sbml/CompartmentType.h
+++ b/src/sbml/CompartmentType.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Constraint.cpp b/src/sbml/Constraint.cpp
index 2e94667..41fe53d 100644
--- a/src/sbml/Constraint.cpp
+++ b/src/sbml/Constraint.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Constraint.h b/src/sbml/Constraint.h
index 90c2693..ec6bb84 100644
--- a/src/sbml/Constraint.h
+++ b/src/sbml/Constraint.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Delay.cpp b/src/sbml/Delay.cpp
index f00515b..fb4068f 100644
--- a/src/sbml/Delay.cpp
+++ b/src/sbml/Delay.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Delay.h b/src/sbml/Delay.h
index c1d478d..4f8d715 100644
--- a/src/sbml/Delay.h
+++ b/src/sbml/Delay.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Event.cpp b/src/sbml/Event.cpp
index 97ce16e..bed9025 100644
--- a/src/sbml/Event.cpp
+++ b/src/sbml/Event.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Event.h b/src/sbml/Event.h
index 64e637d..651d8e8 100644
--- a/src/sbml/Event.h
+++ b/src/sbml/Event.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/EventAssignment.cpp b/src/sbml/EventAssignment.cpp
index 68f381a..314418f 100644
--- a/src/sbml/EventAssignment.cpp
+++ b/src/sbml/EventAssignment.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/EventAssignment.h b/src/sbml/EventAssignment.h
index f8c26d6..bfaad5e 100644
--- a/src/sbml/EventAssignment.h
+++ b/src/sbml/EventAssignment.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/ExpectedAttributes.cpp b/src/sbml/ExpectedAttributes.cpp
index e244d65..77553ac 100644
--- a/src/sbml/ExpectedAttributes.cpp
+++ b/src/sbml/ExpectedAttributes.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/ExpectedAttributes.h b/src/sbml/ExpectedAttributes.h
index fafc021..1d40aeb 100644
--- a/src/sbml/ExpectedAttributes.h
+++ b/src/sbml/ExpectedAttributes.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/FunctionDefinition.cpp b/src/sbml/FunctionDefinition.cpp
index 786c7bd..fa82db1 100644
--- a/src/sbml/FunctionDefinition.cpp
+++ b/src/sbml/FunctionDefinition.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/FunctionDefinition.h b/src/sbml/FunctionDefinition.h
index 7ec6cc0..18b3cf3 100644
--- a/src/sbml/FunctionDefinition.h
+++ b/src/sbml/FunctionDefinition.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/InitialAssignment.cpp b/src/sbml/InitialAssignment.cpp
index f17fe68..2b5a3ad 100644
--- a/src/sbml/InitialAssignment.cpp
+++ b/src/sbml/InitialAssignment.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/InitialAssignment.h b/src/sbml/InitialAssignment.h
index eb0a3f4..5cb4b40 100644
--- a/src/sbml/InitialAssignment.h
+++ b/src/sbml/InitialAssignment.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/KineticLaw.cpp b/src/sbml/KineticLaw.cpp
index 0363ced..ca5f0d9 100644
--- a/src/sbml/KineticLaw.cpp
+++ b/src/sbml/KineticLaw.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/KineticLaw.h b/src/sbml/KineticLaw.h
index 19dd6ca..4795e84 100644
--- a/src/sbml/KineticLaw.h
+++ b/src/sbml/KineticLaw.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/ListOf.cpp b/src/sbml/ListOf.cpp
index 8330c54..e8debc3 100644
--- a/src/sbml/ListOf.cpp
+++ b/src/sbml/ListOf.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/ListOf.h b/src/sbml/ListOf.h
index e1fc78b..730af92 100644
--- a/src/sbml/ListOf.h
+++ b/src/sbml/ListOf.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/LocalParameter.cpp b/src/sbml/LocalParameter.cpp
index 551e286..c2cff32 100644
--- a/src/sbml/LocalParameter.cpp
+++ b/src/sbml/LocalParameter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/LocalParameter.h b/src/sbml/LocalParameter.h
index 4cb3ea4..fffe272 100644
--- a/src/sbml/LocalParameter.h
+++ b/src/sbml/LocalParameter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Makefile.in b/src/sbml/Makefile.in
index 74472f8..b1c905f 100644
--- a/src/sbml/Makefile.in
+++ b/src/sbml/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Model.cpp b/src/sbml/Model.cpp
index 3536b1a..d0a184d 100644
--- a/src/sbml/Model.cpp
+++ b/src/sbml/Model.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Model.h b/src/sbml/Model.h
index ed1eae9..a07cd4a 100644
--- a/src/sbml/Model.h
+++ b/src/sbml/Model.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/ModifierSpeciesReference.cpp b/src/sbml/ModifierSpeciesReference.cpp
index 054d318..1f95dc8 100644
--- a/src/sbml/ModifierSpeciesReference.cpp
+++ b/src/sbml/ModifierSpeciesReference.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/ModifierSpeciesReference.h b/src/sbml/ModifierSpeciesReference.h
index 697e2c7..971b53b 100644
--- a/src/sbml/ModifierSpeciesReference.h
+++ b/src/sbml/ModifierSpeciesReference.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Parameter.cpp b/src/sbml/Parameter.cpp
index c63c7d1..5eec4c8 100644
--- a/src/sbml/Parameter.cpp
+++ b/src/sbml/Parameter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Parameter.h b/src/sbml/Parameter.h
index ad52b77..931db34 100644
--- a/src/sbml/Parameter.h
+++ b/src/sbml/Parameter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Priority.cpp b/src/sbml/Priority.cpp
index b2dee4d..547490d 100644
--- a/src/sbml/Priority.cpp
+++ b/src/sbml/Priority.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Priority.h b/src/sbml/Priority.h
index f1bf8ce..ba72ae8 100644
--- a/src/sbml/Priority.h
+++ b/src/sbml/Priority.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/RateRule.cpp b/src/sbml/RateRule.cpp
index 4ee8065..c9e20b0 100644
--- a/src/sbml/RateRule.cpp
+++ b/src/sbml/RateRule.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/RateRule.h b/src/sbml/RateRule.h
index 99e06c7..0f3c598 100644
--- a/src/sbml/RateRule.h
+++ b/src/sbml/RateRule.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Reaction.cpp b/src/sbml/Reaction.cpp
index 439919d..0623625 100644
--- a/src/sbml/Reaction.cpp
+++ b/src/sbml/Reaction.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Reaction.h b/src/sbml/Reaction.h
index 7ff5fa3..9d3f273 100644
--- a/src/sbml/Reaction.h
+++ b/src/sbml/Reaction.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Rule.cpp b/src/sbml/Rule.cpp
index 334f6fc..ceaaf19 100644
--- a/src/sbml/Rule.cpp
+++ b/src/sbml/Rule.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1055,7 +1055,10 @@ Rule::addExpectedAttributes(ExpectedAttributes& attributes)
   }
   else
   {
-    attributes.add("variable");
+    if (isAssignment() || isRate())
+    {
+      attributes.add("variable");
+    }
     if (level == 2 && version == 2)
     {
       attributes.add("sboTerm");
diff --git a/src/sbml/Rule.h b/src/sbml/Rule.h
index 913535a..ee0e515 100644
--- a/src/sbml/Rule.h
+++ b/src/sbml/Rule.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLConstructorException.cpp b/src/sbml/SBMLConstructorException.cpp
index bdf2a21..9c69f84 100644
--- a/src/sbml/SBMLConstructorException.cpp
+++ b/src/sbml/SBMLConstructorException.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLConstructorException.h b/src/sbml/SBMLConstructorException.h
index 7e624e2..950be7d 100644
--- a/src/sbml/SBMLConstructorException.h
+++ b/src/sbml/SBMLConstructorException.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLConvert.cpp b/src/sbml/SBMLConvert.cpp
index 206a193..7ca0da6 100644
--- a/src/sbml/SBMLConvert.cpp
+++ b/src/sbml/SBMLConvert.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLDocument.cpp b/src/sbml/SBMLDocument.cpp
index f3c1356..92cf207 100644
--- a/src/sbml/SBMLDocument.cpp
+++ b/src/sbml/SBMLDocument.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -43,6 +43,7 @@
 
 #include <sbml/validator/SBMLInternalValidator.h>
 #include <sbml/validator/StrictUnitConsistencyValidator.h>
+#include <sbml/validator/UnitConsistencyValidator.h>
 
 #include <sbml/Model.h>
 #include <sbml/SBMLErrorLog.h>
@@ -888,6 +889,12 @@ SBMLDocument::checkInternalConsistency()
   return numErrors;
 }
 
+unsigned int
+getLevelVersionSeverity(unsigned int errorId, unsigned int level, unsigned int version)
+{
+  return SBMLError(errorId, level, version).getSeverity();
+}
+
 /*
  * Performs a set of semantic consistency checks on the document to establish
  * whether it is compatible with L1 and can be converted.  Query
@@ -896,9 +903,47 @@ SBMLDocument::checkInternalConsistency()
  * @return the number of failed checks (errors) encountered.
  */
 unsigned int
-SBMLDocument::checkL1Compatibility ()
+SBMLDocument::checkL1Compatibility (bool inConversion)
 {
-  return mInternalValidator->checkL1Compatibility();
+  unsigned int nerrors =  mInternalValidator->checkL1Compatibility();
+  unsigned int unit_errors = 0;
+
+  if (inConversion == false)
+  {
+    UnitConsistencyValidator unit_validator;
+    unit_validator.init();
+    unit_errors = unit_validator.validate(*this);
+    if (unit_errors > 0)
+    {
+      // need to check whether these are what would be warnings
+      // and only log the error if there would be a units error
+      bool logUnitError = false;
+      std::list<SBMLError> errors = unit_validator.getFailures();
+      std::list<SBMLError>::iterator it = errors.begin();
+
+      while(!logUnitError && it != errors.end())
+      {
+        SBMLError err = (SBMLError)(*it);
+        unsigned int l2v1_sev = getLevelVersionSeverity(err.getErrorId(), 1, 2);
+        if (l2v1_sev == LIBSBML_SEV_ERROR)
+        {
+          logUnitError = true;
+        }
+        it++;
+      }
+      if (logUnitError)
+      {
+        getErrorLog()->logError(StrictUnitsRequiredInL1, getLevel(), getVersion());
+        unit_errors = 1;
+      }
+      else
+      {
+        unit_errors = 0;
+      }
+    }
+  }
+
+  return nerrors + unit_errors;
 }
 
 
@@ -910,9 +955,47 @@ SBMLDocument::checkL1Compatibility ()
  * @return the number of failed checks (errors) encountered.
  */
 unsigned int
-SBMLDocument::checkL2v1Compatibility ()
+SBMLDocument::checkL2v1Compatibility (bool inConversion)
 {
-  return mInternalValidator->checkL2v1Compatibility();
+  unsigned int nerrors = mInternalValidator->checkL2v1Compatibility();
+  unsigned int unit_errors = 0;
+
+  if (inConversion == false)
+  {
+    UnitConsistencyValidator unit_validator;
+    unit_validator.init();
+    unit_errors = unit_validator.validate(*this);
+    if (unit_errors > 0)
+    {
+      // need to check whether these are what would be warnings
+      // and only log the error if there would be a units error
+      bool logUnitError = false;
+      std::list<SBMLError> errors = unit_validator.getFailures();
+      std::list<SBMLError>::iterator it = errors.begin();
+
+      while(!logUnitError && it != errors.end())
+      {
+        SBMLError err = (SBMLError)(*it);
+        unsigned int l2v1_sev = getLevelVersionSeverity(err.getErrorId(), 2, 1);
+        if (l2v1_sev == LIBSBML_SEV_ERROR)
+        {
+          logUnitError = true;
+        }
+        it++;
+      }
+      if (logUnitError)
+      {
+        getErrorLog()->logError(StrictUnitsRequiredInL2v1, getLevel(), getVersion());
+        unit_errors = 1;
+      }
+      else
+      {
+        unit_errors = 0;
+      }
+    }
+  }
+
+  return nerrors + unit_errors;
 }
 
 
@@ -924,9 +1007,47 @@ SBMLDocument::checkL2v1Compatibility ()
  * @return the number of failed checks (errors) encountered.
  */
 unsigned int
-SBMLDocument::checkL2v2Compatibility ()
+SBMLDocument::checkL2v2Compatibility (bool inConversion)
 {
-  return mInternalValidator->checkL2v2Compatibility();
+  unsigned int nerrors =  mInternalValidator->checkL2v2Compatibility();
+  unsigned int unit_errors = 0;
+
+  if (inConversion == false)
+  {
+    UnitConsistencyValidator unit_validator;
+    unit_validator.init();
+    unit_errors = unit_validator.validate(*this);
+    if (unit_errors > 0)
+    {
+      // need to check whether these are what would be warnings
+      // and only log the error if there would be a units error
+      bool logUnitError = false;
+      std::list<SBMLError> errors = unit_validator.getFailures();
+      std::list<SBMLError>::iterator it = errors.begin();
+
+      while(!logUnitError && it != errors.end())
+      {
+        SBMLError err = (SBMLError)(*it);
+        unsigned int l2v1_sev = getLevelVersionSeverity(err.getErrorId(), 1, 2);
+        if (l2v1_sev == LIBSBML_SEV_ERROR)
+        {
+          logUnitError = true;
+        }
+        it++;
+      }
+      if (logUnitError)
+      {
+        getErrorLog()->logError(StrictUnitsRequiredInL2v2, getLevel(), getVersion());
+        unit_errors = 1;
+      }
+      else
+      {
+        unit_errors = 0;
+      }
+    }
+  }
+
+  return nerrors + unit_errors;
 }
 
 
@@ -938,9 +1059,47 @@ SBMLDocument::checkL2v2Compatibility ()
  * @return the number of failed checks (errors) encountered.
  */
 unsigned int
-SBMLDocument::checkL2v3Compatibility ()
+SBMLDocument::checkL2v3Compatibility (bool inConversion)
 {
-  return mInternalValidator->checkL2v3Compatibility();
+  unsigned int nerrors =  mInternalValidator->checkL2v3Compatibility();
+  unsigned int unit_errors = 0;
+
+  if (inConversion == false)
+  {
+    UnitConsistencyValidator unit_validator;
+    unit_validator.init();
+    unit_errors = unit_validator.validate(*this);
+    if (unit_errors > 0)
+    {
+      // need to check whether these are what would be warnings
+      // and only log the error if there would be a units error
+      bool logUnitError = false;
+      std::list<SBMLError> errors = unit_validator.getFailures();
+      std::list<SBMLError>::iterator it = errors.begin();
+
+      while(!logUnitError && it != errors.end())
+      {
+        SBMLError err = (SBMLError)(*it);
+        unsigned int l2v1_sev = getLevelVersionSeverity(err.getErrorId(), 1, 2);
+        if (l2v1_sev == LIBSBML_SEV_ERROR)
+        {
+          logUnitError = true;
+        }
+        it++;
+      }
+      if (logUnitError)
+      {
+        getErrorLog()->logError(StrictUnitsRequiredInL2v3, getLevel(), getVersion());
+        unit_errors = 1;
+      }
+      else
+      {
+        unit_errors = 0;
+      }
+    }
+  }
+
+  return nerrors + unit_errors;
 }
 
 
diff --git a/src/sbml/SBMLDocument.h b/src/sbml/SBMLDocument.h
index 541422e..9e476be 100644
--- a/src/sbml/SBMLDocument.h
+++ b/src/sbml/SBMLDocument.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1026,7 +1026,7 @@ public:
    *
    * @return the number of failed checks (errors) encountered.
    */
-  unsigned int checkL1Compatibility ();
+  unsigned int checkL1Compatibility (bool inConversion = false);
 
 
   /**
@@ -1039,7 +1039,7 @@ public:
    *
    * @return the number of failed checks (errors) encountered.
    */
-  unsigned int checkL2v1Compatibility ();
+  unsigned int checkL2v1Compatibility (bool inConversion = false);
 
 
   /**
@@ -1052,7 +1052,7 @@ public:
    *
    * @return the number of failed checks (errors) encountered.
    */
-  unsigned int checkL2v2Compatibility ();
+  unsigned int checkL2v2Compatibility (bool inConversion = false);
 
 
   /**
@@ -1065,7 +1065,7 @@ public:
    *
    * @return the number of failed checks (errors) encountered.
    */
-  unsigned int checkL2v3Compatibility ();
+  unsigned int checkL2v3Compatibility (bool inConversion = false);
 
 
   /**
diff --git a/src/sbml/SBMLError.cpp b/src/sbml/SBMLError.cpp
index dc40b35..cde6354 100644
--- a/src/sbml/SBMLError.cpp
+++ b/src/sbml/SBMLError.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLError.h b/src/sbml/SBMLError.h
index 4d4d9bc..704ab72 100644
--- a/src/sbml/SBMLError.h
+++ b/src/sbml/SBMLError.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLErrorLog.cpp b/src/sbml/SBMLErrorLog.cpp
index 47deb2f..fba54ea 100644
--- a/src/sbml/SBMLErrorLog.cpp
+++ b/src/sbml/SBMLErrorLog.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLErrorLog.h b/src/sbml/SBMLErrorLog.h
index 060298c..d11d6e1 100644
--- a/src/sbml/SBMLErrorLog.h
+++ b/src/sbml/SBMLErrorLog.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLErrorTable.h b/src/sbml/SBMLErrorTable.h
index 5af079f..01db6a1 100644
--- a/src/sbml/SBMLErrorTable.h
+++ b/src/sbml/SBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -8171,10 +8171,10 @@ static const sbmlErrorTableEntry errorTable[] =
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
     "SBML Level 2 Version 4 removed the requirement that all units "
     "be consistent.  This model contains units that produce "
     "inconsistencies and thus conversion to Level 1 "
@@ -8546,10 +8546,10 @@ static const sbmlErrorTableEntry errorTable[] =
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
     "SBML Level 2 Version 4 removed the requirement that all units "
     "be consistent.  This model contains units that produce "
     "inconsistencies and thus conversion to Level 2 Version 1 "
@@ -8878,10 +8878,10 @@ static const sbmlErrorTableEntry errorTable[] =
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
     "SBML Level 2 Version 4 removed the requirement that all units "
     "be consistent.  This model contains units that produce "
     "inconsistencies and thus conversion to Level 2 Version 2 "
@@ -8906,10 +8906,10 @@ static const sbmlErrorTableEntry errorTable[] =
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
     LIBSBML_SEV_NOT_APPLICABLE,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
-    LIBSBML_SEV_WARNING,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
+    LIBSBML_SEV_ERROR,
     "SBML Level 2 Version 4 removed the requirement that all sboTerms "
     "be drawn from a given branch of SBO (http://www.biomodels.net/SBO/). "
     "This model contains sboTerms that produce "
diff --git a/src/sbml/SBMLNamespaces.cpp b/src/sbml/SBMLNamespaces.cpp
index 660e422..aac0d7f 100644
--- a/src/sbml/SBMLNamespaces.cpp
+++ b/src/sbml/SBMLNamespaces.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLNamespaces.h b/src/sbml/SBMLNamespaces.h
index eac51dd..bf18448 100644
--- a/src/sbml/SBMLNamespaces.h
+++ b/src/sbml/SBMLNamespaces.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLReader.cpp b/src/sbml/SBMLReader.cpp
index a0fab5c..053173e 100644
--- a/src/sbml/SBMLReader.cpp
+++ b/src/sbml/SBMLReader.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLReader.h b/src/sbml/SBMLReader.h
index b59d6a0..17aca1c 100644
--- a/src/sbml/SBMLReader.h
+++ b/src/sbml/SBMLReader.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLTransforms.cpp b/src/sbml/SBMLTransforms.cpp
index b6634e3..388e237 100644
--- a/src/sbml/SBMLTransforms.cpp
+++ b/src/sbml/SBMLTransforms.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLTransforms.h b/src/sbml/SBMLTransforms.h
index 55dc986..2a71da6 100644
--- a/src/sbml/SBMLTransforms.h
+++ b/src/sbml/SBMLTransforms.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLTypeCodes.cpp b/src/sbml/SBMLTypeCodes.cpp
index dd3349e..7943085 100644
--- a/src/sbml/SBMLTypeCodes.cpp
+++ b/src/sbml/SBMLTypeCodes.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLTypeCodes.h b/src/sbml/SBMLTypeCodes.h
index 3133926..c9d6a15 100644
--- a/src/sbml/SBMLTypeCodes.h
+++ b/src/sbml/SBMLTypeCodes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLTypes.h b/src/sbml/SBMLTypes.h
index 811d28b..cc8d273 100644
--- a/src/sbml/SBMLTypes.h
+++ b/src/sbml/SBMLTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLVisitor.cpp b/src/sbml/SBMLVisitor.cpp
index b8ffeb5..47e6be4 100644
--- a/src/sbml/SBMLVisitor.cpp
+++ b/src/sbml/SBMLVisitor.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLVisitor.h b/src/sbml/SBMLVisitor.h
index 3b2ada9..529042e 100644
--- a/src/sbml/SBMLVisitor.h
+++ b/src/sbml/SBMLVisitor.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLWriter.cpp b/src/sbml/SBMLWriter.cpp
index 4c5fc6b..e06d272 100644
--- a/src/sbml/SBMLWriter.cpp
+++ b/src/sbml/SBMLWriter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBMLWriter.h b/src/sbml/SBMLWriter.h
index 43e2c5f..fc1951c 100644
--- a/src/sbml/SBMLWriter.h
+++ b/src/sbml/SBMLWriter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SBO.cpp b/src/sbml/SBO.cpp
index 49f9cf6..bd22302 100644
--- a/src/sbml/SBO.cpp
+++ b/src/sbml/SBO.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -671,6 +671,29 @@ SBO::isObselete  (unsigned int sboTerm)
 
 
 /** @cond doxygenLibsbmlInternal */
+unsigned int
+SBO::getParentBranch(unsigned int term)
+{
+  if (isMathematicalExpression(term))
+    return 64;
+  else if (isMetadataRepresentation(term))
+    return 544;
+  else if (isModellingFramework(term))
+    return 4;
+  else if (isOccurringEntityRepresentation(term))
+    return 231;
+  else if (isParticipantRole(term))
+    return 3;
+  else if (isPhysicalEntityRepresentation(term))
+    return 236;
+  else if (isSystemsDescriptionParameter(term))
+    return 545;
+  else
+    return 1000;
+}
+/** @endcond */
+
+/** @cond doxygenLibsbmlInternal */
 /**
   * functions for checking the SBO term is from correct part of SBO
   * populates the parent-child map
@@ -678,7 +701,7 @@ SBO::isObselete  (unsigned int sboTerm)
 void
 SBO::populateSBOTree()
 {
-  // generated from SBO on July 7th 2015
+  // generated from SBO on 03/03/2016
   mParent.insert( pair<const int, int>(  1,  64) );
   mParent.insert( pair<const int, int>(  2, 545) );
   mParent.insert( pair<const int, int>(  3,   0) );
@@ -1355,11 +1378,12 @@ SBO::populateSBOTree()
   mParent.insert( pair<const int, int>(624,   4) );
   mParent.insert( pair<const int, int>(625, 613) );
   mParent.insert( pair<const int, int>(626, 625) );
-  mParent.insert( pair<const int, int>(627, 375) );
-  mParent.insert( pair<const int, int>(628, 375) );
+  mParent.insert( pair<const int, int>(627, 631) );
+  mParent.insert( pair<const int, int>(628, 631) );
   mParent.insert( pair<const int, int>(629, 395) );
   mParent.insert( pair<const int, int>(630, 395) );
-
+  mParent.insert( pair<const int, int>(631, 375) );
+  mParent.insert( pair<const int, int>(632, 631) );
 
 }
 /** @endcond */
diff --git a/src/sbml/SBO.h b/src/sbml/SBO.h
index 5820144..9291047 100644
--- a/src/sbml/SBO.h
+++ b/src/sbml/SBO.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -574,6 +574,14 @@ public:
    */
   static bool checkTerm (int sboTerm);
 
+  /** @cond doxygenLibsbmlInternal */
+ /**
+   * Returns the parent branch of the term
+   */
+  static unsigned int getParentBranch(unsigned int term);
+
+    /** @endcond */
+
 
 protected:  
   /** @cond doxygenLibsbmlInternal */
diff --git a/src/sbml/SBase.cpp b/src/sbml/SBase.cpp
index 5e11502..c9181a2 100644
--- a/src/sbml/SBase.cpp
+++ b/src/sbml/SBase.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -595,7 +595,7 @@ SBase::loadPlugins(SBMLNamespaces *sbmlns)
   if (xmlns)
   {
     int numxmlns= xmlns->getLength();
-    SBaseExtensionPoint extPoint(getPackageName(), getTypeCode());
+    SBaseExtensionPoint extPoint(getPackageName(), getTypeCode(), getElementName());
     SBaseExtensionPoint genericPoint("all", SBML_GENERIC_SBASE);
 
     for (int i=0; i < numxmlns; i++)
@@ -2952,6 +2952,13 @@ SBase::getTypeCode () const
 }
 
 
+const std::string& 
+SBase::getElementName () const
+{
+  static const std::string name = "unknown";
+  return name;
+}
+
 //
 //
 // (EXTENSION)
@@ -5880,6 +5887,13 @@ SBase::checkListOfPopulated(SBase* object)
         // will need to check for defaultTerm but will
         // have to pass that to the qual extension
       }
+      else if (object->getPackageName() == "multi" &&
+	object->getElementName() == "listOfSpeciesFeatures")
+      {
+	// do nothing
+	// will need to check for defaultTerm but will
+	// have to pass that to the multi extension
+      }
       else
       {
         ostringstream errMsg;
diff --git a/src/sbml/SBase.h b/src/sbml/SBase.h
index cd52d16..f1621d1 100644
--- a/src/sbml/SBase.h
+++ b/src/sbml/SBase.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -371,7 +371,7 @@ public:
    * Add the given string to all identifiers (but not identifier references) in the object.  If the string
    * is added to anything other than an id or a metaid, this code is
    * responsible for tracking down and renaming all *idRefs in the package
-   * extention that identifier comes from.
+   * extension that identifier comes from.
    */
   virtual int prependStringToAllIdentifiers(const std::string& prefix);
   /** @endcond */
@@ -2545,7 +2545,7 @@ s.setNotes("<body xmlns='http://www.w3.org/1999/xhtml'><p>here is my note</p></b
    * "model", CompartmentType defines it as returning @c "compartmentType",
    * and so on.
    */
-  virtual const std::string& getElementName () const = 0;
+  virtual const std::string& getElementName () const;
 
 
   /**
diff --git a/src/sbml/SimpleSpeciesReference.cpp b/src/sbml/SimpleSpeciesReference.cpp
index 0c76450..daff036 100644
--- a/src/sbml/SimpleSpeciesReference.cpp
+++ b/src/sbml/SimpleSpeciesReference.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SimpleSpeciesReference.h b/src/sbml/SimpleSpeciesReference.h
index 0d61f73..c6572e9 100644
--- a/src/sbml/SimpleSpeciesReference.h
+++ b/src/sbml/SimpleSpeciesReference.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Species.cpp b/src/sbml/Species.cpp
index 09f8b77..5e0406a 100644
--- a/src/sbml/Species.cpp
+++ b/src/sbml/Species.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Species.h b/src/sbml/Species.h
index b75238c..05ff13f 100644
--- a/src/sbml/Species.h
+++ b/src/sbml/Species.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SpeciesReference.cpp b/src/sbml/SpeciesReference.cpp
index 9e102db..b3c5d22 100644
--- a/src/sbml/SpeciesReference.cpp
+++ b/src/sbml/SpeciesReference.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SpeciesReference.h b/src/sbml/SpeciesReference.h
index 42676ab..8bc0380 100644
--- a/src/sbml/SpeciesReference.h
+++ b/src/sbml/SpeciesReference.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SpeciesType.cpp b/src/sbml/SpeciesType.cpp
index b48b670..5b859b9 100644
--- a/src/sbml/SpeciesType.cpp
+++ b/src/sbml/SpeciesType.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SpeciesType.h b/src/sbml/SpeciesType.h
index 50e96dc..ff9527d 100644
--- a/src/sbml/SpeciesType.h
+++ b/src/sbml/SpeciesType.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/StoichiometryMath.cpp b/src/sbml/StoichiometryMath.cpp
index aee0529..90ddc38 100644
--- a/src/sbml/StoichiometryMath.cpp
+++ b/src/sbml/StoichiometryMath.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/StoichiometryMath.h b/src/sbml/StoichiometryMath.h
index 4a04b29..8435d97 100644
--- a/src/sbml/StoichiometryMath.h
+++ b/src/sbml/StoichiometryMath.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SyntaxChecker.cpp b/src/sbml/SyntaxChecker.cpp
index 6e1c4ce..de0379e 100644
--- a/src/sbml/SyntaxChecker.cpp
+++ b/src/sbml/SyntaxChecker.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/SyntaxChecker.h b/src/sbml/SyntaxChecker.h
index 6943c66..a2e0680 100644
--- a/src/sbml/SyntaxChecker.h
+++ b/src/sbml/SyntaxChecker.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Trigger.cpp b/src/sbml/Trigger.cpp
index 7ae06ff..7b76173 100644
--- a/src/sbml/Trigger.cpp
+++ b/src/sbml/Trigger.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Trigger.h b/src/sbml/Trigger.h
index 746c045..a3a4282 100644
--- a/src/sbml/Trigger.h
+++ b/src/sbml/Trigger.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/Unit.cpp b/src/sbml/Unit.cpp
index fad7deb..1351146 100644
--- a/src/sbml/Unit.cpp
+++ b/src/sbml/Unit.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1131,7 +1131,7 @@ Unit::areEquivalent(Unit * unit1, Unit * unit2)
       if (unit1->isUnitChecking() || unit2->isUnitChecking())
       {
         if ( (unit1->getOffset()    == unit2->getOffset())
-          && (unit1->getExponentUnitChecking()  == unit2->getExponentUnitChecking()))
+          && (util_isEqual(unit1->getExponentUnitChecking(), unit2->getExponentUnitChecking())))
         {
           equivalent = true;
         }      
diff --git a/src/sbml/Unit.h b/src/sbml/Unit.h
index 1d40c05..6140d9a 100644
--- a/src/sbml/Unit.h
+++ b/src/sbml/Unit.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/UnitDefinition.cpp b/src/sbml/UnitDefinition.cpp
index 7312a60..ba29c27 100644
--- a/src/sbml/UnitDefinition.cpp
+++ b/src/sbml/UnitDefinition.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/UnitDefinition.h b/src/sbml/UnitDefinition.h
index 8c26e33..32f175a 100644
--- a/src/sbml/UnitDefinition.h
+++ b/src/sbml/UnitDefinition.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/UnitKind.c b/src/sbml/UnitKind.c
index e5af4ab..1a56a67 100644
--- a/src/sbml/UnitKind.c
+++ b/src/sbml/UnitKind.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/UnitKind.h b/src/sbml/UnitKind.h
index c021b8d..25788f6 100644
--- a/src/sbml/UnitKind.h
+++ b/src/sbml/UnitKind.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/CVTerm.cpp b/src/sbml/annotation/CVTerm.cpp
index e7b81f3..cd9dc59 100644
--- a/src/sbml/annotation/CVTerm.cpp
+++ b/src/sbml/annotation/CVTerm.cpp
@@ -3,7 +3,7 @@
  * @brief   CVTerm I/O
  * @author  Sarah Keating
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/CVTerm.h b/src/sbml/annotation/CVTerm.h
index 55d3b14..1efa5dc 100644
--- a/src/sbml/annotation/CVTerm.h
+++ b/src/sbml/annotation/CVTerm.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -496,7 +496,7 @@ public:
    * qualifiers web page</a> for an explanation of the meaning of these
    * different qualifiers.
    *
-   * @param type a @if clike #QualifierType_t value at else qualifier type at endif@~
+   * @param type a @if clike #QualifierType_t value at else qualifier type at endif@~.
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
    */
@@ -588,9 +588,9 @@ public:
    * of this object or @sbmlconstant{UNKNOWN_QUALIFIER, QualifierType_t}
    * (the default).
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */
   QualifierType_t getQualifierType();
 
@@ -626,9 +626,9 @@ public:
    * of this object or @sbmlconstant{UNKNOWN_QUALIFIER, QualifierType_t}
    * (the default).
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */
   QualifierType_t getQualifierType() const;
 
@@ -839,9 +839,9 @@ public:
    *
    * @return the XMLAttributes that store the resources of this CVTerm.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::addResource(const std::string& resource)
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getQualifierType()
+   * @see addResource(const std::string& resource)
+   * @see getResourceURI(unsigned int n)
    */
   XMLAttributes * getResources();
 
@@ -864,9 +864,9 @@ public:
    *
    * @return the XMLAttributes that store the resources of this CVTerm.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::addResource(const std::string& resource)
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getQualifierType()
+   * @see addResource(const std::string& resource)
+   * @see getResourceURI(unsigned int n)
    */
   const XMLAttributes * getResources() const;
 
@@ -886,8 +886,8 @@ public:
    * @return the number of resources in the set of XMLAttributes
    * of this CVTerm.
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getResources()
+   * @see getResourceURI(unsigned int n)
    */
   unsigned int getNumResources();
 
@@ -907,8 +907,8 @@ public:
    * @return the number of resources in the set of XMLAttributes
    * of this CVTerm.
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::getResourceURI(unsigned int n)
+   * @see getResources()
+   * @see getResourceURI(unsigned int n)
    */
   unsigned int getNumResources() const;
 
@@ -928,13 +928,13 @@ public:
    * are stored in this CVTerm object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    *
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    *
    * @return string representing the value of the nth resource
    * in the set of XMLAttributes of this CVTerm.
    *
-   * @see CVTerm::getNumResources()
-   * @see CVTerm::getQualifierType()
+   * @see getNumResources()
+   * @see getQualifierType()
    */
   std::string getResourceURI(unsigned int n);
 
@@ -954,13 +954,13 @@ public:
    * are stored in this CVTerm object, then call this method to retrieve the
    * <em>n</em>th resource URI.
    *
-   * @param n the index of the resource to query
+   * @param n the index of the resource to query.
    *
    * @return string representing the value of the nth resource
    * in the set of XMLAttributes of this CVTerm.
    *
-   * @see CVTerm::getNumResources()
-   * @see CVTerm::getQualifierType()
+   * @see getNumResources()
+   * @see getQualifierType()
    */
   std::string getResourceURI(unsigned int n) const;
 
@@ -974,7 +974,7 @@ public:
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
    *
-   * @see CVTerm::getQualifierType()
+   * @see getQualifierType()
    */
   int setQualifierType(QualifierType_t type);
 
@@ -983,7 +983,7 @@ public:
    * Sets the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
    * of this CVTerm object.
    *
-   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
+   * @param type the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~.
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -994,8 +994,8 @@ public:
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
    * will default to @sbmlconstant{BQM_UNKNOWN, QualifierType_t}.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */
   int setModelQualifierType(ModelQualifierType_t type);
 
@@ -1016,8 +1016,8 @@ public:
    * then the @if clike #BiolQualifierType_t value at else biology qualifier type at endif@~
    * will default to @sbmlconstant{BQB_UNKNOWN, BiolQualifierType_t}.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */
   int setBiologicalQualifierType(BiolQualifierType_t type);
 
@@ -1026,7 +1026,7 @@ public:
    * Sets the @if clike #ModelQualifierType_t at else model qualifier
    * type at endif@~ value of this CVTerm object.
    *
-   * @param qualifier the string representing a model qualifier
+   * @param qualifier the string representing a model qualifier.
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1037,8 +1037,8 @@ public:
    * then the @if clike #ModelQualifierType_t value at else model qualifier type at endif@~
    * will default to @sbmlconstant{BQM_UNKNOWN, QualifierType_t}.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */
   int setModelQualifierType(const std::string& qualifier);
 
@@ -1047,7 +1047,7 @@ public:
    * Sets the @if clike #BiolQualifierType_t at else biology qualifier
    * type code at endif@~ of this CVTerm object.
    *
-   * @param qualifier the string representing a biology qualifier
+   * @param qualifier the string representing a biology qualifier.
    *
    * @copydetails doc_returns_success_code
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1058,8 +1058,8 @@ public:
    * then the @if clike #BiolQualifierType_t at else biology qualifier type code at endif@~
    * will default to @sbmlconstant{BQB_UNKNOWN, BiolQualifierType_t}.
    *
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::setQualifierType(@if java int at endif)
+   * @see getQualifierType()
+   * @see setQualifierType(@if java int at endif)
    */
   int setBiologicalQualifierType(const std::string& qualifier);
 
@@ -1127,11 +1127,11 @@ public:
    * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
    * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    *
-   * @see CVTerm::getResources()
-   * @see CVTerm::removeResource(std::string resource)
-   * @see CVTerm::getQualifierType()
-   * @see CVTerm::getModelQualifierType()
-   * @see CVTerm::getBiologicalQualifierType()
+   * @see getResources()
+   * @see removeResource(std::string resource)
+   * @see getQualifierType()
+   * @see getModelQualifierType()
+   * @see getBiologicalQualifierType()
    */
   int addResource(const std::string& resource);
 
@@ -1148,7 +1148,7 @@ public:
    * @li @sbmlconstant{LIBSBML_INDEX_EXCEEDS_SIZE, OperationReturnValues_t}
    * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
    *
-   * @see CVTerm::addResource(const std::string& resource)
+   * @see addResource(const std::string& resource)
    */
   int removeResource(std::string resource);
 
@@ -1192,7 +1192,7 @@ public:
    * Returns the nth CVTerm in the list of CVTerms of this CVTerm
    * object.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return the nth CVTerm in the list of CVTerms for this CVTerm object.
    */
@@ -1203,7 +1203,7 @@ public:
    * Returns the nth CVTerm in the list of CVTerms of this CVTerm
    * object.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return the nth CVTerm in the list of CVTerms for this CVTerm object.
    */
@@ -1246,7 +1246,7 @@ public:
    * Removes the nth CVTerm in the list of CVTerms of this CVTerm
    * object and returns a pointer to it.
    *
-   * @param n unsigned int the index of the CVTerm to retrieve
+   * @param n unsigned int the index of the CVTerm to retrieve.
    *
    * @return a pointer to the nth CVTerm in the list of CVTerms for this 
    * CVTerm object.
@@ -1276,6 +1276,112 @@ LIBSBML_CPP_NAMESPACE_END
 
 #endif  /* __cplusplus */
 
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+/**
+ * This method takes a model qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a model qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return
+ * the string <code>"isDescribedBy"</code>.
+ *
+ * @param type The @if clike ModelQualifierType_t at endif@~ value to
+ * translate. @ifnot clike The value should be a libSBML constant whose
+ * name begins with @c BQM_, such as (for example)
+ * @sbmlconstant{BQM_IS, BiolQualifierType_t}. at endif@~
+ *
+ * @return a human readable qualifier name for the given qualifier type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */
+LIBSBML_EXTERN
+const char*
+ModelQualifierType_toString(ModelQualifierType_t type);
+
+/**
+ * This method takes a biol qualifier type code and returns a string
+ * representing the code.
+ *
+ * This method takes a biol qualifier type as argument
+ * and returns a string name corresponding to that code.  For example,
+ * passing it the qualifier <code>BQB_HAS_VERSION</code> will return
+ * the string <code>"hasVersion"</code>.
+ *
+ * @param type The @if clike BiolQualifierType_t at endif@~ value to
+ * translate. @ifnot clike The value should be a constant whose name
+ * begins with @c BQB_, such as (for example)
+ * @sbmlconstant{BQB_IS, BiolQualifierType_t}. at endif@~
+ *
+ * @return a human readable qualifier name for the given type.
+ *
+ * @note The caller does not own the returned string and is therefore not
+ * allowed to modify it.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */
+LIBSBML_EXTERN
+const char*
+BiolQualifierType_toString(BiolQualifierType_t type);
+
+/**
+ * This method takes a a string and returns a model qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a model qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>"isDescribedBy"</code> will return the qualifier
+ * <code>BQM_IS_DESCRIBED_BY</code>.
+ *
+ * @param s The string to translate to a @if clike ModelQualifierType_t
+ * value at else libSBML constant value representing a model qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */
+LIBSBML_EXTERN
+ModelQualifierType_t
+ModelQualifierType_fromString(const char* s);
+
+/**
+ * This method takes a a string and returns a biol qualifier
+ * representing the string.
+ *
+ * This method takes a string as argument and returns a biol qualifier type
+ * corresponding to that string.  For example, passing it the string
+ * <code>"hasVersion"</code> will return the qualifier
+ * <code>BQB_HAS_VERSION</code>.
+ *
+ * @param s The string to translate to a @if clike BiolQualifierType_t
+ * value at else libSBML constant value representing a biological qualifier at endif.
+ *
+ * @return a libSBML qualifier enumeration value for the given human readable
+ * qualifier name.
+ *
+ * @if conly
+ * @memberof CVTerm_t
+ * @endif
+ */
+LIBSBML_EXTERN
+BiolQualifierType_t
+BiolQualifierType_fromString(const char* s);
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
 #ifndef SWIG
 
 LIBSBML_CPP_NAMESPACE_BEGIN
@@ -1285,9 +1391,9 @@ BEGIN_C_DECLS
  * Creates a new CVTerm_t with the given #QualifierType_t value @p type and
  * returns a pointer to it.
  *
- * The possible QualifierTypes are MODEL_QUALIFIER and BIOLOGICAL_QUALIFIER.  
+ * The possible QualifierTypes are MODEL_QUALIFIER and BIOLOGICAL_QUALIFIER.
  *
- * @param type a #QualifierType_t
+ * @param type a QualifierType_t.
  *
  * @return a pointer to the newly created CVTerm_t structure.
  *
@@ -1299,11 +1405,11 @@ CVTerm_createWithQualifierType(QualifierType_t type);
 
 
 /**
- * Create a new CVTerm_t from the given XMLNode_t and returns a 
+ * Create a new CVTerm_t from the given XMLNode_t and returns a
  * pointer to it.
  *
  * RDFAnnotations within a model are stored as a List_t of CVTerm_t's.  This allows
- * the user to interact with the CVTerm_t's directly.  When LibSBML reads in a 
+ * the user to interact with the CVTerm_t's directly.  When LibSBML reads in a
  * model containing RDFAnnotations it parses them into a %List of CVTerm_t's and
  * when writing a model it parses the CVTerm_t's into the appropriate annotation
  * structure.  This function creates a CVTerm_t from the XMLNode_t supplied.
@@ -1336,7 +1442,7 @@ CVTerm_free(CVTerm_t * c);
 /**
  * Creates a deep copy of the given CVTerm_t structure
  *
- * @param term the CVTerm_t structure to be copied
+ * @param term the CVTerm_t structure to be copied.
  *
  * @return a (deep) copy of the given CVTerm_t structure.
  *
@@ -1350,7 +1456,7 @@ CVTerm_clone (const CVTerm_t* term);
 /**
  * Takes a CVTerm_t structure and returns its #QualifierType_t type.
  *
- * @param term the CVTerm_t structure whose #QualifierType_t value is sought
+ * @param term the CVTerm_t structure whose #QualifierType_t value is sought.
  *
  * @return the #QualifierType_t value of this CVTerm_t or UNKNOWN_QUALIFIER
  * (default).
@@ -1358,7 +1464,7 @@ CVTerm_clone (const CVTerm_t* term);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-QualifierType_t 
+QualifierType_t
 CVTerm_getQualifierType(CVTerm_t* term);
 
 
@@ -1373,7 +1479,7 @@ CVTerm_getQualifierType(CVTerm_t* term);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-ModelQualifierType_t 
+ModelQualifierType_t
 CVTerm_getModelQualifierType(CVTerm_t* term);
 
 
@@ -1389,7 +1495,7 @@ CVTerm_getModelQualifierType(CVTerm_t* term);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-BiolQualifierType_t 
+BiolQualifierType_t
 CVTerm_getBiologicalQualifierType(CVTerm_t* term);
 
 
@@ -1404,7 +1510,7 @@ CVTerm_getBiologicalQualifierType(CVTerm_t* term);
  */
 LIBSBML_EXTERN
 XMLAttributes_t *
-CVTerm_getResources(CVTerm_t* term); 
+CVTerm_getResources(CVTerm_t* term);
 
 
 /**
@@ -1425,8 +1531,8 @@ CVTerm_getNumResources(CVTerm_t* term);
 /**
  * Returns the value of the nth resource for this %CVTerm_t.
  *
- * @param term the CVTerm_t structure
- * @param n the index of the resource to query
+ * @param term the CVTerm_t structure.
+ * @param n the index of the resource to query.
  *
  * @return string representing the value of the nth resource
  * in the set of XMLAttributes of this %CVTerm_t.
@@ -1446,7 +1552,7 @@ CVTerm_getResourceURI(CVTerm_t * term, unsigned int n);
  * Sets the "QualifierType_t" of this %CVTerm_t.
  *
  * @param term the CVTerm_t structure to set.
- * @param type the QualifierType_t 
+ * @param type the QualifierType_t.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1455,7 +1561,7 @@ CVTerm_getResourceURI(CVTerm_t * term, unsigned int n);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_setQualifierType(CVTerm_t * term, QualifierType_t type);
 
 
@@ -1463,7 +1569,7 @@ CVTerm_setQualifierType(CVTerm_t * term, QualifierType_t type);
  * Sets the "ModelQualifierType_t" of this %CVTerm_t.
  *
  * @param term the CVTerm_t structure to set.
- * @param type the ModelQualifierType_t
+ * @param type the ModelQualifierType_t.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1476,7 +1582,7 @@ CVTerm_setQualifierType(CVTerm_t * term, QualifierType_t type);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_setModelQualifierType(CVTerm_t * term, ModelQualifierType_t type);
 
 
@@ -1484,7 +1590,7 @@ CVTerm_setModelQualifierType(CVTerm_t * term, ModelQualifierType_t type);
  * Sets the "BiolQualifierType_t" of this %CVTerm_t.
  *
  * @param term the CVTerm_t structure to set.
- * @param type the BiolQualifierType_t
+ * @param type the BiolQualifierType_t.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1497,7 +1603,7 @@ CVTerm_setModelQualifierType(CVTerm_t * term, ModelQualifierType_t type);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_setBiologicalQualifierType(CVTerm_t * term, BiolQualifierType_t type);
 
 
@@ -1505,7 +1611,7 @@ CVTerm_setBiologicalQualifierType(CVTerm_t * term, BiolQualifierType_t type);
  * Sets the "ModelQualifierType_t" of this %CVTerm_t.
  *
  * @param term the CVTerm_t structure to set.
- * @param qualifier the string representing a model qualifier
+ * @param qualifier the string representing a model qualifier.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1518,7 +1624,7 @@ CVTerm_setBiologicalQualifierType(CVTerm_t * term, BiolQualifierType_t type);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_setModelQualifierTypeByString(CVTerm_t * term, const char* qualifier);
 
 
@@ -1526,7 +1632,7 @@ CVTerm_setModelQualifierTypeByString(CVTerm_t * term, const char* qualifier);
  * Sets the "BiolQualifierType_t" of this %CVTerm_t.
  *
  * @param term the CVTerm_t structure to set.
- * @param qualifier the string representing a biol qualifier
+ * @param qualifier the string representing a biol qualifier.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1539,14 +1645,14 @@ CVTerm_setModelQualifierTypeByString(CVTerm_t * term, const char* qualifier);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_setBiologicalQualifierTypeByString(CVTerm_t * term, const char* qualifier);
 
 /**
  * Adds a resource to the CVTerm_t.
  *
  * @param term the CVTerm_t structure to set.
- * @param resource string representing the resource 
+ * @param resource string representing the resource
  * e.g. http://www.geneontology.org/#GO:0005892
  *
  * @copydetails doc_returns_success_code
@@ -1559,7 +1665,7 @@ CVTerm_setBiologicalQualifierTypeByString(CVTerm_t * term, const char* qualifier
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_addResource(CVTerm_t * term, const char * resource);
 
 
@@ -1567,7 +1673,7 @@ CVTerm_addResource(CVTerm_t * term, const char * resource);
  * Removes a resource from the CVTerm_t.
  *
  * @param term the CVTerm_t structure.
- * @param resource string representing the resource 
+ * @param resource string representing the resource
  * e.g. http://www.geneontology.org/#GO:0005892
  *
  * @copydetails doc_returns_success_code
@@ -1579,17 +1685,17 @@ CVTerm_addResource(CVTerm_t * term, const char * resource);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_removeResource(CVTerm_t * term, const char * resource);
 
 
 /**
  * Checks if the CVTerm_t has all the required attributes.
  *
- * @param term the CVTerm_t structure
+ * @param term the CVTerm_t structure.
  *
  * @return true (1) if this CVTerm_t has all the required elements,
- * otherwise false (0) will be returned. If an invalid CVTerm_t 
+ * otherwise false (0) will be returned. If an invalid CVTerm_t
  * was provided LIBSBML_INVALID_OBJECT is returned.
  *
  * @memberof CVTerm_t
@@ -1599,94 +1705,12 @@ int
 CVTerm_hasRequiredAttributes(CVTerm_t *term);
 
 
-/**
- * This method takes a model qualifier type code and returns a string 
- * representing the code.
- *
- * This method takes a model qualifier type as argument 
- * and returns a string name corresponding to that code.  For example, 
- * passing it the qualifier <code>BQM_IS_DESCRIBED_BY</code> will return 
- * the string "<code>isDescribedBy</code>". 
- *
- * @return a human readable qualifier name for the given type.
- *
- * @note The caller does not own the returned string and is therefore not
- * allowed to modify it.
- *
- * @param type The ModelQualifierType_t to translate
- *
- * @memberof CVTerm_t
- */
-LIBSBML_EXTERN
-const char*
-ModelQualifierType_toString(ModelQualifierType_t type);
-
-/**
- * This method takes a biol qualifier type code and returns a string 
- * representing the code.
- *
- * This method takes a biol qualifier type as argument 
- * and returns a string name corresponding to that code.  For example, 
- * passing it the qualifier <code>BQB_HAS_VERSION</code> will return 
- * the string "<code>hasVersion</code>". 
- *
- * @return a human readable qualifier name for the given type.
- *
- * @note The caller does not own the returned string and is therefore not
- * allowed to modify it.
- *
- * @param type The BiolQualifierType_t to translate
- *
- * @memberof CVTerm_t
- */
-LIBSBML_EXTERN
-const char*
-BiolQualifierType_toString(BiolQualifierType_t type);
-
-/**
- * This method takes a a string and returns a model qualifier
- * representing the string.
- *
- * This method takes a string as argument and returns a model qualifier type 
- * corresponding to that string.  For example, passing it the string 
- * "<code>isDescribedBy</code>" will return the qualifier 
- * <code>BQM_IS_DESCRIBED_BY</code>. 
- *
- * @return a qualifier for the given human readable qualifier name.
- *
- * @param s The string to translate to a ModelQualifierType_t
- *
- * @memberof CVTerm_t
- */
-LIBSBML_EXTERN
-ModelQualifierType_t 
-ModelQualifierType_fromString(const char* s);
-
-/**
- * This method takes a a string and returns a biol qualifier
- * representing the string.
- *
- * This method takes a string as argument and returns a biol qualifier type 
- * corresponding to that string.  For example, passing it the string 
- * "<code>hasVersion</code>" will return the qualifier 
- * <code>BQB_HAS_VERSION</code>. 
- *
- * @return a qualifier for the given human readable qualifier name.
- *
- * @param s The string to translate to a BiolQualifierType_t
- *
- * @memberof CVTerm_t
- */
-LIBSBML_EXTERN
-BiolQualifierType_t 
-BiolQualifierType_fromString(const char* s);
-
 
 /**
  * Returns the number of CVTerm_t structures nested within this CVTerm_t
  * structure.
  *
- * @param cvt the structure to getNumNestedCVTerms from
+ * @param cvt the structure to getNumNestedCVTerms from.
  *
  * @return the number of CVTerm_t structures nested within this CVTerm_t structure.
  *
@@ -1697,7 +1721,7 @@ BiolQualifierType_fromString(const char* s);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-unsigned int 
+unsigned int
 CVTerm_getNumNestedCVTerms(const CVTerm_t* cvt);
 
 
@@ -1706,8 +1730,8 @@ CVTerm_getNumNestedCVTerms(const CVTerm_t* cvt);
  * Returns the nth CVTerm_t in the list of CVTerm_t's of this CVTerm_t
  * structure.
  *
- * @param cvt the structure to get CVTerm_t's from
- * @param n unsigned int the index of the CVTerm_t to retrieve
+ * @param cvt the structure to get CVTerm_t's from.
+ * @param n unsigned int the index of the CVTerm_t to retrieve.
  *
  * @return the nth CVTerm_t in the list of CVTerm_t's for this CVTerm_t structure.
  *
@@ -1722,8 +1746,8 @@ CVTerm_getNestedCVTerm(const CVTerm_t* cvt, unsigned int n);
  * Adds a copy of the given CVTerm_t to the list of nested CVTerm_t's
  * within this CVTerm_t structure.
  *
- * @param cvt the structure to add the CVTerm_t to
- * @param term the CVTerm_t to assign
+ * @param cvt the structure to add the CVTerm_t to.
+ * @param term the CVTerm_t to assign.
  *
  * @copydetails doc_returns_success_code
  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
@@ -1733,7 +1757,7 @@ CVTerm_getNestedCVTerm(const CVTerm_t* cvt, unsigned int n);
  * @memberof CVTerm_t
  */
 LIBSBML_EXTERN
-int 
+int
 CVTerm_addNestedCVTerm(CVTerm_t* cvt, const CVTerm_t* term);
 
 
@@ -1741,10 +1765,10 @@ CVTerm_addNestedCVTerm(CVTerm_t* cvt, const CVTerm_t* term);
  * Removes the nth CVTerm_t in the list of CVTerm_t's of this CVTerm_t
  * structure and returns a pointer to it.
  *
- * @param cvt the structure to get CVTerm_t's from
- * @param n unsigned int the index of the CVTerm_t to retrieve
+ * @param cvt the structure to get CVTerm_t's from.
+ * @param n unsigned int the index of the CVTerm_t to retrieve.
  *
- * @return a pointer to the nth CVTerm_t in the list of CVTerm_t's for this 
+ * @return a pointer to the nth CVTerm_t in the list of CVTerm_t's for this
  * CVTerm_t structure.
  *
  * @memberof CVTerm_t
@@ -1758,7 +1782,7 @@ CVTerm_removeNestedCVTerm(CVTerm_t* cvt, unsigned int n);
  * Returns a list of CVTerm_t structures contained within this CVTerm_t
  * structure.
  *
- * @param cvt the structure to getListNestedCVTerms from
+ * @param cvt the structure to getListNestedCVTerms from.
  *
  * @return the list of CVTerm_t's for this CVTerm_t structure.
  *
diff --git a/src/sbml/annotation/Date.cpp b/src/sbml/annotation/Date.cpp
index 657ab65..5fe5b26 100644
--- a/src/sbml/annotation/Date.cpp
+++ b/src/sbml/annotation/Date.cpp
@@ -3,7 +3,7 @@
  * @brief   Date I/O
  * @author  Sarah Keating
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/Date.h b/src/sbml/annotation/Date.h
index 31c9f6b..a740671 100644
--- a/src/sbml/annotation/Date.h
+++ b/src/sbml/annotation/Date.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/Makefile.in b/src/sbml/annotation/Makefile.in
index 4386748..a720c51 100644
--- a/src/sbml/annotation/Makefile.in
+++ b/src/sbml/annotation/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/ModelCreator.cpp b/src/sbml/annotation/ModelCreator.cpp
index 30ed28a..51c2e7e 100644
--- a/src/sbml/annotation/ModelCreator.cpp
+++ b/src/sbml/annotation/ModelCreator.cpp
@@ -3,7 +3,7 @@
  * @brief   ModelCreator I/O
  * @author  Sarah Keating
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/ModelCreator.h b/src/sbml/annotation/ModelCreator.h
index dba5914..0e83bc7 100644
--- a/src/sbml/annotation/ModelCreator.h
+++ b/src/sbml/annotation/ModelCreator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/ModelHistory.cpp b/src/sbml/annotation/ModelHistory.cpp
index daf927a..e7fefcb 100644
--- a/src/sbml/annotation/ModelHistory.cpp
+++ b/src/sbml/annotation/ModelHistory.cpp
@@ -3,7 +3,7 @@
  * @brief   ModelHistory I/O
  * @author  Sarah Keating
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/ModelHistory.h b/src/sbml/annotation/ModelHistory.h
index c1bec7e..ad594c7 100644
--- a/src/sbml/annotation/ModelHistory.h
+++ b/src/sbml/annotation/ModelHistory.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/RDFAnnotation.h b/src/sbml/annotation/RDFAnnotation.h
index 92e2ede..ea8d227 100644
--- a/src/sbml/annotation/RDFAnnotation.h
+++ b/src/sbml/annotation/RDFAnnotation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/RDFAnnotationParser.cpp b/src/sbml/annotation/RDFAnnotationParser.cpp
index 926a20b..335309b 100644
--- a/src/sbml/annotation/RDFAnnotationParser.cpp
+++ b/src/sbml/annotation/RDFAnnotationParser.cpp
@@ -3,7 +3,7 @@
  * @brief   RDFAnnotation I/O
  * @author  Sarah Keating
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/RDFAnnotationParser.h b/src/sbml/annotation/RDFAnnotationParser.h
index fc4249b..9e32086 100644
--- a/src/sbml/annotation/RDFAnnotationParser.h
+++ b/src/sbml/annotation/RDFAnnotationParser.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/CMakeLists.txt b/src/sbml/annotation/test/CMakeLists.txt
index 2457cd4..83976e3 100644
--- a/src/sbml/annotation/test/CMakeLists.txt
+++ b/src/sbml/annotation/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/Makefile.in b/src/sbml/annotation/test/Makefile.in
index 2c26021..07a5390 100644
--- a/src/sbml/annotation/test/Makefile.in
+++ b/src/sbml/annotation/test/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestCVTerms.c b/src/sbml/annotation/test/TestCVTerms.c
index e3b61d6..e990fc3 100644
--- a/src/sbml/annotation/test/TestCVTerms.c
+++ b/src/sbml/annotation/test/TestCVTerms.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestCVTerms_newSetters.c b/src/sbml/annotation/test/TestCVTerms_newSetters.c
index db84385..d4549c5 100644
--- a/src/sbml/annotation/test/TestCVTerms_newSetters.c
+++ b/src/sbml/annotation/test/TestCVTerms_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestCopyAndClone.cpp b/src/sbml/annotation/test/TestCopyAndClone.cpp
index d4a5ecb..96559c6 100644
--- a/src/sbml/annotation/test/TestCopyAndClone.cpp
+++ b/src/sbml/annotation/test/TestCopyAndClone.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestDate_newSetters.c b/src/sbml/annotation/test/TestDate_newSetters.c
index 755fd31..ec49ca7 100644
--- a/src/sbml/annotation/test/TestDate_newSetters.c
+++ b/src/sbml/annotation/test/TestDate_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestL3ModelHistory.cpp b/src/sbml/annotation/test/TestL3ModelHistory.cpp
index 7f63aa9..9e2afdf 100644
--- a/src/sbml/annotation/test/TestL3ModelHistory.cpp
+++ b/src/sbml/annotation/test/TestL3ModelHistory.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestModelCreator_newSetters.c b/src/sbml/annotation/test/TestModelCreator_newSetters.c
index dd66011..5084fbc 100644
--- a/src/sbml/annotation/test/TestModelCreator_newSetters.c
+++ b/src/sbml/annotation/test/TestModelCreator_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestModelHistory.c b/src/sbml/annotation/test/TestModelHistory.c
index 6194c20..5f356cd 100644
--- a/src/sbml/annotation/test/TestModelHistory.c
+++ b/src/sbml/annotation/test/TestModelHistory.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestModelHistory_newSetters.c b/src/sbml/annotation/test/TestModelHistory_newSetters.c
index 9800e07..335caf1 100644
--- a/src/sbml/annotation/test/TestModelHistory_newSetters.c
+++ b/src/sbml/annotation/test/TestModelHistory_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestRDFAnnotation.cpp b/src/sbml/annotation/test/TestRDFAnnotation.cpp
index c40226d..9f55965 100644
--- a/src/sbml/annotation/test/TestRDFAnnotation.cpp
+++ b/src/sbml/annotation/test/TestRDFAnnotation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestRDFAnnotation2.cpp b/src/sbml/annotation/test/TestRDFAnnotation2.cpp
index 1b41835..acb573f 100644
--- a/src/sbml/annotation/test/TestRDFAnnotation2.cpp
+++ b/src/sbml/annotation/test/TestRDFAnnotation2.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestRDFAnnotationC.c b/src/sbml/annotation/test/TestRDFAnnotationC.c
index 7f9e00c..f6d902d 100644
--- a/src/sbml/annotation/test/TestRDFAnnotationC.c
+++ b/src/sbml/annotation/test/TestRDFAnnotationC.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestRDFAnnotationMetaid.cpp b/src/sbml/annotation/test/TestRDFAnnotationMetaid.cpp
index de27767..0d0809e 100644
--- a/src/sbml/annotation/test/TestRDFAnnotationMetaid.cpp
+++ b/src/sbml/annotation/test/TestRDFAnnotationMetaid.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestRDFAnnotationNestedCVTerms.cpp b/src/sbml/annotation/test/TestRDFAnnotationNestedCVTerms.cpp
index 137557a..70c51f7 100644
--- a/src/sbml/annotation/test/TestRDFAnnotationNestedCVTerms.cpp
+++ b/src/sbml/annotation/test/TestRDFAnnotationNestedCVTerms.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestRunner.c b/src/sbml/annotation/test/TestRunner.c
index a0cb450..3c67fe8 100644
--- a/src/sbml/annotation/test/TestRunner.c
+++ b/src/sbml/annotation/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestSyncAnnotation.cpp b/src/sbml/annotation/test/TestSyncAnnotation.cpp
index a10ebe9..3667f8e 100644
--- a/src/sbml/annotation/test/TestSyncAnnotation.cpp
+++ b/src/sbml/annotation/test/TestSyncAnnotation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/annotation/test/TestValidation.cpp b/src/sbml/annotation/test/TestValidation.cpp
index e06295e..475eda3 100644
--- a/src/sbml/annotation/test/TestValidation.cpp
+++ b/src/sbml/annotation/test/TestValidation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/Makefile.in b/src/sbml/common/Makefile.in
index 52679c1..d0bcdf6 100644
--- a/src/sbml/common/Makefile.in
+++ b/src/sbml/common/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/common-documentation.h b/src/sbml/common/common-documentation.h
index 3dfb329..69f7b41 100644
--- a/src/sbml/common/common-documentation.h
+++ b/src/sbml/common/common-documentation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -53,11 +53,6 @@
  * defined by the SBML specification, such as "metaid" attributes and
  * annotations.
  *
- * The relationship between the lists and the rest of an SBML model is
- * illustrated by the following (for SBML Level 2 Version 4):
- *
- * @htmlinclude listof-illustration.html
- *
  * Readers may wonder about the motivations for using the ListOf___
  * containers in SBML.  A simpler approach in XML might be to place the
  * components all directly at the top level of the model definition.  The
@@ -308,9 +303,9 @@
  * @class doc_warning_typecodes_not_unique
  *
  * @warning <span class="warning">The specific integer values of the possible
- * type codes may be reused by different Level 3 package plug-ins.
- * Thus, to identifiy the correct code, <strong>it is necessary to invoke
- * both getTypeCode() and getPackageName()</strong>.</span>
+ * type codes may be reused by different libSBML plug-ins for SBML Level 3.
+ * packages,  To fully identify the correct code, <strong>it is necessary to
+ * invoke both getTypeCode() and getPackageName()</strong>.</span>
  *
  * <!-- ------------------------------------------------------------------- -->
  * @class doc_what_are_plugins
@@ -337,7 +332,7 @@
  * If a plugin is <em>disabled</em>, the package information it contains is
  * no longer considered to be part of the SBML document for the purposes of
  * searching the document or writing out the document.  However, the information
- * is still retained, so if the plugin is enabled again, the same information 
+ * is still retained, so if the plugin is enabled again, the same information
  * will once again be available, and will be written out to the final model.
  *
  * <!-- ------------------------------------------------------------------- -->
@@ -532,12 +527,12 @@
  *
  * <!-- ------------------------------------------------------------------- -->
  * @class doc_summary_of_astnode_methods
- * 
+ *
  * @par
  * There are a number of methods for interrogating the type of an ASTNode and
  * for testing whether a node belongs to a general category of constructs.
  * The methods on ASTNode for this purpose are the following:
- * 
+ *
  * @if cpp
  * @li <code>ASTNodeType_t @link ASTNode::getType() getType()@endlink</code>
  * returns the type of this AST node.
@@ -699,47 +694,47 @@
  * @li <code>bool ASTNode_isUnknown()</code>
  * returns @c 1 if this AST node's type is unknown.
  * @endif
- * 
+ *
  * Programs manipulating AST node structures should check the type of a given
  * node before calling methods that return a value from the node.  The
  * following are the ASTNode object methods available for returning values
  * from nodes:
- * 
+ *
  * @if cpp
- * @li <code>long @link ASTNode::getInteger() getInteger()@endlink</code> 
- * @li <code>char @link ASTNode::getCharacter() getCharacter()@endlink</code> 
- * @li <code>const char* @link ASTNode::getName() getName()@endlink</code> 
- * @li <code>long @link ASTNode::getNumerator() getNumerator()@endlink</code> 
+ * @li <code>long @link ASTNode::getInteger() getInteger()@endlink</code>
+ * @li <code>char @link ASTNode::getCharacter() getCharacter()@endlink</code>
+ * @li <code>const char* @link ASTNode::getName() getName()@endlink</code>
+ * @li <code>long @link ASTNode::getNumerator() getNumerator()@endlink</code>
  * @li <code>long @link ASTNode::getDenominator() getDenominator()@endlink</code>
- * @li <code>double @link ASTNode::getReal() getReal()@endlink</code> 
- * @li <code>double @link ASTNode::getMantissa() getMantissa()@endlink</code> 
- * @li <code>long @link ASTNode::getExponent() getExponent()@endlink</code> 
+ * @li <code>double @link ASTNode::getReal() getReal()@endlink</code>
+ * @li <code>double @link ASTNode::getMantissa() getMantissa()@endlink</code>
+ * @li <code>long @link ASTNode::getExponent() getExponent()@endlink</code>
  * @endif
  * @if python
- * @li <code>long</code> @link libsbml.ASTNode.getInteger() ASTNode.getInteger()@endlink 
- * @li <code>char</code> @link libsbml.ASTNode.getCharacter() ASTNode.getCharacter()@endlink 
- * @li <code>string</code> @link libsbml.ASTNode.getName() ASTNode.getName()@endlink 
- * @li <code>long</code> @link libsbml.ASTNode.getNumerator() ASTNode.getNumerator()@endlink 
- * @li <code>long</code> @link libsbml.ASTNode.getDenominator() ASTNode.getDenominator()@endlink 
- * @li <code>float</code> @link libsbml.ASTNode.getReal() ASTNode.getReal()@endlink 
- * @li <code>float</code> @link libsbml.ASTNode.getMantissa() ASTNode.getMantissa()@endlink 
- * @li <code>long</code> @link libsbml.ASTNode.getExponent() ASTNode.getExponent()@endlink 
+ * @li <code>long</code> @link libsbml.ASTNode.getInteger() ASTNode.getInteger()@endlink
+ * @li <code>char</code> @link libsbml.ASTNode.getCharacter() ASTNode.getCharacter()@endlink
+ * @li <code>string</code> @link libsbml.ASTNode.getName() ASTNode.getName()@endlink
+ * @li <code>long</code> @link libsbml.ASTNode.getNumerator() ASTNode.getNumerator()@endlink
+ * @li <code>long</code> @link libsbml.ASTNode.getDenominator() ASTNode.getDenominator()@endlink
+ * @li <code>float</code> @link libsbml.ASTNode.getReal() ASTNode.getReal()@endlink
+ * @li <code>float</code> @link libsbml.ASTNode.getMantissa() ASTNode.getMantissa()@endlink
+ * @li <code>long</code> @link libsbml.ASTNode.getExponent() ASTNode.getExponent()@endlink
  * @endif
  * @if conly
- * @li <code>long ASTNode_getInteger()</code> 
- * @li <code>char ASTNode_getCharacter()</code> 
- * @li <code>const char* ASTNode_getName()</code> 
- * @li <code>long ASTNode_getNumerator()</code> 
+ * @li <code>long ASTNode_getInteger()</code>
+ * @li <code>char ASTNode_getCharacter()</code>
+ * @li <code>const char* ASTNode_getName()</code>
+ * @li <code>long ASTNode_getNumerator()</code>
  * @li <code>long ASTNode_getDenominator()</code>
- * @li <code>double ASTNode_getReal()</code> 
- * @li <code>double ASTNode_getMantissa()</code> 
- * @li <code>long ASTNode_getExponent()</code> 
+ * @li <code>double ASTNode_getReal()</code>
+ * @li <code>double ASTNode_getMantissa()</code>
+ * @li <code>long ASTNode_getExponent()</code>
  * @endif
- * 
+ *
  * Of course, all of this would be of little use if libSBML didn't also
  * provide methods for @em setting the values of AST node objects!  And it
  * does.  The methods are the following:
- * 
+ *
  * @if cpp
  * @li <code>void @link ASTNode::setCharacter(char value) setCharacter(char
  * value)@endlink</code> sets the value of this ASTNode to the given
@@ -806,7 +801,7 @@
  * (<code>isOperator(node) != 0</code>) or number (<code>isNumber(node) !=
  * 0</code>).  This allows names to be set for @c AST_FUNCTIONs and the like.
  * @li <code>void ASTNode_setInteger(ASTNode_t *node, long value)</code> sets the value of the node
- * to the given integer <code>value</code>.  
+ * to the given integer <code>value</code>.
  * @li <code>void ASTNode_setRational(ASTNode_t *node, long numerator, long denominator)</code> sets
  * the value of this ASTNode to the given rational <code>value</code> in two
  * parts: the numerator and denominator.  The node type is set to @c
@@ -818,10 +813,10 @@
  * the value of this ASTNode to a real (double) using the two parts given: the
  * mantissa and the exponent.  The node type is set to @c AST_REAL_E.
  * @endif
- * 
+ *
  * Finally, ASTNode also defines some miscellaneous methods for manipulating
  * ASTs:
- * 
+ *
  * @if cpp
  * @li <code>ASTNode* @link ASTNode::ASTNode(ASTNodeType_t type)
  * ASTNode(ASTNodeType_t type)@endlink</code> creates a new ASTNode object
@@ -910,13 +905,13 @@
  *
  * <!-- ------------------------------------------------------------------- -->
  * @class doc_summary_of_writing_mathml_directly
- * 
+ *
  * @par
  * As mentioned above, applications often can avoid working with raw MathML by
  * using either libSBML's text-string interface or the AST API.  However, when
  * needed, reading MathML content directly and creating ASTs is easily done in
  * libSBML using a method designed for this purpose:
- * 
+ *
  * @if cpp
  * @li <code>ASTNode_t* @sbmlfunction{readMathMLFromString, String}</code> reads raw
  * MathML from a text string, constructs an AST from it, then returns the root
@@ -932,10 +927,10 @@
  * MathML from a text string, constructs an AST from it, then returns the root
  * ASTNode_t of the resulting expression tree.
  * @endif
- * 
+ *
  * Similarly, writing out Abstract Syntax Tree structures is easily done using
  * the following method:
- * 
+ *
  * @if cpp
  * @li <code>char* @sbmlfunction{writeMathMLToString, ASTNode}</code> writes an
  * AST to a string.  The caller owns the character string returned and should free
@@ -1279,7 +1274,7 @@
  * @sbmlconstant{AST_NAME, ASTNodeType_t}.
  * @li Strings that match built-in functions and constants can either be parsed
  * as a match regardless of capitalization, or may be required to be
- * all-lower-case to be considered a match.  
+ * all-lower-case to be considered a match.
  * @li LibSBML plug-ins implementing support for SBML Level 3 packages
  * may introduce extensions to the syntax understood by the parser.  The
  * precise nature of the extensions will be documented by the individual
@@ -1297,7 +1292,7 @@
  * @sbmlfunction{parseL3Formula, String} and
  * @sbmlfunction{formulaToL3String, ASTNode}.  The Level 1-oriented
  * system (i.e., what is provided by @sbmlfunction{formulaToString, String}
- * and @sbmlfunction{parseFormula, ASTNode}) is provided 
+ * and @sbmlfunction{parseFormula, ASTNode}) is provided
  * untouched for backwards compatibility.
  *
  * <!-- ------------------------------------------------------------------- -->
@@ -1934,6 +1929,29 @@ if (config != None) {
  * returned by this function are:
  *
  * <!-- ------------------------------------------------------------------- -->
+ * @class doc_what_is_sbmlextension
+ *
+ * @par
+ * The SBMLExtension class provides methods for managing common attributes of
+ * package extensions (e.g., the SBML package name, the package version, and
+ * more), registration of instantiated plug-in creators to hook into the rest
+ * of libSBML, and initialization/registration of package extensions when the
+ * library code for the package is loaded by libSBML.  SBMLExtension is an
+ * abstract class that must be extended by each package extension
+ * implementation.
+ *
+ * <!-- ------------------------------------------------------------------- -->
+ * @class doc_what_is_sbmldocumentplugin
+ *
+ * @par
+ * Every SBML Level 3 package needs to add, at minimum, an attribute
+ * called "required" to the top-level SBML <code><sbml></code> element.
+ * Some packages need to go beyond that and add additional subcomponents.
+ * The SBMLDocumentPlugin class is part of libSBML's machinery to support
+ * the implementation of classes that manipulate <code><sbml></code>
+ * and do other necessary operations.
+ *
+ * <!-- ------------------------------------------------------------------- -->
  * @class doc_extension_sbmlextension
  *
  * @par
@@ -1987,7 +2005,7 @@ unsigned int GroupsExtension::getDefaultPackageVersion()
  * combination for which the package can be used.  For instance, if a package
  * is only usable in SBML Level 3 Version 1, and the libSBML
  * extension for the package implements version 1 of the package, the
- * necessary method is <code>getXmlnsL3V1V1()</code>.  
+ * necessary method is <code>getXmlnsL3V1V1()</code>.
 @code{.cpp}
 const std::string& GroupsExtension::getXmlnsL3V1V1 ()
 {
@@ -3174,7 +3192,7 @@ if (lmp != null)
  * in SBML Level 3 Version 2, but since that specfication has not yet been
  * released or finalized, libsbml itself might not yet implement support for
  * this.</b>
- * 
+ *
  * <!-- ------------------------------------------------------------------- -->
  * @class doc_throw_exception_lv
  *
@@ -3248,6 +3266,64 @@ if (lmp != null)
  * @see SBMLDocument::checkConsistency()
  * @see SBMLDocument::checkInternalConsistency()
  * @see SBMLDocument::setConsistencyChecks(@if java int categ, boolean onoff at endif)
+ *
+ * <!-- ------------------------------------------------------------------- -->
+ * @class doc_group_semantics
+ *
+ * @par
+ * If a Member object within a Group object's ListOfMembers references
+ * another Group object, it is the <em>referenced Group itself</em> that is
+ * considered to be a member of the parent Group, @em not the corresponding
+ * referenced model component(s).  This is true regardless of whether those
+ * components themselves happen to point to other components using some
+ * mechanism defined by another SBML Level 3 package (as happens, for
+ * example, in the SBML Level 3 Hierarchical %Model Composition package
+ * and its use of SBaseRef).  However, if instead a Member object references
+ * a ListOfMembers object (using the "id" attribute permitted on
+ * ListOfMembers objects), it is the components of that ListOfMembers that
+ * are considered to be part of the parent Group.  In other words: if in some
+ * Group @em G, a Member @em M references another Group, that Group is the
+ * member of @em G; if @em M references a ListOfMembers, it is the entities
+ * referenced by the Member objects within the ListOfMembers that are
+ * the members of @em G and not the ListOfMembers object itself.
+ *
+ * The implication of this is that any rule that applies to members of a
+ * group (such the meaning of the "kind" attribute, or the restrictions on
+ * the application of "sboTerm" attributes on a ListOfMembers) applies to the
+ * child group when referenced by the Group "id", and to the members of the
+ * child group when referenced by the ListOfMembers "id". In an example
+ * situation where a parent group includes two Species plus a Group which
+ * itself contains three other Species, if the parent group's ListOfMembers
+ * is given an "sboTerm" attribute value, that SBO term applies to the two
+ * species and the group, not to the three child species members of the
+ * second group.  (Note also that in such a case, the parent group's "kind"
+ * attribute value would almost certainly be @c "collection" or @c
+ * "partonomy", and not @c "classification", as two species and a group are
+ * very unlikely to be classified as the same thing.)  In contrast, in the
+ * situation where a parent group includes two Species plus a ListOfMembers
+ * which contains three other Species, the parent group's ListOfMembers
+ * "sboTerm" would apply to the five Species, and could be more reasonably
+ * marked as a @c "classification".
+ *
+ * In a future version of this SBML Level 3 Groups specification, it may
+ * be possible to perform set operations on groups, but for now, this type of
+ * union is the only set operation that is possible.
+ *
+ * Groups are not permitted to be circular: no Member may reference itself,
+ * its parent ListOfMembers, nor its parent Group. If a Member references a
+ * Group, the same restrictions apply to that subgroup's children: they may
+ * not reference the Member, its parent ListOfMembers, nor its parent Group,
+ * and if any of those children reference a Group, the same restrictions apply
+ * to them, etc.
+ *
+ * If a Member has a "idRef" or "metaIdRef" attribute which references an
+ * object from a namespace that is not understood by the interpreter of the
+ * SBML model, that Member must be ignored. The referenced object will not be
+ * understood by the interpreter, and therefore has no need to become a
+ * member of the group. If an interpreter cannot tell whether a referenced
+ * object does not exist or if exists in an unparsed namespace, it may choose
+ * to produce a warning.
+ *
  */
 
 /* <!-- -------------------------------------------------------------------
@@ -3257,18 +3333,18 @@ if (lmp != null)
  *
  * @copydetails doc_l3v2_specific_addition
  *
- * Similarly, the combined set of RateRule and Reaction objects constitute 
- * a set of definitions for the rates of change of various model entities 
- * (namely, the objects identified by the values of the 'variable' attributes 
- * of the RateRule objects, and the 'species' attributes of the SpeciesReference 
- * objects in each Reaction).  These rates of change may be referenced directly 
- * using the <em>rateOf</em> csymbol, but may not thereby contain algebraic 
- * loops---dependency chains between these statements must terminate.  More 
- * formally, consider a directed graph in which the nodes are the definitions 
- * of different variables' rates of change, and directed arcs exist for each 
- * occurrence of a variable referenced by a <em>rateOf</em> csymbol from any 
- * RateRule or KineticLaw object in the model.  Let the directed arcs point 
- * from the variable referenced by the <em>rateOf</em> csymbol (call it 
+ * Similarly, the combined set of RateRule and Reaction objects constitute
+ * a set of definitions for the rates of change of various model entities
+ * (namely, the objects identified by the values of the 'variable' attributes
+ * of the RateRule objects, and the 'species' attributes of the SpeciesReference
+ * objects in each Reaction).  These rates of change may be referenced directly
+ * using the <em>rateOf</em> csymbol, but may not thereby contain algebraic
+ * loops---dependency chains between these statements must terminate.  More
+ * formally, consider a directed graph in which the nodes are the definitions
+ * of different variables' rates of change, and directed arcs exist for each
+ * occurrence of a variable referenced by a <em>rateOf</em> csymbol from any
+ * RateRule or KineticLaw object in the model.  Let the directed arcs point
+ * from the variable referenced by the <em>rateOf</em> csymbol (call it
  * <em>x</em>) to the variable(s) determined by the 'math' expression in which
  * <em>x</em> appears.  This graph must be acyclic.
  *
diff --git a/src/sbml/common/common.h b/src/sbml/common/common.h
index a596b87..80cef6f 100644
--- a/src/sbml/common/common.h
+++ b/src/sbml/common/common.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/extern.h b/src/sbml/common/extern.h
index 1a87b88..7cd986a 100644
--- a/src/sbml/common/extern.h
+++ b/src/sbml/common/extern.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-config-common.h b/src/sbml/common/libsbml-config-common.h
index 06f9c72..dff4ac9 100644
--- a/src/sbml/common/libsbml-config-common.h
+++ b/src/sbml/common/libsbml-config-common.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-config-common.h.cmake b/src/sbml/common/libsbml-config-common.h.cmake
index bacd5f5..03880ee 100644
--- a/src/sbml/common/libsbml-config-common.h.cmake
+++ b/src/sbml/common/libsbml-config-common.h.cmake
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-config-common.h.in b/src/sbml/common/libsbml-config-common.h.in
index 103518f..41c5e54 100644
--- a/src/sbml/common/libsbml-config-common.h.in
+++ b/src/sbml/common/libsbml-config-common.h.in
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-config.h b/src/sbml/common/libsbml-config.h
index 13eaf41..65ade6b 100644
--- a/src/sbml/common/libsbml-config.h
+++ b/src/sbml/common/libsbml-config.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-namespace.h b/src/sbml/common/libsbml-namespace.h
index 7949fa1..70218cf 100644
--- a/src/sbml/common/libsbml-namespace.h
+++ b/src/sbml/common/libsbml-namespace.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-namespace.h.cmake b/src/sbml/common/libsbml-namespace.h.cmake
index 747ff7f..06a04a6 100644
--- a/src/sbml/common/libsbml-namespace.h.cmake
+++ b/src/sbml/common/libsbml-namespace.h.cmake
@@ -1,68 +1,68 @@
-/**
- * @file    libsbml-namespace.h
- * @brief   Defines C++ namespace of libSBML
- * @author  Akiya Jouraku
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution and
- * also available online as http://sbml.org/software/libsbml/license.html
- *------------------------------------------------------------------------- -->
- *
- */
-
-#ifndef LIBSBML_NAMESPACE_H
-#define LIBSBML_NAMESPACE_H 1
-
-/*
- *
- * The idea of the following marcors are borrowed from 
- * Xerces-C++ XML Parser (http://xerces.apache.org/xerces-c/).
- *
- */
-
-/* Define to enable libSBML C++ namespace */
-#cmakedefine LIBSBML_USE_CPP_NAMESPACE 1
-
-
-#if defined(__cplusplus) && defined(LIBSBML_USE_CPP_NAMESPACE) && !defined(SWIG)
-  /* C++ namespace of libSBML */
-  #define LIBSBML_CPP_NAMESPACE            libsbml
-  #define LIBSBML_CPP_NAMESPACE_BEGIN      namespace LIBSBML_CPP_NAMESPACE {
-  #define LIBSBML_CPP_NAMESPACE_END        }
-  #define LIBSBML_CPP_NAMESPACE_USE        using namespace LIBSBML_CPP_NAMESPACE;
-  #define LIBSBML_CPP_NAMESPACE_QUALIFIER  LIBSBML_CPP_NAMESPACE::
-
-  namespace LIBSBML_CPP_NAMESPACE {}
-#else
-  #define LIBSBML_CPP_NAMESPACE 
-  #define LIBSBML_CPP_NAMESPACE_BEGIN
-  #define LIBSBML_CPP_NAMESPACE_END  
-  #define LIBSBML_CPP_NAMESPACE_USE 
-  #define LIBSBML_CPP_NAMESPACE_QUALIFIER 
-#endif
-
-
-#endif  /* LIBSBML_NAMESPACE_H */
-
+/**
+ * @file    libsbml-namespace.h
+ * @brief   Defines C++ namespace of libSBML
+ * @author  Akiya Jouraku
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution and
+ * also available online as http://sbml.org/software/libsbml/license.html
+ *------------------------------------------------------------------------- -->
+ *
+ */
+
+#ifndef LIBSBML_NAMESPACE_H
+#define LIBSBML_NAMESPACE_H 1
+
+/*
+ *
+ * The idea of the following marcors are borrowed from 
+ * Xerces-C++ XML Parser (http://xerces.apache.org/xerces-c/).
+ *
+ */
+
+/* Define to enable libSBML C++ namespace */
+#cmakedefine LIBSBML_USE_CPP_NAMESPACE 1
+
+
+#if defined(__cplusplus) && defined(LIBSBML_USE_CPP_NAMESPACE) && !defined(SWIG)
+  /* C++ namespace of libSBML */
+  #define LIBSBML_CPP_NAMESPACE            libsbml
+  #define LIBSBML_CPP_NAMESPACE_BEGIN      namespace LIBSBML_CPP_NAMESPACE {
+  #define LIBSBML_CPP_NAMESPACE_END        }
+  #define LIBSBML_CPP_NAMESPACE_USE        using namespace LIBSBML_CPP_NAMESPACE;
+  #define LIBSBML_CPP_NAMESPACE_QUALIFIER  LIBSBML_CPP_NAMESPACE::
+
+  namespace LIBSBML_CPP_NAMESPACE {}
+#else
+  #define LIBSBML_CPP_NAMESPACE 
+  #define LIBSBML_CPP_NAMESPACE_BEGIN
+  #define LIBSBML_CPP_NAMESPACE_END  
+  #define LIBSBML_CPP_NAMESPACE_USE 
+  #define LIBSBML_CPP_NAMESPACE_QUALIFIER 
+#endif
+
+
+#endif  /* LIBSBML_NAMESPACE_H */
+
diff --git a/src/sbml/common/libsbml-namespace.h.in b/src/sbml/common/libsbml-namespace.h.in
index aaecd7a..ee7e6b8 100644
--- a/src/sbml/common/libsbml-namespace.h.in
+++ b/src/sbml/common/libsbml-namespace.h.in
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-package.h b/src/sbml/common/libsbml-package.h
index a2580fa..ff8445e 100644
--- a/src/sbml/common/libsbml-package.h
+++ b/src/sbml/common/libsbml-package.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -57,11 +57,11 @@
 #define PACKAGE_NAME "libSBML"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libSBML 5.12.0"
+#define PACKAGE_STRING "libSBML 5.13.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libsbml"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "5.12.0"
+#define PACKAGE_VERSION "5.13.0"
 
diff --git a/src/sbml/common/libsbml-package.h.cmake b/src/sbml/common/libsbml-package.h.cmake
index e6a9923..c4dba95 100644
--- a/src/sbml/common/libsbml-package.h.cmake
+++ b/src/sbml/common/libsbml-package.h.cmake
@@ -1,54 +1,54 @@
-/**
- * @file    libsbml-package.h
- * @brief   Definitions of the PACKAGE_ variables.
- * @author  Ben Bornstein
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution and
- * also available online as http://sbml.org/software/libsbml/license.html
- *------------------------------------------------------------------------- -->
- *
- * The file <tt>libsbml-package.h</tt> is generated from the file
- * <tt>libsbml-package.h.cmake</tt> by the @c cmake script at the top
- * level of the libSBML source tree.
- *
- */
-
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "libsbml-team at caltech.edu"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "@PACKAGE_NAME@"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "@PACKAGE_NAME@ @PACKAGE_VERSION@"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "libsbml"
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "@PACKAGE_VERSION@"
-
+/**
+ * @file    libsbml-package.h
+ * @brief   Definitions of the PACKAGE_ variables.
+ * @author  Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution and
+ * also available online as http://sbml.org/software/libsbml/license.html
+ *------------------------------------------------------------------------- -->
+ *
+ * The file <tt>libsbml-package.h</tt> is generated from the file
+ * <tt>libsbml-package.h.cmake</tt> by the @c cmake script at the top
+ * level of the libSBML source tree.
+ *
+ */
+
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "libsbml-team at caltech.edu"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "@PACKAGE_NAME@"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "@PACKAGE_NAME@ @PACKAGE_VERSION@"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "libsbml"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "@PACKAGE_VERSION@"
+
diff --git a/src/sbml/common/libsbml-package.h.in b/src/sbml/common/libsbml-package.h.in
index 5d0fc9a..8578a89 100644
--- a/src/sbml/common/libsbml-package.h.in
+++ b/src/sbml/common/libsbml-package.h.in
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-version.cpp b/src/sbml/common/libsbml-version.cpp
index 0c68730..88e3c95 100644
--- a/src/sbml/common/libsbml-version.cpp
+++ b/src/sbml/common/libsbml-version.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-version.h b/src/sbml/common/libsbml-version.h
index 62ad59b..7e9292c 100644
--- a/src/sbml/common/libsbml-version.h
+++ b/src/sbml/common/libsbml-version.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -42,7 +42,7 @@
  *
  * A version string of the form "1.2.3".
  */
-#define LIBSBML_DOTTED_VERSION	"5.12.0"
+#define LIBSBML_DOTTED_VERSION	"5.13.0"
 
 
 /**
@@ -53,7 +53,7 @@
  * libSBML is released, making it easy to use less-than and greater-than
  * comparisons when testing versions numbers.
  */
-#define LIBSBML_VERSION		51200
+#define LIBSBML_VERSION		51300
 
 
 /**
@@ -61,7 +61,7 @@
  *
  * The numeric version as a string: version 1.2.3 becomes "10203".
  */
-#define LIBSBML_VERSION_STRING	"51200"
+#define LIBSBML_VERSION_STRING	"51300"
 
 
 LIBSBML_CPP_NAMESPACE_BEGIN
diff --git a/src/sbml/common/libsbml-version.h.cmake b/src/sbml/common/libsbml-version.h.cmake
index 4aa5dca..ecdea93 100644
--- a/src/sbml/common/libsbml-version.h.cmake
+++ b/src/sbml/common/libsbml-version.h.cmake
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/libsbml-version.h.in b/src/sbml/common/libsbml-version.h.in
index 32035df..1e86a28 100644
--- a/src/sbml/common/libsbml-version.h.in
+++ b/src/sbml/common/libsbml-version.h.in
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/common/operationReturnValues.cpp b/src/sbml/common/operationReturnValues.cpp
index f8dd606..bbec0ed 100644
--- a/src/sbml/common/operationReturnValues.cpp
+++ b/src/sbml/common/operationReturnValues.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -52,6 +52,7 @@ static OperationReturnValues_t SBML_OPERATION_RETURN_VALUES_INDICES[] =
   , LIBSBML_ANNOTATION_NAME_NOT_FOUND
   , LIBSBML_ANNOTATION_NS_NOT_FOUND
   , LIBSBML_MISSING_METAID
+  , LIBSBML_DEPRECATED_ATTRIBUTE
   , LIBSBML_PKG_VERSION_MISMATCH
   , LIBSBML_PKG_UNKNOWN
   , LIBSBML_PKG_UNKNOWN_VERSION
@@ -174,6 +175,11 @@ static const char* SBML_OPERATION_RETURN_VALUES_STRINGS[] =
     "The requested action cannot be performed as the target object does not have "
     "the metaid attribute set. "
    
+  , /* LIBSBML_DEPRECATED_ATTRIBUTE   = -15*/
+    "The attribute that is the subject of this operation has been deprecated "
+    "for the combination of SBML Level and Version for the underlying "
+    "object. "
+     
   , /*LIBSBML_PKG_VERSION_MISMATCH = -20*/
    "The Version of package extension within the SBML Level and version "
    "associated with the object does not match the Version of the parent "
diff --git a/src/sbml/common/operationReturnValues.h b/src/sbml/common/operationReturnValues.h
index 0b6fe84..8e75100 100644
--- a/src/sbml/common/operationReturnValues.h
+++ b/src/sbml/common/operationReturnValues.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -157,6 +157,11 @@ typedef enum
     /*!< The requested action cannot be performed as the target object does not have 
      * the metaid attribute set. */
      
+     , LIBSBML_DEPRECATED_ATTRIBUTE   = -15
+    /*!< The attribute that is the subject of this operation has been deprecated
+     * for the combination of SBML Level and Version for the underlying
+     * object. */
+     
    /* ---------------------------------------------------------------------------
     *   
     *              Return codes for package extension
diff --git a/src/sbml/common/sbmlfwd.h b/src/sbml/common/sbmlfwd.h
index 4497a70..ae82327 100644
--- a/src/sbml/common/sbmlfwd.h
+++ b/src/sbml/common/sbmlfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/CompressCommon.cpp b/src/sbml/compress/CompressCommon.cpp
index d62ce36..ee287db 100644
--- a/src/sbml/compress/CompressCommon.cpp
+++ b/src/sbml/compress/CompressCommon.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/CompressCommon.h b/src/sbml/compress/CompressCommon.h
index b44ac84..f782912 100644
--- a/src/sbml/compress/CompressCommon.h
+++ b/src/sbml/compress/CompressCommon.h
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/InputDecompressor.cpp b/src/sbml/compress/InputDecompressor.cpp
index 4ff9ad8..7d8d3f7 100644
--- a/src/sbml/compress/InputDecompressor.cpp
+++ b/src/sbml/compress/InputDecompressor.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/InputDecompressor.h b/src/sbml/compress/InputDecompressor.h
index 2a08387..bb95b3d 100644
--- a/src/sbml/compress/InputDecompressor.h
+++ b/src/sbml/compress/InputDecompressor.h
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/Makefile.in b/src/sbml/compress/Makefile.in
index 5187f9d..3312748 100644
--- a/src/sbml/compress/Makefile.in
+++ b/src/sbml/compress/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/OutputCompressor.cpp b/src/sbml/compress/OutputCompressor.cpp
index 74b86ab..c9fe14d 100644
--- a/src/sbml/compress/OutputCompressor.cpp
+++ b/src/sbml/compress/OutputCompressor.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/OutputCompressor.h b/src/sbml/compress/OutputCompressor.h
index e01a209..69b4e59 100644
--- a/src/sbml/compress/OutputCompressor.h
+++ b/src/sbml/compress/OutputCompressor.h
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/bzfstream.cpp b/src/sbml/compress/bzfstream.cpp
index 79f85a8..79200d5 100644
--- a/src/sbml/compress/bzfstream.cpp
+++ b/src/sbml/compress/bzfstream.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/bzfstream.h b/src/sbml/compress/bzfstream.h
index c343d40..76ea395 100644
--- a/src/sbml/compress/bzfstream.h
+++ b/src/sbml/compress/bzfstream.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/zipfstream.cpp b/src/sbml/compress/zipfstream.cpp
index ef5e965..89be16d 100644
--- a/src/sbml/compress/zipfstream.cpp
+++ b/src/sbml/compress/zipfstream.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/compress/zipfstream.h b/src/sbml/compress/zipfstream.h
index 9542afe..94d1688 100644
--- a/src/sbml/compress/zipfstream.h
+++ b/src/sbml/compress/zipfstream.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/ConversionOption.cpp b/src/sbml/conversion/ConversionOption.cpp
index 1546e13..3146e3c 100644
--- a/src/sbml/conversion/ConversionOption.cpp
+++ b/src/sbml/conversion/ConversionOption.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/ConversionOption.h b/src/sbml/conversion/ConversionOption.h
index 7273399..7c3f488 100644
--- a/src/sbml/conversion/ConversionOption.h
+++ b/src/sbml/conversion/ConversionOption.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/ConversionProperties.cpp b/src/sbml/conversion/ConversionProperties.cpp
index b783fa2..62f2da3 100644
--- a/src/sbml/conversion/ConversionProperties.cpp
+++ b/src/sbml/conversion/ConversionProperties.cpp
@@ -7,7 +7,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/ConversionProperties.h b/src/sbml/conversion/ConversionProperties.h
index b462195..9d810c1 100644
--- a/src/sbml/conversion/ConversionProperties.h
+++ b/src/sbml/conversion/ConversionProperties.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/Makefile.in b/src/sbml/conversion/Makefile.in
index ff0c07d..fdef343 100644
--- a/src/sbml/conversion/Makefile.in
+++ b/src/sbml/conversion/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/RegisterConverters.cpp b/src/sbml/conversion/RegisterConverters.cpp
index 3ea19f1..32d3c12 100644
--- a/src/sbml/conversion/RegisterConverters.cpp
+++ b/src/sbml/conversion/RegisterConverters.cpp
@@ -7,7 +7,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLConverter.cpp b/src/sbml/conversion/SBMLConverter.cpp
index 2c3abfd..d953f0d 100644
--- a/src/sbml/conversion/SBMLConverter.cpp
+++ b/src/sbml/conversion/SBMLConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLConverter.h b/src/sbml/conversion/SBMLConverter.h
index bcdd907..ea68a17 100644
--- a/src/sbml/conversion/SBMLConverter.h
+++ b/src/sbml/conversion/SBMLConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLConverterRegister.h b/src/sbml/conversion/SBMLConverterRegister.h
index 31bb04f..ea89257 100644
--- a/src/sbml/conversion/SBMLConverterRegister.h
+++ b/src/sbml/conversion/SBMLConverterRegister.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLConverterRegistry.cpp b/src/sbml/conversion/SBMLConverterRegistry.cpp
index 6cca3e9..476dc52 100644
--- a/src/sbml/conversion/SBMLConverterRegistry.cpp
+++ b/src/sbml/conversion/SBMLConverterRegistry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLConverterRegistry.h b/src/sbml/conversion/SBMLConverterRegistry.h
index 2487543..879d261 100644
--- a/src/sbml/conversion/SBMLConverterRegistry.h
+++ b/src/sbml/conversion/SBMLConverterRegistry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLFunctionDefinitionConverter.cpp b/src/sbml/conversion/SBMLFunctionDefinitionConverter.cpp
index e607aaf..16197d9 100644
--- a/src/sbml/conversion/SBMLFunctionDefinitionConverter.cpp
+++ b/src/sbml/conversion/SBMLFunctionDefinitionConverter.cpp
@@ -8,7 +8,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLFunctionDefinitionConverter.h b/src/sbml/conversion/SBMLFunctionDefinitionConverter.h
index f041d76..8a80441 100644
--- a/src/sbml/conversion/SBMLFunctionDefinitionConverter.h
+++ b/src/sbml/conversion/SBMLFunctionDefinitionConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLIdConverter.cpp b/src/sbml/conversion/SBMLIdConverter.cpp
index aea4144..b08c803 100644
--- a/src/sbml/conversion/SBMLIdConverter.cpp
+++ b/src/sbml/conversion/SBMLIdConverter.cpp
@@ -7,7 +7,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLIdConverter.h b/src/sbml/conversion/SBMLIdConverter.h
index 41bd0e3..5417699 100644
--- a/src/sbml/conversion/SBMLIdConverter.h
+++ b/src/sbml/conversion/SBMLIdConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLInferUnitsConverter.cpp b/src/sbml/conversion/SBMLInferUnitsConverter.cpp
index 2b41a03..66f02c4 100644
--- a/src/sbml/conversion/SBMLInferUnitsConverter.cpp
+++ b/src/sbml/conversion/SBMLInferUnitsConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLInferUnitsConverter.h b/src/sbml/conversion/SBMLInferUnitsConverter.h
index ef5af2a..3e05e11 100644
--- a/src/sbml/conversion/SBMLInferUnitsConverter.h
+++ b/src/sbml/conversion/SBMLInferUnitsConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLInitialAssignmentConverter.cpp b/src/sbml/conversion/SBMLInitialAssignmentConverter.cpp
index 797bd1a..de062ee 100644
--- a/src/sbml/conversion/SBMLInitialAssignmentConverter.cpp
+++ b/src/sbml/conversion/SBMLInitialAssignmentConverter.cpp
@@ -7,7 +7,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLInitialAssignmentConverter.h b/src/sbml/conversion/SBMLInitialAssignmentConverter.h
index eb18255..a9cd8c8 100644
--- a/src/sbml/conversion/SBMLInitialAssignmentConverter.h
+++ b/src/sbml/conversion/SBMLInitialAssignmentConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLLevel1Version1Converter.cpp b/src/sbml/conversion/SBMLLevel1Version1Converter.cpp
index 28647fc..2b3634e 100644
--- a/src/sbml/conversion/SBMLLevel1Version1Converter.cpp
+++ b/src/sbml/conversion/SBMLLevel1Version1Converter.cpp
@@ -7,7 +7,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLLevel1Version1Converter.h b/src/sbml/conversion/SBMLLevel1Version1Converter.h
index d74fd8e..46abe1a 100644
--- a/src/sbml/conversion/SBMLLevel1Version1Converter.h
+++ b/src/sbml/conversion/SBMLLevel1Version1Converter.h
@@ -1,235 +1,235 @@
-/**
- * @file    SBMLLevel1Version1Converter.h
- * @brief   Definition of SBMLLevel1Version1Converter.
- * @author  Frank Bergmann
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class SBMLLevel1Version1Converter
- * @sbmlbrief{core} Whole-document SBML Level/Version converter.
- *
- * @htmlinclude libsbml-facility-only-warning.html
- *
- * This SBML converter takes an SBML document having one SBML Level+Version
- * combination, and attempts to convert it to an SBML document having a
- * different Level+Version combination.  This converter
- * (SBMLLevel1Version1Converter) converts models to SBML Level 1
- * Version 1, to the extent possible by the limited features of
- * that Level/Version combination of SBML.
- *
- * @section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
- *
- * SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
- * object with the option @c "convertToL1V1", and passing this
- * properties object to SBMLDocument::convert(@if java
- * ConversionProperties at endif).  The target SBML Level and Version
- * combination are determined by the value of the SBML namespace set on the
- * ConversionProperties object (using
- * ConversionProperties::setTargetNamespaces(SBMLNamespaces *targetNS)).
- *
- * In addition, this converter offers the following options:
- *
- * @li @c "changePow": Mathematical expressions for exponentiation of
- * the form <code>pow(s1, 2)</code> will be converted to the expression
- * <code>s1^2</code>.
- *
- * @li @c "inlineCompartmentSizes": Back in the days of SBML Level 1
- * Version 1, many software tools assumed that the "kinetic laws" of
- * SBML were written in terms of units of
- * <em>concentration</em>/<em>time</em>.  These tools would not expect (and
- * thus not handle) rate expressions such as
- * <code>CompartmentOfS1 * k * S1</code>.
- * When the option @c "inlineCompartmentSizes" is enabled, libSBML will
- * replace the references to compartments (such as @c "CompartmentOfS1" in
- * this example) with their initial sizes.  This is not strictly correct in
- * all cases; in particular, if the compartment volume varies during
- * simulation, this conversion will not reflect the expected behavior.
- * However, many models do not have time-varying compartment sizes, so this
- * option makes it easy to get modern SBML rate expressions into a form that
- * old software tools may better understand.
- *
- * @copydetails doc_section_using_sbml_converters
- */
-
-#ifndef SBMLLEVEL1VERSION1CONVERTER_H
-#define SBMLLEVEL1VERSION1CONVERTER_H
-
-#include <sbml/SBMLNamespaces.h>
-#include <sbml/conversion/SBMLConverter.h>
-#include <sbml/conversion/SBMLConverterRegister.h>
-
-
-#ifdef __cplusplus
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-class LIBSBML_EXTERN  SBMLLevel1Version1Converter : public SBMLConverter
-{
-public:
-
-  /** @cond doxygenLibsbmlInternal */
-  /**
-   * Register with the ConversionRegistry.
-   */
-  static void init();
-
-  /** @endcond */
-
-
-  /**
-   * Creates a new SBMLLevel1Version1Converter object.
-   */
-  SBMLLevel1Version1Converter ();
-
-
-  /**
-   * Copy constructor; creates a copy of an SBMLLevel1Version1Converter
-   * object.
-   *
-   * @param obj the SBMLLevel1Version1Converter object to copy.
-   */
-  SBMLLevel1Version1Converter(const SBMLLevel1Version1Converter& obj);
-
-
-  /**
-   * Destroys this object.
-   */
-  virtual ~SBMLLevel1Version1Converter ();
-
-
-  /**
-   * Assignment operator for SBMLLevel1Version1Converter.
-   *
-   * @param rhs The object whose values are used as the basis of the
-   * assignment.
-   */
-  SBMLLevel1Version1Converter& operator=(const SBMLLevel1Version1Converter& rhs);
-
-
-  /**
-   * Creates and returns a deep copy of this SBMLLevel1Version1Converter
-   * object.
-   *
-   * @return a (deep) copy of this converter.
-   */
-  virtual SBMLLevel1Version1Converter* clone() const;
-
-
-  /**
-   * Returns @c true if this converter object's properties match the given
-   * properties.
-   *
-   * A typical use of this method involves creating a ConversionProperties
-   * object, setting the options desired, and then calling this method on
-   * an SBMLLevel1Version1Converter object to find out if the object's
-   * property values match the given ones.  This method is also used by
-   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
-   * to search across all registered converters for one matching particular
-   * properties.
-   *
-   * @param props the properties to match.
-   *
-   * @return @c true if this converter's properties match, @c false
-   * otherwise.
-   */
-  virtual bool matchesProperties(const ConversionProperties &props) const;
-
-
-  /**
-   * Perform the conversion.
-   *
-   * This method causes the converter to do the actual conversion work,
-   * that is, to convert the SBMLDocument object set by
-   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
-   * with the configuration options set by
-   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
-   *
-   * @copydetails doc_returns_success_code
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_CONV_INVALID_TARGET_NAMESPACE, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_CONV_INVALID_SRC_DOCUMENT, OperationReturnValues_t}
-   */
-  virtual int convert();
-
-
-  /**
-   * Returns the default properties of this converter.
-   *
-   * A given converter exposes one or more properties that can be adjusted
-   * in order to influence the behavior of the converter.  This method
-   * returns the @em default property settings for this converter.  It is
-   * meant to be called in order to discover all the settings for the
-   * converter object.
-   *
-   * @return the ConversionProperties object describing the default properties
-   * for this converter.
-   */
-  virtual ConversionProperties getDefaultProperties() const;
-
-
-  /* Convenience functions for this converter */
-
-
-private:
-  /** @cond doxygenLibsbmlInternal */
-  /*
-   * Predicate returning true if compartment sizes in kinetic laws should
-   * be inlined with their values.
-   */
-  bool inlineCompartmentSizes();
-
-  /*
-   * Predicate returning true if calls to pow should be replaced with the hat notation.
-   */
-  bool shouldChangePow();
-
-  /** @endcond */
-};
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* !SWIG */
-#endif  /* SBMLLEVEL1VERSION1CONVERTER_H */
-
+/**
+ * @file    SBMLLevel1Version1Converter.h
+ * @brief   Definition of SBMLLevel1Version1Converter.
+ * @author  Frank Bergmann
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class SBMLLevel1Version1Converter
+ * @sbmlbrief{core} Whole-document SBML Level/Version converter.
+ *
+ * @htmlinclude libsbml-facility-only-warning.html
+ *
+ * This SBML converter takes an SBML document having one SBML Level+Version
+ * combination, and attempts to convert it to an SBML document having a
+ * different Level+Version combination.  This converter
+ * (SBMLLevel1Version1Converter) converts models to SBML Level 1
+ * Version 1, to the extent possible by the limited features of
+ * that Level/Version combination of SBML.
+ *
+ * @section SBMLLevel1Version1Converter-usage Configuration and use of SBMLLevel1Version1Converter
+ *
+ * SBMLLevel1Version1Converter is enabled by creating a ConversionProperties
+ * object with the option @c "convertToL1V1", and passing this
+ * properties object to SBMLDocument::convert(@if java
+ * ConversionProperties at endif).  The target SBML Level and Version
+ * combination are determined by the value of the SBML namespace set on the
+ * ConversionProperties object (using
+ * ConversionProperties::setTargetNamespaces(SBMLNamespaces *targetNS)).
+ *
+ * In addition, this converter offers the following options:
+ *
+ * @li @c "changePow": Mathematical expressions for exponentiation of
+ * the form <code>pow(s1, 2)</code> will be converted to the expression
+ * <code>s1^2</code>.
+ *
+ * @li @c "inlineCompartmentSizes": Back in the days of SBML Level 1
+ * Version 1, many software tools assumed that the "kinetic laws" of
+ * SBML were written in terms of units of
+ * <em>concentration</em>/<em>time</em>.  These tools would not expect (and
+ * thus not handle) rate expressions such as
+ * <code>CompartmentOfS1 * k * S1</code>.
+ * When the option @c "inlineCompartmentSizes" is enabled, libSBML will
+ * replace the references to compartments (such as @c "CompartmentOfS1" in
+ * this example) with their initial sizes.  This is not strictly correct in
+ * all cases; in particular, if the compartment volume varies during
+ * simulation, this conversion will not reflect the expected behavior.
+ * However, many models do not have time-varying compartment sizes, so this
+ * option makes it easy to get modern SBML rate expressions into a form that
+ * old software tools may better understand.
+ *
+ * @copydetails doc_section_using_sbml_converters
+ */
+
+#ifndef SBMLLEVEL1VERSION1CONVERTER_H
+#define SBMLLEVEL1VERSION1CONVERTER_H
+
+#include <sbml/SBMLNamespaces.h>
+#include <sbml/conversion/SBMLConverter.h>
+#include <sbml/conversion/SBMLConverterRegister.h>
+
+
+#ifdef __cplusplus
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+class LIBSBML_EXTERN  SBMLLevel1Version1Converter : public SBMLConverter
+{
+public:
+
+  /** @cond doxygenLibsbmlInternal */
+  /**
+   * Register with the ConversionRegistry.
+   */
+  static void init();
+
+  /** @endcond */
+
+
+  /**
+   * Creates a new SBMLLevel1Version1Converter object.
+   */
+  SBMLLevel1Version1Converter ();
+
+
+  /**
+   * Copy constructor; creates a copy of an SBMLLevel1Version1Converter
+   * object.
+   *
+   * @param obj the SBMLLevel1Version1Converter object to copy.
+   */
+  SBMLLevel1Version1Converter(const SBMLLevel1Version1Converter& obj);
+
+
+  /**
+   * Destroys this object.
+   */
+  virtual ~SBMLLevel1Version1Converter ();
+
+
+  /**
+   * Assignment operator for SBMLLevel1Version1Converter.
+   *
+   * @param rhs The object whose values are used as the basis of the
+   * assignment.
+   */
+  SBMLLevel1Version1Converter& operator=(const SBMLLevel1Version1Converter& rhs);
+
+
+  /**
+   * Creates and returns a deep copy of this SBMLLevel1Version1Converter
+   * object.
+   *
+   * @return a (deep) copy of this converter.
+   */
+  virtual SBMLLevel1Version1Converter* clone() const;
+
+
+  /**
+   * Returns @c true if this converter object's properties match the given
+   * properties.
+   *
+   * A typical use of this method involves creating a ConversionProperties
+   * object, setting the options desired, and then calling this method on
+   * an SBMLLevel1Version1Converter object to find out if the object's
+   * property values match the given ones.  This method is also used by
+   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
+   * to search across all registered converters for one matching particular
+   * properties.
+   *
+   * @param props the properties to match.
+   *
+   * @return @c true if this converter's properties match, @c false
+   * otherwise.
+   */
+  virtual bool matchesProperties(const ConversionProperties &props) const;
+
+
+  /**
+   * Perform the conversion.
+   *
+   * This method causes the converter to do the actual conversion work,
+   * that is, to convert the SBMLDocument object set by
+   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
+   * with the configuration options set by
+   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_CONV_INVALID_TARGET_NAMESPACE, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_CONV_PKG_CONVERSION_NOT_AVAILABLE, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_CONV_INVALID_SRC_DOCUMENT, OperationReturnValues_t}
+   */
+  virtual int convert();
+
+
+  /**
+   * Returns the default properties of this converter.
+   *
+   * A given converter exposes one or more properties that can be adjusted
+   * in order to influence the behavior of the converter.  This method
+   * returns the @em default property settings for this converter.  It is
+   * meant to be called in order to discover all the settings for the
+   * converter object.
+   *
+   * @return the ConversionProperties object describing the default properties
+   * for this converter.
+   */
+  virtual ConversionProperties getDefaultProperties() const;
+
+
+  /* Convenience functions for this converter */
+
+
+private:
+  /** @cond doxygenLibsbmlInternal */
+  /*
+   * Predicate returning true if compartment sizes in kinetic laws should
+   * be inlined with their values.
+   */
+  bool inlineCompartmentSizes();
+
+  /*
+   * Predicate returning true if calls to pow should be replaced with the hat notation.
+   */
+  bool shouldChangePow();
+
+  /** @endcond */
+};
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* !SWIG */
+#endif  /* SBMLLEVEL1VERSION1CONVERTER_H */
+
diff --git a/src/sbml/conversion/SBMLLevelVersionConverter.cpp b/src/sbml/conversion/SBMLLevelVersionConverter.cpp
index 24412e7..62abe3e 100644
--- a/src/sbml/conversion/SBMLLevelVersionConverter.cpp
+++ b/src/sbml/conversion/SBMLLevelVersionConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -446,19 +446,19 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
       switch (targetVersion)
       {
       case 1:
-        if (!conversion_errors(mDocument->checkL2v1Compatibility()))
+        if (!conversion_errors(mDocument->checkL2v1Compatibility(true)))
         {
           doConversion = true;
         }
         break;
       case 2:
-        if (!conversion_errors(mDocument->checkL2v2Compatibility()))
+        if (!conversion_errors(mDocument->checkL2v2Compatibility(true)))
         {
           doConversion = true;
         }
         break;
       case 3:
-        if (!conversion_errors(mDocument->checkL2v3Compatibility()))
+        if (!conversion_errors(mDocument->checkL2v3Compatibility(true)))
         {
           doConversion = true;
         }
@@ -526,7 +526,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
         mDocument->getErrorLog()->logError(CannotConvertToL1V1);
         break;
       case 2:
-        if (!conversion_errors(mDocument->checkL1Compatibility()))
+        if (!conversion_errors(mDocument->checkL1Compatibility(true)))
         {
           doConversion = true;
           /* if existing model is L2V4 need to mDocument->check that
@@ -570,7 +570,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
       switch (targetVersion)
       {
       case 1:
-        if (!conversion_errors(mDocument->checkL2v1Compatibility()))
+        if (!conversion_errors(mDocument->checkL2v1Compatibility(true)))
         {
           doConversion = true;
           /* if existing model is L2V4 need to mDocument->check that
@@ -598,7 +598,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
         }
         break;
       case 2:
-        if (!conversion_errors(mDocument->checkL2v2Compatibility()))
+        if (!conversion_errors(mDocument->checkL2v2Compatibility(true)))
         {
           doConversion = true;
           /* if existing model is L2V4 need to mDocument->check that
@@ -645,7 +645,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
          }
         break;
       case 3:
-        if (!conversion_errors(mDocument->checkL2v3Compatibility()))
+        if (!conversion_errors(mDocument->checkL2v3Compatibility(true)))
         {
           doConversion = true;
           /* if existing model is L2V4 need to mDocument->check that
@@ -790,7 +790,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
         mDocument->getErrorLog()->logError(CannotConvertToL1V1);
         break;
       case 2:
-        if (!conversion_errors(mDocument->checkL1Compatibility(), strictUnits))
+        if (!conversion_errors(mDocument->checkL1Compatibility(true), strictUnits))
         {
           doConversion = true;
           if (strictUnits == true && !hasStrictUnits())
@@ -827,7 +827,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
       switch (targetVersion)
       {
       case 1:
-        if (!conversion_errors(mDocument->checkL2v1Compatibility(), strictUnits))
+        if (!conversion_errors(mDocument->checkL2v1Compatibility(true), strictUnits))
         {
           doConversion = true;
            if (strictUnits == true && !hasStrictUnits())
@@ -848,7 +848,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
        }
         break;
       case 2:
-        if (!conversion_errors(mDocument->checkL2v2Compatibility(), strictUnits))
+        if (!conversion_errors(mDocument->checkL2v2Compatibility(true), strictUnits))
         {
           doConversion = true;
           if (strictUnits == true && !hasStrictUnits())
@@ -884,7 +884,7 @@ SBMLLevelVersionConverter::performConversion(bool strict, bool strictUnits,
        }
         break;
       case 3:
-        if (!conversion_errors(mDocument->checkL2v3Compatibility(), strictUnits))
+        if (!conversion_errors(mDocument->checkL2v3Compatibility(true), strictUnits))
         {
           doConversion = true;
           if (strictUnits == true && !hasStrictUnits())
diff --git a/src/sbml/conversion/SBMLLevelVersionConverter.h b/src/sbml/conversion/SBMLLevelVersionConverter.h
index 2c69a26..e5a3686 100644
--- a/src/sbml/conversion/SBMLLevelVersionConverter.h
+++ b/src/sbml/conversion/SBMLLevelVersionConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLLocalParameterConverter.cpp b/src/sbml/conversion/SBMLLocalParameterConverter.cpp
index 7fdbeeb..febb926 100644
--- a/src/sbml/conversion/SBMLLocalParameterConverter.cpp
+++ b/src/sbml/conversion/SBMLLocalParameterConverter.cpp
@@ -7,7 +7,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLLocalParameterConverter.h b/src/sbml/conversion/SBMLLocalParameterConverter.h
index 73f1ce9..e763a2b 100644
--- a/src/sbml/conversion/SBMLLocalParameterConverter.h
+++ b/src/sbml/conversion/SBMLLocalParameterConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLReactionConverter.cpp b/src/sbml/conversion/SBMLReactionConverter.cpp
index a1ec78f..8de28df 100644
--- a/src/sbml/conversion/SBMLReactionConverter.cpp
+++ b/src/sbml/conversion/SBMLReactionConverter.cpp
@@ -7,7 +7,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLReactionConverter.h b/src/sbml/conversion/SBMLReactionConverter.h
index 5b18623..23514c2 100644
--- a/src/sbml/conversion/SBMLReactionConverter.h
+++ b/src/sbml/conversion/SBMLReactionConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLRuleConverter.cpp b/src/sbml/conversion/SBMLRuleConverter.cpp
index fff3ac7..0bad7e4 100644
--- a/src/sbml/conversion/SBMLRuleConverter.cpp
+++ b/src/sbml/conversion/SBMLRuleConverter.cpp
@@ -8,7 +8,7 @@
 * This file is part of libSBML.  Please visit http://sbml.org for more
 * information about SBML, and the latest version of libSBML.
 *
-* Copyright (C) 2013-2015 jointly by the following organizations:
+* Copyright (C) 2013-2016 jointly by the following organizations:
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLRuleConverter.h b/src/sbml/conversion/SBMLRuleConverter.h
index df2118c..843b492 100644
--- a/src/sbml/conversion/SBMLRuleConverter.h
+++ b/src/sbml/conversion/SBMLRuleConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLStripPackageConverter.cpp b/src/sbml/conversion/SBMLStripPackageConverter.cpp
index 5ad6107..1fd2bf4 100644
--- a/src/sbml/conversion/SBMLStripPackageConverter.cpp
+++ b/src/sbml/conversion/SBMLStripPackageConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLStripPackageConverter.h b/src/sbml/conversion/SBMLStripPackageConverter.h
index a66a884..f88699c 100644
--- a/src/sbml/conversion/SBMLStripPackageConverter.h
+++ b/src/sbml/conversion/SBMLStripPackageConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLUnitsConverter.cpp b/src/sbml/conversion/SBMLUnitsConverter.cpp
index e76239f..2f72eb0 100644
--- a/src/sbml/conversion/SBMLUnitsConverter.cpp
+++ b/src/sbml/conversion/SBMLUnitsConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/SBMLUnitsConverter.h b/src/sbml/conversion/SBMLUnitsConverter.h
index 56364e3..7ef5381 100644
--- a/src/sbml/conversion/SBMLUnitsConverter.h
+++ b/src/sbml/conversion/SBMLUnitsConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/CMakeLists.txt b/src/sbml/conversion/test/CMakeLists.txt
index 33313f6..82ca300 100644
--- a/src/sbml/conversion/test/CMakeLists.txt
+++ b/src/sbml/conversion/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestConversionOption.cpp b/src/sbml/conversion/test/TestConversionOption.cpp
index 825be8e..d760da8 100644
--- a/src/sbml/conversion/test/TestConversionOption.cpp
+++ b/src/sbml/conversion/test/TestConversionOption.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestConversionProperties.cpp b/src/sbml/conversion/test/TestConversionProperties.cpp
index e1ce883..f664e4d 100644
--- a/src/sbml/conversion/test/TestConversionProperties.cpp
+++ b/src/sbml/conversion/test/TestConversionProperties.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestInferUnitsConverter.cpp b/src/sbml/conversion/test/TestInferUnitsConverter.cpp
index 84226df..c8df3c3 100644
--- a/src/sbml/conversion/test/TestInferUnitsConverter.cpp
+++ b/src/sbml/conversion/test/TestInferUnitsConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestLevelVersionConverter.cpp b/src/sbml/conversion/test/TestLevelVersionConverter.cpp
index e4bb40f..51e6a81 100644
--- a/src/sbml/conversion/test/TestLevelVersionConverter.cpp
+++ b/src/sbml/conversion/test/TestLevelVersionConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestRunner.c b/src/sbml/conversion/test/TestRunner.c
index fb115ee..f719a44 100644
--- a/src/sbml/conversion/test/TestRunner.c
+++ b/src/sbml/conversion/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestSBMLConverterRegistry.cpp b/src/sbml/conversion/test/TestSBMLConverterRegistry.cpp
index c30f22e..6b424b5 100644
--- a/src/sbml/conversion/test/TestSBMLConverterRegistry.cpp
+++ b/src/sbml/conversion/test/TestSBMLConverterRegistry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestSBMLRuleConverter.cpp b/src/sbml/conversion/test/TestSBMLRuleConverter.cpp
index 1852a6b..e9529df 100644
--- a/src/sbml/conversion/test/TestSBMLRuleConverter.cpp
+++ b/src/sbml/conversion/test/TestSBMLRuleConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestStripPackageConverter.cpp b/src/sbml/conversion/test/TestStripPackageConverter.cpp
index b89927a..f21eee6 100644
--- a/src/sbml/conversion/test/TestStripPackageConverter.cpp
+++ b/src/sbml/conversion/test/TestStripPackageConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestUnitsConverter.cpp b/src/sbml/conversion/test/TestUnitsConverter.cpp
index 96a6eab..cfdf2c9 100644
--- a/src/sbml/conversion/test/TestUnitsConverter.cpp
+++ b/src/sbml/conversion/test/TestUnitsConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestUnitsConverter2.cpp b/src/sbml/conversion/test/TestUnitsConverter2.cpp
index 2c211bb..2951680 100644
--- a/src/sbml/conversion/test/TestUnitsConverter2.cpp
+++ b/src/sbml/conversion/test/TestUnitsConverter2.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/conversion/test/TestUnitsConverterL2.cpp b/src/sbml/conversion/test/TestUnitsConverterL2.cpp
index 96a5b6e..5aa725b 100644
--- a/src/sbml/conversion/test/TestUnitsConverterL2.cpp
+++ b/src/sbml/conversion/test/TestUnitsConverterL2.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/ASTBasePlugin.cpp b/src/sbml/extension/ASTBasePlugin.cpp
index dd47b19..6d29c9a 100644
--- a/src/sbml/extension/ASTBasePlugin.cpp
+++ b/src/sbml/extension/ASTBasePlugin.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/ASTBasePlugin.h b/src/sbml/extension/ASTBasePlugin.h
index 2aeea88..7b7d23d 100644
--- a/src/sbml/extension/ASTBasePlugin.h
+++ b/src/sbml/extension/ASTBasePlugin.h
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/ISBMLExtensionNamespaces.cpp b/src/sbml/extension/ISBMLExtensionNamespaces.cpp
index dff6046..9e80c29 100644
--- a/src/sbml/extension/ISBMLExtensionNamespaces.cpp
+++ b/src/sbml/extension/ISBMLExtensionNamespaces.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/ISBMLExtensionNamespaces.h b/src/sbml/extension/ISBMLExtensionNamespaces.h
index 3fce67d..56830c3 100644
--- a/src/sbml/extension/ISBMLExtensionNamespaces.h
+++ b/src/sbml/extension/ISBMLExtensionNamespaces.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/Makefile.in b/src/sbml/extension/Makefile.in
index e8b5d6f..1d00343 100644
--- a/src/sbml/extension/Makefile.in
+++ b/src/sbml/extension/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLDocumentPlugin.cpp b/src/sbml/extension/SBMLDocumentPlugin.cpp
index ed0c06b..241c8e8 100644
--- a/src/sbml/extension/SBMLDocumentPlugin.cpp
+++ b/src/sbml/extension/SBMLDocumentPlugin.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLDocumentPlugin.h b/src/sbml/extension/SBMLDocumentPlugin.h
index 9cbb4e7..fd2fa1e 100644
--- a/src/sbml/extension/SBMLDocumentPlugin.h
+++ b/src/sbml/extension/SBMLDocumentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLDocumentPluginNotRequired.cpp b/src/sbml/extension/SBMLDocumentPluginNotRequired.cpp
index a066096..35d0d26 100644
--- a/src/sbml/extension/SBMLDocumentPluginNotRequired.cpp
+++ b/src/sbml/extension/SBMLDocumentPluginNotRequired.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLDocumentPluginNotRequired.h b/src/sbml/extension/SBMLDocumentPluginNotRequired.h
index 2abf856..e958c45 100644
--- a/src/sbml/extension/SBMLDocumentPluginNotRequired.h
+++ b/src/sbml/extension/SBMLDocumentPluginNotRequired.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtension.cpp b/src/sbml/extension/SBMLExtension.cpp
index 34165a2..132e10d 100644
--- a/src/sbml/extension/SBMLExtension.cpp
+++ b/src/sbml/extension/SBMLExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtension.h b/src/sbml/extension/SBMLExtension.h
index c1ea38c..3921420 100644
--- a/src/sbml/extension/SBMLExtension.h
+++ b/src/sbml/extension/SBMLExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtensionException.cpp b/src/sbml/extension/SBMLExtensionException.cpp
index 74776cb..fd14b97 100644
--- a/src/sbml/extension/SBMLExtensionException.cpp
+++ b/src/sbml/extension/SBMLExtensionException.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtensionException.h b/src/sbml/extension/SBMLExtensionException.h
index ea4bad0..3f863f7 100644
--- a/src/sbml/extension/SBMLExtensionException.h
+++ b/src/sbml/extension/SBMLExtensionException.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtensionNamespaces.cpp b/src/sbml/extension/SBMLExtensionNamespaces.cpp
index e4aa24d..00219b9 100644
--- a/src/sbml/extension/SBMLExtensionNamespaces.cpp
+++ b/src/sbml/extension/SBMLExtensionNamespaces.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtensionNamespaces.h b/src/sbml/extension/SBMLExtensionNamespaces.h
index 4ebfdf8..e21e343 100644
--- a/src/sbml/extension/SBMLExtensionNamespaces.h
+++ b/src/sbml/extension/SBMLExtensionNamespaces.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtensionRegister.h b/src/sbml/extension/SBMLExtensionRegister.h
index dddb512..0b84142 100644
--- a/src/sbml/extension/SBMLExtensionRegister.h
+++ b/src/sbml/extension/SBMLExtensionRegister.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtensionRegistry.cpp b/src/sbml/extension/SBMLExtensionRegistry.cpp
index f7eb9dc..6c863d8 100644
--- a/src/sbml/extension/SBMLExtensionRegistry.cpp
+++ b/src/sbml/extension/SBMLExtensionRegistry.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBMLExtensionRegistry.h b/src/sbml/extension/SBMLExtensionRegistry.h
index 7529de9..17e1a35 100644
--- a/src/sbml/extension/SBMLExtensionRegistry.h
+++ b/src/sbml/extension/SBMLExtensionRegistry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBaseExtensionPoint.cpp b/src/sbml/extension/SBaseExtensionPoint.cpp
index 8dc4021..2001158 100644
--- a/src/sbml/extension/SBaseExtensionPoint.cpp
+++ b/src/sbml/extension/SBaseExtensionPoint.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBaseExtensionPoint.h b/src/sbml/extension/SBaseExtensionPoint.h
index 8bbbfb5..fdcfabd 100644
--- a/src/sbml/extension/SBaseExtensionPoint.h
+++ b/src/sbml/extension/SBaseExtensionPoint.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBasePlugin.cpp b/src/sbml/extension/SBasePlugin.cpp
index 76dbefe..6f348bd 100644
--- a/src/sbml/extension/SBasePlugin.cpp
+++ b/src/sbml/extension/SBasePlugin.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBasePlugin.h b/src/sbml/extension/SBasePlugin.h
index f6c3f41..7feabee 100644
--- a/src/sbml/extension/SBasePlugin.h
+++ b/src/sbml/extension/SBasePlugin.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -454,7 +454,6 @@ public:
    *
    * @see getPackageName()
    * @see getElementNamespace()
-   * @see SBMLDocument::getSBMLNamespaces()
    * @see getSBMLDocument()
    */
   std::string getURI() const;
@@ -572,7 +571,7 @@ public:
   /**
    * Add the given string to all identifiers in the object.  If the string is
    * added to anything other than an id or a metaid, this code is responsible
-   * for tracking down and renaming all *idRefs in the package extention that
+   * for tracking down and renaming all *idRefs in the package extension that
    * identifier comes from.
    */
   virtual int prependStringToAllIdentifiers(const std::string& prefix);
diff --git a/src/sbml/extension/SBasePluginCreator.h b/src/sbml/extension/SBasePluginCreator.h
index 2d19d10..885dd11 100644
--- a/src/sbml/extension/SBasePluginCreator.h
+++ b/src/sbml/extension/SBasePluginCreator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBasePluginCreatorBase.cpp b/src/sbml/extension/SBasePluginCreatorBase.cpp
index f595107..b2ec158 100644
--- a/src/sbml/extension/SBasePluginCreatorBase.cpp
+++ b/src/sbml/extension/SBasePluginCreatorBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/SBasePluginCreatorBase.h b/src/sbml/extension/SBasePluginCreatorBase.h
index 13c0274..28ba98b 100644
--- a/src/sbml/extension/SBasePluginCreatorBase.h
+++ b/src/sbml/extension/SBasePluginCreatorBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/CMakeLists.txt b/src/sbml/extension/test/CMakeLists.txt
index ba20080..6a40097 100644
--- a/src/sbml/extension/test/CMakeLists.txt
+++ b/src/sbml/extension/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/Makefile.in b/src/sbml/extension/test/Makefile.in
index 9e7dabe..2702781 100644
--- a/src/sbml/extension/test/Makefile.in
+++ b/src/sbml/extension/test/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestPackage.cpp b/src/sbml/extension/test/TestPackage.cpp
index dedd167..9be9840 100644
--- a/src/sbml/extension/test/TestPackage.cpp
+++ b/src/sbml/extension/test/TestPackage.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestPackage.h b/src/sbml/extension/test/TestPackage.h
index f848713..fbf789a 100644
--- a/src/sbml/extension/test/TestPackage.h
+++ b/src/sbml/extension/test/TestPackage.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestRunner.c b/src/sbml/extension/test/TestRunner.c
index 6337603..1b23dda 100644
--- a/src/sbml/extension/test/TestRunner.c
+++ b/src/sbml/extension/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBMLDocumentPlugin.cpp b/src/sbml/extension/test/TestSBMLDocumentPlugin.cpp
index 58f3897..24d4c90 100644
--- a/src/sbml/extension/test/TestSBMLDocumentPlugin.cpp
+++ b/src/sbml/extension/test/TestSBMLDocumentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBMLExtension.cpp b/src/sbml/extension/test/TestSBMLExtension.cpp
index 4b9f162..7f361f5 100644
--- a/src/sbml/extension/test/TestSBMLExtension.cpp
+++ b/src/sbml/extension/test/TestSBMLExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBMLExtensionNamespaces.cpp b/src/sbml/extension/test/TestSBMLExtensionNamespaces.cpp
index f6fdb99..326ca5c 100644
--- a/src/sbml/extension/test/TestSBMLExtensionNamespaces.cpp
+++ b/src/sbml/extension/test/TestSBMLExtensionNamespaces.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBMLExtensionRegistry.cpp b/src/sbml/extension/test/TestSBMLExtensionRegistry.cpp
index 9c95978..698a5f1 100644
--- a/src/sbml/extension/test/TestSBMLExtensionRegistry.cpp
+++ b/src/sbml/extension/test/TestSBMLExtensionRegistry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBaseExtensionPoint.cpp b/src/sbml/extension/test/TestSBaseExtensionPoint.cpp
index 6fec68a..01ce5b5 100644
--- a/src/sbml/extension/test/TestSBaseExtensionPoint.cpp
+++ b/src/sbml/extension/test/TestSBaseExtensionPoint.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBasePlugin.cpp b/src/sbml/extension/test/TestSBasePlugin.cpp
index d443321..152134a 100644
--- a/src/sbml/extension/test/TestSBasePlugin.cpp
+++ b/src/sbml/extension/test/TestSBasePlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBasePluginCreator.cpp b/src/sbml/extension/test/TestSBasePluginCreator.cpp
index a83c0b5..e7f8657 100644
--- a/src/sbml/extension/test/TestSBasePluginCreator.cpp
+++ b/src/sbml/extension/test/TestSBasePluginCreator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestSBasePluginCreatorBase.cpp b/src/sbml/extension/test/TestSBasePluginCreatorBase.cpp
index 77d01fb..5d01289 100644
--- a/src/sbml/extension/test/TestSBasePluginCreatorBase.cpp
+++ b/src/sbml/extension/test/TestSBasePluginCreatorBase.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/extension/test/TestUnknownPackage.cpp b/src/sbml/extension/test/TestUnknownPackage.cpp
index d741ec9..5c2e7b4 100644
--- a/src/sbml/extension/test/TestUnknownPackage.cpp
+++ b/src/sbml/extension/test/TestUnknownPackage.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/ASTNode.cpp b/src/sbml/math-legacy/ASTNode.cpp
index 10eeac2..da72419 100644
--- a/src/sbml/math-legacy/ASTNode.cpp
+++ b/src/sbml/math-legacy/ASTNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -2517,10 +2517,18 @@ ASTNode::replaceArgument(const std::string bvar, ASTNode * arg)
       else if (arg->isReal())
       {
         this->setValue(arg->getReal());
+        if (arg->isSetUnits())
+        {
+          this->setUnits(arg->getUnits());
+        }
       }
       else if (arg->isInteger())
       {
         this->setValue(arg->getInteger());
+        if (arg->isSetUnits())
+        {
+          this->setUnits(arg->getUnits());
+        }
       }
       else if (arg->isConstant())
       {
@@ -2551,10 +2559,18 @@ ASTNode::replaceArgument(const std::string bvar, ASTNode * arg)
         else if (arg->isReal())
         {
           getChild(i)->setValue(arg->getReal());
+          if (arg->isSetUnits())
+          {
+            getChild(i)->setUnits(arg->getUnits());
+          }
         }
         else if (arg->isInteger())
         {
           getChild(i)->setValue(arg->getInteger());
+          if (arg->isSetUnits())
+          {
+            getChild(i)->setUnits(arg->getUnits());
+          }
         }
         else if (arg->isConstant())
         {
diff --git a/src/sbml/math-legacy/ASTNode.h b/src/sbml/math-legacy/ASTNode.h
index eadbf21..fc15c0d 100644
--- a/src/sbml/math-legacy/ASTNode.h
+++ b/src/sbml/math-legacy/ASTNode.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/FormulaFormatter.c b/src/sbml/math-legacy/FormulaFormatter.c
index 8d19cba..02dd1e4 100644
--- a/src/sbml/math-legacy/FormulaFormatter.c
+++ b/src/sbml/math-legacy/FormulaFormatter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/FormulaFormatter.h b/src/sbml/math-legacy/FormulaFormatter.h
index 5ca2915..8a35d81 100644
--- a/src/sbml/math-legacy/FormulaFormatter.h
+++ b/src/sbml/math-legacy/FormulaFormatter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/FormulaParser.c b/src/sbml/math-legacy/FormulaParser.c
index 5a2941f..ead23d5 100644
--- a/src/sbml/math-legacy/FormulaParser.c
+++ b/src/sbml/math-legacy/FormulaParser.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/FormulaParser.h b/src/sbml/math-legacy/FormulaParser.h
index fc982ca..30380db 100644
--- a/src/sbml/math-legacy/FormulaParser.h
+++ b/src/sbml/math-legacy/FormulaParser.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/FormulaTokenizer.c b/src/sbml/math-legacy/FormulaTokenizer.c
index f0f5c0e..f146645 100644
--- a/src/sbml/math-legacy/FormulaTokenizer.c
+++ b/src/sbml/math-legacy/FormulaTokenizer.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -49,9 +49,7 @@
 /* Forward references */
 
 /** @cond doxygenLibsbmlInternal */
-
 void Token_convertNaNInf (Token_t *t);
-
 /** @endcond */
 
 
@@ -108,7 +106,7 @@ FormulaTokenizer_getName (FormulaTokenizer_t *ft, Token_t *t)
   start = ft->pos;
   c     = ft->formula[ ++ft->pos ];
 
-  while (isalpha(c) || isdigit(c) || c == '_')
+  while (isalpha((int)c) || isdigit((int)c) || c == '_')
   {
     c = ft->formula[ ++ft->pos ];
   }
@@ -232,7 +230,6 @@ FormulaTokenizer_getNumber (FormulaTokenizer_t *ft, Token_t *t)
    */
   ft->formula[ endpos ] = endchar;
 }
-
 /** @endcond */
 
 
@@ -257,7 +254,7 @@ FormulaTokenizer_nextToken (FormulaTokenizer_t *ft)
   /**
    * Skip whitespace
    */
-  while (isspace(c))
+  while (isspace((int)c))
   {
     c = ft->formula[ ++ft->pos ];
   }
@@ -275,11 +272,11 @@ FormulaTokenizer_nextToken (FormulaTokenizer_t *ft)
     t->value.ch = c;
     ft->pos++;
   }
-  else if (isalpha(c) || c == '_')
+  else if (isalpha((int)c) || c == '_')
   {
     FormulaTokenizer_getName(ft, t);
   }
-  else if (c == '.' || isdigit(c))
+  else if (c == '.' || isdigit((int)c))
   {
     FormulaTokenizer_getNumber(ft, t);
   }
diff --git a/src/sbml/math-legacy/FormulaTokenizer.h b/src/sbml/math-legacy/FormulaTokenizer.h
index 9f5b6c0..84c504b 100644
--- a/src/sbml/math-legacy/FormulaTokenizer.h
+++ b/src/sbml/math-legacy/FormulaTokenizer.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/L3FormulaFormatter.c b/src/sbml/math-legacy/L3FormulaFormatter.c
index 439006d..6b252d3 100644
--- a/src/sbml/math-legacy/L3FormulaFormatter.c
+++ b/src/sbml/math-legacy/L3FormulaFormatter.c
@@ -12,7 +12,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -36,6 +36,7 @@
  * ---------------------------------------------------------------------- -->*/
 
 #include <sbml/common/common.h>
+#include <sbml/math/FormulaFormatter.h>
 #include <sbml/math/L3FormulaFormatter.h>
 #include <sbml/math/L3ParserSettings.h>
 #include <sbml/math/ASTNode.h>
@@ -43,6 +44,30 @@
 
 #include <sbml/util/util.h>
 
+int
+isUnaryMinus (const ASTNode_t *node)
+{
+  if (node==NULL) return 0;
+  if (ASTNode_getType(node) != AST_MINUS) return 0;
+  if (ASTNode_getNumChildren(node) != 1) return 0;
+  return 1;
+}
+
+int
+isUnaryNot (const ASTNode_t *node)
+{
+  if (node==NULL) return 0;
+  if (ASTNode_getType(node) != AST_LOGICAL_NOT) return 0;
+  if (ASTNode_getNumChildren(node) != 1) return 0;
+  return 1;
+}
+
+int
+L3FormulaFormatter_hasUnambiguousGrammar(const ASTNode_t *node, 
+                               const ASTNode_t *child, 
+                               const L3ParserSettings_t *settings);
+
+
 /** @cond doxygenIgnored */
 LIBSBML_EXTERN
 char *
@@ -168,6 +193,17 @@ int isTranslatedModulo (const ASTNode_t* node)
   return 1;
 }
 
+const ASTNode_t* L3FormulaFormatter_getRightChild(const ASTNode_t* parent)
+{
+  if (isTranslatedModulo(parent)==1) {
+    return ASTNode_getChild(ASTNode_getChild(ASTNode_getChild(parent, 0), 1), 0);
+  }
+  if (isUnaryMinus(parent) || isUnaryNot(parent)) {
+    return ASTNode_getChild(parent, 0);
+  }
+  return ASTNode_getRightChild(parent);
+}
+
 
 /*
  * @return the precedence of this ASTNode as defined in the L3 parser documentation.
@@ -235,8 +271,8 @@ int getL3Precedence(const ASTNode_t* node)
       case AST_RELATIONAL_LEQ:
       case AST_RELATIONAL_LT:
       case AST_RELATIONAL_NEQ:
-        //The relational symbols (==, >=, etc.) are only used when there are two children.
-        if (numchildren == 2) {
+        //The relational symbols (==, >=, etc.) are only used when there are two or more children.
+        if (numchildren >= 2) {
           precedence = 3;
         }
         else {
@@ -284,14 +320,45 @@ L3FormulaFormatter_isGrouped (const ASTNode_t *parent, const ASTNode_t *child, c
   int pp, cp;
   int pt, ct;
   int group = 0;
-  int parentmodulo = 0;
-
+  const ASTNode_t* rchild = NULL;
 
   if (parent != NULL)
   {
-    parentmodulo = isTranslatedModulo(parent);
-    if (parentmodulo || !L3FormulaFormatter_isFunction(parent, settings))
+    if (isUnaryMinus(parent)) {
+      child = L3FormulaFormatter_getRightChild(parent);
+      if (isUnaryNot(child)) {
+        //Always group: -(!a) because reasons.
+        return 1;
+      }
+    }
+    else if (isUnaryNot(parent)) {
+      child = L3FormulaFormatter_getRightChild(parent);
+      if (isUnaryMinus(child)) {
+        //Always group: !(-a) because reasons.
+        return 1;
+      }
+    }
+    if (ASTNode_isLogical(parent) || ASTNode_isRelational(parent) || isTranslatedModulo(parent)) {
+      if (!L3FormulaFormatter_hasUnambiguousGrammar(NULL, child, settings)) {
+        //Always group potentially-ambiguous children of logical, relational, and modulo operators, since their precedence is unfamiliar to most users.
+        group = 1;
+        rchild = L3FormulaFormatter_getRightChild(parent);
+        if (child == rchild) {
+          if (isUnaryMinus(child) || isUnaryNot(child)) {
+          //Don't need to group right-side unary minus nor unary not: they are not actually ambiguous
+          group = 0;
+          }
+        }
+      }
+    }
+    else if (!L3FormulaFormatter_hasUnambiguousGrammar(parent, child, settings))
     {
+      if ((ASTNode_isLogical(child) || ASTNode_isRelational(child) || isTranslatedModulo(child)) &&
+          !isUnaryMinus(child) && !isUnaryNot(child)){
+        //Always group child  logical, relational, and modulo, since their precedence is unfamiliar to most users.
+        group = 1;
+      }
+      else {
       group = 1;
       pp = getL3Precedence(parent);
       cp = getL3Precedence(child);
@@ -302,10 +369,6 @@ L3FormulaFormatter_isGrouped (const ASTNode_t *parent, const ASTNode_t *child, c
       }
       else if (pp == cp)
       {
-        if (parentmodulo) {
-          //Always group:  x * y % z -> (x * y) % z
-          group = 1;
-        }
         /**
          * Don't group only if i) child is the first on the list and ii) both parent and
          * child are the same type, or if they
@@ -316,14 +379,13 @@ L3FormulaFormatter_isGrouped (const ASTNode_t *parent, const ASTNode_t *child, c
          */
         if (ASTNode_getLeftChild(parent) == child)
         {
+            pt = ASTNode_getType(parent);
+            ct = ASTNode_getType(child);
           if (ASTNode_isLogical(parent) || ASTNode_isRelational(parent)) {
-            group = 0;
+              group = !(pt == ct);
           }
           else {
-            pt = ASTNode_getType(parent);
-            ct = ASTNode_getType(child);
-
-            group = !((pt == ct) || (pt == AST_PLUS || pt == AST_TIMES));
+              group = !((pt == ct) || (pt == AST_DIVIDE || pt == AST_MINUS));
           }
         }
       }
@@ -336,6 +398,7 @@ L3FormulaFormatter_isGrouped (const ASTNode_t *parent, const ASTNode_t *child, c
       }
     }
   }
+  }
 
   return group;
 }
@@ -373,6 +436,14 @@ L3FormulaFormatter_format (StringBuffer_t *sb, const ASTNode_t *node, const L3Pa
   {
     L3FormulaFormatter_formatReal(sb, node, settings);
   }
+  else if (ASTNode_isAvogadro(node))
+  {
+    StringBuffer_append(sb, "avogadro");
+  }
+  else if (ASTNode_getType(node) == AST_NAME_TIME)
+  {
+    StringBuffer_append(sb, "time");
+  }
   else if ( !ASTNode_isUnknown(node) )
   {
     StringBuffer_append(sb, ASTNode_getName(node));
@@ -408,6 +479,9 @@ L3FormulaFormatter_formatFunction (StringBuffer_t *sb, const ASTNode_t *node, co
   case AST_FUNCTION_LN:
     StringBuffer_append(sb, "ln");
     break;
+  case AST_FUNCTION_DELAY:
+    StringBuffer_append(sb, "delay");
+    break;
 
   default:
     FormulaFormatter_formatFunction(sb, node);
@@ -758,7 +832,7 @@ L3FormulaFormatter_visitModulo ( const ASTNode_t *parent,
   //Get x and y from the first child of the piecewise function, 
   // then the first child of that (times), and the first child
   // of that (minus).
-  L3FormulaFormatter_visit ( subnode, ASTNode_getLeftChild(subnode), sb, settings);
+  L3FormulaFormatter_visit ( node, ASTNode_getLeftChild(subnode), sb, settings);
   StringBuffer_appendChar(sb, ' ');
   StringBuffer_appendChar(sb, '%');
   StringBuffer_appendChar(sb, ' ');
@@ -822,6 +896,29 @@ L3FormulaFormatter_visitOther ( const ASTNode_t *parent,
   }
 }
 
+
+
+//This function determines if the node in question has unambiguous grammar; that
+// is, if it needs to worry about any of its components having parentheses.
+int
+L3FormulaFormatter_hasUnambiguousGrammar(const ASTNode_t *node, 
+                               const ASTNode_t *child, 
+                               const L3ParserSettings_t *settings)
+{
+  //All of the following situations have grammar that doesn't ever require the child
+  // to have parentheses added when it's a child of 'node'.
+
+  //Functions delimit their children with commas:
+  if (L3FormulaFormatter_isFunction(node, settings)) return 1;
+
+  //'8', the highest precedence, is only ever given to functions and other top-level 
+  // unambiguous objects.
+  if (getL3Precedence(child) == 8) return 1;
+
+  return 0;
+}
+
+
 //This function determines if the node in question should be
 // expressed in the form "functioname(children)" or if
 // it should be expressed as "child1 [symbol] child2 [symbol] child3"
@@ -847,7 +944,7 @@ L3FormulaFormatter_isFunction (const ASTNode_t *node,
   case AST_RELATIONAL_GT:
   case AST_RELATIONAL_LEQ:
   case AST_RELATIONAL_LT:
-    if (ASTNode_getNumChildren(node) == 2) {
+    if (ASTNode_getNumChildren(node) >= 2) {
       return 0;
     }
     return 1;
diff --git a/src/sbml/math-legacy/L3FormulaFormatter.h b/src/sbml/math-legacy/L3FormulaFormatter.h
index f439751..af2b676 100644
--- a/src/sbml/math-legacy/L3FormulaFormatter.h
+++ b/src/sbml/math-legacy/L3FormulaFormatter.h
@@ -12,7 +12,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/L3Parser.cpp b/src/sbml/math-legacy/L3Parser.cpp
index 76eafd2..54062ee 100644
--- a/src/sbml/math-legacy/L3Parser.cpp
+++ b/src/sbml/math-legacy/L3Parser.cpp
@@ -104,6 +104,7 @@
 #include <sbml/math/L3Parser.h>
 #include <sbml/Model.h>
 #include <sbml/math/L3ParserSettings.h>
+#include <sbml/util/util.h>
 
 #include <sstream>
 
@@ -150,6 +151,7 @@ public:
   bool collapseminus;
   bool parseunits;
   bool avocsymbol;
+  const L3ParserSettings* currentSettings;
   bool strCmpIsCaseSensitive;
 
   L3Parser();
@@ -264,6 +266,15 @@ public:
   bool checkNumArguments(const ASTNode* function);
 
   /**
+   * This function checks the provided ASTNode function to see if it is a 
+   * known function with the wrong number of arguments.  If so, an error is set
+   * (using the 'setError' function) and 'true' is returned.  If the
+   * correct number of arguments is provided, 'false' is returned.  It is used
+   * for ASTNodes created from packages.
+   */
+  bool checkNumArgumentsForPackage(const ASTNode* function);
+
+  /**
    * This function takes the given left and right ASTNodes, and combines them
    * with the given relational type, returning the combined node.
    */
@@ -274,7 +285,7 @@ public:
    */
   L3ParserSettings getDefaultL3ParserSettings();
 
-  /*
+  /**
    * Change the default settings for this parser to the settings provided.  All subsequent
    * calls to parseL3Formula with no 'settings' argument will use these settings
    * instead of the defaults.
@@ -282,6 +293,16 @@ public:
   void setDefaultSettings(L3ParserSettings settings);
 
   /**
+   * The generic parsing function for grammar lines that packages recognize, but not core.
+   * When a package recognizes the 'type', it will parse and return the correct ASTNode.
+   * If it does not recognize the 'type', or if the arguments are incorrect, NULL is returend.
+   */
+  virtual ASTNode* parsePackageInfix(L3ParserGrammarLineType_t type, 
+    std::vector<ASTNode*> *nodeList = NULL, std::vector<std::string*> *stringList = NULL,
+    std::vector<double> *doubleList = NULL) const;
+
+
+  /**
    * If the either versions of the function @see SBML_parseL3Formula() returns NULL, an error 
    * is set internally which is accessible via this function.  The returned error will 
    * report the string it was trying to parse, which character it had parsed when it 
@@ -322,7 +343,7 @@ LIBSBML_CPP_NAMESPACE_END
 
 
 /* Line 371 of yacc.c  */
-#line 326 "L3Parser.cpp"
+#line 347 "L3Parser.cpp"
 
 # ifndef YY_NULL
 #  if defined __cplusplus && 201103L <= __cplusplus
@@ -372,7 +393,7 @@ extern int sbml_yydebug;
 typedef union YYSTYPE
 {
 /* Line 387 of yacc.c  */
-#line 305 "L3Parser.ypp"
+#line 325 "L3Parser.ypp"
 
   ASTNode* astnode;
   char character;
@@ -384,7 +405,7 @@ typedef union YYSTYPE
 
 
 /* Line 387 of yacc.c  */
-#line 388 "L3Parser.cpp"
+#line 409 "L3Parser.cpp"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -412,7 +433,7 @@ int sbml_yyparse ();
 /* Copy the second part of user declarations.  */
 
 /* Line 390 of yacc.c  */
-#line 416 "L3Parser.cpp"
+#line 437 "L3Parser.cpp"
 
 #ifdef short
 # undef short
@@ -639,18 +660,18 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  19
+#define YYFINAL  24
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   172
+#define YYLAST   254
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  26
+#define YYNTOKENS  31
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  5
+#define YYNNTS  6
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  36
+#define YYNRULES  43
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  65
+#define YYNSTATES  79
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -666,15 +687,15 @@ static const yytype_uint8 yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     8,     2,     2,     2,    13,     3,     2,
-      23,    24,    11,    10,    25,     9,     2,    12,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+      24,    25,    11,    10,    29,     9,     2,    12,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,    30,
        5,     7,     6,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,    17,     2,     2,     2,     2,     2,
+       2,    18,     2,    26,    17,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
+       2,     2,     2,    27,     4,    28,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -688,7 +709,7 @@ static const yytype_uint8 yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     1,     2,    14,    15,
-      16,    18,    19,    20,    21,    22
+      16,    19,    20,    21,    22,    23
 };
 
 #if YYDEBUG
@@ -699,34 +720,39 @@ static const yytype_uint8 yyprhs[] =
        0,     0,     3,     4,     6,     8,    11,    13,    15,    19,
       23,    27,    31,    35,    39,    43,    46,    49,    53,    57,
       62,    67,    72,    77,    82,    87,    92,    97,   100,   104,
-     109,   111,   113,   115,   117,   120,   122
+     109,   114,   118,   122,   126,   129,   131,   133,   135,   137,
+     140,   142,   146,   150
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int8 yyrhs[] =
 {
-      27,     0,    -1,    -1,    28,    -1,     1,    -1,    28,     1,
-      -1,    29,    -1,    22,    -1,    23,    28,    24,    -1,    28,
-      17,    28,    -1,    28,    11,    28,    -1,    28,    10,    28,
-      -1,    28,    12,    28,    -1,    28,     9,    28,    -1,    28,
-      13,    28,    -1,    10,    28,    -1,     9,    28,    -1,    28,
-       6,    28,    -1,    28,     5,    28,    -1,    28,     6,     7,
-      28,    -1,    28,     5,     7,    28,    -1,    28,     7,     7,
-      28,    -1,    28,     8,     7,    28,    -1,    28,     5,     6,
-      28,    -1,    28,     6,     5,    28,    -1,    28,     3,     3,
-      28,    -1,    28,     4,     4,    28,    -1,     8,    28,    -1,
-      22,    23,    24,    -1,    22,    23,    30,    24,    -1,    18,
-      -1,    20,    -1,    19,    -1,    21,    -1,    29,    22,    -1,
-      28,    -1,    30,    25,    28,    -1
+      32,     0,    -1,    -1,    33,    -1,     1,    -1,    33,     1,
+      -1,    34,    -1,    23,    -1,    24,    33,    25,    -1,    33,
+      17,    33,    -1,    33,    11,    33,    -1,    33,    10,    33,
+      -1,    33,    12,    33,    -1,    33,     9,    33,    -1,    33,
+      13,    33,    -1,    10,    33,    -1,     9,    33,    -1,    33,
+       6,    33,    -1,    33,     5,    33,    -1,    33,     6,     7,
+      33,    -1,    33,     5,     7,    33,    -1,    33,     7,     7,
+      33,    -1,    33,     8,     7,    33,    -1,    33,     5,     6,
+      33,    -1,    33,     6,     5,    33,    -1,    33,     3,     3,
+      33,    -1,    33,     4,     4,    33,    -1,     8,    33,    -1,
+      23,    24,    25,    -1,    23,    24,    35,    25,    -1,    33,
+      18,    35,    26,    -1,    33,    18,    26,    -1,    27,    35,
+      28,    -1,    27,    36,    28,    -1,    27,    28,    -1,    19,
+      -1,    21,    -1,    20,    -1,    22,    -1,    34,    23,    -1,
+      33,    -1,    35,    29,    33,    -1,    35,    30,    35,    -1,
+      36,    30,    35,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   336,   336,   337,   338,   339,   342,   343,   369,   370,
-     371,   382,   393,   394,   395,   396,   397,   430,   431,   432,
-     433,   434,   435,   436,   437,   438,   449,   460,   461,   472,
-     530,   531,   532,   533,   534,   550,   551
+       0,   358,   358,   359,   360,   361,   364,   365,   391,   392,
+     393,   404,   415,   416,   417,   418,   419,   452,   453,   454,
+     455,   456,   457,   458,   459,   460,   471,   482,   483,   494,
+     550,   563,   574,   585,   596,   606,   613,   620,   627,   634,
+     650,   651,   654,   655
 };
 #endif
 
@@ -737,9 +763,10 @@ static const char *const yytname[] =
 {
   "\"end of string\"", "error", "$undefined", "'&'", "'|'", "'<'", "'>'",
   "'='", "'!'", "'-'", "'+'", "'*'", "'/'", "'%'", "UPLUS", "NEG", "NOT",
-  "'^'", "\"number\"", "\"integer\"", "\"number in e-notation form\"",
-  "\"number in rational notation\"", "\"element name\"", "'('", "')'",
-  "','", "$accept", "input", "node", "number", "nodelist", YY_NULL
+  "'^'", "'['", "\"number\"", "\"integer\"",
+  "\"number in e-notation form\"", "\"number in rational notation\"",
+  "\"element name\"", "'('", "')'", "']'", "'{'", "'}'", "','", "';'",
+  "$accept", "input", "node", "number", "nodelist", "nodesemicolonlist", YY_NULL
 };
 #endif
 
@@ -749,18 +776,20 @@ static const char *const yytname[] =
 static const yytype_uint16 yytoknum[] =
 {
        0,   256,   257,    38,   124,    60,    62,    61,    33,    45,
-      43,    42,    47,    37,   258,   259,   260,    94,   261,   262,
-     263,   264,   265,    40,    41,    44
+      43,    42,    47,    37,   258,   259,   260,    94,    91,   261,
+     262,   263,   264,   265,    40,    41,    93,   123,   125,    44,
+      59
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    26,    27,    27,    27,    27,    28,    28,    28,    28,
-      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
-      28,    28,    28,    28,    28,    28,    28,    28,    28,    28,
-      29,    29,    29,    29,    29,    30,    30
+       0,    31,    32,    32,    32,    32,    33,    33,    33,    33,
+      33,    33,    33,    33,    33,    33,    33,    33,    33,    33,
+      33,    33,    33,    33,    33,    33,    33,    33,    33,    33,
+      33,    33,    33,    33,    33,    34,    34,    34,    34,    34,
+      35,    35,    36,    36
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -769,7 +798,8 @@ static const yytype_uint8 yyr2[] =
        0,     2,     0,     1,     1,     2,     1,     1,     3,     3,
        3,     3,     3,     3,     3,     2,     2,     3,     3,     4,
        4,     4,     4,     4,     4,     4,     4,     2,     3,     4,
-       1,     1,     1,     1,     2,     1,     3
+       4,     3,     3,     3,     2,     1,     1,     1,     1,     2,
+       1,     3,     3,     3
 };
 
 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -777,39 +807,41 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     4,     0,     0,     0,    30,    32,    31,    33,     7,
-       0,     0,     0,     6,    27,    16,    15,     0,     0,     1,
-       5,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    34,    28,    35,     0,     8,     0,     0,
+       0,     4,     0,     0,     0,    35,    37,    36,    38,     7,
+       0,     0,     0,     0,     6,    27,    16,    15,     0,     0,
+      34,    40,     0,     0,     1,     5,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    39,
+      28,     0,     8,    32,     0,     0,    33,     0,     0,     0,
        0,     0,    18,     0,     0,    17,     0,     0,    13,    11,
-      10,    12,    14,     9,    29,     0,    25,    26,    23,    20,
-      24,    19,    21,    22,    36
+      10,    12,    14,     9,    31,     0,    29,    41,    42,    43,
+      25,    26,    23,    20,    24,    19,    21,    22,    30
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int8 yydefgoto[] =
 {
-      -1,    11,    12,    13,    36
+      -1,    12,    21,    14,    22,    23
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -16
+#define YYPACT_NINF -24
 static const yytype_int16 yypact[] =
 {
-      46,   -16,    40,    40,    40,   -16,   -16,   -16,   -16,    -7,
-      40,    17,   102,    -3,     3,     3,     3,   120,    67,   -16,
-     -16,    20,    27,   114,    78,    25,    26,    40,    40,    40,
-      40,    40,    40,   -16,   -16,   142,   -15,   -16,    40,    40,
-      40,    40,    -6,    40,    40,    -6,    40,    40,     1,     1,
-       3,     3,     3,     3,   -16,    40,   155,   155,    -6,    -6,
-      -6,    -6,    -6,    -6,   142
+      58,   -24,   178,   178,   178,   -24,   -24,   -24,   -24,   -23,
+     178,   117,    27,   203,    16,     7,     7,     7,   138,    83,
+     -24,   219,    13,   -15,   -24,   -24,    42,    26,    -1,    97,
+      39,    40,   178,   178,   178,   178,   178,   178,   158,   -24,
+     -24,   -13,   -24,   -24,   178,   178,   -24,   178,   178,   178,
+     178,   178,    52,   178,   178,    52,   178,   178,   236,   236,
+       7,     7,     7,     7,   -24,   -12,   -24,   219,    23,    23,
+     233,   233,    52,    52,    52,    52,    52,    52,   -24
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int8 yypgoto[] =
 {
-     -16,   -16,    -2,   -16,   -16
+     -24,   -24,     0,   -24,    -7,   -24
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -818,65 +850,82 @@ static const yytype_int8 yypgoto[] =
 #define YYTABLE_NINF -4
 static const yytype_int8 yytable[] =
 {
-      14,    15,    16,    27,    28,    29,    30,    31,    18,    54,
-      55,    32,    29,    30,    31,    35,    17,    19,    32,    33,
-      32,    42,    45,    38,     0,    48,    49,    50,    51,    52,
-      53,    39,    46,    47,     0,     0,    56,    57,    58,    59,
-       0,    60,    61,     0,    62,    63,    -2,     1,     2,     3,
-       4,     0,     0,    64,     2,     3,     4,     0,     5,     6,
-       7,     8,     9,    10,     5,     6,     7,     8,     9,    10,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,     0,     0,    43,    32,    44,     2,     3,     4,     0,
-       0,    37,     0,     0,     0,     0,     5,     6,     7,     8,
-       9,    10,    -3,    20,     0,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,     0,     0,     0,    32,
-      40,    41,     2,     3,     4,     0,     0,     0,     2,     3,
-       4,     0,     5,     6,     7,     8,     9,    10,     5,     6,
-       7,     8,     9,    10,    34,    21,    22,    23,    24,    25,
-      26,    27,    28,    29,    30,    31,     0,     0,     0,    32,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,     0,
-       0,     0,    32
+      13,    18,    15,    16,    17,    50,    51,     2,     3,     4,
+      19,    41,    66,    46,    78,    47,    44,    44,     5,     6,
+       7,     8,     9,    10,    37,    38,    11,    24,    52,    55,
+      49,    65,    58,    59,    60,    61,    62,    63,    68,    39,
+      69,    43,    44,    45,    67,    48,    56,    57,    70,    71,
+      72,    73,    44,    74,    75,     0,    76,    77,    -2,     1,
+       0,    32,    33,    34,    35,    36,     2,     3,     4,    37,
+      38,     0,     0,     0,     0,     0,     0,     5,     6,     7,
+       8,     9,    10,     0,     0,    11,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,     0,     0,     0,
+      37,    38,    53,     0,    54,     2,     3,     4,    42,     0,
+       0,     0,     0,     0,     0,     0,     5,     6,     7,     8,
+       9,    10,     0,     0,    11,     2,     3,     4,     0,     0,
+       0,     0,     0,     0,     0,     0,     5,     6,     7,     8,
+       9,    10,     0,     0,    11,    20,     2,     3,     4,     0,
+       0,     0,     0,     0,     0,     0,     0,     5,     6,     7,
+       8,     9,    10,    40,     0,    11,     2,     3,     4,     0,
+       0,     0,     0,     0,     0,     0,     0,     5,     6,     7,
+       8,     9,    10,     0,    64,    11,     2,     3,     4,     0,
+       0,     0,     0,     0,     0,     0,     0,     5,     6,     7,
+       8,     9,    10,    -3,    25,    11,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,     0,     0,     0,
+      37,    38,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    35,    36,     0,     0,     0,    37,    38,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    34,    35,    36,
+      37,    38,     0,    37,    38
 };
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-16)))
+  (!!((Yystate) == (-24)))
 
 #define yytable_value_is_error(Yytable_value) \
   YYID (0)
 
 static const yytype_int8 yycheck[] =
 {
-       2,     3,     4,     9,    10,    11,    12,    13,    10,    24,
-      25,    17,    11,    12,    13,    17,    23,     0,    17,    22,
-      17,    23,    24,     3,    -1,    27,    28,    29,    30,    31,
-      32,     4,     7,     7,    -1,    -1,    38,    39,    40,    41,
-      -1,    43,    44,    -1,    46,    47,     0,     1,     8,     9,
-      10,    -1,    -1,    55,     8,     9,    10,    -1,    18,    19,
-      20,    21,    22,    23,    18,    19,    20,    21,    22,    23,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    -1,    -1,     5,    17,     7,     8,     9,    10,    -1,
-      -1,    24,    -1,    -1,    -1,    -1,    18,    19,    20,    21,
-      22,    23,     0,     1,    -1,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    -1,    -1,    -1,    17,
-       6,     7,     8,     9,    10,    -1,    -1,    -1,     8,     9,
-      10,    -1,    18,    19,    20,    21,    22,    23,    18,    19,
-      20,    21,    22,    23,    24,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,    -1,    -1,    -1,    17,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    -1,
-      -1,    -1,    17
+       0,    24,     2,     3,     4,     6,     7,     8,     9,    10,
+      10,    18,    25,    28,    26,    30,    29,    29,    19,    20,
+      21,    22,    23,    24,    17,    18,    27,     0,    28,    29,
+       4,    38,    32,    33,    34,    35,    36,    37,    45,    23,
+      47,    28,    29,    30,    44,     3,     7,     7,    48,    49,
+      50,    51,    29,    53,    54,    -1,    56,    57,     0,     1,
+      -1,     9,    10,    11,    12,    13,     8,     9,    10,    17,
+      18,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,
+      22,    23,    24,    -1,    -1,    27,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
+      17,    18,     5,    -1,     7,     8,     9,    10,    25,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,    22,
+      23,    24,    -1,    -1,    27,     8,     9,    10,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,    22,
+      23,    24,    -1,    -1,    27,    28,     8,     9,    10,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,
+      22,    23,    24,    25,    -1,    27,     8,     9,    10,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,
+      22,    23,    24,    -1,    26,    27,     8,     9,    10,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,
+      22,    23,    24,     0,     1,    27,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    -1,    -1,    -1,
+      17,    18,     3,     4,     5,     6,     7,     8,     9,    10,
+      11,    12,    13,    -1,    -1,    -1,    17,    18,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    11,    12,    13,
+      17,    18,    -1,    17,    18
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,     1,     8,     9,    10,    18,    19,    20,    21,    22,
-      23,    27,    28,    29,    28,    28,    28,    23,    28,     0,
-       1,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,    17,    22,    24,    28,    30,    24,     3,     4,
-       6,     7,    28,     5,     7,    28,     7,     7,    28,    28,
-      28,    28,    28,    28,    24,    25,    28,    28,    28,    28,
-      28,    28,    28,    28,    28
+       0,     1,     8,     9,    10,    19,    20,    21,    22,    23,
+      24,    27,    32,    33,    34,    33,    33,    33,    24,    33,
+      28,    33,    35,    36,     0,     1,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    17,    18,    23,
+      25,    35,    25,    28,    29,    30,    28,    30,     3,     4,
+       6,     7,    33,     5,     7,    33,     7,     7,    33,    33,
+      33,    33,    33,    33,    26,    35,    25,    33,    35,    35,
+      33,    33,    33,    33,    33,    33,    33,    33,    26
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -1669,31 +1718,31 @@ yyreduce:
     {
         case 3:
 /* Line 1787 of yacc.c  */
-#line 337 "L3Parser.ypp"
+#line 359 "L3Parser.ypp"
     {l3p->outputNode = (yyvsp[(1) - (1)].astnode);}
     break;
 
   case 4:
 /* Line 1787 of yacc.c  */
-#line 338 "L3Parser.ypp"
+#line 360 "L3Parser.ypp"
     {}
     break;
 
   case 5:
 /* Line 1787 of yacc.c  */
-#line 339 "L3Parser.ypp"
+#line 361 "L3Parser.ypp"
     {delete (yyvsp[(1) - (2)].astnode);}
     break;
 
   case 6:
 /* Line 1787 of yacc.c  */
-#line 342 "L3Parser.ypp"
+#line 364 "L3Parser.ypp"
     {(yyval.astnode) = (yyvsp[(1) - (1)].astnode);}
     break;
 
   case 7:
 /* Line 1787 of yacc.c  */
-#line 343 "L3Parser.ypp"
+#line 365 "L3Parser.ypp"
     {
                    (yyval.astnode) = new ASTNode();
                    string name(*(yyvsp[(1) - (1)].word));
@@ -1724,19 +1773,19 @@ yyreduce:
 
   case 8:
 /* Line 1787 of yacc.c  */
-#line 369 "L3Parser.ypp"
+#line 391 "L3Parser.ypp"
     {(yyval.astnode) = (yyvsp[(2) - (3)].astnode);}
     break;
 
   case 9:
 /* Line 1787 of yacc.c  */
-#line 370 "L3Parser.ypp"
+#line 392 "L3Parser.ypp"
     {(yyval.astnode) = new ASTNode(AST_POWER); (yyval.astnode)->addChild((yyvsp[(1) - (3)].astnode)); (yyval.astnode)->addChild((yyvsp[(3) - (3)].astnode));}
     break;
 
   case 10:
 /* Line 1787 of yacc.c  */
-#line 371 "L3Parser.ypp"
+#line 393 "L3Parser.ypp"
     {
                   if ((yyvsp[(1) - (3)].astnode)->getType()==AST_TIMES) {
                     (yyval.astnode) = (yyvsp[(1) - (3)].astnode);
@@ -1752,7 +1801,7 @@ yyreduce:
 
   case 11:
 /* Line 1787 of yacc.c  */
-#line 382 "L3Parser.ypp"
+#line 404 "L3Parser.ypp"
     {
                   if ((yyvsp[(1) - (3)].astnode)->getType()==AST_PLUS) {
                     (yyval.astnode) = (yyvsp[(1) - (3)].astnode);
@@ -1768,31 +1817,31 @@ yyreduce:
 
   case 12:
 /* Line 1787 of yacc.c  */
-#line 393 "L3Parser.ypp"
+#line 415 "L3Parser.ypp"
     {(yyval.astnode) = new ASTNode(AST_DIVIDE); (yyval.astnode)->addChild((yyvsp[(1) - (3)].astnode)); (yyval.astnode)->addChild((yyvsp[(3) - (3)].astnode));}
     break;
 
   case 13:
 /* Line 1787 of yacc.c  */
-#line 394 "L3Parser.ypp"
+#line 416 "L3Parser.ypp"
     {(yyval.astnode) = new ASTNode(AST_MINUS); (yyval.astnode)->addChild((yyvsp[(1) - (3)].astnode)); (yyval.astnode)->addChild((yyvsp[(3) - (3)].astnode));}
     break;
 
   case 14:
 /* Line 1787 of yacc.c  */
-#line 395 "L3Parser.ypp"
+#line 417 "L3Parser.ypp"
     {(yyval.astnode) = l3p->createModuloTree((yyvsp[(1) - (3)].astnode), (yyvsp[(3) - (3)].astnode));}
     break;
 
   case 15:
 /* Line 1787 of yacc.c  */
-#line 396 "L3Parser.ypp"
+#line 418 "L3Parser.ypp"
     {(yyval.astnode) = (yyvsp[(2) - (2)].astnode);}
     break;
 
   case 16:
 /* Line 1787 of yacc.c  */
-#line 397 "L3Parser.ypp"
+#line 419 "L3Parser.ypp"
     {
                   if (l3p->collapseminus) {
                     if ((yyvsp[(2) - (2)].astnode)->getType()==AST_REAL) {
@@ -1830,55 +1879,55 @@ yyreduce:
 
   case 17:
 /* Line 1787 of yacc.c  */
-#line 430 "L3Parser.ypp"
+#line 452 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (3)].astnode), (yyvsp[(3) - (3)].astnode), AST_RELATIONAL_GT);}
     break;
 
   case 18:
 /* Line 1787 of yacc.c  */
-#line 431 "L3Parser.ypp"
+#line 453 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (3)].astnode), (yyvsp[(3) - (3)].astnode), AST_RELATIONAL_LT);}
     break;
 
   case 19:
 /* Line 1787 of yacc.c  */
-#line 432 "L3Parser.ypp"
+#line 454 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (4)].astnode), (yyvsp[(4) - (4)].astnode), AST_RELATIONAL_GEQ);}
     break;
 
   case 20:
 /* Line 1787 of yacc.c  */
-#line 433 "L3Parser.ypp"
+#line 455 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (4)].astnode), (yyvsp[(4) - (4)].astnode), AST_RELATIONAL_LEQ);}
     break;
 
   case 21:
 /* Line 1787 of yacc.c  */
-#line 434 "L3Parser.ypp"
+#line 456 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (4)].astnode), (yyvsp[(4) - (4)].astnode), AST_RELATIONAL_EQ);}
     break;
 
   case 22:
 /* Line 1787 of yacc.c  */
-#line 435 "L3Parser.ypp"
+#line 457 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (4)].astnode), (yyvsp[(4) - (4)].astnode), AST_RELATIONAL_NEQ);}
     break;
 
   case 23:
 /* Line 1787 of yacc.c  */
-#line 436 "L3Parser.ypp"
+#line 458 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (4)].astnode), (yyvsp[(4) - (4)].astnode), AST_RELATIONAL_NEQ);}
     break;
 
   case 24:
 /* Line 1787 of yacc.c  */
-#line 437 "L3Parser.ypp"
+#line 459 "L3Parser.ypp"
     {(yyval.astnode) = l3p->combineRelationalElements((yyvsp[(1) - (4)].astnode), (yyvsp[(4) - (4)].astnode), AST_RELATIONAL_NEQ);}
     break;
 
   case 25:
 /* Line 1787 of yacc.c  */
-#line 438 "L3Parser.ypp"
+#line 460 "L3Parser.ypp"
     {
                   if ((yyvsp[(1) - (4)].astnode)->getType()==AST_LOGICAL_AND) {
                     (yyval.astnode) = (yyvsp[(1) - (4)].astnode);
@@ -1894,7 +1943,7 @@ yyreduce:
 
   case 26:
 /* Line 1787 of yacc.c  */
-#line 449 "L3Parser.ypp"
+#line 471 "L3Parser.ypp"
     {
                   if ((yyvsp[(1) - (4)].astnode)->getType()==AST_LOGICAL_OR) {
                     (yyval.astnode) = (yyvsp[(1) - (4)].astnode);
@@ -1910,13 +1959,13 @@ yyreduce:
 
   case 27:
 /* Line 1787 of yacc.c  */
-#line 460 "L3Parser.ypp"
+#line 482 "L3Parser.ypp"
     {(yyval.astnode) = new ASTNode(AST_LOGICAL_NOT); (yyval.astnode)->addChild((yyvsp[(2) - (2)].astnode));}
     break;
 
   case 28:
 /* Line 1787 of yacc.c  */
-#line 461 "L3Parser.ypp"
+#line 483 "L3Parser.ypp"
     {
                    (yyval.astnode) = new ASTNode(AST_FUNCTION);
                    string name(*(yyvsp[(1) - (3)].word));
@@ -1932,7 +1981,7 @@ yyreduce:
 
   case 29:
 /* Line 1787 of yacc.c  */
-#line 472 "L3Parser.ypp"
+#line 494 "L3Parser.ypp"
     {
                    (yyval.astnode) = (yyvsp[(3) - (4)].astnode);
                    string name(*(yyvsp[(1) - (4)].word));
@@ -1993,31 +2042,134 @@ yyreduce:
 
   case 30:
 /* Line 1787 of yacc.c  */
-#line 530 "L3Parser.ypp"
-    {(yyval.astnode) = new ASTNode(); (yyval.astnode)->setValue((yyvsp[(1) - (1)].numdouble));}
+#line 550 "L3Parser.ypp"
+    {
+                  vector<ASTNode*> allnodes;
+                  allnodes.push_back((yyvsp[(1) - (4)].astnode));
+                  allnodes.push_back((yyvsp[(3) - (4)].astnode));
+                  (yyval.astnode) = l3p->parsePackageInfix(INFIX_SYNTAX_NAMED_SQUARE_BRACKETS, &allnodes);
+                  if ((yyval.astnode) == NULL) {
+                    l3p->setError("No package is enabled that can interpret vectors, so formulas of the form 'x[y]' are disallowed.");
+                    delete((yyvsp[(1) - (4)].astnode));
+                    delete((yyvsp[(3) - (4)].astnode));
+                    YYERROR;
+                  }
+                  if (l3p->checkNumArgumentsForPackage((yyval.astnode))) YYABORT;
+                }
     break;
 
   case 31:
 /* Line 1787 of yacc.c  */
-#line 531 "L3Parser.ypp"
-    {(yyval.astnode) = new ASTNode(); (yyval.astnode)->setValue((yyvsp[(1) - (1)].mantissa), l3p->exponent);}
+#line 563 "L3Parser.ypp"
+    {
+                  vector<ASTNode*> allnodes;
+                  allnodes.push_back((yyvsp[(1) - (3)].astnode));
+                  (yyval.astnode) = l3p->parsePackageInfix(INFIX_SYNTAX_NAMED_SQUARE_BRACKETS, &allnodes);
+                  if ((yyval.astnode) == NULL) {
+                    l3p->setError("No package is enabled that can interpret vectors, so formulas of the form 'x[]' are disallowed.");
+                    delete ((yyvsp[(1) - (3)].astnode));
+                    YYERROR;
+                  }
+                  if (l3p->checkNumArgumentsForPackage((yyval.astnode))) YYABORT;
+                }
     break;
 
   case 32:
 /* Line 1787 of yacc.c  */
-#line 532 "L3Parser.ypp"
-    {(yyval.astnode) = new ASTNode(); (yyval.astnode)->setValue((yyvsp[(1) - (1)].numlong));}
+#line 574 "L3Parser.ypp"
+    {
+                  vector<ASTNode*> allnodes;
+                  allnodes.push_back((yyvsp[(2) - (3)].astnode));
+                  (yyval.astnode) = l3p->parsePackageInfix(INFIX_SYNTAX_CURLY_BRACES, &allnodes);
+                  if ((yyval.astnode) == NULL) {
+                    l3p->setError("No package is enabled that can interpret curly braces, so formulas of the form '{x, y}' are disallowed.");
+                    delete((yyvsp[(2) - (3)].astnode));
+                    YYERROR;
+                  }
+                  if (l3p->checkNumArgumentsForPackage((yyval.astnode))) YYABORT;
+                }
     break;
 
   case 33:
 /* Line 1787 of yacc.c  */
-#line 533 "L3Parser.ypp"
-    {(yyval.astnode) = new ASTNode(); (yyval.astnode)->setValue((yyvsp[(1) - (1)].rational), l3p->denominator);}
+#line 585 "L3Parser.ypp"
+    {
+                  vector<ASTNode*> allnodes;
+                  allnodes.push_back((yyvsp[(2) - (3)].astnode));
+                  (yyval.astnode) = l3p->parsePackageInfix(INFIX_SYNTAX_CURLY_BRACES_SEMICOLON, &allnodes);
+                  if ((yyval.astnode) == NULL) {
+                    l3p->setError("No package is enabled that can interpret curly braces with semicolon-delimited lists, so formulas of the form '{x, y; p, q}' are disallowed.");
+                    delete((yyvsp[(2) - (3)].astnode));
+                    YYERROR;
+                  }
+                  if (l3p->checkNumArgumentsForPackage((yyval.astnode))) YYABORT;
+                }
     break;
 
   case 34:
 /* Line 1787 of yacc.c  */
-#line 534 "L3Parser.ypp"
+#line 596 "L3Parser.ypp"
+    {
+                  (yyval.astnode) = l3p->parsePackageInfix(INFIX_SYNTAX_CURLY_BRACES);
+                  if ((yyval.astnode) == NULL) {
+                    l3p->setError("No package is enabled that can interpret empty curly braces, so formulas of the form '{}' are disallowed.");
+                    YYERROR;
+                  }
+                  if (l3p->checkNumArgumentsForPackage((yyval.astnode))) YYABORT;
+                }
+    break;
+
+  case 35:
+/* Line 1787 of yacc.c  */
+#line 606 "L3Parser.ypp"
+    {
+                  (yyval.astnode) = new ASTNode(); 
+                  (yyval.astnode)->setValue((yyvsp[(1) - (1)].numdouble)); 
+//                  if(l3p->useDimensionless) {
+//                    $$->setUnits("dimensionless");
+//                  }
+                }
+    break;
+
+  case 36:
+/* Line 1787 of yacc.c  */
+#line 613 "L3Parser.ypp"
+    {
+                  (yyval.astnode) = new ASTNode();
+                  (yyval.astnode)->setValue((yyvsp[(1) - (1)].mantissa), l3p->exponent); 
+//                  if(l3p->useDimensionless) {
+//                    $$->setUnits("dimensionless");
+//                  }
+                }
+    break;
+
+  case 37:
+/* Line 1787 of yacc.c  */
+#line 620 "L3Parser.ypp"
+    {
+                  (yyval.astnode) = new ASTNode(); 
+                  (yyval.astnode)->setValue((yyvsp[(1) - (1)].numlong)); 
+//                  if(l3p->useDimensionless) {
+//                    $$->setUnits("dimensionless");
+//                  }
+                }
+    break;
+
+  case 38:
+/* Line 1787 of yacc.c  */
+#line 627 "L3Parser.ypp"
+    {
+                  (yyval.astnode) = new ASTNode(); 
+                  (yyval.astnode)->setValue((yyvsp[(1) - (1)].rational), l3p->denominator);
+//                  if(l3p->useDimensionless) {
+//                    $$->setUnits("dimensionless");
+//                  }
+                }
+    break;
+
+  case 39:
+/* Line 1787 of yacc.c  */
+#line 634 "L3Parser.ypp"
     {
                   (yyval.astnode) = (yyvsp[(1) - (2)].astnode);
                   if ((yyval.astnode)->getUnits() != "") {
@@ -2034,21 +2186,33 @@ yyreduce:
                }
     break;
 
-  case 35:
+  case 40:
 /* Line 1787 of yacc.c  */
-#line 550 "L3Parser.ypp"
+#line 650 "L3Parser.ypp"
     {(yyval.astnode) = new ASTNode(AST_FUNCTION); (yyval.astnode)->addChild((yyvsp[(1) - (1)].astnode));}
     break;
 
-  case 36:
+  case 41:
+/* Line 1787 of yacc.c  */
+#line 651 "L3Parser.ypp"
+    {(yyval.astnode) = (yyvsp[(1) - (3)].astnode);  (yyval.astnode)->addChild((yyvsp[(3) - (3)].astnode));}
+    break;
+
+  case 42:
+/* Line 1787 of yacc.c  */
+#line 654 "L3Parser.ypp"
+    {(yyval.astnode) = new ASTNode(AST_FUNCTION); (yyval.astnode)->addChild((yyvsp[(1) - (3)].astnode)); (yyval.astnode)->addChild((yyvsp[(3) - (3)].astnode));}
+    break;
+
+  case 43:
 /* Line 1787 of yacc.c  */
-#line 551 "L3Parser.ypp"
+#line 655 "L3Parser.ypp"
     {(yyval.astnode) = (yyvsp[(1) - (3)].astnode);  (yyval.astnode)->addChild((yyvsp[(3) - (3)].astnode));}
     break;
 
 
 /* Line 1787 of yacc.c  */
-#line 2052 "L3Parser.cpp"
+#line 2216 "L3Parser.cpp"
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -2280,7 +2444,7 @@ yyreturn:
 
 
 /* Line 2050 of yacc.c  */
-#line 554 "L3Parser.ypp"
+#line 658 "L3Parser.ypp"
 
 
 
@@ -2520,6 +2684,8 @@ ASTNodeType_t L3Parser::getFunctionFor(string name) const
   if (l3StrCmp(name, "arcsech"))  return AST_FUNCTION_ARCSECH;
   if (l3StrCmp(name, "asin"))     return AST_FUNCTION_ARCSIN;
   if (l3StrCmp(name, "arcsin"))   return AST_FUNCTION_ARCSIN;
+  if (l3StrCmp(name, "asinh"))    return AST_FUNCTION_ARCSINH;
+  if (l3StrCmp(name, "arcsinh"))  return AST_FUNCTION_ARCSINH;
   if (l3StrCmp(name, "atan"))     return AST_FUNCTION_ARCTAN;
   if (l3StrCmp(name, "arctan"))   return AST_FUNCTION_ARCTAN;
   if (l3StrCmp(name, "atanh"))    return AST_FUNCTION_ARCTANH;
@@ -2847,6 +3013,17 @@ bool L3Parser::checkNumArguments(const ASTNode* function)
   }
 }
 
+bool L3Parser::checkNumArgumentsForPackage(const ASTNode* function)
+{
+  stringstream error;
+  bool ret = currentSettings->checkNumArgumentsForPackage(function, error);
+  if (ret) {
+    l3p->setError(error.str());
+    delete function;
+  }
+  return ret;
+}
+
 ASTNode* L3Parser::combineRelationalElements(ASTNode* left, ASTNode* right, ASTNodeType_t type)
 {
   //If 'left' is the same as 'type', add 'right' as a new argument.  (cf x < y < z -> lt(x, y, z))
@@ -2906,6 +3083,14 @@ ASTNode* L3Parser::combineRelationalElements(ASTNode* left, ASTNode* right, ASTN
 }
 
 
+ASTNode* L3Parser::parsePackageInfix(L3ParserGrammarLineType_t type, 
+    vector<ASTNode*> *nodeList, vector<std::string*> *stringList,
+    vector<double> *doubleList) const
+{
+  if (currentSettings == NULL) return NULL;
+  return currentSettings->parsePackageInfix(type, nodeList, stringList, doubleList);
+}
+
 L3ParserSettings L3Parser::getDefaultL3ParserSettings()
 {
   return defaultL3ParserSettings;
@@ -2970,6 +3155,7 @@ SBML_parseL3FormulaWithSettings (const char *formula, const L3ParserSettings_t *
   l3p->collapseminus = settings->getParseCollapseMinus();
   l3p->parseunits = settings->getParseUnits();
   l3p->avocsymbol = settings->getParseAvogadroCsymbol();
+  l3p->currentSettings = settings;
   l3p->strCmpIsCaseSensitive = settings->getComparisonCaseSensitivity();
   sbml_yyparse();
   return l3p->outputNode;
diff --git a/src/sbml/math-legacy/L3Parser.h b/src/sbml/math-legacy/L3Parser.h
index d5b0943..56ac20a 100644
--- a/src/sbml/math-legacy/L3Parser.h
+++ b/src/sbml/math-legacy/L3Parser.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -178,10 +178,10 @@ SBML_getDefaultL3ParserSettings ();
  * Returns the last error reported by the "L3" mathematical formula parser.
  *
  * If the functions @sbmlfunction{parseL3Formula, String},
- * @sbmlfunction{parseL3FormulaWithSettings, String\, L3ParserSettings}, or
- * @sbmlfunction{parseL3FormulaWithModel, String\, Model} return @c NULL, an
- * error is set internally.  This function allows callers to retrieve
- * information about the error.
+ * @sbmlfunction{parseL3FormulaWithSettings, String\,
+ * L3ParserSettings}, or @sbmlfunction{parseL3FormulaWithModel,
+ * String\, Model} return @c NULL, an error is set internally.
+ * This function allows callers to retrieve information about the error.
  *
  * @return a string describing the error that occurred.  This will contain
  * the input string the parser was trying to parse, the character it had
@@ -190,7 +190,7 @@ SBML_getDefaultL3ParserSettings ();
  * @see @sbmlfunction{parseL3Formula, String}
  * @see @sbmlfunction{parseL3FormulaWithSettings, String\, L3ParserSettings}
  * @see @sbmlfunction{parseL3FormulaWithModel, String\, Model}
- * @see s at sbmlfunction{getDefaultL3ParserSettings,}
+ * @see @sbmlfunction{getDefaultL3ParserSettings,}
  *
  * @if conly
  * @memberof ASTNode_t
diff --git a/src/sbml/math-legacy/L3ParserSettings.cpp b/src/sbml/math-legacy/L3ParserSettings.cpp
index d0bfa42..30ffc92 100644
--- a/src/sbml/math-legacy/L3ParserSettings.cpp
+++ b/src/sbml/math-legacy/L3ParserSettings.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/L3ParserSettings.h b/src/sbml/math-legacy/L3ParserSettings.h
index e068068..a7f56ee 100644
--- a/src/sbml/math-legacy/L3ParserSettings.h
+++ b/src/sbml/math-legacy/L3ParserSettings.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/Makefile.in b/src/sbml/math-legacy/Makefile.in
index 4e9f817..b947039 100644
--- a/src/sbml/math-legacy/Makefile.in
+++ b/src/sbml/math-legacy/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/MathML.cpp b/src/sbml/math-legacy/MathML.cpp
index 09d54c1..ac1a3b7 100644
--- a/src/sbml/math-legacy/MathML.cpp
+++ b/src/sbml/math-legacy/MathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -934,6 +934,32 @@ readMathML (ASTNode& node, XMLInputStream& stream, std::string reqd_prefix,
         node.addChild(child, true);
       }
 
+      // Jason Zwolak reports that we do not correctly catch a piece with only
+      // one argument; which will be difficult in legacy math as it throws 
+      // the information away when reading ie here
+      // so we have to look here 
+      if (nextName == "piece")
+      {
+        // we should have added two children to the piecewise node
+        if (node.getNumChildren() % 2 != 0)
+        {
+          logError(stream, elem, OpsNeedCorrectNumberOfArgs, 
+            "The <piece> element should have two child elements.");
+        }
+      }
+      // does not get caught here - have to be even trickier as we 
+      // only ever read one child for the otherwise and throw
+      // everything else away
+      // catch at end of function
+      else if (nextName == "otherwise")
+      {
+        // we should have added one child to the piecewise node
+        if (node.getNumChildren() % 2 != 1)
+        {
+          logError(stream, elem, OpsNeedCorrectNumberOfArgs, 
+            "The <otherwise> element should have one child element.");
+        }
+      }
       if (nextName == "piece" && stream.isGood()) 
         stream.next();
     }
@@ -985,6 +1011,23 @@ readMathML (ASTNode& node, XMLInputStream& stream, std::string reqd_prefix,
 
   checkFunctionArgs(node);
 
+  // Jason Zwolak reports that we do not correctly catch a piece with only
+  // one argument; which will be difficult in legacy math as it throws 
+  // the information away when reading
+  // and here is where we can catch an otherwise with too many children
+  if (name == "otherwise")
+  {
+    while (stream.peek().isText())
+    {
+      stream.next();
+    }
+    if (!stream.peek().isEndFor(elem))
+    {
+      logError(stream, elem, OpsNeedCorrectNumberOfArgs, 
+       "The <otherwise> element should have one child element.");
+    }
+  }
+
   stream.skipPastEnd(elem);
 }
 /** @endcond */
@@ -1795,10 +1838,19 @@ readMathMLFromString (const char *xml)
   {
     safe_free((void *)(xmlstr_c));
   }
+
+  // we only used to log really invalid math errors
+  // but now we might log errors about number of 
+  // children of piece and otherwise (since this the read
+  // is the only place
+  // but dont need to bail for these
   if (log.getNumErrors() > 0)
   {
-    delete ast;
-    return NULL;
+    if (!log.contains(10218))
+    {
+      delete ast;
+      return NULL;
+    }
   }
 
   return ast;
diff --git a/src/sbml/math-legacy/MathML.h b/src/sbml/math-legacy/MathML.h
index aac0da5..5623412 100644
--- a/src/sbml/math-legacy/MathML.h
+++ b/src/sbml/math-legacy/MathML.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/CMakeLists.txt b/src/sbml/math-legacy/test/CMakeLists.txt
index 90414a9..4e24daa 100644
--- a/src/sbml/math-legacy/test/CMakeLists.txt
+++ b/src/sbml/math-legacy/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/Makefile.in b/src/sbml/math-legacy/test/Makefile.in
index 9e93217..c24120b 100644
--- a/src/sbml/math-legacy/test/Makefile.in
+++ b/src/sbml/math-legacy/test/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestASTNode.c b/src/sbml/math-legacy/test/TestASTNode.c
index 17958d8..444d1f5 100644
--- a/src/sbml/math-legacy/test/TestASTNode.c
+++ b/src/sbml/math-legacy/test/TestASTNode.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1077,6 +1077,32 @@ START_TEST (test_ASTNode_deepCopy_4)
 END_TEST
 
 
+START_TEST (test_ASTNode_deepCopy_5)
+{
+  ASTNode_t *node = SBML_parseFormula("a + b");
+  ASTNode_t *copy;
+
+	const char* xmlstr = "<annotation encoding=\"infix\">\n"
+	"test\n"
+	"</annotation>";
+  XMLNode_t *ann = XMLNode_convertStringToXMLNode(xmlstr, NULL);
+  ASTNode_addSemanticsAnnotation(node, ann);
+
+  fail_unless( ASTNode_getNumSemanticsAnnotations(node) == 1 );
+
+  /** deepCopy() **/
+  copy = ASTNode_deepCopy(node);
+
+  fail_unless( copy != node );
+  fail_unless( ASTNode_getNumSemanticsAnnotations(copy) == 1 );
+
+
+  ASTNode_free(node);
+  ASTNode_free(copy);
+}
+END_TEST
+
+
 START_TEST (test_ASTNode_getName)
 {
   ASTNode_t *n = ASTNode_create();
@@ -5125,10 +5151,12 @@ START_TEST (test_ASTNode_reduceToBinary)
   ASTNode_setInteger(c1, 2);
   ASTNode_t *c2 = ASTNode_create();
   ASTNode_setInteger(c2, 2);
+  ASTNode_t *c3 = ASTNode_create();
+  ASTNode_setInteger(c3, 2);
 
   ASTNode_addChild(n, c1);
   ASTNode_addChild(n, c2);
-  ASTNode_addChild(n, c2->deepCopy());
+  ASTNode_addChild(n, c3);
 
   fail_unless( ASTNode_getNumChildren(n) == 3);
 
@@ -5197,6 +5225,7 @@ create_suite_ASTNode (void)
   tcase_add_test( tcase, test_ASTNode_deepCopy_2              );
   tcase_add_test( tcase, test_ASTNode_deepCopy_3              );
   tcase_add_test( tcase, test_ASTNode_deepCopy_4              );
+  tcase_add_test( tcase, test_ASTNode_deepCopy_5              );
   tcase_add_test( tcase, test_ASTNode_getName                 );
   tcase_add_test( tcase, test_ASTNode_getReal                 );
   tcase_add_test( tcase, test_ASTNode_getPrecedence           );
diff --git a/src/sbml/math-legacy/test/TestChildFunctions.cpp b/src/sbml/math-legacy/test/TestChildFunctions.cpp
index c9ceac5..56e1ed7 100644
--- a/src/sbml/math-legacy/test/TestChildFunctions.cpp
+++ b/src/sbml/math-legacy/test/TestChildFunctions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestFormulaFormatter.c b/src/sbml/math-legacy/test/TestFormulaFormatter.c
index 46cbb84..344c2cc 100644
--- a/src/sbml/math-legacy/test/TestFormulaFormatter.c
+++ b/src/sbml/math-legacy/test/TestFormulaFormatter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestFormulaParser.c b/src/sbml/math-legacy/test/TestFormulaParser.c
index 2b8ea7a..c059a37 100644
--- a/src/sbml/math-legacy/test/TestFormulaParser.c
+++ b/src/sbml/math-legacy/test/TestFormulaParser.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestFormulaTokenizer.c b/src/sbml/math-legacy/test/TestFormulaTokenizer.c
index afb58b2..e37935a 100644
--- a/src/sbml/math-legacy/test/TestFormulaTokenizer.c
+++ b/src/sbml/math-legacy/test/TestFormulaTokenizer.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestGetValue.cpp b/src/sbml/math-legacy/test/TestGetValue.cpp
index b73a334..93be7d1 100644
--- a/src/sbml/math-legacy/test/TestGetValue.cpp
+++ b/src/sbml/math-legacy/test/TestGetValue.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestL3FormulaFormatter.c b/src/sbml/math-legacy/test/TestL3FormulaFormatter.c
index b8446e6..e20f861 100644
--- a/src/sbml/math-legacy/test/TestL3FormulaFormatter.c
+++ b/src/sbml/math-legacy/test/TestL3FormulaFormatter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -33,8 +33,11 @@
 #include <sbml/common/common.h>
 
 #include <sbml/math/L3FormulaFormatter.h>
+#include <sbml/math/FormulaParser.h>
 #include <sbml/math/L3Parser.h>
 #include <sbml/math/L3ParserSettings.h>
+#include <sbml/xml/XMLNode.h>
+
 //extern int isTranslatedModulo (const ASTNode_t* node);
 //extern int getL3Precedence(const ASTNode_t* node);
 
@@ -174,11 +177,14 @@ START_TEST (test_L3FormulaFormatter_isGrouped)
    *
    * In this case, explicit grouping is not needed due to associativity
    * rules.
+   *
+   * Note: changed in 2016 as a review of infix roundtripping
    */
   p = SBML_parseL3Formula("(a / b) * c");
 
   c = ASTNode_getLeftChild(p);
-  fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 0, NULL );
+  //fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 0, NULL );
+  fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 1, NULL );
 
   c = ASTNode_getRightChild(p);
   fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 0, NULL );
@@ -337,20 +343,26 @@ START_TEST (test_SBML_formulaToL3String)
     "foo(1)",
     "foo(1, bar)",
     "foo(1, bar, 2^-3)",
-    "a / b * c",
+    "(a / b) * c",
     "a / (b * c)",
     "1 + 2 + 3",
+    "a * (b * c)",
+    "a + (b + c)",
+    "a * b * c",
+    "a + b + c",
     "x % y",
     "(1 + x) % (3 / y)",
-    "x^2 % -y",
-    "x && y == z",
+    "(x^2) % -y",
+    "x && (y == z)",
     "(x && y) == z",
-    "a && b || c",
+    "(a && b) || c",
     "a && (b || c)",
+    "a && b && c",
+    "a || b || c",
     "-x^y",
     "(-x)^y",
     "x^-y",
-    "!x^2",
+    "!(x^2)",
     "(!x)^2",
     "x^!2",
     "1 ml",
@@ -363,9 +375,7 @@ START_TEST (test_SBML_formulaToL3String)
     "true",
     "false",
     "(x > y) + (p == q)",
-    "gt(x, y, z) + eq(p, d, q)",
-    "gt(x) + eq(p)",
-    "gt() + eq()",
+    "(x > y > z) + (p == d == q)",
     "(x || y) > (p && q)",
     "or(x) > and(p)",
     "or() > and()",
@@ -381,7 +391,7 @@ START_TEST (test_SBML_formulaToL3String)
   int        i;
 
 
-  for (i = 0; i < *formulae[i]; i++)
+  for (i = 0; i < 56; i++)
   {
     n = SBML_parseL3Formula( formulae[i] );
     s = SBML_formulaToL3String(n);
@@ -745,7 +755,7 @@ START_TEST (test_L3FormulaFormatter_multiEq)
   ASTNode_setName(c, "z");
   ASTNode_addChild(n, c);
   s = SBML_formulaToL3String(n);
-  fail_unless( !strcmp(s, "eq(x, y, z)"), NULL );
+  fail_unless( !strcmp(s, "x == y == z"), NULL );
   safe_free(s);
 
   ASTNode_free(n);
@@ -815,7 +825,7 @@ START_TEST (test_L3FormulaFormatter_multiGT)
   ASTNode_setName(c, "z");
   ASTNode_addChild(n, c);
   s = SBML_formulaToL3String(n);
-  fail_unless( !strcmp(s, "gt(x, y, z)"), NULL );
+  fail_unless( !strcmp(s, "x > y > z"), NULL );
   safe_free(s);
 
   ASTNode_free(n);
@@ -985,6 +995,34 @@ START_TEST (test_L3FormulaFormatter_accessWithNULL)
 END_TEST
 
 
+START_TEST (test_L3FormulaFormatter_semantics)
+{
+  char           *s;
+  ASTNode_t      *n  = ASTNode_create();
+  ASTNode_t      *c  = ASTNode_create();
+
+  ASTNode_setType(n, AST_LOGICAL_OR);
+  ASTNode_setName(c, "x");
+  ASTNode_addChild(n, c);
+  c = ASTNode_create();
+  ASTNode_setName(c, "y");
+  ASTNode_addChild(n, c);
+  s = SBML_formulaToL3String(n);
+  fail_unless( !strcmp(s, "x || y"), NULL );
+  safe_free(s);
+
+  XMLNode_t* xml = 
+    XMLNode_convertStringToXMLNode("<annotation> a </annotation>", NULL);
+  ASTNode_addSemanticsAnnotation(n, xml);
+
+  s = SBML_formulaToL3String(n);
+  fail_unless( !strcmp(s, "x || y"), NULL );
+  safe_free(s);
+
+  ASTNode_free(n);
+}
+END_TEST
+
 Suite *
 create_suite_L3FormulaFormatter (void) 
 { 
@@ -1008,7 +1046,7 @@ create_suite_L3FormulaFormatter (void)
   tcase_add_test( tcase, test_L3FormulaFormatter_multiDivide    );
   tcase_add_test( tcase, test_L3FormulaFormatter_multiAnd       );
   tcase_add_test( tcase, test_L3FormulaFormatter_multiOr        );
-
+  tcase_add_test( tcase, test_L3FormulaFormatter_semantics      );
   // SBML_deleteL3Parser();
 
   suite_add_tcase(suite, tcase);
diff --git a/src/sbml/math-legacy/test/TestL3FormulaParser.cpp b/src/sbml/math-legacy/test/TestL3FormulaParser.cpp
index fd7e69a..e84ea06 100644
--- a/src/sbml/math-legacy/test/TestL3FormulaParser.cpp
+++ b/src/sbml/math-legacy/test/TestL3FormulaParser.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestL3FormulaParserC.c b/src/sbml/math-legacy/test/TestL3FormulaParserC.c
index bfefd52..9419c68 100644
--- a/src/sbml/math-legacy/test/TestL3FormulaParserC.c
+++ b/src/sbml/math-legacy/test/TestL3FormulaParserC.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestReadFromFile1.cpp b/src/sbml/math-legacy/test/TestReadFromFile1.cpp
index d7d442f..c50d113 100644
--- a/src/sbml/math-legacy/test/TestReadFromFile1.cpp
+++ b/src/sbml/math-legacy/test/TestReadFromFile1.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestReadFromFile2.cpp b/src/sbml/math-legacy/test/TestReadFromFile2.cpp
index 51f9010..1c0fffb 100644
--- a/src/sbml/math-legacy/test/TestReadFromFile2.cpp
+++ b/src/sbml/math-legacy/test/TestReadFromFile2.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestReadMathML.cpp b/src/sbml/math-legacy/test/TestReadMathML.cpp
index ac1a332..88085ad 100644
--- a/src/sbml/math-legacy/test/TestReadMathML.cpp
+++ b/src/sbml/math-legacy/test/TestReadMathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestRunner.c b/src/sbml/math-legacy/test/TestRunner.c
index 9e60262..33def28 100644
--- a/src/sbml/math-legacy/test/TestRunner.c
+++ b/src/sbml/math-legacy/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestValidASTNode.cpp b/src/sbml/math-legacy/test/TestValidASTNode.cpp
index 7dad543..e6ddc6a 100644
--- a/src/sbml/math-legacy/test/TestValidASTNode.cpp
+++ b/src/sbml/math-legacy/test/TestValidASTNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestWriteMathML.cpp b/src/sbml/math-legacy/test/TestWriteMathML.cpp
index 876b7f3..b5136c0 100644
--- a/src/sbml/math-legacy/test/TestWriteMathML.cpp
+++ b/src/sbml/math-legacy/test/TestWriteMathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math-legacy/test/TestWriteMathMLFromAST.cpp b/src/sbml/math-legacy/test/TestWriteMathMLFromAST.cpp
index a301572..c1d1df5 100644
--- a/src/sbml/math-legacy/test/TestWriteMathMLFromAST.cpp
+++ b/src/sbml/math-legacy/test/TestWriteMathMLFromAST.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTBase.cpp b/src/sbml/math/ASTBase.cpp
index 3d08d45..23dcda4 100644
--- a/src/sbml/math/ASTBase.cpp
+++ b/src/sbml/math/ASTBase.cpp
@@ -9,12 +9,12 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTBase.h b/src/sbml/math/ASTBase.h
index b6cc259..36bf2f3 100644
--- a/src/sbml/math/ASTBase.h
+++ b/src/sbml/math/ASTBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTBinaryFunctionNode.cpp b/src/sbml/math/ASTBinaryFunctionNode.cpp
index fca8bef..6e1366f 100644
--- a/src/sbml/math/ASTBinaryFunctionNode.cpp
+++ b/src/sbml/math/ASTBinaryFunctionNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTBinaryFunctionNode.h b/src/sbml/math/ASTBinaryFunctionNode.h
index 32b1349..e0c65c5 100644
--- a/src/sbml/math/ASTBinaryFunctionNode.h
+++ b/src/sbml/math/ASTBinaryFunctionNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbol.cpp b/src/sbml/math/ASTCSymbol.cpp
index cbd462f..cee31f0 100644
--- a/src/sbml/math/ASTCSymbol.cpp
+++ b/src/sbml/math/ASTCSymbol.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbol.h b/src/sbml/math/ASTCSymbol.h
index a3fec63..0518305 100644
--- a/src/sbml/math/ASTCSymbol.h
+++ b/src/sbml/math/ASTCSymbol.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbolAvogadroNode.cpp b/src/sbml/math/ASTCSymbolAvogadroNode.cpp
index c7dd39f..3e641ff 100644
--- a/src/sbml/math/ASTCSymbolAvogadroNode.cpp
+++ b/src/sbml/math/ASTCSymbolAvogadroNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbolAvogadroNode.h b/src/sbml/math/ASTCSymbolAvogadroNode.h
index 3abd610..c794b31 100644
--- a/src/sbml/math/ASTCSymbolAvogadroNode.h
+++ b/src/sbml/math/ASTCSymbolAvogadroNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbolDelayNode.cpp b/src/sbml/math/ASTCSymbolDelayNode.cpp
index e15efd1..6555257 100644
--- a/src/sbml/math/ASTCSymbolDelayNode.cpp
+++ b/src/sbml/math/ASTCSymbolDelayNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbolDelayNode.h b/src/sbml/math/ASTCSymbolDelayNode.h
index 4dbfc66..852cadc 100644
--- a/src/sbml/math/ASTCSymbolDelayNode.h
+++ b/src/sbml/math/ASTCSymbolDelayNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbolTimeNode.cpp b/src/sbml/math/ASTCSymbolTimeNode.cpp
index f83a496..dcb40b8 100644
--- a/src/sbml/math/ASTCSymbolTimeNode.cpp
+++ b/src/sbml/math/ASTCSymbolTimeNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCSymbolTimeNode.h b/src/sbml/math/ASTCSymbolTimeNode.h
index c882b96..821b644 100644
--- a/src/sbml/math/ASTCSymbolTimeNode.h
+++ b/src/sbml/math/ASTCSymbolTimeNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCiFunctionNode.cpp b/src/sbml/math/ASTCiFunctionNode.cpp
index b5f275c..2994374 100644
--- a/src/sbml/math/ASTCiFunctionNode.cpp
+++ b/src/sbml/math/ASTCiFunctionNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCiFunctionNode.h b/src/sbml/math/ASTCiFunctionNode.h
index 0f01d78..a2fdfe5 100644
--- a/src/sbml/math/ASTCiFunctionNode.h
+++ b/src/sbml/math/ASTCiFunctionNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCiNumberNode.cpp b/src/sbml/math/ASTCiNumberNode.cpp
index fab490f..a951396 100644
--- a/src/sbml/math/ASTCiNumberNode.cpp
+++ b/src/sbml/math/ASTCiNumberNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCiNumberNode.h b/src/sbml/math/ASTCiNumberNode.h
index a5eddaf..d985f1e 100644
--- a/src/sbml/math/ASTCiNumberNode.h
+++ b/src/sbml/math/ASTCiNumberNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnBase.cpp b/src/sbml/math/ASTCnBase.cpp
index 952be50..01cf02a 100644
--- a/src/sbml/math/ASTCnBase.cpp
+++ b/src/sbml/math/ASTCnBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnBase.h b/src/sbml/math/ASTCnBase.h
index 24fea20..3ede52e 100644
--- a/src/sbml/math/ASTCnBase.h
+++ b/src/sbml/math/ASTCnBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnExponentialNode.cpp b/src/sbml/math/ASTCnExponentialNode.cpp
index 23cd57d..2704c98 100644
--- a/src/sbml/math/ASTCnExponentialNode.cpp
+++ b/src/sbml/math/ASTCnExponentialNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnExponentialNode.h b/src/sbml/math/ASTCnExponentialNode.h
index bc316d2..b2808b2 100644
--- a/src/sbml/math/ASTCnExponentialNode.h
+++ b/src/sbml/math/ASTCnExponentialNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnIntegerNode.cpp b/src/sbml/math/ASTCnIntegerNode.cpp
index 4669b38..76e27de 100644
--- a/src/sbml/math/ASTCnIntegerNode.cpp
+++ b/src/sbml/math/ASTCnIntegerNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnIntegerNode.h b/src/sbml/math/ASTCnIntegerNode.h
index 34653d5..3879cde 100644
--- a/src/sbml/math/ASTCnIntegerNode.h
+++ b/src/sbml/math/ASTCnIntegerNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnRationalNode.cpp b/src/sbml/math/ASTCnRationalNode.cpp
index f250420..08210c7 100644
--- a/src/sbml/math/ASTCnRationalNode.cpp
+++ b/src/sbml/math/ASTCnRationalNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnRationalNode.h b/src/sbml/math/ASTCnRationalNode.h
index 0d9156e..9364150 100644
--- a/src/sbml/math/ASTCnRationalNode.h
+++ b/src/sbml/math/ASTCnRationalNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnRealNode.cpp b/src/sbml/math/ASTCnRealNode.cpp
index bdfe126..1e0256e 100644
--- a/src/sbml/math/ASTCnRealNode.cpp
+++ b/src/sbml/math/ASTCnRealNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTCnRealNode.h b/src/sbml/math/ASTCnRealNode.h
index 38ea42d..57cc114 100644
--- a/src/sbml/math/ASTCnRealNode.h
+++ b/src/sbml/math/ASTCnRealNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTConstantNumberNode.cpp b/src/sbml/math/ASTConstantNumberNode.cpp
index 16e97bd..03687d2 100644
--- a/src/sbml/math/ASTConstantNumberNode.cpp
+++ b/src/sbml/math/ASTConstantNumberNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTConstantNumberNode.h b/src/sbml/math/ASTConstantNumberNode.h
index 4b3f146..1547e49 100644
--- a/src/sbml/math/ASTConstantNumberNode.h
+++ b/src/sbml/math/ASTConstantNumberNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTFunction.cpp b/src/sbml/math/ASTFunction.cpp
index d5390e7..1f52f23 100644
--- a/src/sbml/math/ASTFunction.cpp
+++ b/src/sbml/math/ASTFunction.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -4257,6 +4257,19 @@ ASTFunction::readQualifier(XMLInputStream& stream, const std::string& reqd_prefi
   {
     numChildren = determineNumArgs(stream, currentName);
   }
+
+  // Jason Zwolak reported that a piece with only one child was not
+  // being flagged as an error
+  if (currentName == "piece" && numChildren != 2)
+  {
+    std::string message = "The <piece> element should have two child elements.";
+    logError(stream, currentElement, OpsNeedCorrectNumberOfArgs, message);
+  }
+  else if (currentName == "otherwise" && numChildren != 1)
+  {
+    std::string message = "The <otherwise> element should have one child elements.";
+    logError(stream, currentElement, OpsNeedCorrectNumberOfArgs, message);
+  }
     
   // this is a nasty one as we have already consumed currentName
   // so we need to set the type NOW
@@ -4629,6 +4642,10 @@ ASTFunction::syncMembersAndTypeFrom(ASTFunction* rhs, int type)
       mSemantics->setDefinitionURL(rhs->getDefinitionURL());
     }
     this->ASTBase::syncMembersFrom(mSemantics);
+    for (unsigned int n = 0; n < rhs->getNumSemanticsAnnotations(); n++)
+    {
+      mSemantics->addSemanticsAnnotation(rhs->getSemanticsAnnotation(n)->clone());
+    }
   }
   else if (mIsOther == true)
   {
diff --git a/src/sbml/math/ASTFunction.h b/src/sbml/math/ASTFunction.h
index fdea6fb..1942b72 100644
--- a/src/sbml/math/ASTFunction.h
+++ b/src/sbml/math/ASTFunction.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTFunctionBase.cpp b/src/sbml/math/ASTFunctionBase.cpp
index a5c61e6..24ed40c 100644
--- a/src/sbml/math/ASTFunctionBase.cpp
+++ b/src/sbml/math/ASTFunctionBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTFunctionBase.h b/src/sbml/math/ASTFunctionBase.h
index 49fe3be..42897c5 100644
--- a/src/sbml/math/ASTFunctionBase.h
+++ b/src/sbml/math/ASTFunctionBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTLambdaFunctionNode.cpp b/src/sbml/math/ASTLambdaFunctionNode.cpp
index c84c798..5ac2be6 100644
--- a/src/sbml/math/ASTLambdaFunctionNode.cpp
+++ b/src/sbml/math/ASTLambdaFunctionNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTLambdaFunctionNode.h b/src/sbml/math/ASTLambdaFunctionNode.h
index b92384e..b65d908 100644
--- a/src/sbml/math/ASTLambdaFunctionNode.h
+++ b/src/sbml/math/ASTLambdaFunctionNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTNaryFunctionNode.cpp b/src/sbml/math/ASTNaryFunctionNode.cpp
index 24e45f9..54bbfc8 100644
--- a/src/sbml/math/ASTNaryFunctionNode.cpp
+++ b/src/sbml/math/ASTNaryFunctionNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTNaryFunctionNode.h b/src/sbml/math/ASTNaryFunctionNode.h
index 32f91f9..fa57f60 100644
--- a/src/sbml/math/ASTNaryFunctionNode.h
+++ b/src/sbml/math/ASTNaryFunctionNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTNode.cpp b/src/sbml/math/ASTNode.cpp
index 4d9e928..0354b85 100644
--- a/src/sbml/math/ASTNode.cpp
+++ b/src/sbml/math/ASTNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -2897,10 +2897,18 @@ ASTNode::replaceArgument(const std::string& bvar, ASTNode *arg)
       else if (arg->isReal())
       {
         this->setValue(arg->getReal());
+        if (arg->isSetUnits())
+        {
+          this->setUnits(arg->getUnits());
+        }
       }
       else if (arg->isInteger())
       {
         this->setValue(arg->getInteger());
+        if (arg->isSetUnits())
+        {
+          this->setUnits(arg->getUnits());
+        }
       }
       else if (arg->isConstant())
       {
@@ -2933,10 +2941,18 @@ ASTNode::replaceArgument(const std::string& bvar, ASTNode *arg)
         else if (arg->isReal())
         {
           child->setValue(arg->getReal());
+          if (arg->isSetUnits())
+          {
+            child->setUnits(arg->getUnits());
+          }
         }
         else if (arg->isInteger())
         {
           child->setValue(arg->getInteger());
+          if (arg->isSetUnits())
+          {
+            child->setUnits(arg->getUnits());
+          }
         }
         else if (arg->isConstant())
         {
@@ -3416,6 +3432,21 @@ const ASTBasePlugin*
 {
   return const_cast<ASTNode*>(this)->getPlugin(n);
 }
+
+unsigned int
+ASTNode::getNumPiece() const
+{
+  if (getType() == AST_FUNCTION_PIECEWISE)
+  {
+    return static_cast<ASTPiecewiseFunctionNode*>
+      (getFunction()->getPiecewise())->getNumPiece();
+  }
+  else
+  {
+    return 0;
+  }
+}
+
 /** @endcond */
 
 bool
diff --git a/src/sbml/math/ASTNode.h b/src/sbml/math/ASTNode.h
index 701d7ef..9f9be93 100644
--- a/src/sbml/math/ASTNode.h
+++ b/src/sbml/math/ASTNode.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1926,6 +1926,12 @@ setValue(value, 0);
 
   /** @endcond */
 
+  /** @cond doxygenLibsbmlInternal */
+  unsigned int getNumPiece () const;
+
+  /** @endcond */
+
+
 protected:
 
   /** @cond doxygenLibsbmlInternal */
diff --git a/src/sbml/math/ASTNumber.cpp b/src/sbml/math/ASTNumber.cpp
index eec3bdf..1cca1a3 100644
--- a/src/sbml/math/ASTNumber.cpp
+++ b/src/sbml/math/ASTNumber.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -43,14 +43,8 @@ using namespace std;
 
 /* end doxygen comment */
 
-#if defined(_MSC_VER) || defined(__BORLANDC__)
-#  define isnan(d)  _isnan(d)
-#endif
-
 LIBSBML_CPP_NAMESPACE_BEGIN
 
-
-
 ASTNumber::ASTNumber (int type) :
    ASTBase   (type)
   , mExponential    ( NULL )
@@ -1729,7 +1723,7 @@ ASTNumber::setValue(double value, long value1)
 int 
 ASTNumber::setValue(double value)
 {
-  if (mExponential == NULL && mReal == NULL && !(isnan(value) > 0 || util_isInf(value) != 0))
+  if (mExponential == NULL && mReal == NULL && !(util_isNaN(value) > 0 || util_isInf(value) != 0))
   {
     std::string units = ASTNumber::getUnits();
     reset();
@@ -1738,7 +1732,7 @@ ASTNumber::setValue(double value)
     setType(AST_REAL);
     mReal->ASTBase::syncMembersFrom(this);
   }
-  else if ((isnan(value) > 0 || util_isInf(value) != 0) && mConstant == NULL) 
+  else if ((util_isNaN(value) > 0 || util_isInf(value) != 0) && mConstant == NULL) 
   {
     reset();
     mConstant = new ASTConstantNumberNode(AST_REAL);
diff --git a/src/sbml/math/ASTNumber.h b/src/sbml/math/ASTNumber.h
index 29746fe..0c92ea1 100644
--- a/src/sbml/math/ASTNumber.h
+++ b/src/sbml/math/ASTNumber.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTPiecewiseFunctionNode.cpp b/src/sbml/math/ASTPiecewiseFunctionNode.cpp
index a6b37f9..1b6181f 100644
--- a/src/sbml/math/ASTPiecewiseFunctionNode.cpp
+++ b/src/sbml/math/ASTPiecewiseFunctionNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTPiecewiseFunctionNode.h b/src/sbml/math/ASTPiecewiseFunctionNode.h
index 35a40e0..3b7dc25 100644
--- a/src/sbml/math/ASTPiecewiseFunctionNode.h
+++ b/src/sbml/math/ASTPiecewiseFunctionNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTQualifierNode.cpp b/src/sbml/math/ASTQualifierNode.cpp
index d06d09f..abd50a1 100644
--- a/src/sbml/math/ASTQualifierNode.cpp
+++ b/src/sbml/math/ASTQualifierNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTQualifierNode.h b/src/sbml/math/ASTQualifierNode.h
index d476af0..763d323 100644
--- a/src/sbml/math/ASTQualifierNode.h
+++ b/src/sbml/math/ASTQualifierNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTSemanticsNode.cpp b/src/sbml/math/ASTSemanticsNode.cpp
index c41ce0e..1768148 100644
--- a/src/sbml/math/ASTSemanticsNode.cpp
+++ b/src/sbml/math/ASTSemanticsNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTSemanticsNode.h b/src/sbml/math/ASTSemanticsNode.h
index 437efc0..243caf5 100644
--- a/src/sbml/math/ASTSemanticsNode.h
+++ b/src/sbml/math/ASTSemanticsNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTTypes.cpp b/src/sbml/math/ASTTypes.cpp
index 101e04a..03985c9 100644
--- a/src/sbml/math/ASTTypes.cpp
+++ b/src/sbml/math/ASTTypes.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTTypes.h b/src/sbml/math/ASTTypes.h
index 040aea7..1079512 100644
--- a/src/sbml/math/ASTTypes.h
+++ b/src/sbml/math/ASTTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTUnaryFunctionNode.cpp b/src/sbml/math/ASTUnaryFunctionNode.cpp
index f79340a..4546104 100644
--- a/src/sbml/math/ASTUnaryFunctionNode.cpp
+++ b/src/sbml/math/ASTUnaryFunctionNode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/ASTUnaryFunctionNode.h b/src/sbml/math/ASTUnaryFunctionNode.h
index 883747f..2dc646d 100644
--- a/src/sbml/math/ASTUnaryFunctionNode.h
+++ b/src/sbml/math/ASTUnaryFunctionNode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/FormulaFormatter.c b/src/sbml/math/FormulaFormatter.c
index a199753..d4efb93 100644
--- a/src/sbml/math/FormulaFormatter.c
+++ b/src/sbml/math/FormulaFormatter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/FormulaFormatter.h b/src/sbml/math/FormulaFormatter.h
index b0e7110..0d740ab 100644
--- a/src/sbml/math/FormulaFormatter.h
+++ b/src/sbml/math/FormulaFormatter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/FormulaParser.c b/src/sbml/math/FormulaParser.c
index d68d2da..e697cf6 100644
--- a/src/sbml/math/FormulaParser.c
+++ b/src/sbml/math/FormulaParser.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/FormulaParser.h b/src/sbml/math/FormulaParser.h
index 9fbcfba..2e9f097 100644
--- a/src/sbml/math/FormulaParser.h
+++ b/src/sbml/math/FormulaParser.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/FormulaTokenizer.c b/src/sbml/math/FormulaTokenizer.c
index f338381..f146645 100644
--- a/src/sbml/math/FormulaTokenizer.c
+++ b/src/sbml/math/FormulaTokenizer.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -106,7 +106,7 @@ FormulaTokenizer_getName (FormulaTokenizer_t *ft, Token_t *t)
   start = ft->pos;
   c     = ft->formula[ ++ft->pos ];
 
-  while (isalpha(c) || isdigit(c) || c == '_')
+  while (isalpha((int)c) || isdigit((int)c) || c == '_')
   {
     c = ft->formula[ ++ft->pos ];
   }
@@ -254,7 +254,7 @@ FormulaTokenizer_nextToken (FormulaTokenizer_t *ft)
   /**
    * Skip whitespace
    */
-  while (isspace(c))
+  while (isspace((int)c))
   {
     c = ft->formula[ ++ft->pos ];
   }
@@ -272,11 +272,11 @@ FormulaTokenizer_nextToken (FormulaTokenizer_t *ft)
     t->value.ch = c;
     ft->pos++;
   }
-  else if (isalpha(c) || c == '_')
+  else if (isalpha((int)c) || c == '_')
   {
     FormulaTokenizer_getName(ft, t);
   }
-  else if (c == '.' || isdigit(c))
+  else if (c == '.' || isdigit((int)c))
   {
     FormulaTokenizer_getNumber(ft, t);
   }
diff --git a/src/sbml/math/FormulaTokenizer.h b/src/sbml/math/FormulaTokenizer.h
index 4675ab2..477cfa2 100644
--- a/src/sbml/math/FormulaTokenizer.h
+++ b/src/sbml/math/FormulaTokenizer.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/L3FormulaFormatter.c b/src/sbml/math/L3FormulaFormatter.c
index 87e741a..d83360b 100644
--- a/src/sbml/math/L3FormulaFormatter.c
+++ b/src/sbml/math/L3FormulaFormatter.c
@@ -12,7 +12,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -45,6 +45,24 @@
 #include <sbml/util/util.h>
 
 int
+isUnaryMinus (const ASTNode_t *node)
+{
+  if (node==NULL) return 0;
+  if (ASTNode_getType(node) != AST_MINUS) return 0;
+  if (ASTNode_getNumChildren(node) != 1) return 0;
+  return 1;
+}
+
+int
+isUnaryNot (const ASTNode_t *node)
+{
+  if (node==NULL) return 0;
+  if (ASTNode_getType(node) != AST_LOGICAL_NOT) return 0;
+  if (ASTNode_getNumChildren(node) != 1) return 0;
+  return 1;
+}
+
+int
 L3FormulaFormatter_hasUnambiguousGrammar(const ASTNode_t *node, 
                                const ASTNode_t *child, 
                                const L3ParserSettings_t *settings);
@@ -175,6 +193,17 @@ int isTranslatedModulo (const ASTNode_t* node)
   return 1;
 }
 
+const ASTNode_t* L3FormulaFormatter_getRightChild(const ASTNode_t* parent)
+{
+  if (isTranslatedModulo(parent)==1) {
+    return ASTNode_getChild(ASTNode_getChild(ASTNode_getChild(parent, 0), 1), 0);
+  }
+  if (isUnaryMinus(parent) || isUnaryNot(parent)) {
+    return ASTNode_getChild(parent, 0);
+  }
+  return ASTNode_getRightChild(parent);
+}
+
 
 /*
  * @return the precedence of this ASTNode as defined in the L3 parser documentation.
@@ -242,8 +271,8 @@ int getL3Precedence(const ASTNode_t* node)
       case AST_RELATIONAL_LEQ:
       case AST_RELATIONAL_LT:
       case AST_RELATIONAL_NEQ:
-        //The relational symbols (==, >=, etc.) are only used when there are two children.
-        if (numchildren == 2) {
+        //The relational symbols (==, >=, etc.) are only used when there are two or more children.
+        if (numchildren >= 2) {
           precedence = 3;
         }
         else {
@@ -294,53 +323,81 @@ L3FormulaFormatter_isGrouped (const ASTNode_t *parent, const ASTNode_t *child, c
   int pp, cp;
   int pt, ct;
   int group = 0;
-  int parentmodulo = 0;
-
+  const ASTNode_t* rchild = NULL;
 
   if (parent != NULL)
   {
-    parentmodulo = isTranslatedModulo(parent);
-    if (parentmodulo || !L3FormulaFormatter_hasUnambiguousGrammar(parent, child, settings))
+    if (isUnaryMinus(parent)) {
+      child = L3FormulaFormatter_getRightChild(parent);
+      if (isUnaryNot(child)) {
+        //Always group: -(!a) because reasons.
+        return 1;
+      }
+    }
+    else if (isUnaryNot(parent)) {
+      child = L3FormulaFormatter_getRightChild(parent);
+      if (isUnaryMinus(child)) {
+        //Always group: !(-a) because reasons.
+        return 1;
+      }
+    }
+    if (ASTNode_isLogical(parent) || ASTNode_isRelational(parent) || isTranslatedModulo(parent)) {
+      if (!L3FormulaFormatter_hasUnambiguousGrammar(NULL, child, settings)) {
+        //Always group potentially-ambiguous children of logical, relational, and modulo operators, since their precedence is unfamiliar to most users.
+        group = 1;
+        rchild = L3FormulaFormatter_getRightChild(parent);
+        if (child == rchild) {
+          if (isUnaryMinus(child) || isUnaryNot(child)) {
+          //Don't need to group right-side unary minus nor unary not: they are not actually ambiguous
+          group = 0;
+          }
+        }
+      }
+    }
+    else if (!L3FormulaFormatter_hasUnambiguousGrammar(parent, child, settings))
     {
-      group = 1;
-      pp = getL3Precedence(parent);
-      cp = getL3Precedence(child);
-
-      if (pp < cp)
-      {
-        group = 0;
+      if ((ASTNode_isLogical(child) || ASTNode_isRelational(child) || isTranslatedModulo(child)) &&
+          !isUnaryMinus(child) && !isUnaryNot(child)){
+        //Always group child  logical, relational, and modulo, since their precedence is unfamiliar to most users.
+        group = 1;
       }
-      else if (pp == cp)
-      {
-        if (parentmodulo) {
-          //Always group:  x * y % z -> (x * y) % z
-          group = 1;
+      else {
+        group = 1;
+        pp = getL3Precedence(parent);
+        cp = getL3Precedence(child);
+
+        if (pp < cp)
+        {
+          group = 0;
         }
-        /**
-         * Don't group only if i) child is the first on the list and ii) both parent and
-         * child are the same type, or if they
-         * should be associative operators (i.e. not AST_MINUS or
-         * AST_DIVIDE).  That is, do not group a parent and left child
-         * that are either both AST_PLUS or both AST_TIMES operators, nor the logical operators
-         * that have the same precedence.
-         */
-        if (ASTNode_getLeftChild(parent) == child)
+        else if (pp == cp)
         {
-          pt = ASTNode_getType(parent);
-          ct = ASTNode_getType(child);
-          if (ASTNode_isLogical(parent) || ASTNode_isRelational(parent)) {
-            group = !(pt == ct);
-          }
-          else {
-            group = !((pt == ct) || (pt == AST_PLUS || pt == AST_TIMES));
+          /**
+          * Don't group only if i) child is the first on the list and ii) both parent and
+          * child are the same type, or if they
+          * should be associative operators (i.e. not AST_MINUS or
+          * AST_DIVIDE).  That is, do not group a parent and left child
+          * that are either both AST_PLUS or both AST_TIMES operators, nor the logical operators
+          * that have the same precedence.
+          */
+          if (ASTNode_getLeftChild(parent) == child)
+          {
+            pt = ASTNode_getType(parent);
+            ct = ASTNode_getType(child);
+            if (ASTNode_isLogical(parent) || ASTNode_isRelational(parent)) {
+              group = !(pt == ct);
+            }
+            else {
+              group = !((pt == ct) || (pt == AST_DIVIDE || pt == AST_MINUS));
+            }
           }
         }
-      }
-      else if (pp==7 && cp==6) {
-        //If the parent is 'power' and the child is 'unary not' or 'unary minus', we only need
-        // to group if the child is the *left* child:  '(-x)^y', but 'x^-y'.
-        if (!(ASTNode_getLeftChild(parent) == child)) { 
-          group = 0;
+        else if (pp==7 && cp==6) {
+          //If the parent is 'power' and the child is 'unary not' or 'unary minus', we only need
+          // to group if the child is the *left* child:  '(-x)^y', but 'x^-y'.
+          if (!(ASTNode_getLeftChild(parent) == child)) { 
+            group = 0;
+          }
         }
       }
     }
@@ -382,6 +439,14 @@ L3FormulaFormatter_format (StringBuffer_t *sb, const ASTNode_t *node, const L3Pa
   {
     L3FormulaFormatter_formatReal(sb, node, settings);
   }
+  else if (ASTNode_isAvogadro(node))
+  {
+    StringBuffer_append(sb, "avogadro");
+  }
+  else if (ASTNode_getType(node) == AST_NAME_TIME)
+  {
+    StringBuffer_append(sb, "time");
+  }
   else if ( !ASTNode_isUnknown(node) )
   {
     StringBuffer_append(sb, ASTNode_getName(node));
@@ -417,6 +482,9 @@ L3FormulaFormatter_formatFunction (StringBuffer_t *sb, const ASTNode_t *node, co
   case AST_FUNCTION_LN:
     StringBuffer_append(sb, "ln");
     break;
+  case AST_FUNCTION_DELAY:
+    StringBuffer_append(sb, "delay");
+    break;
 
   default:
     FormulaFormatter_formatFunction(sb, node);
@@ -783,7 +851,7 @@ L3FormulaFormatter_visitModulo ( const ASTNode_t *parent,
   //Get x and y from the first child of the piecewise function, 
   // then the first child of that (times), and the first child
   // of that (minus).
-  L3FormulaFormatter_visit ( subnode, ASTNode_getLeftChild(subnode), sb, settings);
+  L3FormulaFormatter_visit ( node, ASTNode_getLeftChild(subnode), sb, settings);
   StringBuffer_appendChar(sb, ' ');
   StringBuffer_appendChar(sb, '%');
   StringBuffer_appendChar(sb, ' ');
@@ -868,6 +936,10 @@ L3FormulaFormatter_hasUnambiguousGrammar(const ASTNode_t *node,
   //'8', the highest precedence, is only ever given to functions and other top-level 
   // unambiguous objects.
   if (getL3Precedence(child) == 8) return 1;
+
+  //If the parent node is 'semantics' this never gets printed at all.
+  if (ASTNode_getType(node) == AST_SEMANTICS) return 1;
+
   return 0;
 }
 
@@ -897,7 +969,7 @@ L3FormulaFormatter_isFunction (const ASTNode_t *node,
   case AST_RELATIONAL_GT:
   case AST_RELATIONAL_LEQ:
   case AST_RELATIONAL_LT:
-    if (ASTNode_getNumChildren(node) == 2) {
+    if (ASTNode_getNumChildren(node) >= 2) {
       return 0;
     }
     return 1;
diff --git a/src/sbml/math/L3FormulaFormatter.h b/src/sbml/math/L3FormulaFormatter.h
index 29eb1d1..853d0e7 100644
--- a/src/sbml/math/L3FormulaFormatter.h
+++ b/src/sbml/math/L3FormulaFormatter.h
@@ -12,7 +12,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/L3Parser.h b/src/sbml/math/L3Parser.h
index 0c029ec..04dbbfb 100644
--- a/src/sbml/math/L3Parser.h
+++ b/src/sbml/math/L3Parser.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/L3ParserSettings.cpp b/src/sbml/math/L3ParserSettings.cpp
index 5235583..c21c536 100644
--- a/src/sbml/math/L3ParserSettings.cpp
+++ b/src/sbml/math/L3ParserSettings.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/L3ParserSettings.h b/src/sbml/math/L3ParserSettings.h
index 0410e5c..1b634ff 100644
--- a/src/sbml/math/L3ParserSettings.h
+++ b/src/sbml/math/L3ParserSettings.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/Makefile.in b/src/sbml/math/Makefile.in
index 9a71cee..9e20f7e 100644
--- a/src/sbml/math/Makefile.in
+++ b/src/sbml/math/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/MathML.cpp b/src/sbml/math/MathML.cpp
index a3d3233..04492fe 100644
--- a/src/sbml/math/MathML.cpp
+++ b/src/sbml/math/MathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/MathML.h b/src/sbml/math/MathML.h
index bf3d5ce..f9564bb 100644
--- a/src/sbml/math/MathML.h
+++ b/src/sbml/math/MathML.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/CMakeLists.txt b/src/sbml/math/test/CMakeLists.txt
index 90414a9..4e24daa 100644
--- a/src/sbml/math/test/CMakeLists.txt
+++ b/src/sbml/math/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/Makefile.in b/src/sbml/math/test/Makefile.in
index 601808e..33815ee 100644
--- a/src/sbml/math/test/Makefile.in
+++ b/src/sbml/math/test/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestASTNode.c b/src/sbml/math/test/TestASTNode.c
index 82b5f73..444d1f5 100644
--- a/src/sbml/math/test/TestASTNode.c
+++ b/src/sbml/math/test/TestASTNode.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1077,6 +1077,32 @@ START_TEST (test_ASTNode_deepCopy_4)
 END_TEST
 
 
+START_TEST (test_ASTNode_deepCopy_5)
+{
+  ASTNode_t *node = SBML_parseFormula("a + b");
+  ASTNode_t *copy;
+
+	const char* xmlstr = "<annotation encoding=\"infix\">\n"
+	"test\n"
+	"</annotation>";
+  XMLNode_t *ann = XMLNode_convertStringToXMLNode(xmlstr, NULL);
+  ASTNode_addSemanticsAnnotation(node, ann);
+
+  fail_unless( ASTNode_getNumSemanticsAnnotations(node) == 1 );
+
+  /** deepCopy() **/
+  copy = ASTNode_deepCopy(node);
+
+  fail_unless( copy != node );
+  fail_unless( ASTNode_getNumSemanticsAnnotations(copy) == 1 );
+
+
+  ASTNode_free(node);
+  ASTNode_free(copy);
+}
+END_TEST
+
+
 START_TEST (test_ASTNode_getName)
 {
   ASTNode_t *n = ASTNode_create();
@@ -5199,6 +5225,7 @@ create_suite_ASTNode (void)
   tcase_add_test( tcase, test_ASTNode_deepCopy_2              );
   tcase_add_test( tcase, test_ASTNode_deepCopy_3              );
   tcase_add_test( tcase, test_ASTNode_deepCopy_4              );
+  tcase_add_test( tcase, test_ASTNode_deepCopy_5              );
   tcase_add_test( tcase, test_ASTNode_getName                 );
   tcase_add_test( tcase, test_ASTNode_getReal                 );
   tcase_add_test( tcase, test_ASTNode_getPrecedence           );
diff --git a/src/sbml/math/test/TestChildFunctions.cpp b/src/sbml/math/test/TestChildFunctions.cpp
index 2eea7a1..faf0868 100644
--- a/src/sbml/math/test/TestChildFunctions.cpp
+++ b/src/sbml/math/test/TestChildFunctions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestFormulaFormatter.c b/src/sbml/math/test/TestFormulaFormatter.c
index 46cbb84..344c2cc 100644
--- a/src/sbml/math/test/TestFormulaFormatter.c
+++ b/src/sbml/math/test/TestFormulaFormatter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestFormulaParser.c b/src/sbml/math/test/TestFormulaParser.c
index 026fde4..0dbb5db 100644
--- a/src/sbml/math/test/TestFormulaParser.c
+++ b/src/sbml/math/test/TestFormulaParser.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestFormulaTokenizer.c b/src/sbml/math/test/TestFormulaTokenizer.c
index afb58b2..e37935a 100644
--- a/src/sbml/math/test/TestFormulaTokenizer.c
+++ b/src/sbml/math/test/TestFormulaTokenizer.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestGetValue.cpp b/src/sbml/math/test/TestGetValue.cpp
index b73a334..93be7d1 100644
--- a/src/sbml/math/test/TestGetValue.cpp
+++ b/src/sbml/math/test/TestGetValue.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestL3FormulaFormatter.c b/src/sbml/math/test/TestL3FormulaFormatter.c
index 35b9dd3..855829f 100644
--- a/src/sbml/math/test/TestL3FormulaFormatter.c
+++ b/src/sbml/math/test/TestL3FormulaFormatter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -36,6 +36,8 @@
 #include <sbml/math/FormulaParser.h>
 #include <sbml/math/L3Parser.h>
 #include <sbml/math/L3ParserSettings.h>
+#include <sbml/xml/XMLNode.h>
+
 //extern int isTranslatedModulo (const ASTNode_t* node);
 //extern int getL3Precedence(const ASTNode_t* node);
 
@@ -175,11 +177,14 @@ START_TEST (test_L3FormulaFormatter_isGrouped)
    *
    * In this case, explicit grouping is not needed due to associativity
    * rules.
+   *
+   * Note: changed in 2016 as a review of infix roundtripping
    */
   p = SBML_parseL3Formula("(a / b) * c");
 
   c = ASTNode_getLeftChild(p);
-  fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 0, NULL );
+  //fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 0, NULL );
+  fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 1, NULL );
 
   c = ASTNode_getRightChild(p);
   fail_unless( L3FormulaFormatter_isGrouped(p, c, NULL) == 0, NULL );
@@ -338,7 +343,7 @@ START_TEST (test_SBML_formulaToL3String)
     "foo(1)",
     "foo(1, bar)",
     "foo(1, bar, 2^-3)",
-    "a / b * c",
+    "(a / b) * c",
     "a / (b * c)",
     "1 + 2 + 3",
     "a * (b * c)",
@@ -347,8 +352,8 @@ START_TEST (test_SBML_formulaToL3String)
     "a + b + c",
     "x % y",
     "(1 + x) % (3 / y)",
-    "x^2 % -y",
-    "x && y == z",
+    "(x^2) % -y",
+    "x && (y == z)",
     "(x && y) == z",
     "(a && b) || c",
     "a && (b || c)",
@@ -357,7 +362,7 @@ START_TEST (test_SBML_formulaToL3String)
     "-x^y",
     "(-x)^y",
     "x^-y",
-    "!x^2",
+    "!(x^2)",
     "(!x)^2",
     "x^!2",
     "1 ml",
@@ -370,7 +375,7 @@ START_TEST (test_SBML_formulaToL3String)
     "true",
     "false",
     "(x > y) + (p == q)",
-    "gt(x, y, z) + eq(p, d, q)",
+    "(x > y > z) + (p == d == q)",
     "(x || y) > (p && q)",
     "or(x) > and(p)",
     "or() > and()",
@@ -750,7 +755,7 @@ START_TEST (test_L3FormulaFormatter_multiEq)
   ASTNode_setName(c, "z");
   ASTNode_addChild(n, c);
   s = SBML_formulaToL3String(n);
-  fail_unless( !strcmp(s, "eq(x, y, z)"), NULL );
+  fail_unless( !strcmp(s, "x == y == z"), NULL );
   safe_free(s);
 
   ASTNode_free(n);
@@ -820,7 +825,7 @@ START_TEST (test_L3FormulaFormatter_multiGT)
   ASTNode_setName(c, "z");
   ASTNode_addChild(n, c);
   s = SBML_formulaToL3String(n);
-  fail_unless( !strcmp(s, "gt(x, y, z)"), NULL );
+  fail_unless( !strcmp(s, "x > y > z"), NULL );
   safe_free(s);
 
   ASTNode_free(n);
@@ -990,6 +995,34 @@ START_TEST (test_L3FormulaFormatter_accessWithNULL)
 END_TEST
 
 
+START_TEST (test_L3FormulaFormatter_semantics)
+{
+  char           *s;
+  ASTNode_t      *n  = ASTNode_create();
+  ASTNode_t      *c  = ASTNode_create();
+
+  ASTNode_setType(n, AST_LOGICAL_OR);
+  ASTNode_setName(c, "x");
+  ASTNode_addChild(n, c);
+  c = ASTNode_create();
+  ASTNode_setName(c, "y");
+  ASTNode_addChild(n, c);
+  s = SBML_formulaToL3String(n);
+  fail_unless( !strcmp(s, "x || y"), NULL );
+  safe_free(s);
+
+  XMLNode_t* xml = 
+    XMLNode_convertStringToXMLNode("<annotation> a </annotation>", NULL);
+  ASTNode_addSemanticsAnnotation(n, xml);
+
+  s = SBML_formulaToL3String(n);
+  fail_unless( !strcmp(s, "x || y"), NULL );
+  safe_free(s);
+
+  ASTNode_free(n);
+}
+END_TEST
+
 //START_TEST (test_getL3Precedence_noargs)
 //{
 //  ASTNode_t *n = ASTNode_create();
@@ -1903,6 +1936,7 @@ create_suite_L3FormulaFormatter (void)
   tcase_add_test( tcase, test_L3FormulaFormatter_multiDivide    );
   tcase_add_test( tcase, test_L3FormulaFormatter_multiAnd       );
   tcase_add_test( tcase, test_L3FormulaFormatter_multiOr        );
+  tcase_add_test( tcase, test_L3FormulaFormatter_semantics      );
   //tcase_add_test( tcase, test_getL3Precedence_noargs  );
   //tcase_add_test( tcase, test_getL3Precedence_onearg  );
   //tcase_add_test( tcase, test_getL3Precedence_twoargs );
diff --git a/src/sbml/math/test/TestL3FormulaParser.cpp b/src/sbml/math/test/TestL3FormulaParser.cpp
index 2f53d98..491166c 100644
--- a/src/sbml/math/test/TestL3FormulaParser.cpp
+++ b/src/sbml/math/test/TestL3FormulaParser.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestL3FormulaParserC.c b/src/sbml/math/test/TestL3FormulaParserC.c
index 50ce97f..15c1b3d 100644
--- a/src/sbml/math/test/TestL3FormulaParserC.c
+++ b/src/sbml/math/test/TestL3FormulaParserC.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestNewASTNode.cpp b/src/sbml/math/test/TestNewASTNode.cpp
index 59b019e..d38ac26 100644
--- a/src/sbml/math/test/TestNewASTNode.cpp
+++ b/src/sbml/math/test/TestNewASTNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestNewReadMathML.cpp b/src/sbml/math/test/TestNewReadMathML.cpp
index 438da31..83ac2d9 100644
--- a/src/sbml/math/test/TestNewReadMathML.cpp
+++ b/src/sbml/math/test/TestNewReadMathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -2058,6 +2058,32 @@ START_TEST (test_element_semantics_annotation)
 END_TEST
 
 
+START_TEST (test_element_semantics_annotation_1)
+{
+  const char* s = wrapMathML
+  (
+    "<semantics>"
+    "<exponentiale/>"
+    "<annotation encoding='Mathematica'> N[23] </annotation>"
+    "</semantics>"
+  );
+
+
+
+  N = readMathMLFromString(s);
+
+  fail_unless( N != NULL );
+
+  fail_unless( N->getType() == AST_SEMANTICS );
+  fail_unless( N->getNumSemanticsAnnotations() == 1);
+
+  std::string ann1 = XMLNode::convertXMLNodeToString(N->getSemanticsAnnotation(0));
+  std::string annotation = "<annotation encoding=\"Mathematica\"> N[23] </annotation>";
+  fail_unless( ann1 == annotation );
+}
+END_TEST
+
+
 START_TEST (test_element_semantics_annxml)
 {
   const char* s = wrapMathML
@@ -2963,6 +2989,7 @@ create_suite_NewReadMathML ()
   tcase_add_test( tcase, test_element_semantics                 );
   tcase_add_test( tcase, test_element_semantics_URL             );
   tcase_add_test( tcase, test_element_semantics_annotation      );
+  tcase_add_test( tcase, test_element_semantics_annotation_1    );
   tcase_add_test( tcase, test_element_semantics_annxml          );
   tcase_add_test( tcase, test_element_semantics_lambda          );
   tcase_add_test( tcase, test_element_semantics_URL_lambda      );
diff --git a/src/sbml/math/test/TestNewWriteMathMLFromAST.cpp b/src/sbml/math/test/TestNewWriteMathMLFromAST.cpp
index 5c880b6..77a9521 100644
--- a/src/sbml/math/test/TestNewWriteMathMLFromAST.cpp
+++ b/src/sbml/math/test/TestNewWriteMathMLFromAST.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestReadFromFile1.cpp b/src/sbml/math/test/TestReadFromFile1.cpp
index b6181b9..db99c74 100644
--- a/src/sbml/math/test/TestReadFromFile1.cpp
+++ b/src/sbml/math/test/TestReadFromFile1.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestReadFromFile2.cpp b/src/sbml/math/test/TestReadFromFile2.cpp
index 9a1b049..c5778e9 100644
--- a/src/sbml/math/test/TestReadFromFile2.cpp
+++ b/src/sbml/math/test/TestReadFromFile2.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestReadMathML.cpp b/src/sbml/math/test/TestReadMathML.cpp
index c04981b..9009014 100644
--- a/src/sbml/math/test/TestReadMathML.cpp
+++ b/src/sbml/math/test/TestReadMathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestRunner.c b/src/sbml/math/test/TestRunner.c
index 391a801..a192940 100644
--- a/src/sbml/math/test/TestRunner.c
+++ b/src/sbml/math/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestValidASTNode.cpp b/src/sbml/math/test/TestValidASTNode.cpp
index ef0d965..581b58b 100644
--- a/src/sbml/math/test/TestValidASTNode.cpp
+++ b/src/sbml/math/test/TestValidASTNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestWriteMathML.cpp b/src/sbml/math/test/TestWriteMathML.cpp
index d712b21..008c150 100644
--- a/src/sbml/math/test/TestWriteMathML.cpp
+++ b/src/sbml/math/test/TestWriteMathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/math/test/TestWriteMathMLFromAST.cpp b/src/sbml/math/test/TestWriteMathMLFromAST.cpp
index 634706a..d255eaa 100644
--- a/src/sbml/math/test/TestWriteMathMLFromAST.cpp
+++ b/src/sbml/math/test/TestWriteMathMLFromAST.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/Makefile.in b/src/sbml/packages/Makefile.in
index 11fb0e4..83e897c 100644
--- a/src/sbml/packages/Makefile.in
+++ b/src/sbml/packages/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/common/ArraysExtensionTypes.h b/src/sbml/packages/arrays/common/ArraysExtensionTypes.h
index f593d5d..38f2130 100644
--- a/src/sbml/packages/arrays/common/ArraysExtensionTypes.h
+++ b/src/sbml/packages/arrays/common/ArraysExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/common/arraysfwd.h b/src/sbml/packages/arrays/common/arraysfwd.h
index 2ca6a3f..427e78e 100644
--- a/src/sbml/packages/arrays/common/arraysfwd.h
+++ b/src/sbml/packages/arrays/common/arraysfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysASTPlugin.cpp b/src/sbml/packages/arrays/extension/ArraysASTPlugin.cpp
index 5254084..dcb098d 100644
--- a/src/sbml/packages/arrays/extension/ArraysASTPlugin.cpp
+++ b/src/sbml/packages/arrays/extension/ArraysASTPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysASTPlugin.h b/src/sbml/packages/arrays/extension/ArraysASTPlugin.h
index 96132bb..95ab025 100644
--- a/src/sbml/packages/arrays/extension/ArraysASTPlugin.h
+++ b/src/sbml/packages/arrays/extension/ArraysASTPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysExtension.cpp b/src/sbml/packages/arrays/extension/ArraysExtension.cpp
index 16932d3..0427c59 100644
--- a/src/sbml/packages/arrays/extension/ArraysExtension.cpp
+++ b/src/sbml/packages/arrays/extension/ArraysExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysExtension.h b/src/sbml/packages/arrays/extension/ArraysExtension.h
index 29b1a3c..4aab545 100644
--- a/src/sbml/packages/arrays/extension/ArraysExtension.h
+++ b/src/sbml/packages/arrays/extension/ArraysExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.cpp b/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.cpp
index cad7a08..a9cb45e 100644
--- a/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.h b/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.h
index 8e61737..0abcabd 100644
--- a/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.h
+++ b/src/sbml/packages/arrays/extension/ArraysSBMLDocumentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysSBasePlugin.cpp b/src/sbml/packages/arrays/extension/ArraysSBasePlugin.cpp
index d3ccdfa..1de6cab 100644
--- a/src/sbml/packages/arrays/extension/ArraysSBasePlugin.cpp
+++ b/src/sbml/packages/arrays/extension/ArraysSBasePlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/extension/ArraysSBasePlugin.h b/src/sbml/packages/arrays/extension/ArraysSBasePlugin.h
index 1f14731..6f4fd7c 100644
--- a/src/sbml/packages/arrays/extension/ArraysSBasePlugin.h
+++ b/src/sbml/packages/arrays/extension/ArraysSBasePlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.cpp b/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.cpp
index 4096c31..5bdc17e 100644
--- a/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.cpp
+++ b/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.h b/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.h
index e19612e..55f1010 100644
--- a/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.h
+++ b/src/sbml/packages/arrays/math/ASTArraysVectorFunctionNode.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/test/CMakeLists.txt b/src/sbml/packages/arrays/math/test/CMakeLists.txt
index f3bb075..9f8d28f 100644
--- a/src/sbml/packages/arrays/math/test/CMakeLists.txt
+++ b/src/sbml/packages/arrays/math/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/test/TestArrayInfixParsing.cpp b/src/sbml/packages/arrays/math/test/TestArrayInfixParsing.cpp
index 4984503..6b4da5a 100644
--- a/src/sbml/packages/arrays/math/test/TestArrayInfixParsing.cpp
+++ b/src/sbml/packages/arrays/math/test/TestArrayInfixParsing.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/test/TestArrayInfixWriting.cpp b/src/sbml/packages/arrays/math/test/TestArrayInfixWriting.cpp
index c70a6ee..589bde6 100644
--- a/src/sbml/packages/arrays/math/test/TestArrayInfixWriting.cpp
+++ b/src/sbml/packages/arrays/math/test/TestArrayInfixWriting.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/test/TestNewASTNode.cpp b/src/sbml/packages/arrays/math/test/TestNewASTNode.cpp
index e5259b4..3047981 100644
--- a/src/sbml/packages/arrays/math/test/TestNewASTNode.cpp
+++ b/src/sbml/packages/arrays/math/test/TestNewASTNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/test/TestNewReadMathML.cpp b/src/sbml/packages/arrays/math/test/TestNewReadMathML.cpp
index 284f9f6..753baf9 100644
--- a/src/sbml/packages/arrays/math/test/TestNewReadMathML.cpp
+++ b/src/sbml/packages/arrays/math/test/TestNewReadMathML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/test/TestNewWriteMathMLFromAST.cpp b/src/sbml/packages/arrays/math/test/TestNewWriteMathMLFromAST.cpp
index 9dd1205..cee091b 100644
--- a/src/sbml/packages/arrays/math/test/TestNewWriteMathMLFromAST.cpp
+++ b/src/sbml/packages/arrays/math/test/TestNewWriteMathMLFromAST.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/math/test/TestRunner.c b/src/sbml/packages/arrays/math/test/TestRunner.c
index 37c505b..a3d22b6 100644
--- a/src/sbml/packages/arrays/math/test/TestRunner.c
+++ b/src/sbml/packages/arrays/math/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -37,6 +37,9 @@
 #include <sbml/util/memory.h>
 #include <sbml/common/extern.h>
 
+#ifdef LIBSBML_USE_VLD
+  #include <vld.h>
+#endif
 /**
  * Test suite creation function prototypes.
  *
diff --git a/src/sbml/packages/arrays/math/test/TestWriteMathMLFromInfix.cpp b/src/sbml/packages/arrays/math/test/TestWriteMathMLFromInfix.cpp
index 2f1f596..1a10720 100644
--- a/src/sbml/packages/arrays/math/test/TestWriteMathMLFromInfix.cpp
+++ b/src/sbml/packages/arrays/math/test/TestWriteMathMLFromInfix.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/sbml/Dimension.cpp b/src/sbml/packages/arrays/sbml/Dimension.cpp
index 820e13c..a78eaa8 100644
--- a/src/sbml/packages/arrays/sbml/Dimension.cpp
+++ b/src/sbml/packages/arrays/sbml/Dimension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/sbml/Dimension.h b/src/sbml/packages/arrays/sbml/Dimension.h
index 7ea52b3..5233e08 100644
--- a/src/sbml/packages/arrays/sbml/Dimension.h
+++ b/src/sbml/packages/arrays/sbml/Dimension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/sbml/Index.cpp b/src/sbml/packages/arrays/sbml/Index.cpp
index fa718ab..af073ac 100644
--- a/src/sbml/packages/arrays/sbml/Index.cpp
+++ b/src/sbml/packages/arrays/sbml/Index.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/sbml/Index.h b/src/sbml/packages/arrays/sbml/Index.h
index 1342c79..6cb255d 100644
--- a/src/sbml/packages/arrays/sbml/Index.h
+++ b/src/sbml/packages/arrays/sbml/Index.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.cpp b/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.cpp
index 155e270..c1d2080 100644
--- a/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.cpp
+++ b/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.h b/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.h
index 86fd219..ce76849 100644
--- a/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.h
+++ b/src/sbml/packages/arrays/validator/ArraysConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.cpp b/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.cpp
index 8e6e6eb..1c533c1 100644
--- a/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.h b/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.h
index f012b08..96db7ee 100644
--- a/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/arrays/validator/ArraysIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysSBMLError.h b/src/sbml/packages/arrays/validator/ArraysSBMLError.h
index 57dc7ab..7a039e0 100644
--- a/src/sbml/packages/arrays/validator/ArraysSBMLError.h
+++ b/src/sbml/packages/arrays/validator/ArraysSBMLError.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysSBMLErrorTable.h b/src/sbml/packages/arrays/validator/ArraysSBMLErrorTable.h
index 475c095..89c5089 100644
--- a/src/sbml/packages/arrays/validator/ArraysSBMLErrorTable.h
+++ b/src/sbml/packages/arrays/validator/ArraysSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysValidator.cpp b/src/sbml/packages/arrays/validator/ArraysValidator.cpp
index c3c9812..e568e48 100644
--- a/src/sbml/packages/arrays/validator/ArraysValidator.cpp
+++ b/src/sbml/packages/arrays/validator/ArraysValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/ArraysValidator.h b/src/sbml/packages/arrays/validator/ArraysValidator.h
index ce34211..89ff421 100644
--- a/src/sbml/packages/arrays/validator/ArraysValidator.h
+++ b/src/sbml/packages/arrays/validator/ArraysValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/constraints/ArraysConsistencyConstraints.cpp b/src/sbml/packages/arrays/validator/constraints/ArraysConsistencyConstraints.cpp
index 6080ae7..c517b51 100644
--- a/src/sbml/packages/arrays/validator/constraints/ArraysConsistencyConstraints.cpp
+++ b/src/sbml/packages/arrays/validator/constraints/ArraysConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/arrays/validator/constraints/ArraysIdentifierConsistencyConstraints.cpp b/src/sbml/packages/arrays/validator/constraints/ArraysIdentifierConsistencyConstraints.cpp
index d96202e..6beb9e4 100644
--- a/src/sbml/packages/arrays/validator/constraints/ArraysIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/arrays/validator/constraints/ArraysIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/Makefile.in b/src/sbml/packages/comp/Makefile.in
index 379b58f..68ccdbd 100644
--- a/src/sbml/packages/comp/Makefile.in
+++ b/src/sbml/packages/comp/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/common/CompExtensionTypes.h b/src/sbml/packages/comp/common/CompExtensionTypes.h
index a58ec22..d4e0d9a 100644
--- a/src/sbml/packages/comp/common/CompExtensionTypes.h
+++ b/src/sbml/packages/comp/common/CompExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/common/Makefile.in b/src/sbml/packages/comp/common/Makefile.in
index e8767eb..496b10f 100644
--- a/src/sbml/packages/comp/common/Makefile.in
+++ b/src/sbml/packages/comp/common/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/common/compfwd.h b/src/sbml/packages/comp/common/compfwd.h
index bb914b7..3e825ab 100644
--- a/src/sbml/packages/comp/common/compfwd.h
+++ b/src/sbml/packages/comp/common/compfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/CompExtension.cpp b/src/sbml/packages/comp/extension/CompExtension.cpp
index d310cee..8a3898d 100644
--- a/src/sbml/packages/comp/extension/CompExtension.cpp
+++ b/src/sbml/packages/comp/extension/CompExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/CompExtension.h b/src/sbml/packages/comp/extension/CompExtension.h
index 545ab96..04c8e22 100644
--- a/src/sbml/packages/comp/extension/CompExtension.h
+++ b/src/sbml/packages/comp/extension/CompExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/CompModelPlugin.cpp b/src/sbml/packages/comp/extension/CompModelPlugin.cpp
index a0ef256..0894fae2 100644
--- a/src/sbml/packages/comp/extension/CompModelPlugin.cpp
+++ b/src/sbml/packages/comp/extension/CompModelPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -780,12 +780,11 @@ CompModelPlugin::instantiateSubmodels()
 int CompModelPlugin::saveAllReferencedElements()
 {
   set<SBase*> norefs;
-  return saveAllReferencedElements(norefs, norefs);
+  return saveAllReferencedElements(norefs, norefs, getSBMLDocument());
 }
 
-int CompModelPlugin::saveAllReferencedElements(set<SBase*> uniqueRefs, set<SBase*> replacedBys)
+int CompModelPlugin::saveAllReferencedElements(set<SBase*> uniqueRefs, set<SBase*> replacedBys, SBMLDocument* doc)
 {
-  SBMLDocument* doc = getSBMLDocument();
   Model* model = static_cast<Model*>(getParentSBMLObject());
   if (model==NULL) {
     if (doc) {
@@ -937,7 +936,7 @@ int CompModelPlugin::saveAllReferencedElements(set<SBase*> uniqueRefs, set<SBase
     if (subplug==NULL) {
       return LIBSBML_OPERATION_FAILED;
     }
-    ret = subplug->saveAllReferencedElements(uniqueRefs, replacedBys);
+    ret = subplug->saveAllReferencedElements(uniqueRefs, replacedBys, doc);
     if (ret != LIBSBML_OPERATION_SUCCESS) {
       return ret;
     }
diff --git a/src/sbml/packages/comp/extension/CompModelPlugin.h b/src/sbml/packages/comp/extension/CompModelPlugin.h
index d72ad11..c6cf865 100644
--- a/src/sbml/packages/comp/extension/CompModelPlugin.h
+++ b/src/sbml/packages/comp/extension/CompModelPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -28,12 +28,11 @@
  * @sbmlbrief{comp} Extension of Model.
  *
  * The CompModelPlugin class inherits from the SBMLSBasePlugin class, and
- * codifies the extentions to the Model class defined in the SBML
- * Level 3 @ref comp @if java "Hierarchical %Model Composition"@endif@~ 
- * package (“comp”).  This extention allows a Model to define
- * Submodels (other Models that are instantiated as new parts of the parent
- * Model), and Ports, a defined interface for including the given Model as a
- * Submodel of a different Model.
+ * codifies the extensions to the Model class defined in the SBML
+ * Level 3 @ref comp (“comp”) package.  This extension
+ * allows a Model to define Submodels (other Models that are instantiated as
+ * new parts of the parent Model), and Ports, a defined interface for
+ * including the given Model as a Submodel of a different Model.
  *
  * Submodels are stored in an optional child ListOfSubmodels object, which, 
  * if present, must contain one or more Submodel objects.  All of the Submodels
@@ -665,7 +664,7 @@ virtual int collectDeletionsAndDeleteSome(std::set<SBase*>* removed,
 
   /** @cond doxygenLibsbmlInternal */
   protected:
-  virtual int saveAllReferencedElements(std::set<SBase*> uniqueRefs, std::set<SBase*> replacedBys);
+  virtual int saveAllReferencedElements(std::set<SBase*> uniqueRefs, std::set<SBase*> replacedBys, SBMLDocument* doc);
   /** @endcond */
 
 };
diff --git a/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.cpp b/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.cpp
index ab3f6b3..ad573c7 100644
--- a/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.h b/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.h
index 7f5955a..9398a38 100644
--- a/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.h
+++ b/src/sbml/packages/comp/extension/CompSBMLDocumentPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -28,15 +28,14 @@
  * @sbmlbrief{comp} Extension of SBMLDocument.
  *
  * The CompSBMLDocumentPlugin class inherits from the SBMLDocumentPlugin
- * class, and codifies the extentions to the SBMLDocument class defined in
- * the SBML Level 3 @ref comp
- * @if java "Hierarchical %Model Composition"@endif@~ 
- * package (“comp”).  This extention allows multiple Model
- * objects to be defined in a single SBMLDocument, stored in an optional
- * child ListOfModelDefinitions object, as well as define references to Model
- * objects in other files, stored in the optional child
- * ListOfExternalModelDefinitions object.  These model definitions, if
- * present, allow Submodel objects to reference other Models to instantiate.
+ * class, and codifies the extensions to the SBMLDocument class defined in
+ * the SBML Level 3 @ref comp (“comp”) package.  This
+ * extension allows multiple Model objects to be defined in a single
+ * SBMLDocument, stored in an optional child ListOfModelDefinitions object,
+ * as well as define references to Model objects in other files, stored in
+ * the optional child ListOfExternalModelDefinitions object.  These model
+ * definitions, if present, allow Submodel objects to reference other Models
+ * to instantiate.
  *
  * The presence of ModelDefinitions and ExternalModelDefinitions in an
  * SBMLDocument does not change the default Model in the file.  If a
diff --git a/src/sbml/packages/comp/extension/CompSBasePlugin.cpp b/src/sbml/packages/comp/extension/CompSBasePlugin.cpp
index df7eb1e..9859647 100644
--- a/src/sbml/packages/comp/extension/CompSBasePlugin.cpp
+++ b/src/sbml/packages/comp/extension/CompSBasePlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/CompSBasePlugin.h b/src/sbml/packages/comp/extension/CompSBasePlugin.h
index 4cc5652..08cf3d3 100644
--- a/src/sbml/packages/comp/extension/CompSBasePlugin.h
+++ b/src/sbml/packages/comp/extension/CompSBasePlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,10 +27,9 @@
  * @class CompSBasePlugin
  * @sbmlbrief{comp} Extension of SBase.
  *
- * The CompSBasePlugin class inherits from the SBasePlugin class, 
- * and codifies the extentions to the SBase class defined in the
- * @ref comp @if java "Hierarchical %Model Composition"@endif@~ 
- * package (“comp”).  This extention allows the modeler to define
+ * The CompSBasePlugin class inherits from the SBasePlugin class, and
+ * codifies the extensions to the SBase class defined in the @ref comp
+ * (“comp”) package.  This extension allows the modeler to define
  * one or more submodel elements which the parent SBase object replaces,
  * and/or a single submodel element which replaces the parent SBase object.
 
diff --git a/src/sbml/packages/comp/extension/Makefile.in b/src/sbml/packages/comp/extension/Makefile.in
index a7ef1c3..3603f4d 100644
--- a/src/sbml/packages/comp/extension/Makefile.in
+++ b/src/sbml/packages/comp/extension/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/test/CMakeLists.txt b/src/sbml/packages/comp/extension/test/CMakeLists.txt
index cb80cc1..1480ed0 100644
--- a/src/sbml/packages/comp/extension/test/CMakeLists.txt
+++ b/src/sbml/packages/comp/extension/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/test/Makefile.in b/src/sbml/packages/comp/extension/test/Makefile.in
index ffd1ec9..8d760d7 100644
--- a/src/sbml/packages/comp/extension/test/Makefile.in
+++ b/src/sbml/packages/comp/extension/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/test/TestCheckConsistency.cpp b/src/sbml/packages/comp/extension/test/TestCheckConsistency.cpp
index 36ea055..2509430 100644
--- a/src/sbml/packages/comp/extension/test/TestCheckConsistency.cpp
+++ b/src/sbml/packages/comp/extension/test/TestCheckConsistency.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/test/TestExtensionObjects.cpp b/src/sbml/packages/comp/extension/test/TestExtensionObjects.cpp
index 46af950..89bd704 100644
--- a/src/sbml/packages/comp/extension/test/TestExtensionObjects.cpp
+++ b/src/sbml/packages/comp/extension/test/TestExtensionObjects.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/test/TestMultipleNamespaces.cpp b/src/sbml/packages/comp/extension/test/TestMultipleNamespaces.cpp
index 0abdddf..0ad8a90 100644
--- a/src/sbml/packages/comp/extension/test/TestMultipleNamespaces.cpp
+++ b/src/sbml/packages/comp/extension/test/TestMultipleNamespaces.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/extension/test/TestRunner.c b/src/sbml/packages/comp/extension/test/TestRunner.c
index 6f3d25b..248980b 100644
--- a/src/sbml/packages/comp/extension/test/TestRunner.c
+++ b/src/sbml/packages/comp/extension/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/CompBase.cpp b/src/sbml/packages/comp/sbml/CompBase.cpp
index 8788adf..a9eb4f2 100644
--- a/src/sbml/packages/comp/sbml/CompBase.cpp
+++ b/src/sbml/packages/comp/sbml/CompBase.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/CompBase.h b/src/sbml/packages/comp/sbml/CompBase.h
index 016eec7..c242b6c 100644
--- a/src/sbml/packages/comp/sbml/CompBase.h
+++ b/src/sbml/packages/comp/sbml/CompBase.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -29,10 +29,9 @@
  * @class CompBase
  * @sbmlbrief{comp} Convenience class for SBase-derived classes.
  *
- * The CompBase class derives from SBase, and defines a few functions
- * and features common to all SBase-derived classes in the SBML Level 3
- * @ref comp @if java "Hierarchical %Model Composition"@endif@~ package
- * (“comp”).
+ * The CompBase class derives from SBase, and defines a few functions and
+ * features common to all SBase-derived classes in the SBML Level 3
+ * @ref comp (“comp”) package.
  */
 
 #ifndef CompBase_h
diff --git a/src/sbml/packages/comp/sbml/Deletion.cpp b/src/sbml/packages/comp/sbml/Deletion.cpp
index 54d4f64..cd3a87e 100644
--- a/src/sbml/packages/comp/sbml/Deletion.cpp
+++ b/src/sbml/packages/comp/sbml/Deletion.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/Deletion.h b/src/sbml/packages/comp/sbml/Deletion.h
index 8a2c35c..c2c01b4 100644
--- a/src/sbml/packages/comp/sbml/Deletion.h
+++ b/src/sbml/packages/comp/sbml/Deletion.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,9 +27,8 @@
  * @sbmlbrief{comp} %Deletion of an object from a submodel.
  *
  * The Deletion class was introduced by the SBML Level 3 @ref comp
- * @if java "Hierarchical %Model Composition"@endif@~ package
- * (“comp”) to allow elements of submodels to be removed before
- * instantiation.
+ * (“comp”) package to allow elements of submodels to be removed
+ * before instantiation.
 
  * The Deletion object class is used to define a deletion operation
  * to be applied when a submodel instantiates a model definition.
diff --git a/src/sbml/packages/comp/sbml/ExternalModelDefinition.cpp b/src/sbml/packages/comp/sbml/ExternalModelDefinition.cpp
index 65e43fb..482b8d8 100644
--- a/src/sbml/packages/comp/sbml/ExternalModelDefinition.cpp
+++ b/src/sbml/packages/comp/sbml/ExternalModelDefinition.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ExternalModelDefinition.h b/src/sbml/packages/comp/sbml/ExternalModelDefinition.h
index 30b3764..b5ed4b2 100644
--- a/src/sbml/packages/comp/sbml/ExternalModelDefinition.h
+++ b/src/sbml/packages/comp/sbml/ExternalModelDefinition.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,8 +27,7 @@
  * @sbmlbrief{comp} A reference to an externally-defined model.
  *
  * The ExternalModelDefinition class was introduced by the SBML Level 3
- * @ref comp @if java "Hierarchical %Model Composition"@endif@~ 
- * package (“comp”) to define references to Model
+ * @ref comp (“comp”) package to define references to Model
  * objects defined in other files.
  * 
  * ExternalModelDefinition objects are model definitions---in and of
diff --git a/src/sbml/packages/comp/sbml/ListOfDeletions.cpp b/src/sbml/packages/comp/sbml/ListOfDeletions.cpp
index 58b067e..69013f9 100644
--- a/src/sbml/packages/comp/sbml/ListOfDeletions.cpp
+++ b/src/sbml/packages/comp/sbml/ListOfDeletions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfDeletions.h b/src/sbml/packages/comp/sbml/ListOfDeletions.h
index 4ee2ba3..305d9bd 100644
--- a/src/sbml/packages/comp/sbml/ListOfDeletions.h
+++ b/src/sbml/packages/comp/sbml/ListOfDeletions.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.cpp b/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.cpp
index 810ba7c..036f5c5 100644
--- a/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.cpp
+++ b/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.h b/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.h
index c187b04..252c757 100644
--- a/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.h
+++ b/src/sbml/packages/comp/sbml/ListOfExternalModelDefinitions.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfModelDefinitions.cpp b/src/sbml/packages/comp/sbml/ListOfModelDefinitions.cpp
index f100b5d..66ae22c 100644
--- a/src/sbml/packages/comp/sbml/ListOfModelDefinitions.cpp
+++ b/src/sbml/packages/comp/sbml/ListOfModelDefinitions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfModelDefinitions.h b/src/sbml/packages/comp/sbml/ListOfModelDefinitions.h
index 72eca48..73d0fa5 100644
--- a/src/sbml/packages/comp/sbml/ListOfModelDefinitions.h
+++ b/src/sbml/packages/comp/sbml/ListOfModelDefinitions.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfPorts.cpp b/src/sbml/packages/comp/sbml/ListOfPorts.cpp
index e05bae7..786a8a0 100644
--- a/src/sbml/packages/comp/sbml/ListOfPorts.cpp
+++ b/src/sbml/packages/comp/sbml/ListOfPorts.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfPorts.h b/src/sbml/packages/comp/sbml/ListOfPorts.h
index 924a745..014fd52 100644
--- a/src/sbml/packages/comp/sbml/ListOfPorts.h
+++ b/src/sbml/packages/comp/sbml/ListOfPorts.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfReplacedElements.cpp b/src/sbml/packages/comp/sbml/ListOfReplacedElements.cpp
index 8d57dda..b8d3dab 100644
--- a/src/sbml/packages/comp/sbml/ListOfReplacedElements.cpp
+++ b/src/sbml/packages/comp/sbml/ListOfReplacedElements.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfReplacedElements.h b/src/sbml/packages/comp/sbml/ListOfReplacedElements.h
index 9cc7cc2..290cb55 100644
--- a/src/sbml/packages/comp/sbml/ListOfReplacedElements.h
+++ b/src/sbml/packages/comp/sbml/ListOfReplacedElements.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfSubmodels.cpp b/src/sbml/packages/comp/sbml/ListOfSubmodels.cpp
index d4ae5ec..55b1ff5 100644
--- a/src/sbml/packages/comp/sbml/ListOfSubmodels.cpp
+++ b/src/sbml/packages/comp/sbml/ListOfSubmodels.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ListOfSubmodels.h b/src/sbml/packages/comp/sbml/ListOfSubmodels.h
index 84e17c4..166ebb3 100644
--- a/src/sbml/packages/comp/sbml/ListOfSubmodels.h
+++ b/src/sbml/packages/comp/sbml/ListOfSubmodels.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/Makefile.in b/src/sbml/packages/comp/sbml/Makefile.in
index d5347a0..5d3d45f 100644
--- a/src/sbml/packages/comp/sbml/Makefile.in
+++ b/src/sbml/packages/comp/sbml/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ModelDefinition.cpp b/src/sbml/packages/comp/sbml/ModelDefinition.cpp
index 7453e75..3f21c27 100644
--- a/src/sbml/packages/comp/sbml/ModelDefinition.cpp
+++ b/src/sbml/packages/comp/sbml/ModelDefinition.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ModelDefinition.h b/src/sbml/packages/comp/sbml/ModelDefinition.h
index aff4aaf..7f841bd 100644
--- a/src/sbml/packages/comp/sbml/ModelDefinition.h
+++ b/src/sbml/packages/comp/sbml/ModelDefinition.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -26,8 +26,7 @@
  * @class ModelDefinition
  * @sbmlbrief{comp} A model used in model composition.
  *
- * The @ref comp @if java "Hierarchical %Model Composition"@endif@~ 
- * package (“comp”) allows multiple Model objects
+ * The @ref comp (“comp”) package allows multiple Model objects
  * to be defined in a single SBMLDocument.  While these new Model objects are
  * not new SBML classes, they are given a new name,
  * <code><modelDefinition></code>, and reside in ListOfModelDefinition
diff --git a/src/sbml/packages/comp/sbml/Port.cpp b/src/sbml/packages/comp/sbml/Port.cpp
index a8a601c..660bee9 100644
--- a/src/sbml/packages/comp/sbml/Port.cpp
+++ b/src/sbml/packages/comp/sbml/Port.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/Port.h b/src/sbml/packages/comp/sbml/Port.h
index 4a1ba6d..c3bf963 100644
--- a/src/sbml/packages/comp/sbml/Port.h
+++ b/src/sbml/packages/comp/sbml/Port.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,15 +27,14 @@
  * @sbmlbrief{comp} An interface to be used in composition.
  *
  * The Port class was introduced by the SBML Level 3 @ref comp
- * @if java "Hierarchical %Model Composition"@endif@~ package
- * (“comp”) to allow a Model to define a standard interface
- * between it and other models that might use it as a submodel.  It derives
- * from the SBaseRef class, and the elements defined there refer to elements
- * in the same parent Model as the Port object.  A Port object instance
- * therefore uses those attributes to define a port for a component in a
- * model.  When other SBaseRef or SBaseRef-derived classes refer to a Port
- * object using a "portRef" attribute, the element being referenced is the
- * element the Port object itself points to.
+ * (“comp”) package to allow a Model to define a standard
+ * interface between it and other models that might use it as a submodel.  It
+ * derives from the SBaseRef class, and the elements defined there refer to
+ * elements in the same parent Model as the Port object.  A Port object
+ * instance therefore uses those attributes to define a port for a component
+ * in a model.  When other SBaseRef or SBaseRef-derived classes refer to a
+ * Port object using a "portRef" attribute, the element being referenced is
+ * the element the Port object itself points to.
  *
  * In the present formulation of the Hierarchical %Model Composition
  * package, the use of ports is not enforced, nor is there any
diff --git a/src/sbml/packages/comp/sbml/ReplacedBy.cpp b/src/sbml/packages/comp/sbml/ReplacedBy.cpp
index 2a1821c..fd667ad 100644
--- a/src/sbml/packages/comp/sbml/ReplacedBy.cpp
+++ b/src/sbml/packages/comp/sbml/ReplacedBy.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ReplacedBy.h b/src/sbml/packages/comp/sbml/ReplacedBy.h
index 0cc8a6e..6205ed9 100644
--- a/src/sbml/packages/comp/sbml/ReplacedBy.h
+++ b/src/sbml/packages/comp/sbml/ReplacedBy.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,8 +27,7 @@
  * @sbmlbrief{comp} Indicates an object replaced by another.
  *
  * The ReplacedBy class was introduced by the SBML Level 3 @ref comp
- * @if java "Hierarchical %Model Composition"@endif@~ 
- * package (“comp”) to allow submodel elements to be 'canonical'
+ * (“comp”) package to allow submodel elements to be 'canonical'
  * versions of the element while still allowing the parent model to reference
  * those elements.  Whereas a ReplacedElement object indicates that the
  * containing object replaces another, a ReplacedBy object indicates the
diff --git a/src/sbml/packages/comp/sbml/ReplacedElement.cpp b/src/sbml/packages/comp/sbml/ReplacedElement.cpp
index 9afd419..27d9cfc 100644
--- a/src/sbml/packages/comp/sbml/ReplacedElement.cpp
+++ b/src/sbml/packages/comp/sbml/ReplacedElement.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/ReplacedElement.h b/src/sbml/packages/comp/sbml/ReplacedElement.h
index a0a72f4..92a451b 100644
--- a/src/sbml/packages/comp/sbml/ReplacedElement.h
+++ b/src/sbml/packages/comp/sbml/ReplacedElement.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -26,14 +26,13 @@
  * @class ReplacedElement
  * @sbmlbrief{comp} Indicates an object replaces another.
  *
- * The ReplacedElement class was introduced by the SBML Level 3
- * @ref comp @if java "Hierarchical %Model Composition"@endif@~  package
- * (“comp”) to allow submodel elements to be replaced, but still
- * allow references to those elements to be valid.  A ReplacedElement object
- * is essentially a pointer to a submodel object that should be considered
- * 'replaced'.  The object holding the ReplacedElement instance is the one
- * doing the replacing; the object pointed to by the ReplacedElement object
- * is the object being replaced.
+ * The ReplacedElement class was introduced by the SBML Level 3 @ref
+ * comp (“comp”) package to allow submodel elements to be
+ * replaced, but still allow references to those elements to be valid.  A
+ * ReplacedElement object is essentially a pointer to a submodel object that
+ * should be considered 'replaced'.  The object holding the ReplacedElement
+ * instance is the one doing the replacing; the object pointed to by the
+ * ReplacedElement object is the object being replaced.
  *
  * A replacement implies that dependencies involving the replaced object
  * must be updated: all references to the replaced object elsewhere in the
diff --git a/src/sbml/packages/comp/sbml/Replacing.cpp b/src/sbml/packages/comp/sbml/Replacing.cpp
index 87928a0..c2082ce 100644
--- a/src/sbml/packages/comp/sbml/Replacing.cpp
+++ b/src/sbml/packages/comp/sbml/Replacing.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/Replacing.h b/src/sbml/packages/comp/sbml/Replacing.h
index d12a544..96a7519 100644
--- a/src/sbml/packages/comp/sbml/Replacing.h
+++ b/src/sbml/packages/comp/sbml/Replacing.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,10 +27,9 @@
  * @sbmlbrief{comp} Convenience class.
  *
  * The Replacing class does not exist officialy in the the @ref comp
- * @if java "Hierarchical %Model Composition"@endif@~ package
- * (“comp”), but is implemented here as a convenience subclass of
- * the ReplacedElement and ReplacedBy classes, since both of those classes
- * define a 'submodelRef' attribute.
+ * (“comp”) package, but is implemented here as a convenience
+ * subclass of the ReplacedElement and ReplacedBy classes, since both of
+ * those classes define a 'submodelRef' attribute.
  *
  * The required attribute "submodelRef" takes a value of type
  * SIdRef, which must be the identifier of a Submodel object in
diff --git a/src/sbml/packages/comp/sbml/SBaseRef.cpp b/src/sbml/packages/comp/sbml/SBaseRef.cpp
index e2d8eed..0fea441 100644
--- a/src/sbml/packages/comp/sbml/SBaseRef.cpp
+++ b/src/sbml/packages/comp/sbml/SBaseRef.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/SBaseRef.h b/src/sbml/packages/comp/sbml/SBaseRef.h
index 9e5771f..0c94a6a 100644
--- a/src/sbml/packages/comp/sbml/SBaseRef.h
+++ b/src/sbml/packages/comp/sbml/SBaseRef.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,12 +27,11 @@
  * @sbmlbrief{comp} Base class for references to objects.
  *
  * The SBaseRef class was introduced by the SBML Level 3 @ref comp
- * @if java "Hierarchical %Model Composition"@endif@~ package
- * (“comp”) as the principle way by which submodel elements may
- * be referenced.  The SBaseRef class is usually found as the base class of a
- * Port, Deletion, ReplacedElement, or ReplacedBy class, but may appear as an
- * child of one of the above classes if the parent object references a
- * Submodel.
+ * (“comp”) package as the principle way by which submodel
+ * elements may be referenced.  The SBaseRef class is usually found as the
+ * base class of a Port, Deletion, ReplacedElement, or ReplacedBy class, but
+ * may appear as an child of one of the above classes if the parent object
+ * references a Submodel.
  *
  * An SBaseRef object must reference an element using exactly one of the
  * optional attributes of the class.  Subclasses of SBaseRef may define
@@ -47,28 +46,28 @@
  * there are four optional attributes defined in the SBaseRef class that
  * are each methods of referencing an element:
  *
- * @li "portRef" (type PortSIdRef):  As its name implies, this attribute is used to
+ * @li "portRef" (type <code>PortSIdRef</code>):  As its name implies, this attribute is used to
  * refer to a port identifier, in the case when the reference being
  * constructed with the SBaseRef is intended to refer to a port on a
- * submodel.  The namespace of the PortSIdRef value is the set
- * of identifiers of type PortSId defined in the submodel, not
+ * submodel.  The namespace of the <code>PortSIdRef</code> value is the set
+ * of identifiers of type <code>PortSId</code> defined in the submodel, not
  * the parent model.
- * @li "idRef" (type SIdRef): As its name implies, this attribute is used to
+ * @li "idRef" (type <code>SIdRef</code>): As its name implies, this attribute is used to
  * refer to a regular identifier (i.e., the value of an "id"
  * attribute on some other object), in the case when the reference being
  * constructed with the SBaseRef is intended to refer to an object that
- * does not have a port identifier.  The namespace of the SIdRef
+ * does not have a port identifier.  The namespace of the <code>SIdRef</code>
  * value is the set of identifiers of type SId defined in the
  * submodel, not the parent model.
- * @li "unitRef" (type UnitSIdRef): This attribute is used to refer to the identifier
- * of a UnitDefinition object.  The namespace of the UnitSIdRef
+ * @li "unitRef" (type <code>UnitSIdRef</code>): This attribute is used to refer to the identifier
+ * of a UnitDefinition object.  The namespace of the <code>UnitSIdRef</code>
  * value is the set of unit identifiers defined in the submodel, not the
- * parent model. (Note that even though this attribute is of type UnitSIdRef,
+ * parent model. (Note that even though this attribute is of type <code>UnitSIdRef</code>,
  * the reserved unit identifiers that are defined by SBML Level 3 (see
  * Section 3.1.10 of the core specification) are
  * *not* permitted as values of "unitRef".  Reserved unit
  * identifiers may not be replaced or deleted.)
- * @li "metaIdRef" (type IDREF): This attribute is used to refer to a "metaid"
+ * @li "metaIdRef" (type <code>IDREF</code>): This attribute is used to refer to a "metaid"
  * attribute value on some other object, in the case when the reference
  * being constructed with the SBaseRef is intended to refer to an object
  * that does not have a port identifier.  The namespace of the "metaIdRef"
@@ -224,7 +223,7 @@ public:
   /**
    * Sets the value of the "metaIdRef" attribute of this SBaseRef.
    *
-   * This method fails if the id is not a valid syntax for an IDREF (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
+   * This method fails if the id is not a valid syntax for an <code>IDREF</code> (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
    * points to an element of the submodel using a different interface (@sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}).  An sBaseRef must use exactly one
    * method to point to a submodel element.
    *
@@ -266,7 +265,7 @@ public:
   
   /**
    * Sets the value of the "portRef" attribute of this SBaseRef.  Fails if
-   * the id is not a valid syntax for a PortSIdRef (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
+   * the id is not a valid syntax for a <code>PortSIdRef</code> (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
    * points to an element of the submodel using a different interface (@sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}).  An SBaseRef must use exactly one
    * method to point to a submodel element.
    *
@@ -309,7 +308,7 @@ public:
   /**
    * Sets the value of the "idRef" attribute of this SBaseRef.
    *
-   * This method fails if the id is not a valid syntax for an SIdRef (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
+   * This method fails if the id is not a valid syntax for an <code>SIdRef</code> (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
    * points to an element of the submodel using a different interface (@sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}).  A sBaseRef must use exactly one
    * method to point to a submodel element.
    *
@@ -352,7 +351,7 @@ public:
   /**
    * Sets the value of the "unitRef" attribute of this SBaseRef.
    *
-   * This method fails if the id is not a valid syntax for a UnitSIdRef (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
+   * This method fails if the id is not a valid syntax for a <code>UnitSIdRef</code> (@sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}), or if the SBaseRef already
    * points to an element of the submodel using a different interface (@sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}).  A sBaseRef must use exactly one
    * method to point to a submodel element.
    *
diff --git a/src/sbml/packages/comp/sbml/Submodel.cpp b/src/sbml/packages/comp/sbml/Submodel.cpp
index 78d1444..65e6453 100644
--- a/src/sbml/packages/comp/sbml/Submodel.cpp
+++ b/src/sbml/packages/comp/sbml/Submodel.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/Submodel.h b/src/sbml/packages/comp/sbml/Submodel.h
index eb6123f..bcdcb75 100644
--- a/src/sbml/packages/comp/sbml/Submodel.h
+++ b/src/sbml/packages/comp/sbml/Submodel.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,12 +27,11 @@
  * @sbmlbrief{comp} A model instance inside another model.
  *
  * The Submodel class was introduced by the SBML Level 3 @ref comp
- * @if java "Hierarchical %Model Composition"@endif@~ package
- * (“comp”) as the principle way by which models are structured
- * hierarchically.  Submodels are instantiations of models contained within
- * other models.  They reference another Model that is to be instantiated
- * within its parent Model, and additionally define how that Model is to be
- * modified before instantiation.
+ * (“comp”) package as the principle way by which models are
+ * structured hierarchically.  Submodels are instantiations of models
+ * contained within other models.  They reference another Model that is to be
+ * instantiated within its parent Model, and additionally define how that
+ * Model is to be modified before instantiation.
  *
  * The Submodel object class has a required attribute "modelRef", which must
  * reference another Model or ExternalModelDefinition object present in the
diff --git a/src/sbml/packages/comp/sbml/test/CMakeLists.txt b/src/sbml/packages/comp/sbml/test/CMakeLists.txt
index 239cf84..b73e0b3 100644
--- a/src/sbml/packages/comp/sbml/test/CMakeLists.txt
+++ b/src/sbml/packages/comp/sbml/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/Makefile.in b/src/sbml/packages/comp/sbml/test/Makefile.in
index e226a73..c674056 100644
--- a/src/sbml/packages/comp/sbml/test/Makefile.in
+++ b/src/sbml/packages/comp/sbml/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestDeletion.c b/src/sbml/packages/comp/sbml/test/TestDeletion.c
index ec0b94e..3e39d33 100644
--- a/src/sbml/packages/comp/sbml/test/TestDeletion.c
+++ b/src/sbml/packages/comp/sbml/test/TestDeletion.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestExternalModelDefinition.c b/src/sbml/packages/comp/sbml/test/TestExternalModelDefinition.c
index 82e5636..a379f0e 100644
--- a/src/sbml/packages/comp/sbml/test/TestExternalModelDefinition.c
+++ b/src/sbml/packages/comp/sbml/test/TestExternalModelDefinition.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestModelDefinition.c b/src/sbml/packages/comp/sbml/test/TestModelDefinition.c
index 0517fb0..1e4e268 100644
--- a/src/sbml/packages/comp/sbml/test/TestModelDefinition.c
+++ b/src/sbml/packages/comp/sbml/test/TestModelDefinition.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestPort.c b/src/sbml/packages/comp/sbml/test/TestPort.c
index 0f26362..3a35449 100644
--- a/src/sbml/packages/comp/sbml/test/TestPort.c
+++ b/src/sbml/packages/comp/sbml/test/TestPort.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestReadWriteSBase.cpp b/src/sbml/packages/comp/sbml/test/TestReadWriteSBase.cpp
index 562488a..3159c40 100644
--- a/src/sbml/packages/comp/sbml/test/TestReadWriteSBase.cpp
+++ b/src/sbml/packages/comp/sbml/test/TestReadWriteSBase.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestReplacedBy.c b/src/sbml/packages/comp/sbml/test/TestReplacedBy.c
index 11f3c95..ff3000c 100644
--- a/src/sbml/packages/comp/sbml/test/TestReplacedBy.c
+++ b/src/sbml/packages/comp/sbml/test/TestReplacedBy.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestReplacedElement.c b/src/sbml/packages/comp/sbml/test/TestReplacedElement.c
index 28fa096..947556a 100644
--- a/src/sbml/packages/comp/sbml/test/TestReplacedElement.c
+++ b/src/sbml/packages/comp/sbml/test/TestReplacedElement.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestRunner.c b/src/sbml/packages/comp/sbml/test/TestRunner.c
index 32bcf2d..32f0da6 100644
--- a/src/sbml/packages/comp/sbml/test/TestRunner.c
+++ b/src/sbml/packages/comp/sbml/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestSBaseObjects.cpp b/src/sbml/packages/comp/sbml/test/TestSBaseObjects.cpp
index 1f153ce..51b7aa0 100644
--- a/src/sbml/packages/comp/sbml/test/TestSBaseObjects.cpp
+++ b/src/sbml/packages/comp/sbml/test/TestSBaseObjects.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestSBaseRef.c b/src/sbml/packages/comp/sbml/test/TestSBaseRef.c
index dda739f..cb0e2a6 100644
--- a/src/sbml/packages/comp/sbml/test/TestSBaseRef.c
+++ b/src/sbml/packages/comp/sbml/test/TestSBaseRef.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/sbml/test/TestSubmodel.c b/src/sbml/packages/comp/sbml/test/TestSubmodel.c
index 48b19c8..0dda584 100644
--- a/src/sbml/packages/comp/sbml/test/TestSubmodel.c
+++ b/src/sbml/packages/comp/sbml/test/TestSubmodel.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/CompFlatteningConverter.cpp b/src/sbml/packages/comp/util/CompFlatteningConverter.cpp
index 2e53fd6..31bd720 100644
--- a/src/sbml/packages/comp/util/CompFlatteningConverter.cpp
+++ b/src/sbml/packages/comp/util/CompFlatteningConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/CompFlatteningConverter.h b/src/sbml/packages/comp/util/CompFlatteningConverter.h
index b699560..e68a31a 100644
--- a/src/sbml/packages/comp/util/CompFlatteningConverter.h
+++ b/src/sbml/packages/comp/util/CompFlatteningConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/SBMLFileResolver.cpp b/src/sbml/packages/comp/util/SBMLFileResolver.cpp
index 2512d40..857d376 100644
--- a/src/sbml/packages/comp/util/SBMLFileResolver.cpp
+++ b/src/sbml/packages/comp/util/SBMLFileResolver.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/SBMLFileResolver.h b/src/sbml/packages/comp/util/SBMLFileResolver.h
index 1dcb029..06b0e21 100644
--- a/src/sbml/packages/comp/util/SBMLFileResolver.h
+++ b/src/sbml/packages/comp/util/SBMLFileResolver.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/SBMLResolver.cpp b/src/sbml/packages/comp/util/SBMLResolver.cpp
index d2ff544..571ffaa 100644
--- a/src/sbml/packages/comp/util/SBMLResolver.cpp
+++ b/src/sbml/packages/comp/util/SBMLResolver.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/SBMLResolver.h b/src/sbml/packages/comp/util/SBMLResolver.h
index 29fb9ee..f19ec6d 100644
--- a/src/sbml/packages/comp/util/SBMLResolver.h
+++ b/src/sbml/packages/comp/util/SBMLResolver.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/SBMLResolverRegistry.cpp b/src/sbml/packages/comp/util/SBMLResolverRegistry.cpp
index 4f88be3..93d258e 100644
--- a/src/sbml/packages/comp/util/SBMLResolverRegistry.cpp
+++ b/src/sbml/packages/comp/util/SBMLResolverRegistry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -30,6 +30,7 @@
 #include <vector>
 #include <string>
 #include <sstream>
+#include <cstdlib>
 
 #include <sbml/SBMLDocument.h>
 #include <sbml/packages/comp/util/SBMLResolverRegistry.h>
@@ -41,11 +42,26 @@ using namespace std;
 LIBSBML_CPP_NAMESPACE_BEGIN
 
 
+/** @cond doxygenLibsbmlInternal */
+SBMLResolverRegistry* SBMLResolverRegistry::mInstance = NULL;
+/** @endcond */
+
+void 
+SBMLResolverRegistry::deleteResolerRegistryInstance()
+{
+  delete SBMLResolverRegistry::mInstance;
+  SBMLResolverRegistry::mInstance = NULL;
+}
+
 SBMLResolverRegistry&
 SBMLResolverRegistry::getInstance()
 {
-  static SBMLResolverRegistry singletonObj; 
-  return singletonObj;
+  if (SBMLResolverRegistry::mInstance == NULL) 
+  {
+    mInstance = new SBMLResolverRegistry();
+    std::atexit(&SBMLResolverRegistry::deleteResolerRegistryInstance);
+  }
+  return *mInstance;
 }
 
 int
diff --git a/src/sbml/packages/comp/util/SBMLResolverRegistry.h b/src/sbml/packages/comp/util/SBMLResolverRegistry.h
index 21eb715..7e5569d 100644
--- a/src/sbml/packages/comp/util/SBMLResolverRegistry.h
+++ b/src/sbml/packages/comp/util/SBMLResolverRegistry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -170,6 +170,10 @@ public:
    */
   virtual SBMLUri* resolveUri(const std::string &uri, const std::string& baseUri="") const;
 
+  /**
+   * deletes the static resolver registry instance
+   */
+  static void deleteResolerRegistryInstance();
 
 protected:
 
@@ -185,6 +189,7 @@ protected:
   /** @cond doxygenLibsbmlInternal */
   std::vector<const SBMLResolver*>  mResolvers;
   std::set<const SBMLDocument*>  mOwnedDocuments;
+  static SBMLResolverRegistry* mInstance;
   /** @endcond */
 };
 
diff --git a/src/sbml/packages/comp/util/SBMLUri.cpp b/src/sbml/packages/comp/util/SBMLUri.cpp
index 4957290..9ba9b21 100644
--- a/src/sbml/packages/comp/util/SBMLUri.cpp
+++ b/src/sbml/packages/comp/util/SBMLUri.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/SBMLUri.h b/src/sbml/packages/comp/util/SBMLUri.h
index a080f0d..cdbe282 100644
--- a/src/sbml/packages/comp/util/SBMLUri.h
+++ b/src/sbml/packages/comp/util/SBMLUri.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/CMakeLists.txt b/src/sbml/packages/comp/util/test/CMakeLists.txt
index e062563..952afc8 100644
--- a/src/sbml/packages/comp/util/test/CMakeLists.txt
+++ b/src/sbml/packages/comp/util/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/TestCompFlatteningConverter.cpp b/src/sbml/packages/comp/util/test/TestCompFlatteningConverter.cpp
index f4d411c..53e91d4 100644
--- a/src/sbml/packages/comp/util/test/TestCompFlatteningConverter.cpp
+++ b/src/sbml/packages/comp/util/test/TestCompFlatteningConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -2113,8 +2113,6 @@ create_suite_TestFlatteningConverter (void)
   
                                                                            tcase_add_test(tcase, test_invalid_layout_disabled);
   
-  tcase_add_test(tcase, test_submodel_callbacks);
-  
   tcase_add_test(tcase, test_comp_flatten_double_ext2);
   tcase_add_test(tcase, test_comp_get_flattening_converter);
   tcase_add_test(tcase, test_comp_flatten_aggregate);
@@ -2244,6 +2242,7 @@ create_suite_TestFlatteningConverter (void)
   tcase_add_test(tcase, test_comp_flatten_converter_qual10);
 
   tcase_add_test(tcase, test_comp_validator_44781839);
+  tcase_add_test(tcase, test_submodel_callbacks);
  
   suite_add_tcase(suite, tcase);
 
diff --git a/src/sbml/packages/comp/util/test/TestCompFlatteningConverterStripPackage.cpp b/src/sbml/packages/comp/util/test/TestCompFlatteningConverterStripPackage.cpp
index 146d8e6..eb0de9a 100644
--- a/src/sbml/packages/comp/util/test/TestCompFlatteningConverterStripPackage.cpp
+++ b/src/sbml/packages/comp/util/test/TestCompFlatteningConverterStripPackage.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/TestCompFlatteningErrorMessages.cpp b/src/sbml/packages/comp/util/test/TestCompFlatteningErrorMessages.cpp
index a6955f2..b38fa0e 100644
--- a/src/sbml/packages/comp/util/test/TestCompFlatteningErrorMessages.cpp
+++ b/src/sbml/packages/comp/util/test/TestCompFlatteningErrorMessages.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -3706,13 +3706,52 @@ START_TEST(test_comp_flatten_invalid_read_only)
 }
 END_TEST
 
+START_TEST(test_comp_flatten_port_and_direct_ref)
+{
+  ConversionProperties props;
+  
+  props.addOption("flatten comp");
+  props.addOption("performValidation", true);
+
+  SBMLConverter* converter = 
+    SBMLConverterRegistry::getInstance().getConverterFor(props);
+  
+  // load document
+  string dir(TestDataDirectory);
+  string fileName = dir + "port_and_replace.xml";  
+  SBMLDocument* doc = readSBMLFromFile(fileName.c_str());
+
+  // fail if there is no model 
+  //(readSBMLFromFile always returns a valid document)
+  fail_unless(doc->getNumErrors() == 0);
+  fail_unless(doc->getModel() != NULL);
+
+  converter->setDocument(doc);
+  int result = converter->convert();
+
+  fail_unless( result == LIBSBML_OPERATION_FAILED);
+
+  SBMLErrorLog* errors = doc->getErrorLog();
+
+  fail_unless(errors->getNumErrors() == 2);
+  fail_unless(errors->contains(CompModelFlatteningFailed) == true);
+  fail_unless(errors->contains(CompNoMultipleReferences) == true);
+
+  delete doc;
+  delete converter;
+}
+END_TEST
+
 
 Suite *
 create_suite_TestFlatteningErrorMessages (void)
 { 
   TCase *tcase = tcase_create("SBMLCompFlatteningErrorMessages");
   Suite *suite = suite_create("SBMLCompFlatteningErrorMessages");
-  
+
+  tcase_add_test(tcase, test_comp_flatten_port_and_direct_ref);
+
+
   tcase_add_test(tcase, test_comp_flatten_invalid);
   tcase_add_test(tcase, test_comp_flatten_invalid2);
   tcase_add_test(tcase, test_comp_flatten_invalid3);
diff --git a/src/sbml/packages/comp/util/test/TestCompFlatteningNewFlags.cpp b/src/sbml/packages/comp/util/test/TestCompFlatteningNewFlags.cpp
index 16684cd..be89e15 100644
--- a/src/sbml/packages/comp/util/test/TestCompFlatteningNewFlags.cpp
+++ b/src/sbml/packages/comp/util/test/TestCompFlatteningNewFlags.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/TestCompFlatteningUnknownPackageRefs.cpp b/src/sbml/packages/comp/util/test/TestCompFlatteningUnknownPackageRefs.cpp
index 265f3ac..7967ac3 100644
--- a/src/sbml/packages/comp/util/test/TestCompFlatteningUnknownPackageRefs.cpp
+++ b/src/sbml/packages/comp/util/test/TestCompFlatteningUnknownPackageRefs.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/TestExternalModelResolving.cpp b/src/sbml/packages/comp/util/test/TestExternalModelResolving.cpp
index 19989d4..a56d6bd 100644
--- a/src/sbml/packages/comp/util/test/TestExternalModelResolving.cpp
+++ b/src/sbml/packages/comp/util/test/TestExternalModelResolving.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/TestRunner.c b/src/sbml/packages/comp/util/test/TestRunner.c
index cd649c5..53ab276 100644
--- a/src/sbml/packages/comp/util/test/TestRunner.c
+++ b/src/sbml/packages/comp/util/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/TestURIResolvers.cpp b/src/sbml/packages/comp/util/test/TestURIResolvers.cpp
index b9eab29..3b3f45b 100644
--- a/src/sbml/packages/comp/util/test/TestURIResolvers.cpp
+++ b/src/sbml/packages/comp/util/test/TestURIResolvers.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/util/test/test-data/pnr_submodel.xml b/src/sbml/packages/comp/util/test/test-data/pnr_submodel.xml
new file mode 100644
index 0000000..b503f7a
--- /dev/null
+++ b/src/sbml/packages/comp/util/test/test-data/pnr_submodel.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" level="3" version="1" comp:required="true">
+  <model metaid="meta_bb0a0ef3127d41708ae97b4f4c26f2d1" sboTerm="SBO:0000062" id="toy_ode_model" name="ODE/SSA submodel">
+<listOfUnitDefinitions>
+  <unitDefinition id="m3">
+    <listOfUnits>
+      <unit kind="metre" exponent="3" scale="0" multiplier="1"/>
+    </listOfUnits>
+  </unitDefinition>
+</listOfUnitDefinitions><listOfCompartments>
+  <compartment id="extern" name="external compartment" spatialDimensions="3" size="1" units="m3" constant="true"/>
+</listOfCompartments>
+<comp:listOfPorts>
+  <comp:port sboTerm="SBO:0000599" comp:idRef="extern" comp:id="extern_port"/>
+</comp:listOfPorts>
+</model>
+</sbml>
diff --git a/src/sbml/packages/comp/util/test/test-data/port_and_replace.xml b/src/sbml/packages/comp/util/test/test-data/port_and_replace.xml
new file mode 100644
index 0000000..d135bef
--- /dev/null
+++ b/src/sbml/packages/comp/util/test/test-data/port_and_replace.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:comp="http://www.sbml.org/sbml/level3/version1/comp/version1" level="3" version="1" comp:required="true">
+  <model metaid="meta_2d44bc60a0d144cbaaafae368e96f316" id="toy_top_level" name="Top level model">
+ <listOfUnitDefinitions>
+  <unitDefinition id="m3">
+    <listOfUnits>
+      <unit kind="metre" exponent="3" scale="0" multiplier="1"/>
+    </listOfUnits>
+  </unitDefinition>
+</listOfUnitDefinitions>
+<listOfCompartments>
+  <compartment id="extern" name="external compartment" spatialDimensions="3" size="1" units="m3" constant="true">
+    <comp:listOfReplacedElements>
+      <comp:replacedElement comp:idRef="extern" comp:submodelRef="model"/>
+    </comp:listOfReplacedElements>
+  </compartment>
+</listOfCompartments><comp:listOfSubmodels>
+  <comp:submodel sboTerm="SBO:0000062" comp:id="model" comp:modelRef="toy_ode_model"/>
+</comp:listOfSubmodels>
+</model>
+<comp:listOfExternalModelDefinitions>
+  <comp:externalModelDefinition comp:id="toy_ode_model" comp:name="toy_ode_model" comp:source="pnr_submodel.xml" comp:modelRef="toy_ode_model"/>
+</comp:listOfExternalModelDefinitions>
+</sbml>
diff --git a/src/sbml/packages/comp/validator/CompConsistencyValidator.cpp b/src/sbml/packages/comp/validator/CompConsistencyValidator.cpp
index aa57232..f41d0c4 100644
--- a/src/sbml/packages/comp/validator/CompConsistencyValidator.cpp
+++ b/src/sbml/packages/comp/validator/CompConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompConsistencyValidator.h b/src/sbml/packages/comp/validator/CompConsistencyValidator.h
index abb858b..79b3c9c 100644
--- a/src/sbml/packages/comp/validator/CompConsistencyValidator.h
+++ b/src/sbml/packages/comp/validator/CompConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.cpp b/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.cpp
index 11802ca..aef3981 100644
--- a/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.h b/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.h
index 15f86cc..e0de165 100644
--- a/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/comp/validator/CompIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompSBMLError.h b/src/sbml/packages/comp/validator/CompSBMLError.h
index 6c76a21..de0c345 100644
--- a/src/sbml/packages/comp/validator/CompSBMLError.h
+++ b/src/sbml/packages/comp/validator/CompSBMLError.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompSBMLErrorTable.h b/src/sbml/packages/comp/validator/CompSBMLErrorTable.h
index 59bc914..9f6ef5f 100644
--- a/src/sbml/packages/comp/validator/CompSBMLErrorTable.h
+++ b/src/sbml/packages/comp/validator/CompSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.cpp b/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.cpp
index 5de0afb..e77ff53 100644
--- a/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.cpp
+++ b/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.h b/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.h
index 2171f64..ce0af00 100644
--- a/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.h
+++ b/src/sbml/packages/comp/validator/CompUnitConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompValidator.cpp b/src/sbml/packages/comp/validator/CompValidator.cpp
index baafb73..7df60bb 100644
--- a/src/sbml/packages/comp/validator/CompValidator.cpp
+++ b/src/sbml/packages/comp/validator/CompValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/CompValidator.h b/src/sbml/packages/comp/validator/CompValidator.h
index 494dd5b..cb7d729 100644
--- a/src/sbml/packages/comp/validator/CompValidator.h
+++ b/src/sbml/packages/comp/validator/CompValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/Makefile.in b/src/sbml/packages/comp/validator/Makefile.in
index dd17f1d..b2fe69f 100644
--- a/src/sbml/packages/comp/validator/Makefile.in
+++ b/src/sbml/packages/comp/validator/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/ClassReplacements.cpp b/src/sbml/packages/comp/validator/constraints/ClassReplacements.cpp
index b5293e6..1853cd8 100644
--- a/src/sbml/packages/comp/validator/constraints/ClassReplacements.cpp
+++ b/src/sbml/packages/comp/validator/constraints/ClassReplacements.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/ClassReplacements.h b/src/sbml/packages/comp/validator/constraints/ClassReplacements.h
index 37e149b..ede994e 100644
--- a/src/sbml/packages/comp/validator/constraints/ClassReplacements.h
+++ b/src/sbml/packages/comp/validator/constraints/ClassReplacements.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraints.cpp b/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraints.cpp
index 7e46c1a..bd728d6 100644
--- a/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraints.cpp
+++ b/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -248,6 +248,9 @@ public:
             const SBMLResolverRegistry& registry = 
                                  SBMLResolverRegistry::getInstance();
             mReferencedDocument = registry.resolve(uri, locationURI);
+
+            pre(mReferencedDocument != NULL);
+
             if (mReferencedDocument != NULL)
             {
               if (emd->isSetModelRef() == false)
diff --git a/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraintsDeclared.cxx b/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraintsDeclared.cxx
index adaf57a..96aa07e 100644
--- a/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/comp/validator/constraints/CompConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/CompIdBase.cpp b/src/sbml/packages/comp/validator/constraints/CompIdBase.cpp
index 08d933f..207a564 100644
--- a/src/sbml/packages/comp/validator/constraints/CompIdBase.cpp
+++ b/src/sbml/packages/comp/validator/constraints/CompIdBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/CompIdBase.h b/src/sbml/packages/comp/validator/constraints/CompIdBase.h
index 0c71d61..ca7b27b 100644
--- a/src/sbml/packages/comp/validator/constraints/CompIdBase.h
+++ b/src/sbml/packages/comp/validator/constraints/CompIdBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraints.cpp b/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraints.cpp
index 44d3ddc..6d39053 100644
--- a/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraintsDeclared.cxx b/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraintsDeclared.cxx
index d727ed1..908bd56 100644
--- a/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/comp/validator/constraints/CompIdentifierConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraints.cpp b/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraints.cpp
index 54795b9..5d41638 100644
--- a/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraints.cpp
+++ b/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraintsDeclared.cxx b/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraintsDeclared.cxx
index 66f743f..ee388e1 100644
--- a/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/comp/validator/constraints/CompUnitConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.cpp b/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.cpp
index 43af944..3e8f998 100644
--- a/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.cpp
+++ b/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.h b/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.h
index 3862ecc..7e9b798 100644
--- a/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.h
+++ b/src/sbml/packages/comp/validator/constraints/ExtModelReferenceCycles.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/Makefile.in b/src/sbml/packages/comp/validator/constraints/Makefile.in
index 766d69a..3bd6540 100644
--- a/src/sbml/packages/comp/validator/constraints/Makefile.in
+++ b/src/sbml/packages/comp/validator/constraints/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.cpp b/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.cpp
index 4896feb..d2f3b95 100644
--- a/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.cpp
+++ b/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.h b/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.h
index 1e8334a..6d46e41 100644
--- a/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.h
+++ b/src/sbml/packages/comp/validator/constraints/PackageIdReplacementCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.cpp b/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.cpp
index f24799e..587772d 100644
--- a/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.cpp
+++ b/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.h b/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.h
index 618a81c..67ff208 100644
--- a/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.h
+++ b/src/sbml/packages/comp/validator/constraints/SubmodelReferenceCycles.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.cpp b/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.cpp
index eb3924a..bf65bc6 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.cpp
+++ b/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.h b/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.h
index e5c2bbf..b52a6fd 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.h
+++ b/src/sbml/packages/comp/validator/constraints/UniqueCompIdBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.cpp b/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.cpp
index 8a357e4..9669332 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.cpp
+++ b/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.h b/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.h
index e17305f..1019cbf 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.h
+++ b/src/sbml/packages/comp/validator/constraints/UniqueComponentIds.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueModelIds.cpp b/src/sbml/packages/comp/validator/constraints/UniqueModelIds.cpp
index a6e735c..219a318 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueModelIds.cpp
+++ b/src/sbml/packages/comp/validator/constraints/UniqueModelIds.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueModelIds.h b/src/sbml/packages/comp/validator/constraints/UniqueModelIds.h
index f9d981e..38e15f1 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueModelIds.h
+++ b/src/sbml/packages/comp/validator/constraints/UniqueModelIds.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniquePortIds.cpp b/src/sbml/packages/comp/validator/constraints/UniquePortIds.cpp
index 0559a20..013d0cd 100644
--- a/src/sbml/packages/comp/validator/constraints/UniquePortIds.cpp
+++ b/src/sbml/packages/comp/validator/constraints/UniquePortIds.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniquePortIds.h b/src/sbml/packages/comp/validator/constraints/UniquePortIds.h
index 477e342..2d45939 100644
--- a/src/sbml/packages/comp/validator/constraints/UniquePortIds.h
+++ b/src/sbml/packages/comp/validator/constraints/UniquePortIds.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniquePortReferences.cpp b/src/sbml/packages/comp/validator/constraints/UniquePortReferences.cpp
index ccdb050..209b595 100644
--- a/src/sbml/packages/comp/validator/constraints/UniquePortReferences.cpp
+++ b/src/sbml/packages/comp/validator/constraints/UniquePortReferences.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniquePortReferences.h b/src/sbml/packages/comp/validator/constraints/UniquePortReferences.h
index 39e6cd3..b0198b6 100644
--- a/src/sbml/packages/comp/validator/constraints/UniquePortReferences.h
+++ b/src/sbml/packages/comp/validator/constraints/UniquePortReferences.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.cpp b/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.cpp
index 82e79d6..4ccdd10 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.cpp
+++ b/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.h b/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.h
index 08a1148..96d710e 100644
--- a/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.h
+++ b/src/sbml/packages/comp/validator/constraints/UniqueReplacedReferences.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.cpp b/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.cpp
index 69431da..e912f99 100644
--- a/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.cpp
+++ b/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.h b/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.h
index 0b63d0b..56c91ba 100644
--- a/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.h
+++ b/src/sbml/packages/comp/validator/constraints/UnitReplacementCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/test/CMakeLists.txt b/src/sbml/packages/comp/validator/test/CMakeLists.txt
index 41b846c..a91db8e 100644
--- a/src/sbml/packages/comp/validator/test/CMakeLists.txt
+++ b/src/sbml/packages/comp/validator/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/test/Makefile.in b/src/sbml/packages/comp/validator/test/Makefile.in
index 3ac4c22..14171d7 100644
--- a/src/sbml/packages/comp/validator/test/Makefile.in
+++ b/src/sbml/packages/comp/validator/test/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/test/TestCompConsistencyValidator.cpp b/src/sbml/packages/comp/validator/test/TestCompConsistencyValidator.cpp
index 07c8106..a7b3993 100644
--- a/src/sbml/packages/comp/validator/test/TestCompConsistencyValidator.cpp
+++ b/src/sbml/packages/comp/validator/test/TestCompConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/test/TestFile.cpp b/src/sbml/packages/comp/validator/test/TestFile.cpp
index 806b9b1..9900153 100644
--- a/src/sbml/packages/comp/validator/test/TestFile.cpp
+++ b/src/sbml/packages/comp/validator/test/TestFile.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/test/TestFile.h b/src/sbml/packages/comp/validator/test/TestFile.h
index 0b8ddd4..bfb56ff 100644
--- a/src/sbml/packages/comp/validator/test/TestFile.h
+++ b/src/sbml/packages/comp/validator/test/TestFile.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/test/TestValidator.cpp b/src/sbml/packages/comp/validator/test/TestValidator.cpp
index d40b7e7..82a3ac5 100644
--- a/src/sbml/packages/comp/validator/test/TestValidator.cpp
+++ b/src/sbml/packages/comp/validator/test/TestValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/comp/validator/test/TestValidator.h b/src/sbml/packages/comp/validator/test/TestValidator.h
index e2caa1d..54c5380 100644
--- a/src/sbml/packages/comp/validator/test/TestValidator.h
+++ b/src/sbml/packages/comp/validator/test/TestValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/common/DistribExtensionTypes.h b/src/sbml/packages/distrib/common/DistribExtensionTypes.h
index f4a3100..7263ee3 100644
--- a/src/sbml/packages/distrib/common/DistribExtensionTypes.h
+++ b/src/sbml/packages/distrib/common/DistribExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/common/distribfwd.h b/src/sbml/packages/distrib/common/distribfwd.h
index 0c6eaf8..b6b309e 100644
--- a/src/sbml/packages/distrib/common/distribfwd.h
+++ b/src/sbml/packages/distrib/common/distribfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribExtension.cpp b/src/sbml/packages/distrib/extension/DistribExtension.cpp
index 2c94971..6b62d61 100644
--- a/src/sbml/packages/distrib/extension/DistribExtension.cpp
+++ b/src/sbml/packages/distrib/extension/DistribExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribExtension.h b/src/sbml/packages/distrib/extension/DistribExtension.h
index 2906f9b..9f5abc3 100644
--- a/src/sbml/packages/distrib/extension/DistribExtension.h
+++ b/src/sbml/packages/distrib/extension/DistribExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.cpp b/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.cpp
index 47093d6..d6d53ce 100644
--- a/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.cpp
+++ b/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.h b/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.h
index 2ed4fc8..51930d3 100644
--- a/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.h
+++ b/src/sbml/packages/distrib/extension/DistribFunctionDefinitionPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.cpp b/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.cpp
index 889de97..ed929f8 100644
--- a/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.h b/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.h
index 00dc2f7..ac820ed 100644
--- a/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.h
+++ b/src/sbml/packages/distrib/extension/DistribSBMLDocumentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribSBasePlugin.cpp b/src/sbml/packages/distrib/extension/DistribSBasePlugin.cpp
index 45797b4..fcb3c6e 100644
--- a/src/sbml/packages/distrib/extension/DistribSBasePlugin.cpp
+++ b/src/sbml/packages/distrib/extension/DistribSBasePlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/extension/DistribSBasePlugin.h b/src/sbml/packages/distrib/extension/DistribSBasePlugin.h
index 117cabd..049316d 100644
--- a/src/sbml/packages/distrib/extension/DistribSBasePlugin.h
+++ b/src/sbml/packages/distrib/extension/DistribSBasePlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/sbml/DistribInput.cpp b/src/sbml/packages/distrib/sbml/DistribInput.cpp
index ad5c9ea..1e4524f 100644
--- a/src/sbml/packages/distrib/sbml/DistribInput.cpp
+++ b/src/sbml/packages/distrib/sbml/DistribInput.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/sbml/DistribInput.h b/src/sbml/packages/distrib/sbml/DistribInput.h
index 7548d1d..593f13a 100644
--- a/src/sbml/packages/distrib/sbml/DistribInput.h
+++ b/src/sbml/packages/distrib/sbml/DistribInput.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/sbml/DrawFromDistribution.cpp b/src/sbml/packages/distrib/sbml/DrawFromDistribution.cpp
index c6c1d72..b797d6b 100644
--- a/src/sbml/packages/distrib/sbml/DrawFromDistribution.cpp
+++ b/src/sbml/packages/distrib/sbml/DrawFromDistribution.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/sbml/DrawFromDistribution.h b/src/sbml/packages/distrib/sbml/DrawFromDistribution.h
index 7d46663..3034257 100644
--- a/src/sbml/packages/distrib/sbml/DrawFromDistribution.h
+++ b/src/sbml/packages/distrib/sbml/DrawFromDistribution.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/sbml/Uncertainty.cpp b/src/sbml/packages/distrib/sbml/Uncertainty.cpp
index 24d95d3..72ee4ed 100644
--- a/src/sbml/packages/distrib/sbml/Uncertainty.cpp
+++ b/src/sbml/packages/distrib/sbml/Uncertainty.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/sbml/Uncertainty.h b/src/sbml/packages/distrib/sbml/Uncertainty.h
index 983748a..73397cb 100644
--- a/src/sbml/packages/distrib/sbml/Uncertainty.h
+++ b/src/sbml/packages/distrib/sbml/Uncertainty.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribConsistencyValidator.cpp b/src/sbml/packages/distrib/validator/DistribConsistencyValidator.cpp
index 32c8e6e..47ef1b1 100644
--- a/src/sbml/packages/distrib/validator/DistribConsistencyValidator.cpp
+++ b/src/sbml/packages/distrib/validator/DistribConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribConsistencyValidator.h b/src/sbml/packages/distrib/validator/DistribConsistencyValidator.h
index b1a9264..9ab5b8f 100644
--- a/src/sbml/packages/distrib/validator/DistribConsistencyValidator.h
+++ b/src/sbml/packages/distrib/validator/DistribConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.cpp b/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.cpp
index df0b4c2..9c2c1df 100644
--- a/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.h b/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.h
index 20bc760..b9b6cd6 100644
--- a/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/distrib/validator/DistribIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribSBMLError.h b/src/sbml/packages/distrib/validator/DistribSBMLError.h
index e42cfbd..cb499c6 100644
--- a/src/sbml/packages/distrib/validator/DistribSBMLError.h
+++ b/src/sbml/packages/distrib/validator/DistribSBMLError.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribSBMLErrorTable.h b/src/sbml/packages/distrib/validator/DistribSBMLErrorTable.h
index da03f7e..84f750f 100644
--- a/src/sbml/packages/distrib/validator/DistribSBMLErrorTable.h
+++ b/src/sbml/packages/distrib/validator/DistribSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribValidator.cpp b/src/sbml/packages/distrib/validator/DistribValidator.cpp
index 6e23b89..058e2d0 100644
--- a/src/sbml/packages/distrib/validator/DistribValidator.cpp
+++ b/src/sbml/packages/distrib/validator/DistribValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/DistribValidator.h b/src/sbml/packages/distrib/validator/DistribValidator.h
index 79c6e4d..ced7097 100644
--- a/src/sbml/packages/distrib/validator/DistribValidator.h
+++ b/src/sbml/packages/distrib/validator/DistribValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/constraints/DistribConsistencyConstraints.cpp b/src/sbml/packages/distrib/validator/constraints/DistribConsistencyConstraints.cpp
index 7a81f06..aa4be24 100644
--- a/src/sbml/packages/distrib/validator/constraints/DistribConsistencyConstraints.cpp
+++ b/src/sbml/packages/distrib/validator/constraints/DistribConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/distrib/validator/constraints/DistribIdentifierConsistencyConstraints.cpp b/src/sbml/packages/distrib/validator/constraints/DistribIdentifierConsistencyConstraints.cpp
index 391589d..9660550 100644
--- a/src/sbml/packages/distrib/validator/constraints/DistribIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/distrib/validator/constraints/DistribIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn-register.cxx b/src/sbml/packages/dyn-register.cxx
index c1e7914..e344aeb 100644
--- a/src/sbml/packages/dyn-register.cxx
+++ b/src/sbml/packages/dyn-register.cxx
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn-register.h b/src/sbml/packages/dyn-register.h
index 3d9d443..a45b9aa 100644
--- a/src/sbml/packages/dyn-register.h
+++ b/src/sbml/packages/dyn-register.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/common/DynExtensionTypes.h b/src/sbml/packages/dyn/common/DynExtensionTypes.h
index 89ab908..3439d4c 100644
--- a/src/sbml/packages/dyn/common/DynExtensionTypes.h
+++ b/src/sbml/packages/dyn/common/DynExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/common/dynfwd.h b/src/sbml/packages/dyn/common/dynfwd.h
index 424d5e9..d0cf0a3 100644
--- a/src/sbml/packages/dyn/common/dynfwd.h
+++ b/src/sbml/packages/dyn/common/dynfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynCompartmentPlugin.cpp b/src/sbml/packages/dyn/extension/DynCompartmentPlugin.cpp
index a7d3704..d42dfc2 100644
--- a/src/sbml/packages/dyn/extension/DynCompartmentPlugin.cpp
+++ b/src/sbml/packages/dyn/extension/DynCompartmentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynCompartmentPlugin.h b/src/sbml/packages/dyn/extension/DynCompartmentPlugin.h
index df736f3..5438a9a 100644
--- a/src/sbml/packages/dyn/extension/DynCompartmentPlugin.h
+++ b/src/sbml/packages/dyn/extension/DynCompartmentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynEventPlugin.cpp b/src/sbml/packages/dyn/extension/DynEventPlugin.cpp
index 83bd792..107dfae 100644
--- a/src/sbml/packages/dyn/extension/DynEventPlugin.cpp
+++ b/src/sbml/packages/dyn/extension/DynEventPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynEventPlugin.h b/src/sbml/packages/dyn/extension/DynEventPlugin.h
index b2083a7..ccc76f2 100644
--- a/src/sbml/packages/dyn/extension/DynEventPlugin.h
+++ b/src/sbml/packages/dyn/extension/DynEventPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynExtension.cpp b/src/sbml/packages/dyn/extension/DynExtension.cpp
index 35dbd9d..2a06c19 100644
--- a/src/sbml/packages/dyn/extension/DynExtension.cpp
+++ b/src/sbml/packages/dyn/extension/DynExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynExtension.h b/src/sbml/packages/dyn/extension/DynExtension.h
index 3b8cbc2..b656b3d 100644
--- a/src/sbml/packages/dyn/extension/DynExtension.h
+++ b/src/sbml/packages/dyn/extension/DynExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.cpp b/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.cpp
index af36b07..7b52dcf 100644
--- a/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.h b/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.h
index 41e30a6..5e29ce1 100644
--- a/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.h
+++ b/src/sbml/packages/dyn/extension/DynSBMLDocumentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynSBasePlugin.cpp b/src/sbml/packages/dyn/extension/DynSBasePlugin.cpp
index f0fe9f3..ffacc46 100644
--- a/src/sbml/packages/dyn/extension/DynSBasePlugin.cpp
+++ b/src/sbml/packages/dyn/extension/DynSBasePlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/DynSBasePlugin.h b/src/sbml/packages/dyn/extension/DynSBasePlugin.h
index 976eccb..ec1eaf6 100644
--- a/src/sbml/packages/dyn/extension/DynSBasePlugin.h
+++ b/src/sbml/packages/dyn/extension/DynSBasePlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/test/CMakeLists.txt b/src/sbml/packages/dyn/extension/test/CMakeLists.txt
index 8dd0f2c..e2cf1a4 100644
--- a/src/sbml/packages/dyn/extension/test/CMakeLists.txt
+++ b/src/sbml/packages/dyn/extension/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ## 
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/extension/test/TestRunner.c b/src/sbml/packages/dyn/extension/test/TestRunner.c
index 6fd5b31..a601dda 100644
--- a/src/sbml/packages/dyn/extension/test/TestRunner.c
+++ b/src/sbml/packages/dyn/extension/test/TestRunner.c
@@ -15,6 +15,10 @@
 #include <sbml/common/extern.h>
 #include <sbml/util/memory.h>
 
+#ifdef LIBSBML_USE_VLD
+  #include <vld.h>
+#endif
+
 #if defined(__cplusplus)
 LIBSBML_CPP_NAMESPACE_USE
 CK_CPPSTART
diff --git a/src/sbml/packages/dyn/sbml/DynElement.cpp b/src/sbml/packages/dyn/sbml/DynElement.cpp
index b61201b..8a32d27 100644
--- a/src/sbml/packages/dyn/sbml/DynElement.cpp
+++ b/src/sbml/packages/dyn/sbml/DynElement.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/sbml/DynElement.h b/src/sbml/packages/dyn/sbml/DynElement.h
index 356b429..c467194 100644
--- a/src/sbml/packages/dyn/sbml/DynElement.h
+++ b/src/sbml/packages/dyn/sbml/DynElement.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/sbml/SpatialComponent.cpp b/src/sbml/packages/dyn/sbml/SpatialComponent.cpp
index 7c891b3..441ea4c 100644
--- a/src/sbml/packages/dyn/sbml/SpatialComponent.cpp
+++ b/src/sbml/packages/dyn/sbml/SpatialComponent.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/sbml/SpatialComponent.h b/src/sbml/packages/dyn/sbml/SpatialComponent.h
index 4afaf11..a7f3a61 100644
--- a/src/sbml/packages/dyn/sbml/SpatialComponent.h
+++ b/src/sbml/packages/dyn/sbml/SpatialComponent.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynConsistencyValidator.cpp b/src/sbml/packages/dyn/validator/DynConsistencyValidator.cpp
index ce52c93..e112a37 100644
--- a/src/sbml/packages/dyn/validator/DynConsistencyValidator.cpp
+++ b/src/sbml/packages/dyn/validator/DynConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynConsistencyValidator.h b/src/sbml/packages/dyn/validator/DynConsistencyValidator.h
index 4847506..bf51be6 100644
--- a/src/sbml/packages/dyn/validator/DynConsistencyValidator.h
+++ b/src/sbml/packages/dyn/validator/DynConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.cpp b/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.cpp
index ef5d554..70f8720 100644
--- a/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.h b/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.h
index d258dfe..c850a0b 100644
--- a/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/dyn/validator/DynIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynSBMLError.h b/src/sbml/packages/dyn/validator/DynSBMLError.h
index dd70942..34595af 100644
--- a/src/sbml/packages/dyn/validator/DynSBMLError.h
+++ b/src/sbml/packages/dyn/validator/DynSBMLError.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynSBMLErrorTable.h b/src/sbml/packages/dyn/validator/DynSBMLErrorTable.h
index cf2ac02..ff50c10 100644
--- a/src/sbml/packages/dyn/validator/DynSBMLErrorTable.h
+++ b/src/sbml/packages/dyn/validator/DynSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynValidator.cpp b/src/sbml/packages/dyn/validator/DynValidator.cpp
index 6a03fc3..65cbffd 100644
--- a/src/sbml/packages/dyn/validator/DynValidator.cpp
+++ b/src/sbml/packages/dyn/validator/DynValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/DynValidator.h b/src/sbml/packages/dyn/validator/DynValidator.h
index 990f4b2..cf4ed27 100644
--- a/src/sbml/packages/dyn/validator/DynValidator.h
+++ b/src/sbml/packages/dyn/validator/DynValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/constraints/DynConsistencyConstraints.cpp b/src/sbml/packages/dyn/validator/constraints/DynConsistencyConstraints.cpp
index 91c688c..fe9f73d 100644
--- a/src/sbml/packages/dyn/validator/constraints/DynConsistencyConstraints.cpp
+++ b/src/sbml/packages/dyn/validator/constraints/DynConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/dyn/validator/constraints/DynIdentifierConsistencyConstraints.cpp b/src/sbml/packages/dyn/validator/constraints/DynIdentifierConsistencyConstraints.cpp
index 490a7aa..0cca6bf 100644
--- a/src/sbml/packages/dyn/validator/constraints/DynIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/dyn/validator/constraints/DynIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc-register.cxx b/src/sbml/packages/fbc-register.cxx
index 406888d..dc60e68 100644
--- a/src/sbml/packages/fbc-register.cxx
+++ b/src/sbml/packages/fbc-register.cxx
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc-register.h b/src/sbml/packages/fbc-register.h
index ca6174d..7323b9c 100644
--- a/src/sbml/packages/fbc-register.h
+++ b/src/sbml/packages/fbc-register.h
@@ -1,13 +1,13 @@
 /**
- * @file:   fbc-register.h
- * @brief:  Implementation of the fbc class
- * @author: SBMLTeam
+ * @file   fbc-register.h
+ * @brief  Implementation of the fbc class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/Makefile.in b/src/sbml/packages/fbc/Makefile.in
index 17afa91..8010db2 100644
--- a/src/sbml/packages/fbc/Makefile.in
+++ b/src/sbml/packages/fbc/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/common/FbcExtensionTypes.h b/src/sbml/packages/fbc/common/FbcExtensionTypes.h
index c0d2486..bd483fb 100644
--- a/src/sbml/packages/fbc/common/FbcExtensionTypes.h
+++ b/src/sbml/packages/fbc/common/FbcExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/common/fbcfwd.h b/src/sbml/packages/fbc/common/fbcfwd.h
index ff2bc5e..4bbf724 100644
--- a/src/sbml/packages/fbc/common/fbcfwd.h
+++ b/src/sbml/packages/fbc/common/fbcfwd.h
@@ -1,13 +1,13 @@
 /**
- * @file:   fbcfwd.h
- * @brief:  Implementation of the fbcfwd class
- * @author: SBMLTeam
+ * @file   fbcfwd.h
+ * @brief  Implementation of the fbcfwd class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/extension/FbcExtension.cpp b/src/sbml/packages/fbc/extension/FbcExtension.cpp
index a274c88..e64f538 100644
--- a/src/sbml/packages/fbc/extension/FbcExtension.cpp
+++ b/src/sbml/packages/fbc/extension/FbcExtension.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/extension/FbcExtension.h b/src/sbml/packages/fbc/extension/FbcExtension.h
index 7668d0f..8fee051 100644
--- a/src/sbml/packages/fbc/extension/FbcExtension.h
+++ b/src/sbml/packages/fbc/extension/FbcExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/extension/FbcModelPlugin.cpp b/src/sbml/packages/fbc/extension/FbcModelPlugin.cpp
index 3d531c0..48d5754 100644
--- a/src/sbml/packages/fbc/extension/FbcModelPlugin.cpp
+++ b/src/sbml/packages/fbc/extension/FbcModelPlugin.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -421,12 +421,16 @@ FbcModelPlugin::parseAnnotation(SBase *parentObject, XMLNode *pAnnotation)
 
 
 /** @cond doxygenLibsbmlInternal */
+#ifndef ANNOATION
 bool
-FbcModelPlugin::readOtherXML (SBase* parentObject, XMLInputStream& stream)
+FbcModelPlugin::readOtherXML (SBase* /*parentObject*/, XMLInputStream& /*stream*/)
 {
-#ifndef ANNOATION
   return false;
+}
 #else
+bool
+FbcModelPlugin::readOtherXML (SBase* parentObject, XMLInputStream& stream)
+{
   bool readAnnotationFromStream = false;
   const string& name = stream.peek().getName();
   
@@ -522,14 +526,17 @@ FbcModelPlugin::readOtherXML (SBase* parentObject, XMLInputStream& stream)
   }
   
   return readAnnotationFromStream;
-#endif
 }
+#endif
 /** @endcond */
 
 
 /*
  * Checks if this plugin object has all the required elements.
  */
+  //According to the specs for both FBC v1 and v2, the model plugin has no 
+  // required children!
+/*
 bool
 FbcModelPlugin::hasRequiredElements () const
 {
@@ -540,10 +547,9 @@ FbcModelPlugin::hasRequiredElements () const
     allPresent = false;    
   }
 
-
   return allPresent; 
 }
-
+*/
 
   /** @cond doxygenLibsbmlInternal */
 
@@ -1776,6 +1782,49 @@ FbcModelPlugin_setActiveObjectiveId(SBasePlugin_t * fbc, const char * activeId)
     ? static_cast<FbcModelPlugin *>(fbc)->setActiveObjectiveId(activeId) 
     : LIBSBML_INVALID_OBJECT;
 }
+
+
+LIBSBML_EXTERN
+int
+FbcModelPlugin_addGeneProduct(SBasePlugin_t * fbc, GeneProduct_t * fb)
+{
+  return (fbc != NULL) ? static_cast<FbcModelPlugin*>(fbc)->addGeneProduct(fb)
+    : LIBSBML_INVALID_OBJECT;
+}
+
+
+LIBSBML_EXTERN
+GeneProduct_t *
+FbcModelPlugin_getGeneProduct(SBasePlugin_t * fbc, unsigned int n)
+{
+  return (fbc != NULL) ? static_cast<FbcModelPlugin*>(fbc)->getGeneProduct(n)
+    : NULL;
+}
+
+
+LIBSBML_EXTERN
+unsigned int
+FbcModelPlugin_getNumGeneProducts(SBasePlugin_t * fbc)
+{
+  return (fbc != NULL) ? static_cast<FbcModelPlugin*>(fbc)->getNumGeneProducts()
+    : SBML_INT_MAX;
+}
+
+LIBSBML_EXTERN
+int
+FbcModelPlugin_getStrict(SBasePlugin_t * fmp)
+{
+  return (int)(((FbcModelPlugin*)(fmp))->getStrict());
+}
+
+
+LIBSBML_EXTERN
+int
+FbcModelPlugin_setStrict(SBasePlugin_t * fmp, int strict)
+{
+  return ((FbcModelPlugin*)(fmp))->setStrict((bool)(strict));
+}
+
 /** @endcond */
 
 
diff --git a/src/sbml/packages/fbc/extension/FbcModelPlugin.h b/src/sbml/packages/fbc/extension/FbcModelPlugin.h
index 7f17318..ed66c29 100644
--- a/src/sbml/packages/fbc/extension/FbcModelPlugin.h
+++ b/src/sbml/packages/fbc/extension/FbcModelPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -26,6 +26,101 @@
  *
  * @class FbcModelPlugin
  * @sbmlbrief{fbc} Extension of Model.
+ *
+ * The FbcModelPlugin object is used to extend the standard SBML Model object
+ * with features used in the SBML Level 3 @ref fbc (“fbc”)
+ * package.  In Version 1 of the “fbc” specification, the
+ * extended Model class has two optional subobjects: ListOfObjectives and
+ * ListOfFluxBounds.  In Version 2 of the specification, the extended
+ * Model object is defined differently: it is extended with a new required
+ * attribute named "strict", and the two optional subobjects ListOfObjectives
+ * and ListOfGeneProducts.  (ListOfFluxBounds is not used in Version 2.)
+ *
+ * @section model-strict The "strict" attribute on the (extended) Model class
+ *
+ * The mandatory attribute "strict", of type <code>boolean</code>, is used to
+ * apply an additional set of restrictions to the model.  The "strict"
+ * attribute helps ensure that the Flux Balance Constraints package can be
+ * used to encode legacy flux-balance analysis models expressible as Linear
+ * Programs (LP's) for software that is unable to analyze arbitrary
+ * mathematical expressions that may appear in an SBML model.  In addition, a
+ * "strict" model is fully described and mathematically consistent, for
+ * example, by ensuring that all fluxes have a valid upper or lower bound.
+ *
+ * The following restrictions are in effect if an “fbc” model
+ * object has a value of <code>"true"</code> for the attribute "strict" on
+ * Model:
+ *
+ * @li Each Reaction in a Model must define values for the attributes
+ * "lowerFluxBound" and "upperFluxBound", with each attribute pointing to a
+ * valid Parameter object defined in the current Model.
+ *
+ * @li Each Parameter object referred to by the Reaction attributes
+ * "lowerFluxBound" and "upperFluxBound" must have its "constant" attribute
+ * set to the value <code>"true"</code> and its "value" attribute set to a
+ * value of type <code>double</code>.  This value may not be
+ * <code>"NaN"</code>.
+ *
+ * @li SpeciesReference objects in Reaction objects must have their
+ * "stoichiometry" attribute set to a <code>double</code> value that is not
+ * <code>"NaN"</code>, nor <code>"-INF"</code>, nor <code>"INF"</code>. In
+ * addition, the value of their "constant" attribute must be set to
+ * <code>"true"</code>.
+ *
+ * @li InitialAssignment objects may not target the Parameter objects
+ * referenced by the Reaction attributes "lowerFluxBound" and
+ * "upperFluxBound", nor any SpeciesReference objects.
+ *
+ * @li All defined FluxObjective objects must have their coefficient
+ * attribute set to a <code>double</code> value that is not
+ * <code>"NaN"</code>, nor <code>"-INF"</code>, nor <code>"INF"</code>.
+ *
+ * @li A Reaction "lowerFluxBound" attribute may not point to a Parameter
+ * object that has a value of <code>"INF"</code>.
+ *
+ * @li A Reaction "upperFluxBound" attribute may not point to a Parameter
+ * object that has a value of <code>"-INF"</code>.
+ *
+ * @li For all Reaction objects, the value of a "lowerFluxBound" attribute
+ * must be less than or equal to the value of the "upperFluxBound" attribute.
+ *
+ * While it is not compulsory for a "strict" Flux Balance Constraints model
+ * to define an Objective, doing so does does allow the model to be
+ * formulated as a Linear Program and optimized.  However, this decision is
+ * left to the modeler.  Note that all other properties of the objects
+ * referred to in the list above are to be set as specified in the relevant
+ * SBML Level 3 Version 1 Core and @ref fbc (“fbc”)
+ * specifications.
+ *
+ * Alternatively, if the value of the strict attribute is
+ * <code>"false"</code>, then none of these restrictions apply and the model
+ * creator can choose to define “fbc” models that are not
+ * necessarily encodable as an LP.  For example, if strict is
+ * <code>"false"</code>, the InitialAssignment construct may be used to set
+ * any valid numerical entity, including Parameter values and stoichiometric
+ * coefficients, with any value of type <code>double</code>.  In addition,
+ * Parameter elements are no longer required to be flagged as constant, thus
+ * allowing for a Flux Balance Constraints model's use in alternative, hybrid
+ * modeling strategies.
+ *
+ *
+ * @section model-subobjects Lists of subobjects on the (extended) Model class
+ *
+ * The ListOfObjectives is used to define the objectives of a given
+ * “fbc” model.  Objectives generally consist of linear
+ * combinations of model variables (fluxes) and a direction for the
+ * optimality constraint (either maximization or minimization).  Each
+ * Objective has a ListOfFluxObjectives subobjects.
+ *
+ * In Version 2 of “fbc”, the ListOfGeneProducts is used to
+ * define the gene products represented by the “fbc” model.
+ *
+ * In Version 1 of “fbc”, there is no ListOfGeneProducts,
+ * and instead, Model can have an optional ListOfFluxBounds.
+ *
+ * @see Objective
+ * @see FluxObjective
+ * @see FluxBound
  */
 
 #ifndef FbcModelPlugin_H__
@@ -134,7 +229,7 @@ public:
   /** @endcond doxygenLibsbmlInternal */
 
 
-  /**
+  /*
    * Checks if this plugin object has all the required elements.
    *
    * Subclasses must override this method 
@@ -143,7 +238,8 @@ public:
    * @return true if this plugin object has all the required elements
    * otherwise false will be returned.
    */
-  virtual bool hasRequiredElements () const;
+  //virtual bool hasRequiredElements () const;
+
   /** @cond doxygenLibsbmlInternal */
   /**
    * Parses Gene Annotation Extension 
@@ -199,6 +295,9 @@ public:
    * Returns a List of all child SBase objects, including those nested to an
    * arbitrary depth.
    *
+   * @param filter an ElementFilter that may impose restrictions on the
+   * objects to be retrieved.
+   *
    * @return a List* of pointers to all child objects.
    */
    virtual List* getAllElements(ElementFilter * filter = NULL);
@@ -933,12 +1032,12 @@ FbcModelPlugin_getFluxBound(SBasePlugin_t * fmp, unsigned int n);
 
 
 /**
- * Returns the number of EventAssignment_t structures attached to the given
+ * Returns the number of FluxBound_t structures attached to the given
  * FbcModelPlugin_t.
  *
  * @param fmp the FbcModelPlugin_t structure to use
  * 
- * @return the number of EventAssignment_t structures in the given FbcModelPlugin_t.
+ * @return the number of FluxBound_t structures in the given FbcModelPlugin_t.
  *
  * @memberof FbcModelPlugin_t
  */
@@ -1035,6 +1134,93 @@ LIBSBML_EXTERN
 int
 FbcModelPlugin_setActiveObjectiveId(SBasePlugin_t * fmp, const char * activeObjective);
 
+
+/**
+ * Appends a copy of the given GeneProduct_t structure to the given FbcModelPlugin_t
+ * structure.
+ *
+ * @param fmp the FbcModelPlugin_t structure to which the GeneProduct_t should be
+ * added
+ *
+ * @param fb a GeneProduct_t structure to add
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_LEVEL_MISMATCH, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_VERSION_MISMATCH, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_PKG_VERSION_MISMATCH, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_DUPLICATE_OBJECT_ID, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof FbcModelPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcModelPlugin_addGeneProduct(SBasePlugin_t * fmp, GeneProduct_t * fb);
+
+
+/**
+ * Return a specific GeneProduct_t structure of the given FbcModelPlugin_t.
+ *
+ * @param fmp the FbcModelPlugin_t structure to use
+ *
+ * @param n an integer, the index of the GeneProduct_t structure to return
+ * 
+ * @return the nth GeneProduct_t of the given FbcModelPlugin_t, or @c NULL if no such GeneProduct_t exists.
+ *
+ * @memberof FbcModelPlugin_t
+ */
+LIBSBML_EXTERN
+GeneProduct_t *
+FbcModelPlugin_getGeneProduct(SBasePlugin_t * fmp, unsigned int n);
+
+
+/**
+ * Returns the number of GeneProduct_t structures attached to the given
+ * FbcModelPlugin_t.
+ *
+ * @param fmp the GeneProduct_t structure to use
+ * 
+ * @return the number of EventAssignment_t structures in the given FbcModelPlugin_t.
+ *
+ * @memberof FbcModelPlugin_t
+ */
+LIBSBML_EXTERN
+unsigned int
+FbcModelPlugin_getNumGeneProducts(SBasePlugin_t * fmp);
+
+
+/**
+ * Takes a FbcModelPlugin_t structure and returns the value of the strict attribute.
+ *
+ * @param fmp the FbcModelPlugin_t whose 'strict' attribute is sought.
+ *
+ * @return the id of the current activeObjective of the given FbcModelPlugin_t, as a pointer to a string.
+ *
+ * @memberof FbcModelPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcModelPlugin_getStrict(SBasePlugin_t * fmp);
+
+
+/**
+ * Sets the strict attribute of the given FbcModelPlugin_t.
+ *
+ * @param fmp the FbcModelPlugin_t structure to set
+ * @param activeObjective the activeObjective to assign to the given FbcModelPlugin_t's "activeObjective" attribute.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof FbcModelPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcModelPlugin_setStrict(SBasePlugin_t * fmp, int strict);
+
+
 END_C_DECLS
 LIBSBML_CPP_NAMESPACE_END
 
diff --git a/src/sbml/packages/fbc/extension/FbcReactionPlugin.cpp b/src/sbml/packages/fbc/extension/FbcReactionPlugin.cpp
index ab57754..14d3b85 100644
--- a/src/sbml/packages/fbc/extension/FbcReactionPlugin.cpp
+++ b/src/sbml/packages/fbc/extension/FbcReactionPlugin.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   FbcReactionPlugin.cpp
- * @brief:  Implementation of the FbcReactionPlugin class
- * @author: SBMLTeam
+ * @file   FbcReactionPlugin.cpp
+ * @brief  Implementation of the FbcReactionPlugin class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -149,6 +149,8 @@ FbcReactionPlugin::createObject (XMLInputStream& stream)
         getErrorLog()->logPackageError("fbc", FbcReactionOnlyOneGeneProdAss, 
           getPackageVersion(), getLevel(), getVersion());
       }
+
+      delete mGeneProductAssociation;
       
       mGeneProductAssociation = new GeneProductAssociation(fbcns);
 
@@ -179,22 +181,7 @@ FbcReactionPlugin::writeElements (XMLOutputStream& stream) const
 /** @endcond */
 
 
-/*
- * Checks if this plugin object has all the required elements.
- */
-bool
-FbcReactionPlugin::hasRequiredElements () const
-{
-  bool allPresent = true; 
-
-  // TO DO 
-
-  return allPresent; 
-}
-
-
-  /** @cond doxygenLibsbmlInternal */
-
+/** @cond doxygenLibsbmlInternal */
 /*
  * Get the list of expected attributes for this element.
  */
@@ -435,6 +422,8 @@ FbcReactionPlugin::setGeneProductAssociation(const GeneProductAssociation* geneP
   {
     delete mGeneProductAssociation;
     mGeneProductAssociation = static_cast<GeneProductAssociation*>(geneProductAssociation->clone());
+    if (mGeneProductAssociation != NULL) mGeneProductAssociation->connectToParent(this->getParentSBMLObject());
+
     return LIBSBML_OPERATION_SUCCESS;
   }
 }
@@ -664,9 +653,128 @@ FbcReactionPlugin::accept(SBMLVisitor& v) const
 
 
 
-LIBSBML_CPP_NAMESPACE_END
 
 
 #endif /* __cplusplus */
 
 
+LIBSBML_EXTERN
+char *
+FbcReactionPlugin_getUpperFluxBound(SBasePlugin_t * fbc)
+{
+  if (fbc == NULL) return NULL;
+
+  return static_cast<FbcReactionPlugin*>(fbc)->getUpperFluxBound().empty() 
+    ? safe_strdup("")
+    : safe_strdup(static_cast<FbcReactionPlugin*>(fbc)->getUpperFluxBound().c_str());
+}
+
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_isSetUpperFluxBound(SBasePlugin_t * fbc)
+{
+  return (fbc != NULL) 
+    ? static_cast<int>
+             (static_cast<FbcReactionPlugin*>(fbc)->isSetUpperFluxBound()) 
+    : 0;
+}
+
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_setUpperFluxBound(SBasePlugin_t * fbc, const char * chemform)
+{
+  return (fbc != NULL) 
+    ? static_cast<FbcReactionPlugin*>(fbc)->setUpperFluxBound(chemform)
+    : LIBSBML_INVALID_OBJECT;
+}
+
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_unsetUpperFluxBound(SBasePlugin_t * fbc)
+{
+  return (fbc != NULL) 
+    ? static_cast<FbcReactionPlugin*>(fbc)->unsetUpperFluxBound()
+    : LIBSBML_INVALID_OBJECT;
+}
+
+
+LIBSBML_EXTERN
+char *
+FbcReactionPlugin_getLowerFluxBound(SBasePlugin_t * fbc)
+{
+  if (fbc == NULL) return NULL;
+
+  return static_cast<FbcReactionPlugin*>(fbc)->getLowerFluxBound().empty() 
+    ? safe_strdup("")
+    : safe_strdup(static_cast<FbcReactionPlugin*>(fbc)->getLowerFluxBound().c_str());
+}
+
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_isSetLowerFluxBound(SBasePlugin_t * fbc)
+{
+  return (fbc != NULL) 
+    ? static_cast<int>
+             (static_cast<FbcReactionPlugin*>(fbc)->isSetLowerFluxBound()) 
+    : 0;
+}
+
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_setLowerFluxBound(SBasePlugin_t * fbc, const char * chemform)
+{
+  return (fbc != NULL) 
+    ? static_cast<FbcReactionPlugin*>(fbc)->setLowerFluxBound(chemform)
+    : LIBSBML_INVALID_OBJECT;
+}
+
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_unsetLowerFluxBound(SBasePlugin_t * fbc)
+{
+  return (fbc != NULL) 
+    ? static_cast<FbcReactionPlugin*>(fbc)->unsetLowerFluxBound()
+    : LIBSBML_INVALID_OBJECT;
+}
+
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_isSetGeneProductAssociation(SBasePlugin_t * fbc)
+{
+  return (fbc != NULL) 
+    ? static_cast<int>
+             (static_cast<FbcReactionPlugin*>(fbc)->isSetGeneProductAssociation()) 
+    : 0;
+}
+
+
+LIBSBML_EXTERN
+GeneProductAssociation_t*
+FbcReactionPlugin_getGeneProductAssociation(SBasePlugin_t * fbc)
+{
+  return  (fbc != NULL) ? static_cast<FbcReactionPlugin*>(fbc)->getGeneProductAssociation() : NULL;
+
+}
+
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_setGeneProductAssociation(SBasePlugin_t * fbc, 
+                                            GeneProductAssociation_t* gpa)
+{
+  return (fbc != NULL) 
+    ? static_cast<FbcReactionPlugin*>(fbc)->setGeneProductAssociation(gpa)
+    : LIBSBML_INVALID_OBJECT;
+}
+
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
diff --git a/src/sbml/packages/fbc/extension/FbcReactionPlugin.h b/src/sbml/packages/fbc/extension/FbcReactionPlugin.h
index 7100cd2..fbc0126 100644
--- a/src/sbml/packages/fbc/extension/FbcReactionPlugin.h
+++ b/src/sbml/packages/fbc/extension/FbcReactionPlugin.h
@@ -1,416 +1,598 @@
-/**
- * @file:   FbcReactionPlugin.h
- * @brief:  Implementation of the FbcReactionPlugin class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2014 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class FbcReactionPlugin
- * @sbmlbrief{fbc} Extension of Reaction by the “fbc” package.
- *
- * The FbcReactionPlugin class inherits from the SBasePlugin class, 
- * and codifies the extentions to the Reaction class defined in the
- * @ref comp @if java "Flux Balance Constraints"@endif@~ 
- * package (“fbc”).  This extention allows the modeler to define
- * (in version 2 of the package) an upper and lower flux bound, as well as a way
- * to reference any GeneProduct associated with this Reaction.  
- * 
- * Note that in version 1, the FluxBound element is used instead.
- */
-
-
-#ifndef FbcReactionPlugin_H__
-#define FbcReactionPlugin_H__
-
-
-#include <sbml/common/extern.h>
-
-
-#ifdef __cplusplus
-
-
-#include <sbml/extension/SBasePlugin.h>
-#include <sbml/packages/fbc/sbml/GeneProductAssociation.h>
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-class LIBSBML_EXTERN FbcReactionPlugin : public SBasePlugin
-{
-public:
-
-  /**
-   * Creates a new FbcReactionPlugin
-   */
-  FbcReactionPlugin(const std::string& uri, const std::string& prefix, 
-                                 FbcPkgNamespaces* fbcns);
-
-
-  /**
-   * Copy constructor for FbcReactionPlugin.
-   *
-   * @param orig; the FbcReactionPlugin instance to copy.
-   */
-  FbcReactionPlugin(const FbcReactionPlugin& orig);
-
-
-   /**
-   * Assignment operator for FbcReactionPlugin.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  FbcReactionPlugin& operator=(const FbcReactionPlugin& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this FbcReactionPlugin object.
-   *
-   * @return a (deep) copy of this FbcReactionPlugin object.
-   */
-  virtual FbcReactionPlugin* clone () const;
-
-
-   /**
-   * Destructor for FbcReactionPlugin.
-   */
-  virtual ~FbcReactionPlugin();
-
-
-   //---------------------------------------------------------------
-  //
-  // overridden virtual functions for read/write/check
-  //
-  //---------------------------------------------------------------
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses must override this method to create, store, and then
-   * return an SBML object corresponding to the next XMLToken in the
-   * XMLInputStream if they have their specific elements.
-   *
-   * @return the SBML object corresponding to next XMLToken in the
-   * XMLInputStream or NULL if the token was not recognized.
-   */
-  virtual SBase* createObject (XMLInputStream& stream);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses must override this method to write out their contained
-   * SBML objects as XML elements if they have their specific elements.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /**
-   * Checks if this plugin object has all the required elements.
-   *
-   * Subclasses must override this method 
-   * if they have their specific elements.
-   *
-   * @return true if this plugin object has all the required elements
-   * otherwise false will be returned.
-   */
-  virtual bool hasRequiredElements () const;
-
-
-  //---------------------------------------------------------------
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-  /**
-   * @copydoc doc_renamesidref_common
-   */
-  virtual void renameSIdRefs(const std::string& oldid, const std::string& newid);
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  //---------------------------------------------------------------
-  //
-  // Functions for interacting with the members of the plugin
-  //
-  //---------------------------------------------------------------
-
-  /**
-   * Returns a List of all child SBase objects, including those nested to an
-   * arbitrary depth.
-   *
-   * @return a List* of pointers to all child objects.
-   */
-   virtual List* getAllElements(ElementFilter * filter = NULL);
-
-
-  /**
-   * Returns the GeneProductAssociation from this FbcReactionPlugin object.
-   *
-   * @return the GeneProductAssociation from object in this FbcReactionPlugin object.
-   */
-  const GeneProductAssociation* getGeneProductAssociation () const;
-
-
-  /**
-   * Returns the GeneProductAssociation from this FbcReactionPlugin object.
-   *
-   * @return the GeneProductAssociation from object in this FbcReactionPlugin object.
-   */
-  GeneProductAssociation* getGeneProductAssociation ();
-
-
-  /**
-   * Predicate returning @c true if this FbcReactionPlugin's
-   * "GeneProductAssociation" element has been set.
-   *
-   * @return @c true if the "GeneProductAssociation" element has been set,
-   * otherwise @c false is returned.
-   */
-  bool isSetGeneProductAssociation() const;
-
-
-  /**
-   * Sets the GeneProductAssociation element in this FbcReactionPlugin object.
-   *
-   * @param geneProductAssociation the geneProductAssociation* to be set.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   */
-  int setGeneProductAssociation (const GeneProductAssociation* geneProductAssociation);
-
-
-  /**
-   * Creates a new GeneProductAssociation object and adds it to the FbcReactionPlugin object.
-   *
-   * @return the newly created GeneProductAssociation object.
-   */
-  GeneProductAssociation* createGeneProductAssociation ();
-
-
-  /**
-   * Returns the value of the "lowerFluxBound" attribute of this FbcReactionPlugin.
-   *
-   * @return the value of the "lowerFluxBound" attribute of this FbcReactionPlugin as a string.
-   */
-  virtual const std::string& getLowerFluxBound() const;
-
-
-  /**
-   * Returns the value of the "upperFluxBound" attribute of this FbcReactionPlugin.
-   *
-   * @return the value of the "upperFluxBound" attribute of this FbcReactionPlugin as a string.
-   */
-  virtual const std::string& getUpperFluxBound() const;
-
-
-  /**
-   * Predicate returning @c true if this FbcReactionPlugin's "lowerFluxBound"
-   * attribute is set.
-   *
-   * @return @c true if this FbcReactionPlugin's "lowerFluxBound" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetLowerFluxBound() const;
-
-
-  /**
-   * Predicate returning @c true if this FbcReactionPlugin's "upperFluxBound"
-   * attribute is set.
-   *
-   * @return @c true if this FbcReactionPlugin's "upperFluxBound" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetUpperFluxBound() const;
-
-
-  /**
-   * Sets the value of the "lowerFluxBound" attribute of this FbcReactionPlugin.
-   *
-   * @param lowerFluxBound; const std::string& value of the "lowerFluxBound" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setLowerFluxBound(const std::string& lowerFluxBound);
-
-
-  /**
-   * Sets the value of the "upperFluxBound" attribute of this FbcReactionPlugin.
-   *
-   * @param upperFluxBound; const std::string& value of the "upperFluxBound" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setUpperFluxBound(const std::string& upperFluxBound);
-
-
-  /**
-   * Unsets the value of the "lowerFluxBound" attribute of this FbcReactionPlugin.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetLowerFluxBound();
-
-
-  /**
-   * Unsets the value of the "upperFluxBound" attribute of this FbcReactionPlugin.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetUpperFluxBound();
-
-  /**
-   * Unsets the the "geneProduct" element of this FbcReactionPlugin.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetGeneProductAssociation();
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  virtual void connectToParent (SBase* sbase);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  virtual void enablePackageInternal(const std::string& pkgURI,
-                                     const std::string& pkgPrefix, bool flag);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  virtual bool accept (SBMLVisitor& v) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  GeneProductAssociation* mGeneProductAssociation;
-  std::string   mLowerFluxBound;
-  std::string   mUpperFluxBound;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-};
-
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-
-#endif /* __cplusplus */
-#endif /* FbcReactionPlugin_H__ */
-
-
+/**
+ * @file   FbcReactionPlugin.h
+ * @brief  Implementation of the FbcReactionPlugin class
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class FbcReactionPlugin
+ * @sbmlbrief{fbc} Extension of Reaction by the “fbc” package.
+ *
+ * The FbcReactionPlugin class inherits from the SBasePlugin class, and
+ * codifies the extensions to the Reaction class defined in the @ref fbc
+ * package (“fbc”).  This extension allows the modeler to define
+ * (in Version 2 of the “fbc” package) an upper and lower
+ * flux bound, as well as a way to reference any GeneProduct associated with
+ * this Reaction.
+ *
+ * @note In Version 1 of “fbc”, the FluxBound element is
+ * used instead of this object.
+ */
+
+
+#ifndef FbcReactionPlugin_H__
+#define FbcReactionPlugin_H__
+
+
+#include <sbml/common/extern.h>
+
+
+#ifdef __cplusplus
+
+
+#include <sbml/extension/SBasePlugin.h>
+#include <sbml/packages/fbc/sbml/GeneProductAssociation.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+class LIBSBML_EXTERN FbcReactionPlugin : public SBasePlugin
+{
+public:
+
+  /**
+   * Creates a new FbcReactionPlugin
+   */
+  FbcReactionPlugin(const std::string& uri, const std::string& prefix, 
+                                 FbcPkgNamespaces* fbcns);
+
+
+  /**
+   * Copy constructor for FbcReactionPlugin.
+   *
+   * @param orig; the FbcReactionPlugin instance to copy.
+   */
+  FbcReactionPlugin(const FbcReactionPlugin& orig);
+
+
+   /**
+   * Assignment operator for FbcReactionPlugin.
+   *
+   * @param rhs; the object whose values are used as the basis
+   * of the assignment
+   */
+  FbcReactionPlugin& operator=(const FbcReactionPlugin& rhs);
+
+
+   /**
+   * Creates and returns a deep copy of this FbcReactionPlugin object.
+   *
+   * @return a (deep) copy of this FbcReactionPlugin object.
+   */
+  virtual FbcReactionPlugin* clone () const;
+
+
+   /**
+   * Destructor for FbcReactionPlugin.
+   */
+  virtual ~FbcReactionPlugin();
+
+
+   //---------------------------------------------------------------
+  //
+  // overridden virtual functions for read/write/check
+  //
+  //---------------------------------------------------------------
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses must override this method to create, store, and then
+   * return an SBML object corresponding to the next XMLToken in the
+   * XMLInputStream if they have their specific elements.
+   *
+   * @return the SBML object corresponding to next XMLToken in the
+   * XMLInputStream or NULL if the token was not recognized.
+   */
+  virtual SBase* createObject (XMLInputStream& stream);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses must override this method to write out their contained
+   * SBML objects as XML elements if they have their specific elements.
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  //---------------------------------------------------------------
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Get the list of expected attributes for this element.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+  /**
+   * @copydoc doc_renamesidref_common
+   */
+  virtual void renameSIdRefs(const std::string& oldid, const std::string& newid);
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Read values from the given XMLAttributes set into their specific fields.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write values of XMLAttributes to the output stream.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  //---------------------------------------------------------------
+  //
+  // Functions for interacting with the members of the plugin
+  //
+  //---------------------------------------------------------------
+
+  /**
+   * Returns a List of all child SBase objects, including those nested to an
+   * arbitrary depth.
+   *
+   * @return a List* of pointers to all child objects.
+   */
+   virtual List* getAllElements(ElementFilter * filter = NULL);
+
+
+  /**
+   * Returns the GeneProductAssociation from this FbcReactionPlugin object.
+   *
+   * @return the GeneProductAssociation from object in this FbcReactionPlugin object.
+   */
+  const GeneProductAssociation* getGeneProductAssociation () const;
+
+
+  /**
+   * Returns the GeneProductAssociation from this FbcReactionPlugin object.
+   *
+   * @return the GeneProductAssociation from object in this FbcReactionPlugin object.
+   */
+  GeneProductAssociation* getGeneProductAssociation ();
+
+
+  /**
+   * Predicate returning @c true if this FbcReactionPlugin's
+   * "GeneProductAssociation" element has been set.
+   *
+   * @return @c true if the "GeneProductAssociation" element has been set,
+   * otherwise @c false is returned.
+   */
+  bool isSetGeneProductAssociation() const;
+
+
+  /**
+   * Sets the GeneProductAssociation element in this FbcReactionPlugin object.
+   *
+   * @param geneProductAssociation the geneProductAssociation* to be set.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   */
+  int setGeneProductAssociation (const GeneProductAssociation* geneProductAssociation);
+
+
+  /**
+   * Creates a new GeneProductAssociation object and adds it to the FbcReactionPlugin object.
+   *
+   * @return the newly created GeneProductAssociation object.
+   */
+  GeneProductAssociation* createGeneProductAssociation ();
+
+
+  /**
+   * Returns the value of the "lowerFluxBound" attribute of this FbcReactionPlugin.
+   *
+   * @return the value of the "lowerFluxBound" attribute of this FbcReactionPlugin as a string.
+   */
+  virtual const std::string& getLowerFluxBound() const;
+
+
+  /**
+   * Returns the value of the "upperFluxBound" attribute of this FbcReactionPlugin.
+   *
+   * @return the value of the "upperFluxBound" attribute of this FbcReactionPlugin as a string.
+   */
+  virtual const std::string& getUpperFluxBound() const;
+
+
+  /**
+   * Predicate returning @c true if this FbcReactionPlugin's "lowerFluxBound"
+   * attribute is set.
+   *
+   * @return @c true if this FbcReactionPlugin's "lowerFluxBound" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetLowerFluxBound() const;
+
+
+  /**
+   * Predicate returning @c true if this FbcReactionPlugin's "upperFluxBound"
+   * attribute is set.
+   *
+   * @return @c true if this FbcReactionPlugin's "upperFluxBound" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetUpperFluxBound() const;
+
+
+  /**
+   * Sets the value of the "lowerFluxBound" attribute of this FbcReactionPlugin.
+   *
+   * @param lowerFluxBound; const std::string& value of the "lowerFluxBound" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setLowerFluxBound(const std::string& lowerFluxBound);
+
+
+  /**
+   * Sets the value of the "upperFluxBound" attribute of this FbcReactionPlugin.
+   *
+   * @param upperFluxBound; const std::string& value of the "upperFluxBound" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setUpperFluxBound(const std::string& upperFluxBound);
+
+
+  /**
+   * Unsets the value of the "lowerFluxBound" attribute of this FbcReactionPlugin.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetLowerFluxBound();
+
+
+  /**
+   * Unsets the value of the "upperFluxBound" attribute of this FbcReactionPlugin.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetUpperFluxBound();
+
+  /**
+   * Unsets the the "geneProduct" element of this FbcReactionPlugin.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetGeneProductAssociation();
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument.
+   */
+  virtual void setSBMLDocument (SBMLDocument* d);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  virtual void connectToParent (SBase* sbase);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  virtual void enablePackageInternal(const std::string& pkgURI,
+                                     const std::string& pkgPrefix, bool flag);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  virtual bool accept (SBMLVisitor& v) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  GeneProductAssociation* mGeneProductAssociation;
+  std::string   mLowerFluxBound;
+  std::string   mUpperFluxBound;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+
+#endif  /* __cplusplus */
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+
+
+/**
+ * Takes a FbcReactionPlugin_t structure and returns its UpperFluxBound.
+ *
+ * @param fbc the FbcReactionPlugin_t whose UpperFluxBound is sought.
+ *
+ * @return the UpperFluxBound of the given FbcReactionPlugin_t, as a pointer to a string.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+char *
+FbcReactionPlugin_getUpperFluxBound(SBasePlugin_t * fbc);
+
+
+/**
+ * Predicate returning @c true or @c false depending on whether the given
+ * FbcReactionPlugin_t structure's UpperFluxBound is set.
+ *
+ * @param fbc the FbcReactionPlugin_t structure to query
+ * 
+ * @return @c non-zero (true) if the "UpperFluxBound" attribute of the given
+ * FbcReactionPlugin_t structure is set, zero (false) otherwise.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_isSetUpperFluxBound(SBasePlugin_t * fbc);
+
+
+/**
+ * Sets the UpperFluxBound of the given FbcReactionPlugin_t to a copy of @p UpperFluxBound.
+ *
+ * @param fbc the FbcReactionPlugin_t structure to set
+ * @param UpperFluxBound the UpperFluxBound to assign to the given FbcReactionPlugin_t's "UpperFluxBound" attribute.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @note Using this function with the name set to NULL is equivalent to
+ * unsetting the "UpperFluxBound" attribute.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_setUpperFluxBound(SBasePlugin_t * fbc, const char * UpperFluxBound);
+
+
+/**
+ * Unsets the "UpperFluxBound" attribute of the given FbcReactionPlugin_t structure.
+ *
+ * @param fbc the FbcReactionPlugin_t structure to unset
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_unsetUpperFluxBound(SBasePlugin_t * fbc);
+
+
+/**
+ * Takes a FbcReactionPlugin_t structure and returns its LowerFluxBound.
+ *
+ * @param fbc the FbcReactionPlugin_t whose LowerFluxBound is sought.
+ *
+ * @return the LowerFluxBound of the given FbcReactionPlugin_t, as a pointer to a string.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+char *
+FbcReactionPlugin_getLowerFluxBound(SBasePlugin_t * fbc);
+
+
+/**
+ * Predicate returning @c true or @c false depending on whether the given
+ * FbcReactionPlugin_t structure's LowerFluxBound is set.
+ *
+ * @param fbc the FbcReactionPlugin_t structure to query
+ * 
+ * @return @c non-zero (true) if the "LowerFluxBound" attribute of the given
+ * FbcReactionPlugin_t structure is set, zero (false) otherwise.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_isSetLowerFluxBound(SBasePlugin_t * fbc);
+
+
+/**
+ * Sets the LowerFluxBound of the given FbcReactionPlugin_t to a copy of @p LowerFluxBound.
+ *
+ * @param fbc the FbcReactionPlugin_t structure to set
+ * @param LowerFluxBound the LowerFluxBound to assign to the given FbcReactionPlugin_t's "LowerFluxBound" attribute.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @note Using this function with the name set to NULL is equivalent to
+ * unsetting the "LowerFluxBound" attribute.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_setLowerFluxBound(SBasePlugin_t * fbc, const char * LowerFluxBound);
+
+
+/**
+ * Unsets the "UpperFluxBound" attribute of the given FbcReactionPlugin_t structure.
+ *
+ * @param fbc the FbcReactionPlugin_t structure to unset
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_unsetUpperFluxBound(SBasePlugin_t * fbc);
+
+
+/**
+ * Predicate returning @c true or @c false depending on whether the given
+ * FbcReactionPlugin_t structure's GeneProductAssociation is set.
+ *
+ * @param fbc the FbcReactionPlugin_t structure to query
+ * 
+ * @return @c non-zero (true) if the "geneProductAssopciation" elemen of the given
+ * FbcReactionPlugin_t structure is set, zero (false) otherwise.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_isSetGeneProductAssociation(SBasePlugin_t * fbc);
+
+
+/**
+ * Takes a FbcReactionPlugin_t structure and returns its GeneProductAssociation_t.
+ *
+ * @param fbc the FbcReactionPlugin_t whose GeneProductAssociation_t is sought.
+ *
+ * @return the a pointer to the GeneProductAssociation_t of the given FbcReactionPlugin_t.
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+GeneProductAssociation_t*
+FbcReactionPlugin_getGeneProductAssociation(SBasePlugin_t * fbc);
+
+
+/**
+ * Takes a FbcReactionPlugin_t structure and sets its GeneProductAssociation_t.
+ *
+ * @param fbc the FbcReactionPlugin_t whose GeneProductAssociation_t is sought.
+ * @param gpa a pointer to the GeneProductAssociation_t to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof FbcReactionPlugin_t
+ */
+LIBSBML_EXTERN
+int
+FbcReactionPlugin_setGeneProductAssociation(SBasePlugin_t * fbc, 
+                                            GeneProductAssociation_t* gpa);
+
+
+
+
+
+END_C_DECLS
+
+LIBSBML_CPP_NAMESPACE_END
+
+
+#endif /* __cplusplus */
+#endif /* FbcReactionPlugin_H__ */
+
+
diff --git a/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.cpp b/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.cpp
index 930d0e9..cfcbcdd 100644
--- a/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   FbcSBMLDocumentPlugin.cpp
- * @brief:  Implementation of the FbcSBMLDocumentPlugin class
- * @author: SBMLTeam
+ * @file   FbcSBMLDocumentPlugin.cpp
+ * @brief  Implementation of the FbcSBMLDocumentPlugin class
+ * @author SBMLTeam
  *
  *<!---------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.h b/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.h
index eb4524f..69d8ee7 100644
--- a/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.h
+++ b/src/sbml/packages/fbc/extension/FbcSBMLDocumentPlugin.h
@@ -1,13 +1,13 @@
 /**
- * @file:   FbcSBMLDocumentPlugin.h
- * @brief:  Implementation of the FbcSBMLDocumentPlugin class
- * @author: SBMLTeam
+ * @file   FbcSBMLDocumentPlugin.h
+ * @brief  Implementation of the FbcSBMLDocumentPlugin class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -34,14 +34,13 @@
  * @sbmlbrief{fbc} Extension of SBMLDocument for the “fbc” package.
  *
  * The FbcSBMLDocumentPlugin class inherits from the SBMLDocumentPlugin
- * class, and codifies the extentions to the SBMLDocument class defined in
- * the SBML Level 3 @ref comp
- * @if java "Flux Balance Constraints"@endif@~ 
- * package (“comp”).  This extention defines a
- * required flag named <code>required</code>, which indicates whether 
- * “fbc” constructs can be used to change the core mathematics of the
- * <code><model></code> child of the <code><sbml></code> element.
- * Since they cannot, this attribute must be set @c false.
+ * class, and codifies the extensions to the SBMLDocument class defined in
+ * the SBML Level 3 @ref fbc (“fbc”) package.  This
+ * extension defines a required flag named "required", which indicates
+ * whether “fbc” constructs can be used to change the core
+ * mathematical interpretation of the Model defined in the SBML input.  Since
+ * “fbc” constructs cannot, this attribute must be set to the
+ * value @c "false".
  */
 
 
diff --git a/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.cpp b/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.cpp
index 851dcac..e7be4e0 100644
--- a/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.cpp
+++ b/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -224,21 +224,7 @@ FbcSpeciesPlugin::writeElements (XMLOutputStream&) const
 /** @endcond */
 
 
-/*
- * Checks if this plugin object has all the required elements.
- */
-bool
-FbcSpeciesPlugin::hasRequiredElements () const
-{
-  bool allPresent = true; 
-
-  // TO DO 
-
-  return allPresent; 
-}
-
-
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 /*
  * Get the list of expected attributes for this element.
diff --git a/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.h b/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.h
index 3c81397..43da1e7 100644
--- a/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.h
+++ b/src/sbml/packages/fbc/extension/FbcSpeciesPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -27,7 +27,44 @@
  * @class FbcSpeciesPlugin
  * @sbmlbrief{fbc} Extension of Species.
  *
- * The Flux Balance Constraints package extends the SBML Level 3 Version 1 Core Species class with the addition of two attributes: 'charge' and 'chemicalFormula'.
+ * The FbcSpeciesPlugin class codifies an extension of the core SBML Species
+ * class defined in the SBML Level 3 @ref fbc (“fbc”)
+ * package.  The “fbc” package adds two attributes named "charge"
+ * and "chemicalFormula" to Species.
+ *
+ * The optional attribute "charge" can contain a signed integer that refers
+ * to the Species object's electrical charge (in terms of electrons, not the
+ * SI unit of coulombs).  Note that this attribute is therefore defined as it
+ * is in the SBML Level 2 Version 1 specification.  (The charge
+ * attribute was removed in higher Versions and Levels of SBML, and is not an
+ * attribute of SBML Species in core SBML Level 3.  However, it is
+ * useful for flux balance constraints models, and thus, the Level 3
+ * “fbc” package adds it.)
+ *
+ * The optional attribute "chemicalFormula" can contain a text string that
+ * represents the elemental composition of the substance represented by the
+ * Species object.  The purpose of the "chemicalFormula" attribute is to
+ * allow balancing and validating reactions.  This is particularly important
+ * in constraint-based models.  The format of "chemicalFormula" must consist
+ * only of atomic names (as given in the Periodic Table of elements) or
+ * user-defined compounds, either of which take the form of a single capital
+ * letter followed by zero or more lowercase letters.  Where there is more
+ * than a single atom present, this is indicated with an integer.  With
+ * regards to order (and to enhance interoperability of models), users are
+ * advised to employ the <a href="https://en.wikipedia.org/wiki/Hill_system">Hill system order</a>.
+ * Using this notation, the number of carbon atoms in a molecule is indicated
+ * first, followed by the number of hydrogen atoms, and then the number of
+ * all other chemical elements in alphabetical order.  When the formula
+ * contains no carbon, all elements including hydrogen are listed
+ * alphabetically.
+ *
+ * Here is an example of the XML form of an extended Species definition with
+ * these attributes:
+ * @verbatim
+<species metaid="meta_M_atp_c" id="M_atp_c" name="ATP" compartment="Cytosol"
+boundaryCondition="false" initialConcentration="0" hasOnlySubstanceUnits="false"
+fbc:charge="-4" fbc:chemicalFormula="C10H12N5O13P3"/>
+ at endverbatim
  */
 
 
@@ -129,18 +166,6 @@ public:
   /** @endcond doxygenLibsbmlInternal */
 
 
-  /**
-   * Checks if this plugin object has all the required elements.
-   *
-   * Subclasses must override this method 
-   * if they have their specific elements.
-   *
-   * @return true if this plugin object has all the required elements
-   * otherwise false will be returned.
-   */
-  virtual bool hasRequiredElements () const;
-
-
   //---------------------------------------------------------------
 
 
diff --git a/src/sbml/packages/fbc/extension/Makefile.in b/src/sbml/packages/fbc/extension/Makefile.in
index fd8eb63..97d705f 100644
--- a/src/sbml/packages/fbc/extension/Makefile.in
+++ b/src/sbml/packages/fbc/extension/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/extension/test/CMakeLists.txt b/src/sbml/packages/fbc/extension/test/CMakeLists.txt
index 74b77f6..d300b29 100644
--- a/src/sbml/packages/fbc/extension/test/CMakeLists.txt
+++ b/src/sbml/packages/fbc/extension/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ## 
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/extension/test/Makefile.in b/src/sbml/packages/fbc/extension/test/Makefile.in
index 06e1cc7..f068e3c 100644
--- a/src/sbml/packages/fbc/extension/test/Makefile.in
+++ b/src/sbml/packages/fbc/extension/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -47,11 +47,12 @@ thisdir   = src/sbml/packages/fbc/extension/test
 # `extra_CXXFLAGS', `extra_LDFLAGS' and `distfiles' are used by the default
 # rules in `makefile-common-actions.mk' included at the end.
 
-test_sources =			  \
-	TestFbcExtension.cpp	  \
-	TestReadFbcExtension.cpp  \
-	TestWriteFbcExtension.cpp \
-	TestRunner.c
+test_sources =              \
+  TestFbcExtension.cpp      \
+  TestReadFbcExtension.cpp  \
+  TestWriteFbcExtension.cpp \
+  TestFbcAssociation.cpp    \
+  TestRunner.c
 
 test_headers =
 
diff --git a/src/sbml/packages/fbc/extension/test/TestFbcAssociation.cpp b/src/sbml/packages/fbc/extension/test/TestFbcAssociation.cpp
new file mode 100644
index 0000000..f28f04f
--- /dev/null
+++ b/src/sbml/packages/fbc/extension/test/TestFbcAssociation.cpp
@@ -0,0 +1,603 @@
+/**
+ * @file    TestFbcAssociation.cpp
+ * @brief   TestFbcAssociation unit tests
+ * @author  Akiya Jouraku
+ *
+ * $Id: $
+ * $HeadURL: $
+ */
+
+#include <limits>
+
+#include <iostream>
+#include <check.h>
+#include <sbml/packages/fbc/extension/FbcModelPlugin.h>
+#include <sbml/packages/fbc/extension/FbcReactionPlugin.h>
+#include <sbml/packages/fbc/sbml/FbcAssociation.h>
+#include <sbml/packages/fbc/sbml/FbcAnd.h>
+#include <sbml/packages/fbc/sbml/FbcOr.h>
+#include <sbml/packages/fbc/sbml/GeneProductRef.h>
+#include <sbml/extension/SBMLExtensionRegistry.h>
+#include <sbml/SBMLTypeCodes.h>
+#include <sbml/SBMLReader.h>
+#include <sbml/SBMLWriter.h>
+#include <string>
+
+/** @cond doxygenIgnored */
+
+using namespace std;
+LIBSBML_CPP_NAMESPACE_USE
+
+/** @endcond doxygenIgnored */
+
+
+CK_CPPSTART
+extern char *TestDataDirectory;
+
+static FbcAssociation* G; 
+
+static bool
+equals (const char* expected, const char* actual)
+{
+  if ( !strcmp(expected, actual) ) return true;
+
+  printf( "\nStrings are not equal:\n"  );
+  printf( "Expected:\n[%s]\n", expected );
+  printf( "Actual:\n[%s]\n"  , actual   );
+
+  return false;
+}
+
+void
+FbcAssociationTest_setup (void)
+{
+  try
+  {
+    G = new FbcAssociation(3, 1, 2);
+  }
+  catch(...)
+  {
+    fail("Failed to create a FbcAssociation object");
+  }
+}
+
+
+void
+FbcAssociationTest_teardown (void)
+{
+  delete G;
+}
+
+
+START_TEST(test_FbcAssociation_parseFbcInfixAssociation_product_ref)
+{	
+  const char* model1 =
+    "<?xml version='1.0' encoding='UTF-8'?>"
+    "<sbml xmlns:html='http://www.w3.org/1999/xhtml' xmlns='http://www.sbml.org/sbml/level3/version1/core' xmlns:fbc='http://www.sbml.org/sbml/level3/version1/fbc/version2' level='3' version='1' fbc:required='false'>"
+    "  <model id='M' name='E' timeUnits='dimensionless' fbc:strict='false'>"
+    "    <listOfCompartments>"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>"
+    "    </listOfCompartments>"
+    "    <listOfSpecies>"
+    "       <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>"
+    "    </listOfSpecies>"
+    "    <listOfReactions>"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">"
+    "    <listOfReactants>"
+    "    <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>"
+    "    </listOfReactants>"
+    "    </reaction>"
+    "    </listOfReactions>"
+    "  </model>"
+    "</sbml>"
+    ;
+    const char* expected =
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+    "<sbml xmlns:html=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" xmlns:fbc=\"http://www.sbml.org/sbml/level3/version1/fbc/version2\" level=\"3\" version=\"1\" fbc:required=\"false\">\n"
+    "  <model id=\"M\" name=\"E\" timeUnits=\"dimensionless\" fbc:strict=\"false\">\n"
+    "    <listOfCompartments>\n"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>\n"
+    "    </listOfCompartments>\n"
+    "    <listOfSpecies>\n"
+    "      <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>\n"
+    "    </listOfSpecies>\n"
+    "    <listOfReactions>\n"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">\n"
+    "        <listOfReactants>\n"
+    "          <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>\n"
+    "        </listOfReactants>\n"
+    "        <fbc:geneProductAssociation fbc:id=\"gg1\">\n"
+    "          <fbc:geneProductRef fbc:geneProduct=\"gp_gp\"/>\n"
+    "        </fbc:geneProductAssociation>\n"
+    "      </reaction>\n"
+    "    </listOfReactions>\n"
+    "    <fbc:listOfGeneProducts>\n"
+    "      <fbc:geneProduct fbc:id=\"gp_gp\" fbc:label=\"gp\"/>\n"
+    "    </fbc:listOfGeneProducts>\n"
+    "  </model>\n"
+    "</sbml>\n"
+    ;
+
+  std::string infix = "gp";
+
+  SBMLDocument* doc = readSBMLFromString(model1);
+  fail_unless(doc->getModel() != NULL);
+  FbcModelPlugin* fbc = dynamic_cast<FbcModelPlugin*>(doc->getModel()->getPlugin("fbc"));
+  fail_unless(fbc != NULL);
+  fail_unless(fbc->getNumGeneProducts() == 0);
+
+  Reaction * r = doc->getModel()->getReaction(0);
+  fail_unless(r != NULL);
+  FbcReactionPlugin * rplug =  dynamic_cast<FbcReactionPlugin*>(r->getPlugin("fbc"));
+  fail_unless (rplug != NULL);
+  fail_unless(rplug->isSetGeneProductAssociation() == false);
+
+  GeneProductAssociation* gpa = rplug->createGeneProductAssociation();
+  gpa->setId("gg1");
+  FbcAssociation * fa = FbcAssociation::parseFbcInfixAssociation(infix, fbc);
+  fail_unless(fa->isGeneProductRef() == true);
+
+  gpa->setAssociation(fa);
+  fail_unless(rplug->isSetGeneProductAssociation() == true);
+  fail_unless(fbc->getNumGeneProducts() == 1);
+
+  GeneProduct* gp = fbc->getGeneProduct(0);
+  fail_unless (gp->isSetId() == true);
+  fail_unless (gp->isSetLabel() == true);
+  
+  FbcAssociation * fa_retrieved = gpa->getAssociation();
+  fail_unless(fa_retrieved->isGeneProductRef() == true);
+
+  // if it goes back to infix surely it should be the same infix that it started as
+  // FIXME
+  fail_unless(fa_retrieved->toInfix() == infix);
+  
+  GeneProductRef * gpref = dynamic_cast<GeneProductRef *>(gpa->getAssociation());
+  fail_unless(gpref->isSetGeneProduct() == true);
+
+  fail_unless(gpref->getGeneProduct() == gp->getId());
+
+  char * char_doc = writeSBMLToString(doc);
+  fail_unless(equals(expected, char_doc));
+
+  safe_free((void*)(char_doc));
+
+  delete fa;
+  delete doc;
+}
+END_TEST
+
+START_TEST(test_FbcAssociation_parseFbcInfixAssociation_product_ref_existing)
+{	
+  const char* model1 =
+    "<?xml version='1.0' encoding='UTF-8'?>"
+    "<sbml xmlns:html='http://www.w3.org/1999/xhtml' xmlns='http://www.sbml.org/sbml/level3/version1/core' xmlns:fbc='http://www.sbml.org/sbml/level3/version1/fbc/version2' level='3' version='1' fbc:required='false'>"
+    "  <model id='M' name='E' timeUnits='dimensionless' fbc:strict='false'>"
+    "    <listOfCompartments>"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>"
+    "    </listOfCompartments>"
+    "    <listOfSpecies>"
+    "       <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>"
+    "    </listOfSpecies>"
+    "    <fbc:listOfGeneProducts>"
+    "        <fbc:geneProduct fbc:id=\"gp_gp\" fbc:label=\"gp\"/>"
+    "    </fbc:listOfGeneProducts>"
+    "    <listOfReactions>"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">"
+    "        <listOfReactants>"
+    "           <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>"
+    "        </listOfReactants>"
+    "      </reaction>"
+    "    </listOfReactions>"
+    "  </model>"
+    "</sbml>"
+    ;
+    const char* expected =
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+    "<sbml xmlns:html=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" xmlns:fbc=\"http://www.sbml.org/sbml/level3/version1/fbc/version2\" level=\"3\" version=\"1\" fbc:required=\"false\">\n"
+    "  <model id=\"M\" name=\"E\" timeUnits=\"dimensionless\" fbc:strict=\"false\">\n"
+    "    <listOfCompartments>\n"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>\n"
+    "    </listOfCompartments>\n"
+    "    <listOfSpecies>\n"
+    "      <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>\n"
+    "    </listOfSpecies>\n"
+    "    <listOfReactions>\n"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">\n"
+    "        <listOfReactants>\n"
+    "          <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>\n"
+    "        </listOfReactants>\n"
+    "        <fbc:geneProductAssociation fbc:id=\"gg1\">\n"
+    "          <fbc:geneProductRef fbc:geneProduct=\"gp_gp\"/>\n"
+    "        </fbc:geneProductAssociation>\n"
+    "      </reaction>\n"
+    "    </listOfReactions>\n"
+    "    <fbc:listOfGeneProducts>\n"
+    "      <fbc:geneProduct fbc:id=\"gp_gp\" fbc:label=\"gp\"/>\n"
+    "    </fbc:listOfGeneProducts>\n"
+    "  </model>\n"
+    "</sbml>\n"
+    ;
+  std::string infix = "gp";
+
+  SBMLDocument* doc = readSBMLFromString(model1);
+  fail_unless(doc->getModel() != NULL);
+  FbcModelPlugin* fbc = dynamic_cast<FbcModelPlugin*>(doc->getModel()->getPlugin("fbc"));
+  fail_unless(fbc != NULL);
+  fail_unless(fbc->getNumGeneProducts() == 1);
+
+  GeneProduct* gp = fbc->getGeneProduct(0);
+  fail_unless (gp->isSetId() == true);
+  fail_unless (gp->isSetLabel() == true);
+
+  Reaction * r = doc->getModel()->getReaction(0);
+  fail_unless(r != NULL);
+  FbcReactionPlugin * rplug =  dynamic_cast<FbcReactionPlugin*>(r->getPlugin("fbc"));
+  fail_unless (rplug != NULL);
+  fail_unless(rplug->isSetGeneProductAssociation() == false);
+
+  GeneProductAssociation* gpa = rplug->createGeneProductAssociation();
+  gpa->setId("gg1");
+  FbcAssociation * fa = FbcAssociation::parseFbcInfixAssociation(infix, fbc);
+  fail_unless(fa->isGeneProductRef() == true);
+
+  gpa->setAssociation(fa);
+  fail_unless(rplug->isSetGeneProductAssociation() == true);
+  fail_unless(fbc->getNumGeneProducts() == 1);
+   
+  FbcAssociation * fa_retrieved = gpa->getAssociation();
+  fail_unless(fa_retrieved->isGeneProductRef() == true);
+  
+  GeneProductRef * gpref = dynamic_cast<GeneProductRef *>(gpa->getAssociation());
+  fail_unless(gpref->isSetGeneProduct() == true);
+
+  fail_unless(gpref->getGeneProduct() == gp->getId());
+
+  char * char_doc = writeSBMLToString(doc);
+  fail_unless(equals(expected, char_doc));
+
+  safe_free((void*)(char_doc));
+
+  delete fa;
+  delete doc;
+}
+END_TEST
+
+START_TEST(test_FbcAssociation_parseFbcInfixAssociation_product_ref_both_existing)
+{	
+  const char* model1 =
+    "<?xml version='1.0' encoding='UTF-8'?>"
+    "<sbml xmlns:html='http://www.w3.org/1999/xhtml' xmlns='http://www.sbml.org/sbml/level3/version1/core' xmlns:fbc='http://www.sbml.org/sbml/level3/version1/fbc/version2' level='3' version='1' fbc:required='false'>"
+    "  <model id='M' name='E' timeUnits='dimensionless' fbc:strict='false'>"
+    "    <listOfCompartments>"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>"
+    "    </listOfCompartments>"
+    "    <listOfSpecies>"
+    "       <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>"
+    "    </listOfSpecies>"
+    "    <fbc:listOfGeneProducts>"
+    "        <fbc:geneProduct fbc:id=\"gp_gp\" fbc:label=\"gp\"/>"
+    "    </fbc:listOfGeneProducts>"
+    "    <listOfReactions>"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">"
+    "        <listOfReactants>"
+    "           <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>"
+    "        </listOfReactants>"
+    "        <fbc:geneProductAssociation fbc:id=\"gg1\">"
+    "            <fbc:geneProductRef fbc:geneProduct=\"gp_gp\"/>"
+    "        </fbc:geneProductAssociation>"
+    "      </reaction>"
+    "    </listOfReactions>"
+    "  </model>"
+    "</sbml>"
+    ;
+    const char* expected =
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+    "<sbml xmlns:html=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" xmlns:fbc=\"http://www.sbml.org/sbml/level3/version1/fbc/version2\" level=\"3\" version=\"1\" fbc:required=\"false\">\n"
+    "  <model id=\"M\" name=\"E\" timeUnits=\"dimensionless\" fbc:strict=\"false\">\n"
+    "    <listOfCompartments>\n"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>\n"
+    "    </listOfCompartments>\n"
+    "    <listOfSpecies>\n"
+    "      <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>\n"
+    "    </listOfSpecies>\n"
+    "    <listOfReactions>\n"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">\n"
+    "        <listOfReactants>\n"
+    "          <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>\n"
+    "        </listOfReactants>\n"
+    "        <fbc:geneProductAssociation fbc:id=\"gg1\">\n"
+    "          <fbc:geneProductRef fbc:geneProduct=\"gp_gp\"/>\n"
+    "        </fbc:geneProductAssociation>\n"
+    "      </reaction>\n"
+    "    </listOfReactions>\n"
+    "    <fbc:listOfGeneProducts>\n"
+    "      <fbc:geneProduct fbc:id=\"gp_gp\" fbc:label=\"gp\"/>\n"
+    "    </fbc:listOfGeneProducts>\n"
+    "  </model>\n"
+    "</sbml>\n"
+    ;
+  std::string infix = "gp";
+
+  SBMLDocument* doc = readSBMLFromString(model1);
+  fail_unless(doc->getModel() != NULL);
+  FbcModelPlugin* fbc = dynamic_cast<FbcModelPlugin*>(doc->getModel()->getPlugin("fbc"));
+  fail_unless(fbc != NULL);
+  fail_unless(fbc->getNumGeneProducts() == 1);
+
+  GeneProduct* gp = fbc->getGeneProduct(0);
+  fail_unless (gp->isSetId() == true);
+  fail_unless (gp->isSetLabel() == true);
+  
+  Reaction * r = doc->getModel()->getReaction(0);
+  fail_unless(r != NULL);
+  FbcReactionPlugin * rplug =  dynamic_cast<FbcReactionPlugin*>(r->getPlugin("fbc"));
+  fail_unless (rplug != NULL);
+  fail_unless(rplug->isSetGeneProductAssociation() == true);
+
+  GeneProductAssociation* gpa = rplug->getGeneProductAssociation();
+  fail_unless (gpa != NULL);
+  
+  FbcAssociation * fa = gpa->getAssociation();
+  fail_unless(fa->isGeneProductRef() == true);
+
+  fail_unless(fa->toInfix() == infix);
+
+  //reset the association
+  gpa->setAssociation(infix);
+  fail_unless(rplug->isSetGeneProductAssociation() == true);
+  fail_unless(fbc->getNumGeneProducts() == 1);
+
+  gp = fbc->getGeneProduct(0);
+  fail_unless (gp->isSetId() == true);
+  fail_unless (gp->isSetLabel() == true);
+  
+  FbcAssociation * fa_retrieved = gpa->getAssociation();
+  fail_unless(fa_retrieved->isGeneProductRef() == true);
+  
+  GeneProductRef * gpref = dynamic_cast<GeneProductRef *>(gpa->getAssociation());
+  fail_unless(gpref->isSetGeneProduct() == true);
+
+  fail_unless(gpref->getGeneProduct() == gp->getId());
+
+  char * char_doc = writeSBMLToString(doc);
+  fail_unless(equals(expected, char_doc));
+
+  safe_free((void*)(char_doc));
+
+  delete doc;
+}
+END_TEST
+
+START_TEST(test_FbcAssociation_parseFbcInfixAssociation_product_ref_id_label_same)
+{	
+  const char* model1 =
+    "<?xml version='1.0' encoding='UTF-8'?>"
+    "<sbml xmlns:html='http://www.w3.org/1999/xhtml' xmlns='http://www.sbml.org/sbml/level3/version1/core' xmlns:fbc='http://www.sbml.org/sbml/level3/version1/fbc/version2' level='3' version='1' fbc:required='false'>"
+    "  <model id='M' name='E' timeUnits='dimensionless' fbc:strict='false'>"
+    "    <listOfCompartments>"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>"
+    "    </listOfCompartments>"
+    "    <listOfSpecies>"
+    "       <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>"
+    "    </listOfSpecies>"
+    "    <fbc:listOfGeneProducts>"
+    "        <fbc:geneProduct fbc:id=\"gp1\" fbc:label=\"gp1\"/>"
+    "    </fbc:listOfGeneProducts>"
+    "    <listOfReactions>"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">"
+    "        <listOfReactants>"
+    "           <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>"
+    "        </listOfReactants>"
+    "        <fbc:geneProductAssociation fbc:id=\"gg1\">"
+    "            <fbc:geneProductRef fbc:geneProduct=\"gp1\"/>"
+    "        </fbc:geneProductAssociation>"
+    "      </reaction>"
+    "    </listOfReactions>"
+    "  </model>"
+    "</sbml>"
+    ;
+
+    const char* expected =
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+    "<sbml xmlns:html=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" xmlns:fbc=\"http://www.sbml.org/sbml/level3/version1/fbc/version2\" level=\"3\" version=\"1\" fbc:required=\"false\">\n"
+    "  <model id=\"M\" name=\"E\" timeUnits=\"dimensionless\" fbc:strict=\"false\">\n"
+    "    <listOfCompartments>\n"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>\n"
+    "    </listOfCompartments>\n"
+    "    <listOfSpecies>\n"
+    "      <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>\n"
+    "    </listOfSpecies>\n"
+    "    <listOfReactions>\n"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">\n"
+    "        <listOfReactants>\n"
+    "          <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>\n"
+    "        </listOfReactants>\n"
+    "        <fbc:geneProductAssociation fbc:id=\"gg1\">\n"
+    "          <fbc:geneProductRef fbc:geneProduct=\"gp1\"/>\n"
+    "        </fbc:geneProductAssociation>\n"
+    "      </reaction>\n"
+    "    </listOfReactions>\n"
+    "    <fbc:listOfGeneProducts>\n"
+    "      <fbc:geneProduct fbc:id=\"gp1\" fbc:label=\"gp1\"/>\n"
+    "    </fbc:listOfGeneProducts>\n"
+    "  </model>\n"
+    "</sbml>\n"
+    ;
+
+  std::string infix = "gp1";
+
+  SBMLDocument* doc = readSBMLFromString(model1);
+  fail_unless(doc->getModel() != NULL);
+  FbcModelPlugin* fbc = dynamic_cast<FbcModelPlugin*>(doc->getModel()->getPlugin("fbc"));
+  fail_unless(fbc != NULL);
+  fail_unless(fbc->getNumGeneProducts() == 1);
+
+  GeneProduct* gp = fbc->getGeneProduct(0);
+  fail_unless (gp->isSetId() == true);
+  fail_unless (gp->isSetLabel() == true);
+  
+  Reaction * r = doc->getModel()->getReaction(0);
+  fail_unless(r != NULL);
+  FbcReactionPlugin * rplug =  dynamic_cast<FbcReactionPlugin*>(r->getPlugin("fbc"));
+  fail_unless (rplug != NULL);
+  fail_unless(rplug->isSetGeneProductAssociation() == true);
+
+  GeneProductAssociation* gpa = rplug->getGeneProductAssociation();
+  fail_unless (gpa != NULL);
+  
+  FbcAssociation * fa = gpa->getAssociation();
+  fail_unless(fa->isGeneProductRef() == true);
+
+  fail_unless(fa->toInfix() == infix);
+
+  //reset the association
+  gpa->setAssociation(infix);
+  fail_unless(rplug->isSetGeneProductAssociation() == true);
+  fail_unless(fbc->getNumGeneProducts() == 1);
+
+  gp = fbc->getGeneProduct(0);
+  fail_unless (gp->isSetId() == true);
+  fail_unless (gp->isSetLabel() == true);
+  
+  FbcAssociation * fa_retrieved = gpa->getAssociation();
+  fail_unless(fa_retrieved->isGeneProductRef() == true);
+  
+  GeneProductRef * gpref = dynamic_cast<GeneProductRef *>(gpa->getAssociation());
+  fail_unless(gpref->isSetGeneProduct() == true);
+
+  fail_unless(gpref->getGeneProduct() == gp->getId());
+
+  char * char_doc = writeSBMLToString(doc);
+  fail_unless(equals(expected, char_doc));
+
+  safe_free((void*)(char_doc));
+
+  delete doc;
+}
+END_TEST
+
+  START_TEST(test_FbcAssociation_parseFbcInfixAssociation_strange_labels)
+{	
+  const char* model1 =
+    "<?xml version='1.0' encoding='UTF-8'?>"
+    "<sbml xmlns:html='http://www.w3.org/1999/xhtml' xmlns='http://www.sbml.org/sbml/level3/version1/core' xmlns:fbc='http://www.sbml.org/sbml/level3/version1/fbc/version2' level='3' version='1' fbc:required='false'>"
+    "  <model id='M' name='E' timeUnits='dimensionless' fbc:strict='false'>"
+    "    <listOfCompartments>"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>"
+    "    </listOfCompartments>"
+    "    <listOfSpecies>"
+    "       <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>"
+    "    </listOfSpecies>"
+    "    <listOfReactions>"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">"
+    "    <listOfReactants>"
+    "    <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>"
+    "    </listOfReactants>"
+    "    </reaction>"
+    "    </listOfReactions>"
+    "  </model>"
+    "</sbml>"
+    ;
+    const char* expected =
+    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+    "<sbml xmlns:html=\"http://www.w3.org/1999/xhtml\" xmlns=\"http://www.sbml.org/sbml/level3/version1/core\" xmlns:fbc=\"http://www.sbml.org/sbml/level3/version1/fbc/version2\" level=\"3\" version=\"1\" fbc:required=\"false\">\n"
+    "  <model id=\"M\" name=\"E\" timeUnits=\"dimensionless\" fbc:strict=\"false\">\n"
+    "    <listOfCompartments>\n"
+    "      <compartment id=\"comp1\" spatialDimensions=\"3\" size=\"1\" constant=\"true\"/>\n"
+    "    </listOfCompartments>\n"
+    "    <listOfSpecies>\n"
+    "      <species id=\"S\" compartment=\"comp1\" initialAmount=\"1\" hasOnlySubstanceUnits=\"false\" boundaryCondition=\"false\" constant=\"false\" fbc:charge=\"2\" fbc:chemicalFormula=\"S20\"/>\n"
+    "    </listOfSpecies>\n"
+    "    <listOfReactions>\n"
+    "      <reaction id=\"R1\" reversible=\"false\" fast=\"false\" fbc:lowerFluxBound=\"low\" fbc:upperFluxBound=\"up\">\n"
+    "        <listOfReactants>\n"
+    "          <speciesReference species=\"S1\" stoichiometry=\"1\" constant=\"true\"/>\n"
+    "        </listOfReactants>\n"
+    "        <fbc:geneProductAssociation fbc:id=\"gg1\">\n"
+    "          <fbc:and>\n"
+    "            <fbc:geneProductRef fbc:geneProduct=\"gp_g__DOT__p\"/>\n"
+    "            <fbc:geneProductRef fbc:geneProduct=\"gp___ONE__sd\"/>\n"
+    "          </fbc:and>\n"
+    "        </fbc:geneProductAssociation>\n"
+    "      </reaction>\n"
+    "    </listOfReactions>\n"
+    "    <fbc:listOfGeneProducts>\n"
+    "      <fbc:geneProduct fbc:id=\"gp_g__DOT__p\" fbc:label=\"g.p\"/>\n"
+    "      <fbc:geneProduct fbc:id=\"gp___ONE__sd\" fbc:label=\"1sd\"/>\n"
+    "    </fbc:listOfGeneProducts>\n"
+    "  </model>\n"
+    "</sbml>\n"
+    ;
+
+  std::string infix = "(g.p and 1sd)";
+
+  SBMLDocument* doc = readSBMLFromString(model1);
+  fail_unless(doc->getModel() != NULL);
+  FbcModelPlugin* fbc = dynamic_cast<FbcModelPlugin*>(doc->getModel()->getPlugin("fbc"));
+  fail_unless(fbc != NULL);
+  fail_unless(fbc->getNumGeneProducts() == 0);
+
+  Reaction * r = doc->getModel()->getReaction(0);
+  fail_unless(r != NULL);
+  FbcReactionPlugin * rplug =  dynamic_cast<FbcReactionPlugin*>(r->getPlugin("fbc"));
+  fail_unless (rplug != NULL);
+  fail_unless(rplug->isSetGeneProductAssociation() == false);
+
+  GeneProductAssociation* gpa = rplug->createGeneProductAssociation();
+  gpa->setId("gg1");
+  FbcAssociation * fa = FbcAssociation::parseFbcInfixAssociation(infix, fbc);
+  fail_unless(fa->isFbcAnd() == true);
+
+  gpa->setAssociation(fa);
+  fail_unless(rplug->isSetGeneProductAssociation() == true);
+  fail_unless(fbc->getNumGeneProducts() == 2);
+
+  GeneProduct* gp = fbc->getGeneProduct(0);
+  fail_unless (gp->isSetId() == true);
+  fail_unless (gp->isSetLabel() == true);
+  
+  FbcAssociation * fa_retrieved = gpa->getAssociation();
+  fail_unless(fa_retrieved->isFbcAnd() == true);
+
+  std::string out = fa_retrieved->toInfix();
+  // if it goes back to infix surely it should be the same infix that it started as
+  fail_unless(fa_retrieved->toInfix() == infix);
+  
+  //GeneProductRef * gpref = dynamic_cast<GeneProductRef *>(gpa->getAssociation());
+  //fail_unless(gpref->isSetGeneProduct() == true);
+
+  //fail_unless(gpref->getGeneProduct() == gp->getId());
+
+  char * char_doc = writeSBMLToString(doc);
+  fail_unless(equals(expected, char_doc));
+
+  safe_free((void*)(char_doc));
+
+  delete fa;
+  delete doc;
+}
+END_TEST
+
+
+Suite *
+create_suite_FbcAssociation (void)
+{
+  Suite *suite = suite_create("FbcAssociation");
+  TCase *tcase = tcase_create("FbcAssociation");
+
+  tcase_add_checked_fixture(tcase, FbcAssociationTest_setup, FbcAssociationTest_teardown);
+ 
+  tcase_add_test( tcase, test_FbcAssociation_parseFbcInfixAssociation_product_ref          );
+  tcase_add_test( tcase, test_FbcAssociation_parseFbcInfixAssociation_product_ref_existing          );
+  tcase_add_test( tcase, test_FbcAssociation_parseFbcInfixAssociation_product_ref_both_existing          );
+  tcase_add_test( tcase, test_FbcAssociation_parseFbcInfixAssociation_product_ref_id_label_same          );
+  tcase_add_test( tcase, test_FbcAssociation_parseFbcInfixAssociation_strange_labels          );
+
+  suite_add_tcase(suite, tcase);
+
+  return suite;
+}
+
+
+CK_CPPEND
diff --git a/src/sbml/packages/fbc/extension/test/TestReadFbcExtension.cpp b/src/sbml/packages/fbc/extension/test/TestReadFbcExtension.cpp
index 9f7e63f..f776ab9 100644
--- a/src/sbml/packages/fbc/extension/test/TestReadFbcExtension.cpp
+++ b/src/sbml/packages/fbc/extension/test/TestReadFbcExtension.cpp
@@ -407,8 +407,47 @@ START_TEST(test_FbcExtension_read_and_convert)
   UnitDefinition* substance = model->getUnitDefinition("substance");
   fail_unless(substance != NULL);
 
+  Species* species = model->getSpecies("M_gamma_radiation_c");
+  fail_unless(species != NULL);
+  
+  FbcSpeciesPlugin* splug = dynamic_cast<FbcSpeciesPlugin*>(species->getPlugin("fbc"));
+  fail_unless(splug != NULL);
+  
+  fail_unless(splug->isSetCharge());
+  fail_unless(splug->getCharge() == 0);
+
+  species = model->getSpecies("M_A3MP_c");
+  fail_unless(species != NULL);
+  
+  splug = dynamic_cast<FbcSpeciesPlugin*>(species->getPlugin("fbc"));
+  fail_unless(splug != NULL);
+  
+  fail_unless(splug->isSetCharge());
+  fail_unless(splug->getCharge() == 1);
+  
+  species = model->getSpecies("M_AC_c");
+  fail_unless(species != NULL);
+  
+  splug = dynamic_cast<FbcSpeciesPlugin*>(species->getPlugin("fbc"));
+  fail_unless(splug != NULL);
+  
+  fail_unless(splug->isSetCharge());
+  fail_unless(splug->getCharge() == 0);
+  
+  species = model->getSpecies("M_A23CMP_c");
+  fail_unless(species != NULL);
+  
+  splug = dynamic_cast<FbcSpeciesPlugin*>(species->getPlugin("fbc"));
+  fail_unless(splug != NULL);
+  
+  fail_unless(splug->isSetCharge());
+  fail_unless(splug->getCharge() == 1);
+  
+  
+  
   std::string finalModel = writeSBMLToStdString(document);
 
+  safe_free((void*)(filename));
   delete document;
 }
 END_TEST
@@ -485,6 +524,8 @@ START_TEST(test_FbcExtension_read_and_convert_V1ToV2)
   }
 
   //std::string l3v1v1 = writeSBMLToStdString(document);
+  safe_free((void*)(filename));
+  delete document;
 
 }
 END_TEST
diff --git a/src/sbml/packages/fbc/extension/test/TestRunner.c b/src/sbml/packages/fbc/extension/test/TestRunner.c
index 2438c70..6e36bdc 100644
--- a/src/sbml/packages/fbc/extension/test/TestRunner.c
+++ b/src/sbml/packages/fbc/extension/test/TestRunner.c
@@ -27,6 +27,7 @@ CK_CPPSTART
 Suite *create_suite_FbcExtension (void);
 Suite *create_suite_WriteFbcExtension (void);
 Suite *create_suite_ReadFbcExtension (void);
+Suite *create_suite_FbcAssociation (void);
 
 
 /**
@@ -72,6 +73,7 @@ main (int argc, char* argv[])
   SRunner *runner = srunner_create(create_suite_FbcExtension());
   srunner_add_suite(runner, create_suite_WriteFbcExtension());
   srunner_add_suite(runner, create_suite_ReadFbcExtension());
+  srunner_add_suite(runner, create_suite_FbcAssociation());
 
   if (argc > 1 && !strcmp(argv[1], "-nofork"))
   {
diff --git a/src/sbml/packages/fbc/extension/test/test-data/cobra-l2.xml b/src/sbml/packages/fbc/extension/test/test-data/cobra-l2.xml
index 3fd73a0..38d57b8 100644
--- a/src/sbml/packages/fbc/extension/test/test-data/cobra-l2.xml
+++ b/src/sbml/packages/fbc/extension/test/test-data/cobra-l2.xml
@@ -14,9 +14,14 @@
       <compartment sboTerm="SBO:0000290" id="c" name="Cytosol" spatialDimensions="3" constant="false"/>
     </listOfCompartments>
     <listOfSpecies>
-      <species metaid="meta_M_gamma_radiation_c" sboTerm="SBO:0000170" id="M_gamma_radiation_c" name="gamma radiation (1.2 MeV)" compartment="c" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species metaid="meta_M_gamma_radiation_c" sboTerm="SBO:0000170" id="M_gamma_radiation_c" name="gamma radiation (1.2 MeV)" compartment="c" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" charge="0"/>
       <species metaid="meta_M_A23CMP_c" sboTerm="SBO:0000247" id="M_A23CMP_c" name="2',3'-Cyclic AMP" compartment="c" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
+      <notes>
+        <body xmlns:html="http://www.w3.org/1999/xhtml">
+          <html:p>CHARGE: 1</html:p>
+        </body>
+      </notes>
+      <annotation>
           <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/">
             <rdf:Description rdf:about="#meta_M_A23CMP_c">
               <bqbiol:is>
@@ -34,7 +39,7 @@
           </rdf:RDF>
         </annotation>
       </species>
-      <species metaid="meta_M_A3MP_c" sboTerm="SBO:0000247" id="M_A3MP_c" name="3'-AMP" compartment="c" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
+      <species metaid="meta_M_A3MP_c" sboTerm="SBO:0000247" id="M_A3MP_c" name="3'-AMP" compartment="c" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" charge="1">
         <annotation>
           <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/">
             <rdf:Description rdf:about="#meta_M_A3MP_c">
@@ -56,7 +61,12 @@
         </annotation>
       </species>
       <species metaid="meta_M_AC_c" sboTerm="SBO:0000247" id="M_AC_c" name="acetate" compartment="c" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false">
-        <annotation>
+      <notes>
+        <body xmlns:html="http://www.w3.org/1999/xhtml">
+          <html:p>CHARGE: 0</html:p>
+        </body>
+      </notes>
+      <annotation>
           <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/">
             <rdf:Description rdf:about="#meta_M_AC_c">
               <bqbiol:is>
diff --git a/src/sbml/packages/fbc/sbml/Association.cpp b/src/sbml/packages/fbc/sbml/Association.cpp
index 945e14d..78a3215 100644
--- a/src/sbml/packages/fbc/sbml/Association.cpp
+++ b/src/sbml/packages/fbc/sbml/Association.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/sbml/Association.h b/src/sbml/packages/fbc/sbml/Association.h
index 432f007..39df436 100644
--- a/src/sbml/packages/fbc/sbml/Association.h
+++ b/src/sbml/packages/fbc/sbml/Association.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -30,9 +30,12 @@
  *
  * The Association class is a helper class for creating annotations to store
  * gene association information in Version 1 of the SBML Level 3
- * Flux Balance Constraints (“fbc”) package.  In
- * “fbc” Version 2, the equivalent capability is handled
- * by the FbcAssociation class and this class (Association) is not used.
+ * @ref fbc (“fbc”) package.  In “fbc”
+ * Version 2, the equivalent capability is handled by the FbcAssociation
+ * class and this class (Association) is not used.
+ *
+ * @see FbcAssociation
+ * @see ListOfFbcAssociations
  */
 
 #ifndef Association_H__
@@ -60,11 +63,12 @@ LIBSBML_CPP_NAMESPACE_BEGIN
  * @brief Enumeration of possible association children of the proposed
  * GeneAssociation class.
  *
- * These type codes are not part of the Flux Balance Constraints
- * specification, but are used exclusively as helpers for custom
- * annotations of Version 1 of the specification.  In Version 2, this
- * information is handled bthough the use of the FbcAssociation abstract class,
- * with its FbcAnd, FbcOr, and GeneProductAssociation derived classes.
+ * These type codes are not part of the SBML Level 3 @ref fbc
+ * (“fbc”) package specification, but are used exclusively as
+ * helpers for custom annotations of Version 1 of the specification.  In
+ * Version 2, this information is handled bthough the use of the
+ * FbcAssociation abstract class, with its FbcAnd, FbcOr, and
+ * GeneProductAssociation derived classes.
  */
 typedef enum
 {
diff --git a/src/sbml/packages/fbc/sbml/FbcAnd.cpp b/src/sbml/packages/fbc/sbml/FbcAnd.cpp
index ff6a3e5..13d876f 100644
--- a/src/sbml/packages/fbc/sbml/FbcAnd.cpp
+++ b/src/sbml/packages/fbc/sbml/FbcAnd.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   FbcAnd.cpp
- * @brief:  Implementation of the FbcAnd class
- * @author: SBMLTeam
+ * @file   FbcAnd.cpp
+ * @brief  Implementation of the FbcAnd class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -447,9 +447,7 @@ FbcAnd::hasRequiredAttributes () const
 bool
 FbcAnd::hasRequiredElements () const
 {
-  bool allPresent = FbcAssociation::hasRequiredElements();
-
-  return allPresent;
+  return getNumAssociations() >= 2;
 }
 
 
diff --git a/src/sbml/packages/fbc/sbml/FbcAnd.h b/src/sbml/packages/fbc/sbml/FbcAnd.h
index 2574049..e21f539 100644
--- a/src/sbml/packages/fbc/sbml/FbcAnd.h
+++ b/src/sbml/packages/fbc/sbml/FbcAnd.h
@@ -1,631 +1,636 @@
-/**
- * @file:   FbcAnd.h
- * @brief:  Implementation of the FbcAnd class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2014 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class FbcAnd
- * @sbmlbrief{fbc} An “and” relationship for gene products
- *
- * FbcAnd class is used in Version 2 of the SBML Level 3 Flux Balance
- * Constraints (“fbc”) package to represent an "and" relationship
- * between two or more child FbcAssociation objects.  In other words, it
- * indicates that all of the child objects are included.  Note that since the
- * FbcAssociation class is the parent class of GeneProducRef, FbcAnd and
- * FbcOr, a given FbcAnd can potentially include nested "and"/"or"
- * combinations of gene products.
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- */
-
-
-#ifndef FbcAnd_H__
-#define FbcAnd_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/fbc/common/fbcfwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/fbc/extension/FbcExtension.h>
-#include <sbml/packages/fbc/sbml/FbcAssociation.h>
-
-#include <sbml/packages/fbc/sbml/FbcAssociation.h>
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-
-class LIBSBML_EXTERN FbcAnd : public FbcAssociation
-{
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-  ListOfFbcAssociations   mAssociations;
-  /** @endcond doxygenLibsbmlInternal */
-
-
-public:
-
-  /**
-   * Creates a new FbcAnd with the given SBML Level, Version, and
-   * “fbc”package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this FbcAnd
-   *
-   * @param version an unsigned int, the SBML Version to assign to this
-   * FbcAnd
-   *
-   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
-   * this FbcAnd
-   */
-  FbcAnd(unsigned int level      = FbcExtension::getDefaultLevel(),
-         unsigned int version    = FbcExtension::getDefaultVersion(),
-         unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new FbcAnd with the given FbcPkgNamespaces object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  FbcAnd(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Copy constructor for FbcAnd.
-   *
-   * @param orig; the FbcAnd instance to copy.
-   */
-  FbcAnd(const FbcAnd& orig);
-
-
-   /**
-   * Assignment operator for FbcAnd.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  FbcAnd& operator=(const FbcAnd& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this FbcAnd object.
-   *
-   * @return a (deep) copy of this FbcAnd object.
-   */
-  virtual FbcAnd* clone () const;
-
-
-   /**
-   * Destructor for FbcAnd.
-   */
-  virtual ~FbcAnd();
-
-
-   /**
-   * Returns the  "ListOfFbcAssociations" in this FbcAnd object.
-   *
-   * @return the "ListOfFbcAssociations" attribute of this FbcAnd.
-   */
-  const ListOfFbcAssociations* getListOfAssociations() const;
-
-
-  /**
-   * Returns the  "ListOfFbcAssociations" in this FbcAnd object.
-   *
-   * @return the "ListOfFbcAssociations" attribute of this FbcAnd.
-   */
-  ListOfFbcAssociations* getListOfAssociations();
-
-
-  /**
-   * Get the nth object from the ListOfFbcAssociations.
-   *
-   * @param n the index number of the Association to get.
-   *
-   * @return the nth Association in the ListOfFbcAssociations within this
-   * FbcAnd.
-   *
-   * @see getNumAssociations()
-   */
-  FbcAssociation* getAssociation(unsigned int n);
-
-
-  /**
-   * Get the nth object from the ListOfFbcAssociations.
-   *
-   * @param n the index number of the Association to get.
-   *
-   * @return the nth Association in the ListOfFbcAssociations within this
-   * FbcAnd.
-   *
-   * @see getNumAssociations()
-   */
-  const FbcAssociation* getAssociation(unsigned int n) const;
-
-
-  /**
-   * Get a Association from the ListOfFbcAssociations
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the Association to get.
-   *
-   * @return the Association in the ListOfFbcAssociations
-   * with the given id or NULL if no such
-   * Association exists.
-   *
-   * @see getAssociation(unsigned int n)
-   *
-   * @see getNumAssociations()
-   */
-  FbcAssociation* getAssociation(const std::string& sid);
-
-
-  /**
-   * Get a Association from the ListOfFbcAssociations
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the Association to get.
-   *
-   * @return the Association in the ListOfFbcAssociations
-   * with the given id or NULL if no such
-   * Association exists.
-   *
-   * @see getAssociation(unsigned int n)
-   *
-   * @see getNumAssociations()
-   */
-  const FbcAssociation* getAssociation(const std::string& sid) const;
-
-
-  /**
-   * Adds a copy the given "FbcAssociation" to this FbcAnd.
-   *
-   * @param fa; the FbcAssociation object to add
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  int addAssociation(const FbcAssociation* fa);
-
-
-  /**
-   * Get the number of FbcAssociation objects in this FbcAnd.
-   *
-   * @return the number of FbcAssociation objects in this FbcAnd
-   */
-  unsigned int getNumAssociations() const;
-
-
-  /**
-  * Converts this FbcAssociation object into an infix string representation.
-  *
-  * @return the association as infix string.
-  */
-  virtual std::string toInfix() const;
-
-
-  /**
-   * Creates a new FbcAnd object, adds it to this FbcAnds
-   * ListOfFbcAssociations and returns the FbcAnd object created. 
-   *
-   * @return a new FbcAnd object instance
-   *
-   * @see addAssociation(const FbcAssociation* fa)
-   */
-  FbcAnd* createAnd();
-
-
-  /**
-   * Creates a new FbcOr object, adds it to this FbcAnds
-   * ListOfFbcAssociations and returns the FbcOr object created. 
-   *
-   * @return a new FbcOr object instance
-   *
-   * @see addAssociation(const FbcAssociation* fa)
-   */
-  FbcOr* createOr();
-
-
-  /**
-   * Creates a new GeneProductRef object, adds it to this FbcAnds
-   * ListOfFbcAssociations and returns the GeneProductRef object created. 
-   *
-   * @return a new GeneProductRef object instance
-   *
-   * @see addAssociation(const FbcAssociation* fa)
-   */
-  GeneProductRef* createGeneProductRef();
-
-
-  /**
-   * Removes the nth Association from the ListOfFbcAssociations within this FbcAnd.
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the Association to remove.
-   *
-   * @see getNumAssociations()
-   */
-  FbcAssociation* removeAssociation(unsigned int n);
-
-
-  /**
-   * Removes the Association with the given identifier from the ListOfFbcAssociations within this FbcAnd
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
-   *
-   * @param sid the identifier of the Association to remove.
-   *
-   * @return the Association removed. As mentioned above, the caller owns the
-   * returned item.
-   */
-  FbcAssociation* removeAssociation(const std::string& sid);
-
-
-  /**
-   * Returns a List of all child SBase objects, including those nested to an
-   * arbitrary depth.
-   *
-   * @return a List* of pointers to all child objects.
-   */
-   virtual List* getAllElements(ElementFilter * filter = NULL);
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For FbcAnd, the XML element name is always @c "fbcAnd".
-   *
-   * @return the name of this element, i.e. @c "fbcAnd".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_FBC_AND, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes
-   * for this FbcAnd object have been set.
-   *
-   * @note The required attributes for a FbcAnd object are:
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /**
-   * Predicate returning @c true if all the required elements
-   * for this FbcAnd object have been set.
-   *
-   * @note The required elements for a FbcAnd object are:
-   *
-   * @return a boolean value indicating whether all the required
-   * elements for this object have been defined.
-   */
-  virtual bool hasRequiredElements() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Connects to child elements.
-   */
-  virtual void connectToChild ();
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * return the SBML object corresponding to next XMLToken.
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-/**
- * Creates a new FbcAnd_t structure using the given SBML @p level and
- * @p version values.
- *
- * @param level an unsigned int, the SBML level to assign to this
- * FbcAnd_t structure.
- *
- * @param version an unsigned int, the SBML version to assign to this
- * FbcAnd_t structure.
- *
- * @returns the newly-created FbcAnd_t structure, or a null pointer if
- * an error occurred during construction.
- *
- * @copydetails doc_note_setting_lv
- *
- * @memberof FbcAnd_t
- */
-LIBSBML_EXTERN
-FbcAnd_t *
-FbcAnd_create(unsigned int level, unsigned int version,
-              unsigned int pkgVersion);
-
-
-/**
- * Frees the given FbcAnd_t structure.
- * 
- * @param fa the FbcAnd_t structure to be freed.
- *
- * @memberof FbcAnd_t
- */
-LIBSBML_EXTERN
-void
-FbcAnd_free(FbcAnd_t * fa);
-
-
-/**
- * Creates a deep copy of the given FbcAnd_t structure.
- * 
- * @param fa the FbcAnd_t structure to be copied.
- *
- * @returns a (deep) copy of the given FbcAnd_t structure, or a null
- * pointer if a failure occurred.
- *
- * @memberof FbcAnd_t
- */
-LIBSBML_EXTERN
-FbcAnd_t *
-FbcAnd_clone(FbcAnd_t * fa);
-
-
-LIBSBML_EXTERN
-int
-FbcAnd_addAssociation(FbcAnd_t * fa, FbcAssociation_t * association);
-
-
-LIBSBML_EXTERN
-FbcAnd_t *
-FbcAnd_createAnd(FbcAnd_t * fa);
-
-
-LIBSBML_EXTERN
-FbcOr_t *
-FbcAnd_createOr(FbcAnd_t * fa);
-
-
-LIBSBML_EXTERN
-GeneProductRef_t *
-FbcAnd_createGeneProductRef(FbcAnd_t * fa);
-
-
-LIBSBML_EXTERN
-ListOf_t *
-FbcAnd_getListOfFbcAssociations(FbcAnd_t * fa) ;
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcAnd_getAssociation(FbcAnd_t * fa, unsigned int n);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcAnd_getAssociationById(FbcAnd_t * fa, const char * sid);
-
-
-LIBSBML_EXTERN
-unsigned int
-FbcAnd_getNumAssociations(FbcAnd_t * fa);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcAnd_removeAssociation(FbcAnd_t * fa, unsigned int n);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcAnd_removeAssociationById(FbcAnd_t * fa, const char * sid);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * attributes of the given FbcAnd_t structure have been set.
- *
- * @param fa the FbcAnd_t structure to check.
- *
- * @return @c 1 if all the required attributes for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of FbcAnd_t
- */
-LIBSBML_EXTERN
-int
-FbcAnd_hasRequiredAttributes(const FbcAnd_t * fa);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * sub-elements of the given FbcAnd_t structure have been set.
- *
- * @param fa the FbcAnd_t structure to check.
- *
- * @return @c 1 if all the required sub-elements for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of FbcAnd_t
- */
-LIBSBML_EXTERN
-int
-FbcAnd_hasRequiredElements(const FbcAnd_t * fa);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  FbcAnd_H__  */
-
+/**
+ * @file   FbcAnd.h
+ * @brief  Implementation of the FbcAnd class
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class FbcAnd
+ * @sbmlbrief{fbc} An “and” relationship for gene products
+ *
+ * FbcAnd class is used in Version 2 of the SBML Level 3 @ref fbc
+ * (“fbc”) package to represent an "and" relationship between two
+ * or more child FbcAssociation objects.  In other words, it indicates that
+ * all of the child objects are included.  Note that since the FbcAssociation
+ * class is the parent class of GeneProductRef, FbcAnd and FbcOr, a given
+ * FbcAnd can potentially include nested "and"/"or" combinations of gene
+ * products.
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ *
+ * @see FbcAssociation
+ * @see FbcOr
+ * @see GeneProductRef
+ */
+
+
+#ifndef FbcAnd_H__
+#define FbcAnd_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/fbc/common/fbcfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/SBase.h>
+#include <sbml/ListOf.h>
+#include <sbml/packages/fbc/extension/FbcExtension.h>
+#include <sbml/packages/fbc/sbml/FbcAssociation.h>
+
+#include <sbml/packages/fbc/sbml/FbcAssociation.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+class LIBSBML_EXTERN FbcAnd : public FbcAssociation
+{
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+  ListOfFbcAssociations   mAssociations;
+  /** @endcond doxygenLibsbmlInternal */
+
+
+public:
+
+  /**
+   * Creates a new FbcAnd with the given SBML Level, Version, and
+   * “fbc”package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this FbcAnd
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * FbcAnd
+   *
+   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
+   * this FbcAnd
+   */
+  FbcAnd(unsigned int level      = FbcExtension::getDefaultLevel(),
+         unsigned int version    = FbcExtension::getDefaultVersion(),
+         unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new FbcAnd with the given FbcPkgNamespaces object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  FbcAnd(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Copy constructor for FbcAnd.
+   *
+   * @param orig; the FbcAnd instance to copy.
+   */
+  FbcAnd(const FbcAnd& orig);
+
+
+   /**
+   * Assignment operator for FbcAnd.
+   *
+   * @param rhs; the object whose values are used as the basis
+   * of the assignment
+   */
+  FbcAnd& operator=(const FbcAnd& rhs);
+
+
+   /**
+   * Creates and returns a deep copy of this FbcAnd object.
+   *
+   * @return a (deep) copy of this FbcAnd object.
+   */
+  virtual FbcAnd* clone () const;
+
+
+   /**
+   * Destructor for FbcAnd.
+   */
+  virtual ~FbcAnd();
+
+
+   /**
+   * Returns the  "ListOfFbcAssociations" in this FbcAnd object.
+   *
+   * @return the "ListOfFbcAssociations" attribute of this FbcAnd.
+   */
+  const ListOfFbcAssociations* getListOfAssociations() const;
+
+
+  /**
+   * Returns the  "ListOfFbcAssociations" in this FbcAnd object.
+   *
+   * @return the "ListOfFbcAssociations" attribute of this FbcAnd.
+   */
+  ListOfFbcAssociations* getListOfAssociations();
+
+
+  /**
+   * Get the nth object from the ListOfFbcAssociations.
+   *
+   * @param n the index number of the Association to get.
+   *
+   * @return the nth Association in the ListOfFbcAssociations within this
+   * FbcAnd.
+   *
+   * @see getNumAssociations()
+   */
+  FbcAssociation* getAssociation(unsigned int n);
+
+
+  /**
+   * Get the nth object from the ListOfFbcAssociations.
+   *
+   * @param n the index number of the Association to get.
+   *
+   * @return the nth Association in the ListOfFbcAssociations within this
+   * FbcAnd.
+   *
+   * @see getNumAssociations()
+   */
+  const FbcAssociation* getAssociation(unsigned int n) const;
+
+
+  /**
+   * Get a Association from the ListOfFbcAssociations
+   * based on its identifier.
+   *
+   * @param sid a string representing the identifier
+   * of the Association to get.
+   *
+   * @return the Association in the ListOfFbcAssociations
+   * with the given id or NULL if no such
+   * Association exists.
+   *
+   * @see getAssociation(unsigned int n)
+   *
+   * @see getNumAssociations()
+   */
+  FbcAssociation* getAssociation(const std::string& sid);
+
+
+  /**
+   * Get a Association from the ListOfFbcAssociations
+   * based on its identifier.
+   *
+   * @param sid a string representing the identifier
+   * of the Association to get.
+   *
+   * @return the Association in the ListOfFbcAssociations
+   * with the given id or NULL if no such
+   * Association exists.
+   *
+   * @see getAssociation(unsigned int n)
+   *
+   * @see getNumAssociations()
+   */
+  const FbcAssociation* getAssociation(const std::string& sid) const;
+
+
+  /**
+   * Adds a copy the given "FbcAssociation" to this FbcAnd.
+   *
+   * @param fa; the FbcAssociation object to add
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  int addAssociation(const FbcAssociation* fa);
+
+
+  /**
+   * Get the number of FbcAssociation objects in this FbcAnd.
+   *
+   * @return the number of FbcAssociation objects in this FbcAnd
+   */
+  unsigned int getNumAssociations() const;
+
+
+  /**
+  * Converts this FbcAssociation object into an infix string representation.
+  *
+  * @return the association as infix string.
+  */
+  virtual std::string toInfix() const;
+
+
+  /**
+   * Creates a new FbcAnd object, adds it to this FbcAnds
+   * ListOfFbcAssociations and returns the FbcAnd object created. 
+   *
+   * @return a new FbcAnd object instance
+   *
+   * @see addAssociation(const FbcAssociation* fa)
+   */
+  FbcAnd* createAnd();
+
+
+  /**
+   * Creates a new FbcOr object, adds it to this FbcAnds
+   * ListOfFbcAssociations and returns the FbcOr object created. 
+   *
+   * @return a new FbcOr object instance
+   *
+   * @see addAssociation(const FbcAssociation* fa)
+   */
+  FbcOr* createOr();
+
+
+  /**
+   * Creates a new GeneProductRef object, adds it to this FbcAnds
+   * ListOfFbcAssociations and returns the GeneProductRef object created. 
+   *
+   * @return a new GeneProductRef object instance
+   *
+   * @see addAssociation(const FbcAssociation* fa)
+   */
+  GeneProductRef* createGeneProductRef();
+
+
+  /**
+   * Removes the nth Association from the ListOfFbcAssociations within this FbcAnd.
+   * and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   *
+   * @param n the index of the Association to remove.
+   *
+   * @see getNumAssociations()
+   */
+  FbcAssociation* removeAssociation(unsigned int n);
+
+
+  /**
+   * Removes the Association with the given identifier from the ListOfFbcAssociations within this FbcAnd
+   * and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   * If none of the items in this list have the identifier @p sid, then
+   * @c NULL is returned.
+   *
+   * @param sid the identifier of the Association to remove.
+   *
+   * @return the Association removed. As mentioned above, the caller owns the
+   * returned item.
+   */
+  FbcAssociation* removeAssociation(const std::string& sid);
+
+
+  /**
+   * Returns a List of all child SBase objects, including those nested to an
+   * arbitrary depth.
+   *
+   * @return a List* of pointers to all child objects.
+   */
+   virtual List* getAllElements(ElementFilter * filter = NULL);
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For FbcAnd, the XML element name is always @c "fbcAnd".
+   *
+   * @return the name of this element, i.e. @c "fbcAnd".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_FBC_AND, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Predicate returning @c true if all the required attributes
+   * for this FbcAnd object have been set.
+   *
+   * @note The required attributes for a FbcAnd object are:
+   *
+   * @return a boolean value indicating whether all the required
+   * attributes for this object have been defined.
+   */
+  virtual bool hasRequiredAttributes() const;
+
+
+  /**
+   * Predicate returning @c true if all the required elements
+   * for this FbcAnd object have been set.
+   *
+   * @note The required elements for a FbcAnd object are:
+   * @li two or more FbcAssociation children.
+   *
+   * @return a boolean value indicating whether all the required
+   * elements for this object have been defined.
+   */
+  virtual bool hasRequiredElements() const;
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses should override this method to write out their contained
+   * SBML objects as XML elements.  Be sure to call your parents
+   * implementation of this method as well.
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Accepts the given SBMLVisitor.
+   */
+  virtual bool accept (SBMLVisitor& v) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument.
+   */
+  virtual void setSBMLDocument (SBMLDocument* d);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Connects to child elements.
+   */
+  virtual void connectToChild ();
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Enables/Disables the given package with this element.
+   */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+               const std::string& pkgPrefix, bool flag);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * return the SBML object corresponding to next XMLToken.
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Get the list of expected attributes for this element.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Read values from the given XMLAttributes set into their specific fields.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write values of XMLAttributes to the output stream.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  __cplusplus  */
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+/**
+ * Creates a new FbcAnd_t structure using the given SBML @p level and
+ * @p version values.
+ *
+ * @param level an unsigned int, the SBML level to assign to this
+ * FbcAnd_t structure.
+ *
+ * @param version an unsigned int, the SBML version to assign to this
+ * FbcAnd_t structure.
+ *
+ * @returns the newly-created FbcAnd_t structure, or a null pointer if
+ * an error occurred during construction.
+ *
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof FbcAnd_t
+ */
+LIBSBML_EXTERN
+FbcAnd_t *
+FbcAnd_create(unsigned int level, unsigned int version,
+              unsigned int pkgVersion);
+
+
+/**
+ * Frees the given FbcAnd_t structure.
+ * 
+ * @param fa the FbcAnd_t structure to be freed.
+ *
+ * @memberof FbcAnd_t
+ */
+LIBSBML_EXTERN
+void
+FbcAnd_free(FbcAnd_t * fa);
+
+
+/**
+ * Creates a deep copy of the given FbcAnd_t structure.
+ * 
+ * @param fa the FbcAnd_t structure to be copied.
+ *
+ * @returns a (deep) copy of the given FbcAnd_t structure, or a null
+ * pointer if a failure occurred.
+ *
+ * @memberof FbcAnd_t
+ */
+LIBSBML_EXTERN
+FbcAnd_t *
+FbcAnd_clone(FbcAnd_t * fa);
+
+
+LIBSBML_EXTERN
+int
+FbcAnd_addAssociation(FbcAnd_t * fa, FbcAssociation_t * association);
+
+
+LIBSBML_EXTERN
+FbcAnd_t *
+FbcAnd_createAnd(FbcAnd_t * fa);
+
+
+LIBSBML_EXTERN
+FbcOr_t *
+FbcAnd_createOr(FbcAnd_t * fa);
+
+
+LIBSBML_EXTERN
+GeneProductRef_t *
+FbcAnd_createGeneProductRef(FbcAnd_t * fa);
+
+
+LIBSBML_EXTERN
+ListOf_t *
+FbcAnd_getListOfFbcAssociations(FbcAnd_t * fa) ;
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcAnd_getAssociation(FbcAnd_t * fa, unsigned int n);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcAnd_getAssociationById(FbcAnd_t * fa, const char * sid);
+
+
+LIBSBML_EXTERN
+unsigned int
+FbcAnd_getNumAssociations(FbcAnd_t * fa);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcAnd_removeAssociation(FbcAnd_t * fa, unsigned int n);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcAnd_removeAssociationById(FbcAnd_t * fa, const char * sid);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * attributes of the given FbcAnd_t structure have been set.
+ *
+ * @param fa the FbcAnd_t structure to check.
+ *
+ * @return @c 1 if all the required attributes for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of FbcAnd_t
+ */
+LIBSBML_EXTERN
+int
+FbcAnd_hasRequiredAttributes(const FbcAnd_t * fa);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * sub-elements of the given FbcAnd_t structure have been set.
+ *
+ * @param fa the FbcAnd_t structure to check.
+ *
+ * @return @c 1 if all the required sub-elements for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of FbcAnd_t
+ */
+LIBSBML_EXTERN
+int
+FbcAnd_hasRequiredElements(const FbcAnd_t * fa);
+
+
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  !SWIG  */
+
+#endif /*  FbcAnd_H__  */
+
diff --git a/src/sbml/packages/fbc/sbml/FbcAssociation.cpp b/src/sbml/packages/fbc/sbml/FbcAssociation.cpp
index 7c5bda0..741543b 100644
--- a/src/sbml/packages/fbc/sbml/FbcAssociation.cpp
+++ b/src/sbml/packages/fbc/sbml/FbcAssociation.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   FbcAssociation.cpp
- * @brief:  Implementation of the FbcAssociation class
- * @author: SBMLTeam
+ * @file   FbcAssociation.cpp
+ * @brief  Implementation of the FbcAssociation class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -301,7 +301,9 @@ FbcAssociation* toAssociation(const ASTNode* node, FbcModelPlugin* plugin)
     replaceAllSubStrings(name, "__NINE__", "9");
     replaceAllSubStrings(name, "__ZERO__", "0");
 
-    GeneProduct* prod = plugin->getGeneProductByLabel(name);
+    GeneProduct* prod = plugin->getGeneProductByLabel(node->getName());
+    if (prod == NULL)
+        prod = plugin->getGeneProductByLabel(name);
     string id;
     if (prod == NULL)
     {
@@ -989,6 +991,26 @@ ListOfFbcAssociations_removeById(ListOf_t * lo, const char * sid)
 }
 
 
+LIBSBML_EXTERN
+char *
+FbcAssociation_toInfix(const FbcAssociation_t * fa)
+{
+  return (fa != NULL) ? safe_strdup(fa->toInfix().c_str()) : NULL;
+}
+
+
+FbcAssociation_t*
+FbcAssociation_parseFbcInfixAssociation(const char * infix, SBasePlugin_t* plugin)
+{
+  if (infix == NULL || plugin == NULL)
+  {
+    return NULL;
+  }
+
+  return FbcAssociation::parseFbcInfixAssociation(infix, static_cast<FbcModelPlugin*>(plugin));
+}
+
+
 
 
 LIBSBML_CPP_NAMESPACE_END
diff --git a/src/sbml/packages/fbc/sbml/FbcAssociation.h b/src/sbml/packages/fbc/sbml/FbcAssociation.h
index 780c077..a4dc518 100644
--- a/src/sbml/packages/fbc/sbml/FbcAssociation.h
+++ b/src/sbml/packages/fbc/sbml/FbcAssociation.h
@@ -1,714 +1,734 @@
-/**
- * @file:   FbcAssociation.h
- * @brief:  Implementation of the FbcAssociation class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2014 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class FbcAssociation
- * @sbmlbrief{fbc} Base class for FbcAnd, FbcOr, and GeneProductRef
- *
- * The FbcAssociation class is the abstract base class for the classes that
- * can be used as children of the GeneProductAssociation child of a Reaction.
- * The FbcAnd class is used when all of its children are definitely associated
- * with the Reaction; the FbcOr class is used when at least one of its children
- * are associated with the Reaction; and the GeneProductRef class is used to
- * denote a particular GeneProduct.
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- */
-
-#ifndef FbcAssociation_H__
-#define FbcAssociation_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/fbc/common/fbcfwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/fbc/extension/FbcExtension.h>
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-class FbcAnd;
-class FbcOr;
-class GeneProductRef;
-class FbcModelPlugin;
-
-
-class LIBSBML_EXTERN FbcAssociation : public SBase
-{
-
-protected:
-  /** @cond doxygenLibsbmlInternal */
-  std::string   mElementName;
-  /** @endcond */
-
-public:
-
-  /**
-   * Creates a new FbcAssociation with the given SBML Level, Version, and
-   * “fbc”package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this
-   * FbcAssociation
-   *
-   * @param version an unsigned int, the SBML Version to assign to this
-   * FbcAssociation
-   *
-   * @param pkgVersion an unsigned int, the SBML “fbc” package
-   * Version to assign to this FbcAssociation
-   */
-  FbcAssociation(unsigned int level      = FbcExtension::getDefaultLevel(),
-                 unsigned int version    = FbcExtension::getDefaultVersion(),
-                 unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new FbcAssociation with the given FbcPkgNamespaces object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  FbcAssociation(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Copy constructor for FbcAssociation.
-   *
-   * @param orig; the FbcAssociation instance to copy.
-   */
-  FbcAssociation(const FbcAssociation& orig);
-
-
-   /**
-   * Assignment operator for FbcAssociation.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  FbcAssociation& operator=(const FbcAssociation& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this FbcAssociation object.
-   *
-   * @return a (deep) copy of this FbcAssociation object.
-   */
-  virtual FbcAssociation* clone () const;
-
-
-   /**
-   * Destructor for FbcAssociation.
-   */
-  virtual ~FbcAssociation();
-
-
-   /**
-   * Returns @c true, if this abstract "FbcAssociation" is of type FbcAnd.
-   *
-   * @return @c true, if this abstract "FbcAssociation" is of type FbcAnd.
-   *
-   */
-  virtual bool isFbcAnd() const;
-
-
-  /**
-   * Returns @c true, if this abstract "FbcAssociation" is of type FbcOr.
-   *
-   * @return @c true, if this abstract "FbcAssociation" is of type FbcOr.
-   *
-   */
-  virtual bool isFbcOr() const;
-
-
-  /**
-   * Returns @c true, if this abstract "FbcAssociation" is of type
-   * GeneProductRef.
-   *
-   * @return @c true, if this abstract "FbcAssociation" is of type
-   * GeneProductRef.
-   *
-   */
-  virtual bool isGeneProductRef() const;
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For FbcAssociation, the XML element name is always @c "fbcAssociation".
-   *
-   * @return the name of this element, i.e. @c "fbcAssociation".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_FBC_ASSOCIATION, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes
-   * for this FbcAssociation object have been set.
-   *
-   * @note FbcAssociation has no required attributes, so this
-   * method always returns @c true.
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /**
-  * Parses a gene association in infix format and returns a corresponding
-  * Association object.
-  *
-  * This parses a string that has a list of gene names and conjunctions
-  * or disjunctions.  For example:
-  * @verbatim
-  (b2422) and (b2425) and (b2423) and (b2424) or (b2422) and (b2423) and (b2424) and (b2413) and (b3917)
- at endverbatim
-  *
-  * This method also creates missing GeneProduct objects, in case the unique
-  * reference does not yet exist.
-  *
-  * @param association the string to parse.
-  * @param plugin the FbcModelPlugin on which to add the geneProduct elements
-  *
-  * @return the parsed association, or @c NULL in case of an error.
-  *
-  * @copydetails doc_note_static_methods
-  */
-  static FbcAssociation* parseFbcInfixAssociation(const std::string& association,
-                                                  FbcModelPlugin* plugin);
-
-
-  /**
-  * Converts this FbcAssociation object into an infix string representation.
-  *
-  * @return the association as infix string.
-  */
-  virtual std::string toInfix() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  virtual void setElementName(const std::string& name);
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-/**
- * @class ListOfFbcAssociations
- * @sbmlbrief{fbc} A list of FbcAssociation objects.
- * 
- * The ListOfFbcAssociations is a container of FbcAssociation objects 
- * for the FbcAnd and FbcOr classes.  Unlike the ListOf___ classes in
- * SBML, the ListOfFbcAssociations is not a class that appears in the 
- * “fbc” specification, and instead is used in libsbml 
- * as a convenience class to store arbitrary numbers of FbcAssociation
- * objects.  Also unlike other ListOf___ classes, the FbcAnd and FbcOr 
- * classes require at least two child FbcAssociation objects, so valid
- * ListOfFbcAssociations libsbml objects will always contain two or more 
- * children.
- *
- * In addition, these children will have element names associated with 
- * their derived class, not the base FbcAssociation class:  
- * “fbc:and”, “fbc:or”, and “fbc:geneProductRef”.
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- *
- * @see FbcAssociation
- * @see FbcAnd
- * @see FbcOr
- * @see GeneProductRef
- */
-class LIBSBML_EXTERN ListOfFbcAssociations : public ListOf
-{
-
-public:
-
-  /**
-   * Creates a new ListOfFbcAssociations with the given SBML Level, Version,
-   * and “fbc”package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this
-   * ListOfFbcAssociations
-   *
-   * @param version an unsigned int, the SBML Version to assign to this
-   * ListOfFbcAssociations
-   *
-   * @param pkgVersion an unsigned int, the SBML “fbc” package
-   * Version to assign to this ListOfFbcAssociations
-   */
-  ListOfFbcAssociations(unsigned int level      = FbcExtension::getDefaultLevel(),
-                        unsigned int version    = FbcExtension::getDefaultVersion(),
-                        unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new ListOfFbcAssociations with the given FbcPkgNamespaces
-   * object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  ListOfFbcAssociations(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Creates and returns a deep copy of this ListOfFbcAssociations object.
-   *
-   * @return a (deep) copy of this ListOfFbcAssociations object.
-   */
-  virtual ListOfFbcAssociations* clone () const;
-
-
-   /**
-   * Get a FbcAssociation from the ListOfFbcAssociations.
-   *
-   * @param n the index number of the FbcAssociation to get.
-   *
-   * @return the nth FbcAssociation in this ListOfFbcAssociations.
-   *
-   * @see size()
-   * @see getNumFbcAssociations()
-   */
-  virtual FbcAssociation* get(unsigned int n);
-
-
-  /**
-   * Get a FbcAssociation from the ListOfFbcAssociations.
-   *
-   * @param n the index number of the FbcAssociation to get.
-   *
-   * @return the nth FbcAssociation in this ListOfFbcAssociations.
-   *
-   * @see size()
-   * @see getNumFbcAssociations()
-   */
-  virtual const FbcAssociation* get(unsigned int n) const;
-
-
-  /**
-   * Get a FbcAssociation from the ListOfFbcAssociations based on its
-   * identifier.
-   *
-   * @param sid a string representing the identifier of the FbcAssociation to
-   * get.
-   *
-   * @return FbcAssociation in this ListOfFbcAssociations with the given id
-   * or NULL if no such FbcAssociation exists.
-   *
-   * @see get(unsigned int n)
-   * @see size()
-   */
-  virtual FbcAssociation* get(const std::string& sid);
-
-
-  /**
-   * Get a FbcAssociation from the ListOfFbcAssociations based on its
-   * identifier.
-   *
-   * @param sid a string representing the identifier of the FbcAssociation to
-   * get.
-   *
-   * @return FbcAssociation in this ListOfFbcAssociations with the given id
-   * or NULL if no such FbcAssociation exists.
-   *
-   * @see get(unsigned int n)
-   * @see size()
-   */
-  virtual const FbcAssociation* get(const std::string& sid) const;
-
-
-  /**
-   * Adds a copy the given FbcAssociation object to this
-   * ListOfFbcAssociations.
-   *
-   * @param fa; the FbcAssociation object to add
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  int addFbcAssociation(const FbcAssociation* fa);
-
-
-  /**
-   * Get the number of FbcAssociation objects in this ListOfFbcAssociations.
-   *
-   * @return the number of FbcAssociation objects in this
-   * ListOfFbcAssociations
-   */
-  unsigned int getNumFbcAssociations() const;
-
-
-  /**
-   * Creates a new FbcAnd object.
-   *
-   * This method creates a new FbcAssociation object of subclass FbcAnd, adds
-   * it to the ListOfFbcAssociations, and returns the FbcAssociation object
-   * created.
-   *
-   * @return a new FbcAssociation object instance
-   *
-   * @see createOr()
-   * @see createGeneProductRef()
-   * @see addFbcAssociation(const FbcAssociation* fa)
-   */
-  FbcAnd* createAnd();
-
-
-  /**
-   * Creates a new FbcOr object.
-   *
-   * This method creates a new FbcAssociation object of subclass FbcOr, adds
-   * it to the ListOfFbcAssociations, and returns the FbcAssociation object
-   * created.
-   *
-   * @return a new FbcAssociation object instance
-   *
-   * @see createAnd()
-   * @see createGeneProductRef()
-   * @see addFbcAssociation(const FbcAssociation* fa)
-   */
-  FbcOr* createOr();
-
-
-  /**
-   * Creates a new GeneProductRef object.
-   *
-   * This method creates a new FbcAssociation object of subclass
-   * GeneProductRef, adds it to the ListOfFbcAssociations, and returns the
-   * FbcAssociation object created.
-   *
-   * @return a new FbcAssociation object instance
-   *
-   * @see createOr()
-   * @see createAnd()
-   * @see addFbcAssociation(const FbcAssociation* fa)
-   */
-  GeneProductRef* createGeneProductRef();
-
-
-  /**
-   * Removes the nth FbcAssociation
-   *
-   * This method removes the nth object from this ListOfFbcAssociations and
-   * returns a pointer to it.
-   *
-   * @param n the index of the FbcAssociation to remove.
-   *
-   * @see size()
-   */
-  virtual FbcAssociation* remove(unsigned int n);
-
-
-  /**
-   * Removes the FbcAssociation with the given identifier
-   *
-   * This method searches for and removes the FbcAssociation object with the
-   * given identifier @p sid, and returns a pointer to it.  The caller owns
-   * the returned item and is responsible for deleting it.  If none of the
-   * items in this list have the identifier @p sid, then @c NULL is returned.
-   *
-   * @param sid the identifier of the FbcAssociation to remove.
-   *
-   * @return the FbcAssociation removed. As mentioned above, the caller owns
-   * the returned item.
-   */
-  virtual FbcAssociation* remove(const std::string& sid);
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For ListOfFbcAssociations, the XML element name is always
-   * @c "listOfFbcAssociations".
-   *
-   * @return the name of this element.
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_LIST_OF, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Returns the libSBML type code for the objects contained in this ListOf.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for the objects contained in this ListOf
-   * instance: @sbmlconstant{SBML_FBC_ASSOCIATION, SBMLTypeCode_t} (default).
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getItemTypeCode () const;
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Creates a new FbcAssociation in this ListOfFbcAssociations
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write the namespace for the “fbc” package.
-   */
-  virtual void writeXMLNS(XMLOutputStream& stream) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  virtual bool isValidTypeForList(SBase * item);
-
-
-  friend class FbcAnd;
-  friend class FbcOr;
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-/**
- * Creates a new FbcAssociation_t structure using the given SBML @p level and
- * @p version values.
- *
- * @param level an unsigned int, the SBML level to assign to this
- * FbcAssociation_t structure.
- *
- * @param version an unsigned int, the SBML version to assign to this
- * FbcAssociation_t structure.
- *
- * @returns the newly-created FbcAssociation_t structure, or a null pointer if
- * an error occurred during construction.
- *
- * @copydetails doc_note_setting_lv
- *
- * @memberof FbcAssociation_t
- */
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcAssociation_create(unsigned int level, unsigned int version,
-                      unsigned int pkgVersion);
-
-
-/**
- * Frees the given FbcAssociation_t structure.
- * 
- * @param fa the FbcAssociation_t structure to be freed.
- *
- * @memberof FbcAssociation_t
- */
-LIBSBML_EXTERN
-void
-FbcAssociation_free(FbcAssociation_t * fa);
-
-
-/**
- * Creates a deep copy of the given FbcAssociation_t structure.
- * 
- * @param fa the FbcAssociation_t structure to be copied.
- *
- * @returns a (deep) copy of the given FbcAssociation_t structure, or a null
- * pointer if a failure occurred.
- *
- * @memberof FbcAssociation_t
- */
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcAssociation_clone(FbcAssociation_t * fa);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * attributes of the given FbcAssociation_t structure have been set.
- *
- * @param fa the FbcAssociation_t structure to check.
- *
- * @return @c 1 if all the required attributes for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of FbcAssociation_t
- */
-LIBSBML_EXTERN
-int
-FbcAssociation_hasRequiredAttributes(const FbcAssociation_t * fa);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-ListOfFbcAssociations_getById(ListOf_t * lo, const char * sid);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-ListOfFbcAssociations_removeById(ListOf_t * lo, const char * sid);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  FbcAssociation_H__  */
-
+/**
+ * @file   FbcAssociation.h
+ * @brief  Implementation of the FbcAssociation class
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class FbcAssociation
+ * @sbmlbrief{fbc} Base class for FbcAnd, FbcOr, and GeneProductRef
+ *
+ * The FbcAssociation class is the abstract base class for the classes that
+ * can be used as children of the GeneProductAssociation child of a Reaction.
+ * The FbcAnd class is used when all of its children are definitely associated
+ * with the Reaction; the FbcOr class is used when at least one of its children
+ * are associated with the Reaction; and the GeneProductRef class is used to
+ * denote a particular GeneProduct.
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ *
+ * @see ListOfFbcAssociations
+ * @see FbcAnd
+ * @see FbcOr
+ * @see GeneProductRef
+ */
+
+#ifndef FbcAssociation_H__
+#define FbcAssociation_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/fbc/common/fbcfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/SBase.h>
+#include <sbml/ListOf.h>
+#include <sbml/packages/fbc/extension/FbcExtension.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class FbcAnd;
+class FbcOr;
+class GeneProductRef;
+class FbcModelPlugin;
+
+
+class LIBSBML_EXTERN FbcAssociation : public SBase
+{
+
+protected:
+  /** @cond doxygenLibsbmlInternal */
+  std::string   mElementName;
+  /** @endcond */
+
+public:
+
+  /**
+   * Creates a new FbcAssociation with the given SBML Level, Version, and
+   * “fbc”package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this
+   * FbcAssociation
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * FbcAssociation
+   *
+   * @param pkgVersion an unsigned int, the SBML “fbc” package
+   * Version to assign to this FbcAssociation
+   */
+  FbcAssociation(unsigned int level      = FbcExtension::getDefaultLevel(),
+                 unsigned int version    = FbcExtension::getDefaultVersion(),
+                 unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new FbcAssociation with the given FbcPkgNamespaces object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  FbcAssociation(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Copy constructor for FbcAssociation.
+   *
+   * @param orig; the FbcAssociation instance to copy.
+   */
+  FbcAssociation(const FbcAssociation& orig);
+
+
+   /**
+   * Assignment operator for FbcAssociation.
+   *
+   * @param rhs; the object whose values are used as the basis
+   * of the assignment
+   */
+  FbcAssociation& operator=(const FbcAssociation& rhs);
+
+
+   /**
+   * Creates and returns a deep copy of this FbcAssociation object.
+   *
+   * @return a (deep) copy of this FbcAssociation object.
+   */
+  virtual FbcAssociation* clone () const;
+
+
+   /**
+   * Destructor for FbcAssociation.
+   */
+  virtual ~FbcAssociation();
+
+
+   /**
+   * Returns @c true, if this abstract "FbcAssociation" is of type FbcAnd.
+   *
+   * @return @c true, if this abstract "FbcAssociation" is of type FbcAnd.
+   *
+   */
+  virtual bool isFbcAnd() const;
+
+
+  /**
+   * Returns @c true, if this abstract "FbcAssociation" is of type FbcOr.
+   *
+   * @return @c true, if this abstract "FbcAssociation" is of type FbcOr.
+   *
+   */
+  virtual bool isFbcOr() const;
+
+
+  /**
+   * Returns @c true, if this abstract "FbcAssociation" is of type
+   * GeneProductRef.
+   *
+   * @return @c true, if this abstract "FbcAssociation" is of type
+   * GeneProductRef.
+   *
+   */
+  virtual bool isGeneProductRef() const;
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For FbcAssociation, the XML element name is always @c "fbcAssociation".
+   *
+   * @return the name of this element, i.e. @c "fbcAssociation".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_FBC_ASSOCIATION, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Predicate returning @c true if all the required attributes
+   * for this FbcAssociation object have been set.
+   *
+   * @note FbcAssociation has no required attributes, so this
+   * method always returns @c true.
+   *
+   * @return a boolean value indicating whether all the required
+   * attributes for this object have been defined.
+   */
+  virtual bool hasRequiredAttributes() const;
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses should override this method to write out their contained
+   * SBML objects as XML elements.  Be sure to call your parents
+   * implementation of this method as well.
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Accepts the given SBMLVisitor.
+   */
+  virtual bool accept (SBMLVisitor& v) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /**
+  * Parses a gene association in infix format and returns a corresponding
+  * Association object.
+  *
+  * This parses a string that has a list of gene names and conjunctions
+  * or disjunctions.  For example:
+  * @verbatim
+  (b2422) and (b2425) and (b2423) and (b2424) or (b2422) and (b2423) and (b2424) and (b2413) and (b3917)
+ at endverbatim
+  *
+  * This method also creates missing GeneProduct objects, in case the unique
+  * reference does not yet exist.
+  *
+  * @param association the string to parse.
+  * @param plugin the FbcModelPlugin on which to add the geneProduct elements
+  *
+  * @return the parsed association, or @c NULL in case of an error.
+  *
+  * @copydetails doc_note_static_methods
+  */
+  static FbcAssociation* parseFbcInfixAssociation(const std::string& association,
+                                                  FbcModelPlugin* plugin);
+
+
+  /**
+  * Converts this FbcAssociation object into an infix string representation.
+  *
+  * @return the association as infix string.
+  */
+  virtual std::string toInfix() const;
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument.
+   */
+  virtual void setSBMLDocument (SBMLDocument* d);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Enables/Disables the given package with this element.
+   */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+               const std::string& pkgPrefix, bool flag);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  virtual void setElementName(const std::string& name);
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Get the list of expected attributes for this element.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Read values from the given XMLAttributes set into their specific fields.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write values of XMLAttributes to the output stream.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+
+};
+
+/**
+ * @class ListOfFbcAssociations
+ * @sbmlbrief{fbc} A list of FbcAssociation objects.
+ *
+ * @htmlinclude not-sbml-warning.html
+ *
+ * The ListOfFbcAssociations is a container of FbcAssociation objects for the
+ * FbcAnd and FbcOr classes.  Unlike the ListOf___ classes in SBML, the
+ * ListOfFbcAssociations is not a class that appears in the “fbc”
+ * Version 2 specification, and instead is used internally in libSBML as
+ * a convenience class to store arbitrary numbers of FbcAssociation objects.
+ * Also unlike other ListOf___ classes, the FbcAnd and FbcOr classes require
+ * at least two child FbcAssociation objects, so valid ListOfFbcAssociations
+ * libsbml objects will always contain two or more children.  These children
+ * will have element names associated with their derived class, not the base
+ * FbcAssociation class: <code><fbc:and></code>,
+ * <code><fbc:or></code>, and <code><fbc:geneProductRef></code>.
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ *
+ * @warning It is important to be clear that <em>ListOfFbcAssociations is not
+ * written out in the XML output produced by libSBML</em>—the
+ * constructs only exist in software to enable software applications to
+ * manipulate FbcAssociation objects in a way that mirrors how other lists of
+ * components in SBML are manipulated.  ListOfFbcAssociations is abstracted
+ * away when an SBML “fbc” model file is actually written out in
+ * the final XML form.
+ *
+ * @see FbcAssociation
+ * @see FbcAnd
+ * @see FbcOr
+ * @see GeneProductRef
+ */
+class LIBSBML_EXTERN ListOfFbcAssociations : public ListOf
+{
+
+public:
+
+  /**
+   * Creates a new ListOfFbcAssociations with the given SBML Level, Version,
+   * and “fbc”package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this
+   * ListOfFbcAssociations
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * ListOfFbcAssociations
+   *
+   * @param pkgVersion an unsigned int, the SBML “fbc” package
+   * Version to assign to this ListOfFbcAssociations
+   */
+  ListOfFbcAssociations(unsigned int level      = FbcExtension::getDefaultLevel(),
+                        unsigned int version    = FbcExtension::getDefaultVersion(),
+                        unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new ListOfFbcAssociations with the given FbcPkgNamespaces
+   * object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  ListOfFbcAssociations(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Creates and returns a deep copy of this ListOfFbcAssociations object.
+   *
+   * @return a (deep) copy of this ListOfFbcAssociations object.
+   */
+  virtual ListOfFbcAssociations* clone () const;
+
+
+   /**
+   * Get a FbcAssociation from the ListOfFbcAssociations.
+   *
+   * @param n the index number of the FbcAssociation to get.
+   *
+   * @return the nth FbcAssociation in this ListOfFbcAssociations.
+   *
+   * @see size()
+   * @see getNumFbcAssociations()
+   */
+  virtual FbcAssociation* get(unsigned int n);
+
+
+  /**
+   * Get a FbcAssociation from the ListOfFbcAssociations.
+   *
+   * @param n the index number of the FbcAssociation to get.
+   *
+   * @return the nth FbcAssociation in this ListOfFbcAssociations.
+   *
+   * @see size()
+   * @see getNumFbcAssociations()
+   */
+  virtual const FbcAssociation* get(unsigned int n) const;
+
+
+  /**
+   * Get a FbcAssociation from the ListOfFbcAssociations based on its
+   * identifier.
+   *
+   * @param sid a string representing the identifier of the FbcAssociation to
+   * get.
+   *
+   * @return FbcAssociation in this ListOfFbcAssociations with the given id
+   * or NULL if no such FbcAssociation exists.
+   *
+   * @see get(unsigned int n)
+   * @see size()
+   */
+  virtual FbcAssociation* get(const std::string& sid);
+
+
+  /**
+   * Get a FbcAssociation from the ListOfFbcAssociations based on its
+   * identifier.
+   *
+   * @param sid a string representing the identifier of the FbcAssociation to
+   * get.
+   *
+   * @return FbcAssociation in this ListOfFbcAssociations with the given id
+   * or NULL if no such FbcAssociation exists.
+   *
+   * @see get(unsigned int n)
+   * @see size()
+   */
+  virtual const FbcAssociation* get(const std::string& sid) const;
+
+
+  /**
+   * Adds a copy the given FbcAssociation object to this
+   * ListOfFbcAssociations.
+   *
+   * @param fa; the FbcAssociation object to add
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  int addFbcAssociation(const FbcAssociation* fa);
+
+
+  /**
+   * Get the number of FbcAssociation objects in this ListOfFbcAssociations.
+   *
+   * @return the number of FbcAssociation objects in this
+   * ListOfFbcAssociations
+   */
+  unsigned int getNumFbcAssociations() const;
+
+
+  /**
+   * Creates a new FbcAnd object.
+   *
+   * This method creates a new FbcAssociation object of subclass FbcAnd, adds
+   * it to the ListOfFbcAssociations, and returns the FbcAssociation object
+   * created.
+   *
+   * @return a new FbcAssociation object instance
+   *
+   * @see createOr()
+   * @see createGeneProductRef()
+   * @see addFbcAssociation(const FbcAssociation* fa)
+   */
+  FbcAnd* createAnd();
+
+
+  /**
+   * Creates a new FbcOr object.
+   *
+   * This method creates a new FbcAssociation object of subclass FbcOr, adds
+   * it to the ListOfFbcAssociations, and returns the FbcAssociation object
+   * created.
+   *
+   * @return a new FbcAssociation object instance
+   *
+   * @see createAnd()
+   * @see createGeneProductRef()
+   * @see addFbcAssociation(const FbcAssociation* fa)
+   */
+  FbcOr* createOr();
+
+
+  /**
+   * Creates a new GeneProductRef object.
+   *
+   * This method creates a new FbcAssociation object of subclass
+   * GeneProductRef, adds it to the ListOfFbcAssociations, and returns the
+   * FbcAssociation object created.
+   *
+   * @return a new FbcAssociation object instance
+   *
+   * @see createOr()
+   * @see createAnd()
+   * @see addFbcAssociation(const FbcAssociation* fa)
+   */
+  GeneProductRef* createGeneProductRef();
+
+
+  /**
+   * Removes the nth FbcAssociation
+   *
+   * This method removes the nth object from this ListOfFbcAssociations and
+   * returns a pointer to it.
+   *
+   * @param n the index of the FbcAssociation to remove.
+   *
+   * @see size()
+   */
+  virtual FbcAssociation* remove(unsigned int n);
+
+
+  /**
+   * Removes the FbcAssociation with the given identifier
+   *
+   * This method searches for and removes the FbcAssociation object with the
+   * given identifier @p sid, and returns a pointer to it.  The caller owns
+   * the returned item and is responsible for deleting it.  If none of the
+   * items in this list have the identifier @p sid, then @c NULL is returned.
+   *
+   * @param sid the identifier of the FbcAssociation to remove.
+   *
+   * @return the FbcAssociation removed. As mentioned above, the caller owns
+   * the returned item.
+   */
+  virtual FbcAssociation* remove(const std::string& sid);
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For ListOfFbcAssociations, the XML element name is always
+   * @c "listOfFbcAssociations".
+   *
+   * @return the name of this element.
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_LIST_OF, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Returns the libSBML type code for the objects contained in this ListOf.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for the objects contained in this ListOf
+   * instance: @sbmlconstant{SBML_FBC_ASSOCIATION, SBMLTypeCode_t} (default).
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getItemTypeCode () const;
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Creates a new FbcAssociation in this ListOfFbcAssociations
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write the namespace for the “fbc” package.
+   */
+  virtual void writeXMLNS(XMLOutputStream& stream) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  virtual bool isValidTypeForList(SBase * item);
+
+
+  friend class FbcAnd;
+  friend class FbcOr;
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  __cplusplus  */
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+/**
+ * Creates a new FbcAssociation_t structure using the given SBML @p level and
+ * @p version values.
+ *
+ * @param level an unsigned int, the SBML level to assign to this
+ * FbcAssociation_t structure.
+ *
+ * @param version an unsigned int, the SBML version to assign to this
+ * FbcAssociation_t structure.
+ *
+ * @returns the newly-created FbcAssociation_t structure, or a null pointer if
+ * an error occurred during construction.
+ *
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof FbcAssociation_t
+ */
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcAssociation_create(unsigned int level, unsigned int version,
+                      unsigned int pkgVersion);
+
+
+/**
+ * Frees the given FbcAssociation_t structure.
+ * 
+ * @param fa the FbcAssociation_t structure to be freed.
+ *
+ * @memberof FbcAssociation_t
+ */
+LIBSBML_EXTERN
+void
+FbcAssociation_free(FbcAssociation_t * fa);
+
+
+/**
+ * Creates a deep copy of the given FbcAssociation_t structure.
+ * 
+ * @param fa the FbcAssociation_t structure to be copied.
+ *
+ * @returns a (deep) copy of the given FbcAssociation_t structure, or a null
+ * pointer if a failure occurred.
+ *
+ * @memberof FbcAssociation_t
+ */
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcAssociation_clone(FbcAssociation_t * fa);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * attributes of the given FbcAssociation_t structure have been set.
+ *
+ * @param fa the FbcAssociation_t structure to check.
+ *
+ * @return @c 1 if all the required attributes for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of FbcAssociation_t
+ */
+LIBSBML_EXTERN
+int
+FbcAssociation_hasRequiredAttributes(const FbcAssociation_t * fa);
+
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+ListOfFbcAssociations_getById(ListOf_t * lo, const char * sid);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+ListOfFbcAssociations_removeById(ListOf_t * lo, const char * sid);
+
+
+LIBSBML_EXTERN
+char *
+FbcAssociation_toInfix(const FbcAssociation_t * fa);
+
+LIBSBML_EXTERN
+FbcAssociation_t*
+FbcAssociation_parseFbcInfixAssociation(const char * infix, SBasePlugin_t* plugin);
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  !SWIG  */
+
+#endif /*  FbcAssociation_H__  */
+
diff --git a/src/sbml/packages/fbc/sbml/FbcOr.cpp b/src/sbml/packages/fbc/sbml/FbcOr.cpp
index 8814946..e6eb5a6 100644
--- a/src/sbml/packages/fbc/sbml/FbcOr.cpp
+++ b/src/sbml/packages/fbc/sbml/FbcOr.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   FbcOr.cpp
- * @brief:  Implementation of the FbcOr class
- * @author: SBMLTeam
+ * @file   FbcOr.cpp
+ * @brief  Implementation of the FbcOr class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -448,9 +448,7 @@ FbcOr::hasRequiredAttributes () const
 bool
 FbcOr::hasRequiredElements () const
 {
-  bool allPresent = FbcAssociation::hasRequiredElements();
-
-  return allPresent;
+  return getNumAssociations() >= 2;
 }
 
 
diff --git a/src/sbml/packages/fbc/sbml/FbcOr.h b/src/sbml/packages/fbc/sbml/FbcOr.h
index 42f43e3..bd77e4e 100644
--- a/src/sbml/packages/fbc/sbml/FbcOr.h
+++ b/src/sbml/packages/fbc/sbml/FbcOr.h
@@ -1,627 +1,632 @@
-/**
- * @file:   FbcOr.h
- * @brief:  Implementation of the FbcOr class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2014 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class FbcOr
- * @sbmlbrief{fbc} An “or” relationship for gene products
- *
- * FbcOr class is used in Version 2 of the SBML Level 3 Flux Balance
- * Constraints (“fbc”) package to represent an "or" relationship
- * between two or more child FbcAssociation objects.  In other words, it
- * indicates that all of the child objects are included.  Note that since the
- * FbcAssociation class is the parent class of GeneProducRef, FbcOr and
- * FbcOr, a given FbcOr can potentially include nested "and"/"or"
- * combinations of gene products.
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- */
-
-
-#ifndef FbcOr_H__
-#define FbcOr_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/fbc/common/fbcfwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/fbc/extension/FbcExtension.h>
-#include <sbml/packages/fbc/sbml/FbcAssociation.h>
-
-#include <sbml/packages/fbc/sbml/FbcAssociation.h>
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-
-class LIBSBML_EXTERN FbcOr : public FbcAssociation
-{
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-  ListOfFbcAssociations   mAssociations;
-  /** @endcond */
-
-
-public:
-
-  /**
-   * Creates a new FbcOr with the given SBML Level, Version, and
-   * “fbc”package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this FbcOr
-   *
-   * @param version an unsigned int, the SBML Version to assign to this FbcOr
-   *
-   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
-   * this FbcOr
-   */
-  FbcOr(unsigned int level      = FbcExtension::getDefaultLevel(),
-        unsigned int version    = FbcExtension::getDefaultVersion(),
-        unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new FbcOr with the given FbcPkgNamespaces object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  FbcOr(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Copy constructor for FbcOr.
-   *
-   * @param orig; the FbcOr instance to copy.
-   */
-  FbcOr(const FbcOr& orig);
-
-
-   /**
-   * Assignment operator for FbcOr.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  FbcOr& operator=(const FbcOr& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this FbcOr object.
-   *
-   * @return a (deep) copy of this FbcOr object.
-   */
-  virtual FbcOr* clone () const;
-
-
-   /**
-   * Destructor for FbcOr.
-   */
-  virtual ~FbcOr();
-
-
-   /**
-   * Returns the  "ListOfFbcAssociations" in this FbcOr object.
-   *
-   * @return the "ListOfFbcAssociations" attribute of this FbcOr.
-   */
-  const ListOfFbcAssociations* getListOfAssociations() const;
-
-
-  /**
-   * Returns the  "ListOfFbcAssociations" in this FbcOr object.
-   *
-   * @return the "ListOfFbcAssociations" attribute of this FbcOr.
-   */
-  ListOfFbcAssociations* getListOfAssociations();
-
-
-  /**
-   * Get a Association from the ListOfFbcAssociations.
-   *
-   * @param n the index number of the Association to get.
-   *
-   * @return the nth Association in the ListOfFbcAssociations within this FbcOr.
-   *
-   * @see getNumAssociations()
-   */
-  FbcAssociation* getAssociation(unsigned int n);
-
-
-  /**
-   * Get a Association from the ListOfFbcAssociations.
-   *
-   * @param n the index number of the Association to get.
-   *
-   * @return the nth Association in the ListOfFbcAssociations within this FbcOr.
-   *
-   * @see getNumAssociations()
-   */
-  const FbcAssociation* getAssociation(unsigned int n) const;
-
-
-  /**
-   * Get a Association from the ListOfFbcAssociations
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the Association to get.
-   *
-   * @return the Association in the ListOfFbcAssociations
-   * with the given id or NULL if no such
-   * Association exists.
-   *
-   * @see getAssociation(unsigned int n)
-   *
-   * @see getNumAssociations()
-   */
-  FbcAssociation* getAssociation(const std::string& sid);
-
-
-  /**
-   * Get a Association from the ListOfFbcAssociations
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the Association to get.
-   *
-   * @return the Association in the ListOfFbcAssociations
-   * with the given id or NULL if no such
-   * Association exists.
-   *
-   * @see getAssociation(unsigned int n)
-   *
-   * @see getNumAssociations()
-   */
-  const FbcAssociation* getAssociation(const std::string& sid) const;
-
-
-  /**
-   * Adds a copy the given "FbcAssociation" to this FbcOr.
-   *
-   * @param fa; the FbcAssociation object to add
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  int addAssociation(const FbcAssociation* fa);
-
-
-  /**
-   * Get the number of FbcAssociation objects in this FbcOr.
-   *
-   * @return the number of FbcAssociation objects in this FbcOr
-   */
-  unsigned int getNumAssociations() const;
-
-
-  /**
-  * Converts this FbcAssociation object into an infix string representation.
-  *
-  * @return the association as infix string.
-  */
-  virtual std::string toInfix() const;
-
-  /**
-   * Creates a new FbcAnd object, adds it to this FbcOrs
-   * ListOfFbcAssociations and returns the FbcAnd object created. 
-   *
-   * @return a new FbcAnd object instance
-   *
-   * @see addAssociation(const FbcAssociation* fa)
-   */
-  FbcAnd* createAnd();
-
-
-  /**
-   * Creates a new FbcOr object, adds it to this FbcOrs
-   * ListOfFbcAssociations and returns the FbcOr object created. 
-   *
-   * @return a new FbcOr object instance
-   *
-   * @see addAssociation(const FbcAssociation* fa)
-   */
-  FbcOr* createOr();
-
-
-  /**
-   * Creates a new GeneProductRef object, adds it to this FbcOrs
-   * ListOfFbcAssociations and returns the GeneProductRef object created. 
-   *
-   * @return a new GeneProductRef object instance
-   *
-   * @see addAssociation(const FbcAssociation* fa)
-   */
-  GeneProductRef* createGeneProductRef();
-
-
-  /**
-   * Removes the nth Association from the ListOfFbcAssociations within this FbcOr.
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the Association to remove.
-   *
-   * @see getNumAssociations()
-   */
-  FbcAssociation* removeAssociation(unsigned int n);
-
-
-  /**
-   * Removes the Association with the given identifier from the ListOfFbcAssociations within this FbcOr
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
-   *
-   * @param sid the identifier of the Association to remove.
-   *
-   * @return the Association removed. As mentioned above, the caller owns the
-   * returned item.
-   */
-  FbcAssociation* removeAssociation(const std::string& sid);
-
-
-  /**
-   * Returns a List of all child SBase objects, including those nested to an
-   * arbitrary depth.
-   *
-   * @return a List* of pointers to all child objects.
-   */
-   virtual List* getAllElements(ElementFilter * filter = NULL);
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For FbcOr, the XML element name is always @c "fbcOr".
-   *
-   * @return the name of this element, i.e. @c "fbcOr".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_FBC_OR, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes
-   * for this FbcOr object have been set.
-   *
-   * @note The required attributes for a FbcOr object are:
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /**
-   * Predicate returning @c true if all the required elements
-   * for this FbcOr object have been set.
-   *
-   * @note The required elements for a FbcOr object are:
-   *
-   * @return a boolean value indicating whether all the required
-   * elements for this object have been defined.
-   */
-  virtual bool hasRequiredElements() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Connects to child elements.
-   */
-  virtual void connectToChild ();
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * return the SBML object corresponding to next XMLToken.
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-/**
- * Creates a new FbcOr_t structure using the given SBML @p level and
- * @p version values.
- *
- * @param level an unsigned int, the SBML level to assign to this
- * FbcOr_t structure.
- *
- * @param version an unsigned int, the SBML version to assign to this
- * FbcOr_t structure.
- *
- * @returns the newly-created FbcOr_t structure, or a null pointer if
- * an error occurred during construction.
- *
- * @copydetails doc_note_setting_lv
- *
- * @memberof FbcOr_t
- */
-LIBSBML_EXTERN
-FbcOr_t *
-FbcOr_create(unsigned int level, unsigned int version,
-             unsigned int pkgVersion);
-
-
-/**
- * Frees the given FbcOr_t structure.
- * 
- * @param fo the FbcOr_t structure to be freed.
- *
- * @memberof FbcOr_t
- */
-LIBSBML_EXTERN
-void
-FbcOr_free(FbcOr_t * fo);
-
-
-/**
- * Creates a deep copy of the given FbcOr_t structure.
- * 
- * @param fo the FbcOr_t structure to be copied.
- *
- * @returns a (deep) copy of the given FbcOr_t structure, or a null
- * pointer if a failure occurred.
- *
- * @memberof FbcOr_t
- */
-LIBSBML_EXTERN
-FbcOr_t *
-FbcOr_clone(FbcOr_t * fo);
-
-
-LIBSBML_EXTERN
-int
-FbcOr_addAssociation(FbcOr_t * fo, FbcAssociation_t * fa);
-
-
-LIBSBML_EXTERN
-FbcAnd_t *
-FbcOr_createAnd(FbcOr_t * fo);
-
-
-LIBSBML_EXTERN
-FbcOr_t *
-FbcOr_createOr(FbcOr_t * fo);
-
-
-LIBSBML_EXTERN
-GeneProductRef_t *
-FbcOr_createGeneProductRef(FbcOr_t * fo);
-
-
-LIBSBML_EXTERN
-ListOf_t *
-FbcOr_getListOfFbcAssociations(FbcOr_t * fo) ;
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcOr_getAssociation(FbcOr_t * fo, unsigned int n);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcOr_getAssociationById(FbcOr_t * fo, const char * sid);
-
-
-LIBSBML_EXTERN
-unsigned int
-FbcOr_getNumAssociations(FbcOr_t * fo);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcOr_removeAssociation(FbcOr_t * fo, unsigned int n);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t *
-FbcOr_removeAssociationById(FbcOr_t * fo, const char * sid);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * attributes of the given FbcOr_t structure have been set.
- *
- * @param fo the FbcOr_t structure to check.
- *
- * @return @c 1 if all the required attributes for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of FbcOr_t
- */
-LIBSBML_EXTERN
-int
-FbcOr_hasRequiredAttributes(const FbcOr_t * fo);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * sub-elements of the given FbcOr_t structure have been set.
- *
- * @param fo the FbcOr_t structure to check.
- *
- * @return @c 1 if all the required sub-elements for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of FbcOr_t
- */
-LIBSBML_EXTERN
-int
-FbcOr_hasRequiredElements(const FbcOr_t * fo);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  FbcOr_H__  */
-
+/**
+ * @file   FbcOr.h
+ * @brief  Implementation of the FbcOr class
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class FbcOr
+ * @sbmlbrief{fbc} An “or” relationship for gene products
+ *
+ * FbcOr class is used in Version 2 of the SBML Level 3 @ref fbc
+ * (“fbc”) package to represent an "or" relationship between two
+ * or more child FbcAssociation objects.  In other words, it indicates that
+ * only one of the child objects are included.  Note that since the
+ * FbcAssociation class is the parent class of GeneProductRef, FbcAnd and
+ * FbcOr, a given FbcOr can potentially include nested "and"/"or"
+ * combinations of gene products.
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ *
+ * @see FbcAssociation
+ * @see FbcAnd
+ * @see GeneProductRef
+ */
+
+
+#ifndef FbcOr_H__
+#define FbcOr_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/fbc/common/fbcfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/SBase.h>
+#include <sbml/ListOf.h>
+#include <sbml/packages/fbc/extension/FbcExtension.h>
+#include <sbml/packages/fbc/sbml/FbcAssociation.h>
+
+#include <sbml/packages/fbc/sbml/FbcAssociation.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+class LIBSBML_EXTERN FbcOr : public FbcAssociation
+{
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+  ListOfFbcAssociations   mAssociations;
+  /** @endcond */
+
+
+public:
+
+  /**
+   * Creates a new FbcOr with the given SBML Level, Version, and
+   * “fbc”package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this FbcOr
+   *
+   * @param version an unsigned int, the SBML Version to assign to this FbcOr
+   *
+   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
+   * this FbcOr
+   */
+  FbcOr(unsigned int level      = FbcExtension::getDefaultLevel(),
+        unsigned int version    = FbcExtension::getDefaultVersion(),
+        unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new FbcOr with the given FbcPkgNamespaces object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  FbcOr(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Copy constructor for FbcOr.
+   *
+   * @param orig; the FbcOr instance to copy.
+   */
+  FbcOr(const FbcOr& orig);
+
+
+   /**
+   * Assignment operator for FbcOr.
+   *
+   * @param rhs; the object whose values are used as the basis
+   * of the assignment
+   */
+  FbcOr& operator=(const FbcOr& rhs);
+
+
+   /**
+   * Creates and returns a deep copy of this FbcOr object.
+   *
+   * @return a (deep) copy of this FbcOr object.
+   */
+  virtual FbcOr* clone () const;
+
+
+   /**
+   * Destructor for FbcOr.
+   */
+  virtual ~FbcOr();
+
+
+   /**
+   * Returns the  "ListOfFbcAssociations" in this FbcOr object.
+   *
+   * @return the "ListOfFbcAssociations" attribute of this FbcOr.
+   */
+  const ListOfFbcAssociations* getListOfAssociations() const;
+
+
+  /**
+   * Returns the  "ListOfFbcAssociations" in this FbcOr object.
+   *
+   * @return the "ListOfFbcAssociations" attribute of this FbcOr.
+   */
+  ListOfFbcAssociations* getListOfAssociations();
+
+
+  /**
+   * Get a Association from the ListOfFbcAssociations.
+   *
+   * @param n the index number of the Association to get.
+   *
+   * @return the nth Association in the ListOfFbcAssociations within this FbcOr.
+   *
+   * @see getNumAssociations()
+   */
+  FbcAssociation* getAssociation(unsigned int n);
+
+
+  /**
+   * Get a Association from the ListOfFbcAssociations.
+   *
+   * @param n the index number of the Association to get.
+   *
+   * @return the nth Association in the ListOfFbcAssociations within this FbcOr.
+   *
+   * @see getNumAssociations()
+   */
+  const FbcAssociation* getAssociation(unsigned int n) const;
+
+
+  /**
+   * Get a Association from the ListOfFbcAssociations
+   * based on its identifier.
+   *
+   * @param sid a string representing the identifier
+   * of the Association to get.
+   *
+   * @return the Association in the ListOfFbcAssociations
+   * with the given id or NULL if no such
+   * Association exists.
+   *
+   * @see getAssociation(unsigned int n)
+   *
+   * @see getNumAssociations()
+   */
+  FbcAssociation* getAssociation(const std::string& sid);
+
+
+  /**
+   * Get a Association from the ListOfFbcAssociations
+   * based on its identifier.
+   *
+   * @param sid a string representing the identifier
+   * of the Association to get.
+   *
+   * @return the Association in the ListOfFbcAssociations
+   * with the given id or NULL if no such
+   * Association exists.
+   *
+   * @see getAssociation(unsigned int n)
+   *
+   * @see getNumAssociations()
+   */
+  const FbcAssociation* getAssociation(const std::string& sid) const;
+
+
+  /**
+   * Adds a copy the given "FbcAssociation" to this FbcOr.
+   *
+   * @param fa; the FbcAssociation object to add
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  int addAssociation(const FbcAssociation* fa);
+
+
+  /**
+   * Get the number of FbcAssociation objects in this FbcOr.
+   *
+   * @return the number of FbcAssociation objects in this FbcOr
+   */
+  unsigned int getNumAssociations() const;
+
+
+  /**
+  * Converts this FbcAssociation object into an infix string representation.
+  *
+  * @return the association as infix string.
+  */
+  virtual std::string toInfix() const;
+
+  /**
+   * Creates a new FbcAnd object, adds it to this FbcOrs
+   * ListOfFbcAssociations and returns the FbcAnd object created. 
+   *
+   * @return a new FbcAnd object instance
+   *
+   * @see addAssociation(const FbcAssociation* fa)
+   */
+  FbcAnd* createAnd();
+
+
+  /**
+   * Creates a new FbcOr object, adds it to this FbcOrs
+   * ListOfFbcAssociations and returns the FbcOr object created. 
+   *
+   * @return a new FbcOr object instance
+   *
+   * @see addAssociation(const FbcAssociation* fa)
+   */
+  FbcOr* createOr();
+
+
+  /**
+   * Creates a new GeneProductRef object, adds it to this FbcOrs
+   * ListOfFbcAssociations and returns the GeneProductRef object created. 
+   *
+   * @return a new GeneProductRef object instance
+   *
+   * @see addAssociation(const FbcAssociation* fa)
+   */
+  GeneProductRef* createGeneProductRef();
+
+
+  /**
+   * Removes the nth Association from the ListOfFbcAssociations within this FbcOr.
+   * and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   *
+   * @param n the index of the Association to remove.
+   *
+   * @see getNumAssociations()
+   */
+  FbcAssociation* removeAssociation(unsigned int n);
+
+
+  /**
+   * Removes the Association with the given identifier from the ListOfFbcAssociations within this FbcOr
+   * and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   * If none of the items in this list have the identifier @p sid, then
+   * @c NULL is returned.
+   *
+   * @param sid the identifier of the Association to remove.
+   *
+   * @return the Association removed. As mentioned above, the caller owns the
+   * returned item.
+   */
+  FbcAssociation* removeAssociation(const std::string& sid);
+
+
+  /**
+   * Returns a List of all child SBase objects, including those nested to an
+   * arbitrary depth.
+   *
+   * @return a List* of pointers to all child objects.
+   */
+   virtual List* getAllElements(ElementFilter * filter = NULL);
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For FbcOr, the XML element name is always @c "fbcOr".
+   *
+   * @return the name of this element, i.e. @c "fbcOr".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_FBC_OR, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Predicate returning @c true if all the required attributes
+   * for this FbcOr object have been set.
+   *
+   * @note The required attributes for a FbcOr object are:
+   *
+   * @return a boolean value indicating whether all the required
+   * attributes for this object have been defined.
+   */
+  virtual bool hasRequiredAttributes() const;
+
+
+  /**
+   * Predicate returning @c true if all the required elements
+   * for this FbcOr object have been set.
+   *
+   * @note The required elements for a FbcOr object are:
+   * @li two or more FbcAssociation children.
+   *
+   * @return a boolean value indicating whether all the required
+   * elements for this object have been defined.
+   */
+  virtual bool hasRequiredElements() const;
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses should override this method to write out their contained
+   * SBML objects as XML elements.  Be sure to call your parents
+   * implementation of this method as well.
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Accepts the given SBMLVisitor.
+   */
+  virtual bool accept (SBMLVisitor& v) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument.
+   */
+  virtual void setSBMLDocument (SBMLDocument* d);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Connects to child elements.
+   */
+  virtual void connectToChild ();
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Enables/Disables the given package with this element.
+   */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+               const std::string& pkgPrefix, bool flag);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * return the SBML object corresponding to next XMLToken.
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Get the list of expected attributes for this element.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Read values from the given XMLAttributes set into their specific fields.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write values of XMLAttributes to the output stream.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  __cplusplus  */
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+/**
+ * Creates a new FbcOr_t structure using the given SBML @p level and
+ * @p version values.
+ *
+ * @param level an unsigned int, the SBML level to assign to this
+ * FbcOr_t structure.
+ *
+ * @param version an unsigned int, the SBML version to assign to this
+ * FbcOr_t structure.
+ *
+ * @returns the newly-created FbcOr_t structure, or a null pointer if
+ * an error occurred during construction.
+ *
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof FbcOr_t
+ */
+LIBSBML_EXTERN
+FbcOr_t *
+FbcOr_create(unsigned int level, unsigned int version,
+             unsigned int pkgVersion);
+
+
+/**
+ * Frees the given FbcOr_t structure.
+ * 
+ * @param fo the FbcOr_t structure to be freed.
+ *
+ * @memberof FbcOr_t
+ */
+LIBSBML_EXTERN
+void
+FbcOr_free(FbcOr_t * fo);
+
+
+/**
+ * Creates a deep copy of the given FbcOr_t structure.
+ * 
+ * @param fo the FbcOr_t structure to be copied.
+ *
+ * @returns a (deep) copy of the given FbcOr_t structure, or a null
+ * pointer if a failure occurred.
+ *
+ * @memberof FbcOr_t
+ */
+LIBSBML_EXTERN
+FbcOr_t *
+FbcOr_clone(FbcOr_t * fo);
+
+
+LIBSBML_EXTERN
+int
+FbcOr_addAssociation(FbcOr_t * fo, FbcAssociation_t * fa);
+
+
+LIBSBML_EXTERN
+FbcAnd_t *
+FbcOr_createAnd(FbcOr_t * fo);
+
+
+LIBSBML_EXTERN
+FbcOr_t *
+FbcOr_createOr(FbcOr_t * fo);
+
+
+LIBSBML_EXTERN
+GeneProductRef_t *
+FbcOr_createGeneProductRef(FbcOr_t * fo);
+
+
+LIBSBML_EXTERN
+ListOf_t *
+FbcOr_getListOfFbcAssociations(FbcOr_t * fo) ;
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcOr_getAssociation(FbcOr_t * fo, unsigned int n);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcOr_getAssociationById(FbcOr_t * fo, const char * sid);
+
+
+LIBSBML_EXTERN
+unsigned int
+FbcOr_getNumAssociations(FbcOr_t * fo);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcOr_removeAssociation(FbcOr_t * fo, unsigned int n);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t *
+FbcOr_removeAssociationById(FbcOr_t * fo, const char * sid);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * attributes of the given FbcOr_t structure have been set.
+ *
+ * @param fo the FbcOr_t structure to check.
+ *
+ * @return @c 1 if all the required attributes for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of FbcOr_t
+ */
+LIBSBML_EXTERN
+int
+FbcOr_hasRequiredAttributes(const FbcOr_t * fo);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * sub-elements of the given FbcOr_t structure have been set.
+ *
+ * @param fo the FbcOr_t structure to check.
+ *
+ * @return @c 1 if all the required sub-elements for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of FbcOr_t
+ */
+LIBSBML_EXTERN
+int
+FbcOr_hasRequiredElements(const FbcOr_t * fo);
+
+
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  !SWIG  */
+
+#endif /*  FbcOr_H__  */
+
diff --git a/src/sbml/packages/fbc/sbml/FluxBound.cpp b/src/sbml/packages/fbc/sbml/FluxBound.cpp
index 658b3b0..6dbbd1d 100644
--- a/src/sbml/packages/fbc/sbml/FluxBound.cpp
+++ b/src/sbml/packages/fbc/sbml/FluxBound.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -730,19 +730,6 @@ FluxBound::enablePackageInternal(const std::string& pkgURI,
 /** @endcond */
 
 
-/** @cond doxygenLibsbmlInternal */
-/* default for components that have no required elements */
-bool
-FluxBound::hasRequiredElements() const
-{
-  bool allPresent = true;
-
-    
-  return allPresent;
-}
-/** @endcond */
-
-
 /*
  * Ctor.
  */
diff --git a/src/sbml/packages/fbc/sbml/FluxBound.h b/src/sbml/packages/fbc/sbml/FluxBound.h
index cc3cf90..ed1c421 100644
--- a/src/sbml/packages/fbc/sbml/FluxBound.h
+++ b/src/sbml/packages/fbc/sbml/FluxBound.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -26,14 +26,57 @@
  * @class FluxBound
  * @sbmlbrief{fbc} Max or min value for a reaction flux.
  *
- * The FluxBound object holds a single (in)equality that provides the maximum
- * or minimum value that a reaction flux can obtain at steady state.
+ * The FluxBound class of objects is used in Version 1 of the SBML
+ * Level 3 @ref fbc (“fbc”) package to express a single
+ * (in)equality that provides the maximum or minimum value that a reaction
+ * flux can obtain at steady state.  (This same information is encoded
+ * differently in Version 2 of “fbc”; see the
+ * "upperFluxBound" and "lowerFluxBound" attributes on FbcReactionPlugin.)
+ *
+ * @section fluxbound-attributes Attributes on FluxBound
+ *
+ * In addition to the common optional attributes "id" and "name", FluxBound
+ * takes three required attributes: "reaction", "operation" and "value".
+ * These three attributes define the meaning of the FluxBound, and are
+ * interpreted using the following expression:
+ * <center>
+ * <em>reaction</em>   <em>operator</em>   <em>value</em>
+ * </center>
+ *
+ * The "reaction" attribute takes a value of <code>SIdRef</code>.  The value
+ * must be the identifier of a Reaction object defined within the enclosing
+ * model.
+ *
+ * The "operation" attribute takes a value from an enumeration
+ * (#FluxBoundOperation_t) of Boolean operations that represent mathemetical
+ * inequalities.  Possible values for "operation" include
+ * <code>"greaterEqual"</code>, <code>"equal"</code>, and others.
+ *
+ * The "value" attribute takes a numerical value of type <code>double</code>,
+ * and represents the value of the flux bound.  The permitted values include
+ * positive infinity (<code>"INF"</code>) and negative infinity
+ * (<code>"-INF"</code>).
+ *
+ * The following is an example of a set of flux bounds encoded in this form; it
+ * also demonstrates the use of ListOfFluxBounds.
+ *
+ * @verbatim
+<fbc:listOfFluxBounds>
+    <fbc:fluxBound fbc:id="R1b" fbc:reaction="R1" fbc:operation="greaterEqual" fbc:value="1.2"/>
+    <fbc:fluxBound fbc:id="R2b" fbc:reaction="R2" fbc:operation="lessEqual" fbc:value="-1.2"/>
+    <fbc:fluxBound fbc:id="R3b" fbc:reaction="R3" fbc:operation="greaterEqual" fbc:value="-INF"/>
+    <fbc:fluxBound fbc:id="R4b" fbc:reaction="R4" fbc:operation="lessEqual" fbc:value="INF"/>
+    <fbc:fluxBound fbc:id="R5b" fbc:reaction="R5" fbc:operation="equal" fbc:value="1"/>
+</fbc:listOfFluxBounds>
+ at endverbatim
  *
  * @note This class is only defined for Version 1 of the
  * “fbc” package specification.  It was replaced in
  * Version 2 by a Parameter referenced by the "upperFluxBound" or
  * "lowerFluxBound" attributes on an FbcReactionPlugin.  FluxBound is
  * therefore not used for Version 2 “fbc” models.
+ *
+ * @see ListOfFluxBounds
  */
 
 #ifndef FluxBound_H__
@@ -432,15 +475,6 @@ public:
   /** @endcond */
 
 
-  /** @cond doxygenLibsbmlInternal */
-  /* function returns true if component has all the required
-   * elements
-   * needs to be overloaded for each component
-   */
-  virtual bool hasRequiredElements() const ;
-  /** @endcond */
-
-
 protected:
   /** @cond doxygenLibsbmlInternal */
   /**
@@ -497,12 +531,19 @@ protected:
  * @sbmlbrief{fbc} A list of FluxBound objects.
  *
  * The ListOfFluxBounds is a container for the FluxBound elements of a Model.
- *
- * Note that this class is only defined for Version 1 of the fbc specification,
- * and was replaced in Version 2 by Parameter elements referenced by the 
- * upperFluxBound or lowerFluxBound attributes on an FbcReactionPlugin.
+ * It is only defined for Version 1 of the “fbc”
+ * specification, and was replaced in Version 2 by Parameter elements
+ * referenced by the "upperFluxBound" or "lowerFluxBound" attributes on an
+ * FbcReactionPlugin.  FluxBound and ListOfFluxBounds are not used for
+ * Version 2 “fbc” models.
  *
  * @copydetails doc_what_is_listof
+ *
+ * @see FluxBound
+ *
+ * @note This class and FluxBound are only defined for Version 1 of the
+ * “fbc” package specification.  These classes are not used in
+ * Version 2 of “fbc”.
  */
 class LIBSBML_EXTERN ListOfFluxBounds : public ListOf
 {
diff --git a/src/sbml/packages/fbc/sbml/FluxObjective.cpp b/src/sbml/packages/fbc/sbml/FluxObjective.cpp
index 6023f45..cdbe182 100644
--- a/src/sbml/packages/fbc/sbml/FluxObjective.cpp
+++ b/src/sbml/packages/fbc/sbml/FluxObjective.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   FluxObjective.cpp
- * @brief:  Implementation of the FluxObjective class
- * @author: SBMLTeam
+ * @file   FluxObjective.cpp
+ * @brief  Implementation of the FluxObjective class
+ * @author SBMLTeam
  *
  *<!---------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/sbml/FluxObjective.h b/src/sbml/packages/fbc/sbml/FluxObjective.h
index ca9e382..2e61852 100644
--- a/src/sbml/packages/fbc/sbml/FluxObjective.h
+++ b/src/sbml/packages/fbc/sbml/FluxObjective.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -29,10 +29,10 @@
  * An integral component in a complete description of a steady-state model is
  * the so-called <em>objective function</em>, which generally consists of a
  * linear combination of model variables (fluxes) and a sense (direction). In
- * the SBML Level 3 Flux Balance Constraints (“fbc”)
- * package, this concept is succinctly captured in the Objective class.  An
- * Objective object includes a list of flux objectives, each in the form of a
- * FluxObjective object.
+ * the SBML Level 3 @ref fbc (“fbc”) package, this concept
+ * is succinctly captured in the Objective class.  An Objective object
+ * includes a list of flux objectives, each in the form of a FluxObjective
+ * object.
 
  * The FluxObjective class is a relatively simple container for a model
  * variable weighted by a signed linear coefficient.  In addition to the
diff --git a/src/sbml/packages/fbc/sbml/GeneAssociation.cpp b/src/sbml/packages/fbc/sbml/GeneAssociation.cpp
index dfb108d..3b75b51 100644
--- a/src/sbml/packages/fbc/sbml/GeneAssociation.cpp
+++ b/src/sbml/packages/fbc/sbml/GeneAssociation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/sbml/GeneAssociation.h b/src/sbml/packages/fbc/sbml/GeneAssociation.h
index 76fe5f6..f058926 100644
--- a/src/sbml/packages/fbc/sbml/GeneAssociation.h
+++ b/src/sbml/packages/fbc/sbml/GeneAssociation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -28,11 +28,18 @@
  *
  * @htmlinclude not-sbml-warning.html
  *
- * The GeneAssociation class is a helper class for creating annotations to
- * store gene association information in Version 1 of the SBML
- * Level 3 Flux Balance Constraints (“fbc”) package.  In
- * “fbc” Version 2, the equivalent capability is handled by
- * the GeneProductAssociation class and this class (GeneAssociation) is not used.
+ * GeneAssociation is a helper class for creating annotations to store gene
+ * association information.  It is part of a proposed approach to annotating
+ * models in Version 1 of the SBML Level 3 @ref fbc
+ * (“fbc”) package.  It is not part of the official
+ * “fbc” specification, and not defined in Version 2 of the
+ * “fbc” package specification.  In “fbc”
+ * Version 2, the equivalent capability is handled by the
+ * GeneProductAssociation class and this class (GeneAssociation) is not used.
+ *
+ * @see ListOfGeneAssociations
+ * @see GeneProductAssociation
+ * @see ListOfGeneProducts
  */
 
 #ifndef GeneAssociation_H__
@@ -357,9 +364,16 @@ protected:
 /**
  * @class ListOfGeneAssociations
  * @sbmlbrief{fbc} A list of GeneAssociation objects.
- * 
- * The ListOfGeneAssociations is a container for the GeneAssociation elements of the proposed Model annotation, and is not part of the official FBC specification.
- * 
+ *
+ * @htmlinclude not-sbml-warning.html
+ *
+ * The ListOfGeneAssociations is a container for GeneAssociation elements;
+ * both constructs are part of a proposed approach to annotating models in
+ * Version 1 of the SBML Level 3 @ref fbc (“fbc”)
+ * package.  They are not part of the official “fbc”
+ * specification, and are not defined in Version 2 of the
+ * “fbc” package specification.
+ *
  * @copydetails doc_what_is_listof
  *
  * @see GeneAssociation
diff --git a/src/sbml/packages/fbc/sbml/GeneProduct.cpp b/src/sbml/packages/fbc/sbml/GeneProduct.cpp
index bdde7e4..c900867 100644
--- a/src/sbml/packages/fbc/sbml/GeneProduct.cpp
+++ b/src/sbml/packages/fbc/sbml/GeneProduct.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   GeneProduct.cpp
- * @brief:  Implementation of the GeneProduct class
- * @author: SBMLTeam
+ * @file   GeneProduct.cpp
+ * @brief  Implementation of the GeneProduct class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/sbml/GeneProduct.h b/src/sbml/packages/fbc/sbml/GeneProduct.h
index 91ae9d7..c159478 100644
--- a/src/sbml/packages/fbc/sbml/GeneProduct.h
+++ b/src/sbml/packages/fbc/sbml/GeneProduct.h
@@ -1,1112 +1,1112 @@
-/**
- * @file:   GeneProduct.h
- * @brief:  Implementation of the GeneProduct class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2014 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class GeneProduct
- * @sbmlbrief{fbc} Association of a gene product with a Reaction
- *
- * In the SBML Level 3 Flux Balance Constraints (“fbc”)
- * representation format, a GeneProduct object represents a single gene or
- * implied gene product.  The gene or gene product is identified using the
- * required attribute "label", which is a text string.  (This attribute is
- * separate from the usual SBML "id" attribute, which is used to
- * cross-reference entities within an SBML model.)  A GeneProduct object can
- * also possess an optional "associatedSpecies" attribute; if this a
- * attribute is defined, it should have a value of type <code>SIdRef</code>
- * and be the identifier of a Species object defined in the enclosing Model.
- * An "associatedSpecies", if it exists, is interpreted to be a species
- * associated with the gene or gene product that is represented by the
- * GeneProduct object.
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- */
-
-#ifndef GeneProduct_H__
-#define GeneProduct_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/fbc/common/fbcfwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/fbc/extension/FbcExtension.h>
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-
-class LIBSBML_EXTERN GeneProduct : public SBase
-{
-
-protected:
-  /** @cond doxygenLibsbmlInternal */
-  std::string   mId;
-  std::string   mName;
-  std::string   mLabel;
-  std::string   mAssociatedSpecies;
-  /** @endcond */
-
-
-public:
-
-  /**
-   * Creates a new GeneProduct with the given SBML Level, Version, and
-   * “fbc”package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this GeneProduct
-   *
-   * @param version an unsigned int, the SBML Version to assign to this GeneProduct
-   *
-   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to this GeneProduct
-   */
-  GeneProduct(unsigned int level      = FbcExtension::getDefaultLevel(),
-              unsigned int version    = FbcExtension::getDefaultVersion(),
-              unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new GeneProduct with the given FbcPkgNamespaces object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  GeneProduct(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Copy constructor for GeneProduct.
-   *
-   * @param orig; the GeneProduct instance to copy.
-   */
-  GeneProduct(const GeneProduct& orig);
-
-
-   /**
-   * Assignment operator for GeneProduct.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  GeneProduct& operator=(const GeneProduct& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this GeneProduct object.
-   *
-   * @return a (deep) copy of this GeneProduct object.
-   */
-  virtual GeneProduct* clone () const;
-
-
-   /**
-   * Destructor for GeneProduct.
-   */
-  virtual ~GeneProduct();
-
-
-   /**
-   * Returns the value of the "id" attribute of this GeneProduct.
-   *
-   * @return the value of the "id" attribute of this GeneProduct as a string.
-   */
-  virtual const std::string& getId() const;
-
-
-  /**
-   * Returns the value of the "name" attribute of this GeneProduct.
-   *
-   * @return the value of the "name" attribute of this GeneProduct as a string.
-   */
-  virtual const std::string& getName() const;
-
-
-  /**
-   * Returns the value of the "label" attribute of this GeneProduct.
-   *
-   * @return the value of the "label" attribute of this GeneProduct as a
-   * string.
-   */
-  virtual const std::string& getLabel() const;
-
-
-  /**
-   * Returns the value of the "associatedSpecies" attribute of this
-   * GeneProduct.
-   *
-   * @return the value of the "associatedSpecies" attribute of this
-   * GeneProduct as a string.
-   */
-  virtual const std::string& getAssociatedSpecies() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProduct's "id" attribute is set.
-   *
-   * @return @c true if this GeneProduct's "id" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetId() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProduct's "name" attribute is
-   * set.
-   *
-   * @return @c true if this GeneProduct's "name" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetName() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProduct's "label" attribute is
-   * set.
-   *
-   * @return @c true if this GeneProduct's "label" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetLabel() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProduct's "associatedSpecies"
-   * attribute is set.
-   *
-   * @return @c true if this GeneProduct's "associatedSpecies" attribute has
-   * been set, otherwise @c false is returned.
-   */
-  virtual bool isSetAssociatedSpecies() const;
-
-
-  /**
-   * Sets the value of the "id" attribute of this GeneProduct.
-   *
-   * @param id; const std::string& value of the "id" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setId(const std::string& id);
-
-
-  /**
-   * Sets the value of the "name" attribute of this GeneProduct.
-   *
-   * @param name; const std::string& value of the "name" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setName(const std::string& name);
-
-
-  /**
-   * Sets the value of the "label" attribute of this GeneProduct.
-   *
-   * @param label; const std::string& value of the "label" attribute to be
-   * set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setLabel(const std::string& label);
-
-
-  /**
-   * Sets the value of the "associatedSpecies" attribute of this GeneProduct.
-   *
-   * @param associatedSpecies; const std::string& value of the
-   * "associatedSpecies" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setAssociatedSpecies(const std::string& associatedSpecies);
-
-
-  /**
-   * Unsets the value of the "id" attribute of this GeneProduct.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetId();
-
-
-  /**
-   * Unsets the value of the "name" attribute of this GeneProduct.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetName();
-
-
-  /**
-   * Unsets the value of the "label" attribute of this GeneProduct.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetLabel();
-
-
-  /**
-   * Unsets the value of the "associatedSpecies" attribute of this
-   * GeneProduct.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetAssociatedSpecies();
-
-
-  /**
-   * @copydoc doc_renamesidref_common
-   */
-   virtual void renameSIdRefs(const std::string& oldid, const std::string& newid);
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For GeneProduct, the XML element name is always @c "geneProduct".
-   *
-   * @return the name of this element, i.e. @c "geneProduct".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_FBC_GENEPRODUCT, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes
-   * for this GeneProduct object have been set.
-   *
-   * @note The required attributes for a GeneProduct object are:
-   * @li "id"
-   * @li "label"
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-};
-
-
-/**
- * @class ListOfGeneProducts
- * @sbmlbrief{fbc} A list of GeneProduct objects.
- *
- * The ListOfGeneProducts is a container for the SBML extended Model
- * that lists all the possible GeneProduct elements in the model.  These
- * GeneProduct elements are referenced in the GeneProductAssociation child
- * of an extended Reaction.
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- *
- * @copydetails doc_what_is_listof
- *
- * @see GeneProduct
- * @see FbcModelPlugin
- */
-class LIBSBML_EXTERN ListOfGeneProducts : public ListOf
-{
-
-public:
-
-  /**
-   * Creates a new GeneProduct with the given SBML Level, Version, and
-   * “fbc”package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this
-   * ListOfGeneProducts
-   *
-   * @param version an unsigned int, the SBML Version to assign to this
-   * ListOfGeneProducts
-   *
-   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
-   * this ListOfGeneProducts
-   */
-  ListOfGeneProducts(unsigned int level      = FbcExtension::getDefaultLevel(),
-                     unsigned int version    = FbcExtension::getDefaultVersion(),
-                     unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new ListOfGeneProducts with the given FbcPkgNamespaces object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  ListOfGeneProducts(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Creates and returns a deep copy of this ListOfGeneProducts object.
-   *
-   * @return a (deep) copy of this ListOfGeneProducts object.
-   */
-  virtual ListOfGeneProducts* clone () const;
-
-
-   /**
-   * Get a GeneProduct from the ListOfGeneProducts.
-   *
-   * @param n the index number of the GeneProduct to get.
-   *
-   * @return the nth GeneProduct in this ListOfGeneProducts.
-   *
-   * @see size()
-   */
-  virtual GeneProduct* get(unsigned int n);
-
-
-  /**
-   * Get a GeneProduct from the ListOfGeneProducts.
-   *
-   * @param n the index number of the GeneProduct to get.
-   *
-   * @return the nth GeneProduct in this ListOfGeneProducts.
-   *
-   * @see size()
-   */
-  virtual const GeneProduct* get(unsigned int n) const;
-
-
-  /**
-   * Get a GeneProduct from the ListOfGeneProducts based on its identifier.
-   *
-   * @param sid a string representing the identifier of the GeneProduct to
-   * get.
-   *
-   * @return GeneProduct in this ListOfGeneProducts with the given id or NULL
-   * if no such GeneProduct exists.
-   *
-   * @see get(unsigned int n)
-   * @see size()
-   */
-  virtual GeneProduct* get(const std::string& sid);
-
-
-  /**
-   * Get a GeneProduct from the ListOfGeneProducts based on its identifier.
-   *
-   * @param sid a string representing the identifier of the GeneProduct to
-   * get.
-   *
-   * @return GeneProduct in this ListOfGeneProducts with the given id or NULL
-   * if no such GeneProduct exists.
-   *
-   * @see get(unsigned int n)
-   * @see size()
-   */
-  virtual const GeneProduct* get(const std::string& sid) const;
-
-
-  /**
-   * Adds a copy the given "GeneProduct" to this ListOfGeneProducts.
-   *
-   * @param gp; the GeneProduct object to add
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  int addGeneProduct(const GeneProduct* gp);
-
-
-  /**
-   * Get the number of GeneProduct objects in this ListOfGeneProducts.
-   *
-   * @return the number of GeneProduct objects in this ListOfGeneProducts
-   */
-  unsigned int getNumGeneProducts() const;
-
-
-  /**
-   * Creates a new GeneProduct object, adds it to the ListOfGeneProducts and
-   * returns the GeneProduct object created.
-   *
-   * @return a new GeneProduct object instance
-   *
-   * @see addGeneProduct(const GeneProduct* gp)
-   */
-  GeneProduct* createGeneProduct();
-
-
-  /**
-   * Removes the nth GeneProduct from this ListOfGeneProducts
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the GeneProduct to remove.
-   *
-   * @see size()
-   */
-  virtual GeneProduct* remove(unsigned int n);
-
-
-  /**
-   * Removes the GeneProduct from this ListOfGeneProducts with the given
-   * identifier and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
-   *
-   * @param sid the identifier of the GeneProduct to remove.
-   *
-   * @return the GeneProduct removed. As mentioned above, the caller owns the
-   * returned item.
-   */
-  virtual GeneProduct* remove(const std::string& sid);
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For ListOfGeneProducts, the XML element name is always @c
-   * "listOfGeneProducts".
-   *
-   * @return the name of this element, i.e. @c "listOfGeneProducts".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_LIST_OF, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Returns the libSBML type code for the objects contained in this ListOf.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for the objects contained in this ListOf
-   * instance: @sbmlconstant{SBML_FBC_GENEPRODUCT, SBMLTypeCode_t} (default).
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getItemTypeCode () const;
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Creates a new GeneProduct in this ListOfGeneProducts
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write the namespace for the “fbc” package.
-   */
-  virtual void writeXMLNS(XMLOutputStream& stream) const;
-
-  /** @endcond doxygenLibsbmlInternal */
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-/**
- * Creates a new GeneProduct_t structure using the given SBML @p level and
- * @p version values.
- *
- * @param level an unsigned int, the SBML level to assign to this
- * GeneProduct_t structure.
- *
- * @param version an unsigned int, the SBML version to assign to this
- * GeneProduct_t structure.
- *
- * @returns the newly-created GeneProduct_t structure, or a null pointer if
- * an error occurred during construction.
- *
- * @copydetails doc_note_setting_lv
- *
- * @memberof GeneProduct_t
- */
-LIBSBML_EXTERN
-GeneProduct_t *
-GeneProduct_create(unsigned int level, unsigned int version,
-                   unsigned int pkgVersion);
-
-
-/**
- * Frees the given GeneProduct_t structure.
- * 
- * @param gp the GeneProduct_t structure to be freed.
- *
- * @memberof GeneProduct_t
- */
-LIBSBML_EXTERN
-void
-GeneProduct_free(GeneProduct_t * gp);
-
-
-/**
- * Creates a deep copy of the given GeneProduct_t structure.
- * 
- * @param gp the GeneProduct_t structure to be copied.
- *
- * @returns a (deep) copy of the given GeneProduct_t structure, or a null
- * pointer if a failure occurred.
- *
- * @memberof GeneProduct_t
- */
-LIBSBML_EXTERN
-GeneProduct_t *
-GeneProduct_clone(GeneProduct_t * gp);
-
-
-/**
- * Returns the value of the "id" attribute of the given GeneProduct_t
- * structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return the id of this structure.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProduct_getId(const GeneProduct_t * gp);
-
-
-/**
- * Returns the value of the "name" attribute of the given GeneProduct_t
- * structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return the name of this structure.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProduct_getName(const GeneProduct_t * gp);
-
-
-/**
- * Returns the value of the "label" attribute of the given GeneProduct_t
- * structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return the label of this structure.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProduct_getLabel(const GeneProduct_t * gp);
-
-
-/**
- * Returns the value of the "associatedSpecies" attribute of the given GeneProduct_t
- * structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return the associatedSpecies of this structure.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProduct_getAssociatedSpecies(const GeneProduct_t * gp);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProduct_t structure's "id"
- * is set.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return @c 1 if the "id" of this GeneProduct_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_isSetId(const GeneProduct_t * gp);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProduct_t structure's "name"
- * is set.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return @c 1 if the "name" of this GeneProduct_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_isSetName(const GeneProduct_t * gp);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProduct_t structure's "label"
- * is set.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return @c 1 if the "label" of this GeneProduct_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_isSetLabel(const GeneProduct_t * gp);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProduct_t structure's "associatedSpecies"
- * is set.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return @c 1 if the "associatedSpecies" of this GeneProduct_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_isSetAssociatedSpecies(const GeneProduct_t * gp);
-
-
-/**
- * Sets the "id" attribute of the given GeneProduct_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProduct_unsetId() instead.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @param id the string to which the structures "id" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_setId(GeneProduct_t * gp, const char * id);
-
-
-/**
- * Sets the "name" attribute of the given GeneProduct_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProduct_unsetName() instead.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @param name the string to which the structures "name" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_setName(GeneProduct_t * gp, const char * name);
-
-
-/**
- * Sets the "label" attribute of the given GeneProduct_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProduct_unsetLabel() instead.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @param label the string to which the structures "label" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_setLabel(GeneProduct_t * gp, const char * label);
-
-
-/**
- * Sets the "associatedSpecies" attribute of the given GeneProduct_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProduct_unsetAssociatedSpecies() instead.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @param associatedSpecies the string to which the structures "associatedSpecies" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_setAssociatedSpecies(GeneProduct_t * gp, const char * associatedSpecies);
-
-
-/**
- * Unsets the value of the "id" attribute of the given 
- * GeneProduct_t structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_unsetId(GeneProduct_t * gp);
-
-
-/**
- * Unsets the value of the "name" attribute of the given 
- * GeneProduct_t structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_unsetName(GeneProduct_t * gp);
-
-
-/**
- * Unsets the value of the "label" attribute of the given 
- * GeneProduct_t structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_unsetLabel(GeneProduct_t * gp);
-
-
-/**
- * Unsets the value of the "associatedSpecies" attribute of the given 
- * GeneProduct_t structure.
- *
- * @param gp the GeneProduct_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_unsetAssociatedSpecies(GeneProduct_t * gp);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * attributes of the given GeneProduct_t structure have been set.
- *
- * @param gp the GeneProduct_t structure to check.
- *
- * @return @c 1 if all the required attributes for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of GeneProduct_t
- */
-LIBSBML_EXTERN
-int
-GeneProduct_hasRequiredAttributes(const GeneProduct_t * gp);
-
-
-LIBSBML_EXTERN
-GeneProduct_t *
-ListOfGeneProducts_getById(ListOf_t * lo, const char * sid);
-
-
-LIBSBML_EXTERN
-GeneProduct_t *
-ListOfGeneProducts_removeById(ListOf_t * lo, const char * sid);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  GeneProduct_H__  */
-
+/**
+ * @file   GeneProduct.h
+ * @brief  Implementation of the GeneProduct class
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class GeneProduct
+ * @sbmlbrief{fbc} Association of a gene product with a Reaction
+ *
+ * In the SBML Level 3 @ref fbc (“fbc”) package
+ * representation format, a GeneProduct object represents a single gene or
+ * implied gene product.  The gene or gene product is identified using the
+ * required attribute "label", which is a text string.  (This attribute is
+ * separate from the usual SBML "id" attribute, which is used to
+ * cross-reference entities within an SBML model.)  A GeneProduct object can
+ * also possess an optional "associatedSpecies" attribute; if this a
+ * attribute is defined, it should have a value of type <code>SIdRef</code>
+ * and be the identifier of a Species object defined in the enclosing Model.
+ * An "associatedSpecies", if it exists, is interpreted to be a species
+ * associated with the gene or gene product that is represented by the
+ * GeneProduct object.
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ */
+
+#ifndef GeneProduct_H__
+#define GeneProduct_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/fbc/common/fbcfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/SBase.h>
+#include <sbml/ListOf.h>
+#include <sbml/packages/fbc/extension/FbcExtension.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+class LIBSBML_EXTERN GeneProduct : public SBase
+{
+
+protected:
+  /** @cond doxygenLibsbmlInternal */
+  std::string   mId;
+  std::string   mName;
+  std::string   mLabel;
+  std::string   mAssociatedSpecies;
+  /** @endcond */
+
+
+public:
+
+  /**
+   * Creates a new GeneProduct with the given SBML Level, Version, and
+   * “fbc”package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this GeneProduct
+   *
+   * @param version an unsigned int, the SBML Version to assign to this GeneProduct
+   *
+   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to this GeneProduct
+   */
+  GeneProduct(unsigned int level      = FbcExtension::getDefaultLevel(),
+              unsigned int version    = FbcExtension::getDefaultVersion(),
+              unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new GeneProduct with the given FbcPkgNamespaces object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  GeneProduct(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Copy constructor for GeneProduct.
+   *
+   * @param orig; the GeneProduct instance to copy.
+   */
+  GeneProduct(const GeneProduct& orig);
+
+
+   /**
+   * Assignment operator for GeneProduct.
+   *
+   * @param rhs; the object whose values are used as the basis
+   * of the assignment
+   */
+  GeneProduct& operator=(const GeneProduct& rhs);
+
+
+   /**
+   * Creates and returns a deep copy of this GeneProduct object.
+   *
+   * @return a (deep) copy of this GeneProduct object.
+   */
+  virtual GeneProduct* clone () const;
+
+
+   /**
+   * Destructor for GeneProduct.
+   */
+  virtual ~GeneProduct();
+
+
+   /**
+   * Returns the value of the "id" attribute of this GeneProduct.
+   *
+   * @return the value of the "id" attribute of this GeneProduct as a string.
+   */
+  virtual const std::string& getId() const;
+
+
+  /**
+   * Returns the value of the "name" attribute of this GeneProduct.
+   *
+   * @return the value of the "name" attribute of this GeneProduct as a string.
+   */
+  virtual const std::string& getName() const;
+
+
+  /**
+   * Returns the value of the "label" attribute of this GeneProduct.
+   *
+   * @return the value of the "label" attribute of this GeneProduct as a
+   * string.
+   */
+  virtual const std::string& getLabel() const;
+
+
+  /**
+   * Returns the value of the "associatedSpecies" attribute of this
+   * GeneProduct.
+   *
+   * @return the value of the "associatedSpecies" attribute of this
+   * GeneProduct as a string.
+   */
+  virtual const std::string& getAssociatedSpecies() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProduct's "id" attribute is set.
+   *
+   * @return @c true if this GeneProduct's "id" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetId() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProduct's "name" attribute is
+   * set.
+   *
+   * @return @c true if this GeneProduct's "name" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetName() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProduct's "label" attribute is
+   * set.
+   *
+   * @return @c true if this GeneProduct's "label" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetLabel() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProduct's "associatedSpecies"
+   * attribute is set.
+   *
+   * @return @c true if this GeneProduct's "associatedSpecies" attribute has
+   * been set, otherwise @c false is returned.
+   */
+  virtual bool isSetAssociatedSpecies() const;
+
+
+  /**
+   * Sets the value of the "id" attribute of this GeneProduct.
+   *
+   * @param id; const std::string& value of the "id" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setId(const std::string& id);
+
+
+  /**
+   * Sets the value of the "name" attribute of this GeneProduct.
+   *
+   * @param name; const std::string& value of the "name" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setName(const std::string& name);
+
+
+  /**
+   * Sets the value of the "label" attribute of this GeneProduct.
+   *
+   * @param label; const std::string& value of the "label" attribute to be
+   * set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setLabel(const std::string& label);
+
+
+  /**
+   * Sets the value of the "associatedSpecies" attribute of this GeneProduct.
+   *
+   * @param associatedSpecies; const std::string& value of the
+   * "associatedSpecies" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setAssociatedSpecies(const std::string& associatedSpecies);
+
+
+  /**
+   * Unsets the value of the "id" attribute of this GeneProduct.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetId();
+
+
+  /**
+   * Unsets the value of the "name" attribute of this GeneProduct.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetName();
+
+
+  /**
+   * Unsets the value of the "label" attribute of this GeneProduct.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetLabel();
+
+
+  /**
+   * Unsets the value of the "associatedSpecies" attribute of this
+   * GeneProduct.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetAssociatedSpecies();
+
+
+  /**
+   * @copydoc doc_renamesidref_common
+   */
+   virtual void renameSIdRefs(const std::string& oldid, const std::string& newid);
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For GeneProduct, the XML element name is always @c "geneProduct".
+   *
+   * @return the name of this element, i.e. @c "geneProduct".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_FBC_GENEPRODUCT, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Predicate returning @c true if all the required attributes
+   * for this GeneProduct object have been set.
+   *
+   * @note The required attributes for a GeneProduct object are:
+   * @li "id"
+   * @li "label"
+   *
+   * @return a boolean value indicating whether all the required
+   * attributes for this object have been defined.
+   */
+  virtual bool hasRequiredAttributes() const;
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses should override this method to write out their contained
+   * SBML objects as XML elements.  Be sure to call your parents
+   * implementation of this method as well.
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Accepts the given SBMLVisitor.
+   */
+  virtual bool accept (SBMLVisitor& v) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument.
+   */
+  virtual void setSBMLDocument (SBMLDocument* d);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Enables/Disables the given package with this element.
+   */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+               const std::string& pkgPrefix, bool flag);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Get the list of expected attributes for this element.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Read values from the given XMLAttributes set into their specific fields.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write values of XMLAttributes to the output stream.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+};
+
+
+/**
+ * @class ListOfGeneProducts
+ * @sbmlbrief{fbc} A list of GeneProduct objects.
+ *
+ * The ListOfGeneProducts is a container for the SBML extended Model
+ * that lists all the possible GeneProduct elements in the model.  These
+ * GeneProduct elements are referenced in the GeneProductAssociation child
+ * of an extended Reaction.
+ *
+ * @copydetails doc_what_is_listof
+ *
+ * @see GeneProduct
+ * @see FbcModelPlugin
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ */
+class LIBSBML_EXTERN ListOfGeneProducts : public ListOf
+{
+
+public:
+
+  /**
+   * Creates a new GeneProduct with the given SBML Level, Version, and
+   * “fbc”package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this
+   * ListOfGeneProducts
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * ListOfGeneProducts
+   *
+   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
+   * this ListOfGeneProducts
+   */
+  ListOfGeneProducts(unsigned int level      = FbcExtension::getDefaultLevel(),
+                     unsigned int version    = FbcExtension::getDefaultVersion(),
+                     unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new ListOfGeneProducts with the given FbcPkgNamespaces object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  ListOfGeneProducts(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Creates and returns a deep copy of this ListOfGeneProducts object.
+   *
+   * @return a (deep) copy of this ListOfGeneProducts object.
+   */
+  virtual ListOfGeneProducts* clone () const;
+
+
+   /**
+   * Get a GeneProduct from the ListOfGeneProducts.
+   *
+   * @param n the index number of the GeneProduct to get.
+   *
+   * @return the nth GeneProduct in this ListOfGeneProducts.
+   *
+   * @see size()
+   */
+  virtual GeneProduct* get(unsigned int n);
+
+
+  /**
+   * Get a GeneProduct from the ListOfGeneProducts.
+   *
+   * @param n the index number of the GeneProduct to get.
+   *
+   * @return the nth GeneProduct in this ListOfGeneProducts.
+   *
+   * @see size()
+   */
+  virtual const GeneProduct* get(unsigned int n) const;
+
+
+  /**
+   * Get a GeneProduct from the ListOfGeneProducts based on its identifier.
+   *
+   * @param sid a string representing the identifier of the GeneProduct to
+   * get.
+   *
+   * @return GeneProduct in this ListOfGeneProducts with the given id or NULL
+   * if no such GeneProduct exists.
+   *
+   * @see get(unsigned int n)
+   * @see size()
+   */
+  virtual GeneProduct* get(const std::string& sid);
+
+
+  /**
+   * Get a GeneProduct from the ListOfGeneProducts based on its identifier.
+   *
+   * @param sid a string representing the identifier of the GeneProduct to
+   * get.
+   *
+   * @return GeneProduct in this ListOfGeneProducts with the given id or NULL
+   * if no such GeneProduct exists.
+   *
+   * @see get(unsigned int n)
+   * @see size()
+   */
+  virtual const GeneProduct* get(const std::string& sid) const;
+
+
+  /**
+   * Adds a copy the given "GeneProduct" to this ListOfGeneProducts.
+   *
+   * @param gp; the GeneProduct object to add
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  int addGeneProduct(const GeneProduct* gp);
+
+
+  /**
+   * Get the number of GeneProduct objects in this ListOfGeneProducts.
+   *
+   * @return the number of GeneProduct objects in this ListOfGeneProducts
+   */
+  unsigned int getNumGeneProducts() const;
+
+
+  /**
+   * Creates a new GeneProduct object, adds it to the ListOfGeneProducts and
+   * returns the GeneProduct object created.
+   *
+   * @return a new GeneProduct object instance
+   *
+   * @see addGeneProduct(const GeneProduct* gp)
+   */
+  GeneProduct* createGeneProduct();
+
+
+  /**
+   * Removes the nth GeneProduct from this ListOfGeneProducts
+   * and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   *
+   * @param n the index of the GeneProduct to remove.
+   *
+   * @see size()
+   */
+  virtual GeneProduct* remove(unsigned int n);
+
+
+  /**
+   * Removes the GeneProduct from this ListOfGeneProducts with the given
+   * identifier and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   * If none of the items in this list have the identifier @p sid, then
+   * @c NULL is returned.
+   *
+   * @param sid the identifier of the GeneProduct to remove.
+   *
+   * @return the GeneProduct removed. As mentioned above, the caller owns the
+   * returned item.
+   */
+  virtual GeneProduct* remove(const std::string& sid);
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For ListOfGeneProducts, the XML element name is always @c
+   * "listOfGeneProducts".
+   *
+   * @return the name of this element, i.e. @c "listOfGeneProducts".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_LIST_OF, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Returns the libSBML type code for the objects contained in this ListOf.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for the objects contained in this ListOf
+   * instance: @sbmlconstant{SBML_FBC_GENEPRODUCT, SBMLTypeCode_t} (default).
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getItemTypeCode () const;
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Creates a new GeneProduct in this ListOfGeneProducts
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write the namespace for the “fbc” package.
+   */
+  virtual void writeXMLNS(XMLOutputStream& stream) const;
+
+  /** @endcond doxygenLibsbmlInternal */
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  __cplusplus  */
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+/**
+ * Creates a new GeneProduct_t structure using the given SBML @p level and
+ * @p version values.
+ *
+ * @param level an unsigned int, the SBML level to assign to this
+ * GeneProduct_t structure.
+ *
+ * @param version an unsigned int, the SBML version to assign to this
+ * GeneProduct_t structure.
+ *
+ * @returns the newly-created GeneProduct_t structure, or a null pointer if
+ * an error occurred during construction.
+ *
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof GeneProduct_t
+ */
+LIBSBML_EXTERN
+GeneProduct_t *
+GeneProduct_create(unsigned int level, unsigned int version,
+                   unsigned int pkgVersion);
+
+
+/**
+ * Frees the given GeneProduct_t structure.
+ * 
+ * @param gp the GeneProduct_t structure to be freed.
+ *
+ * @memberof GeneProduct_t
+ */
+LIBSBML_EXTERN
+void
+GeneProduct_free(GeneProduct_t * gp);
+
+
+/**
+ * Creates a deep copy of the given GeneProduct_t structure.
+ * 
+ * @param gp the GeneProduct_t structure to be copied.
+ *
+ * @returns a (deep) copy of the given GeneProduct_t structure, or a null
+ * pointer if a failure occurred.
+ *
+ * @memberof GeneProduct_t
+ */
+LIBSBML_EXTERN
+GeneProduct_t *
+GeneProduct_clone(GeneProduct_t * gp);
+
+
+/**
+ * Returns the value of the "id" attribute of the given GeneProduct_t
+ * structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return the id of this structure.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProduct_getId(const GeneProduct_t * gp);
+
+
+/**
+ * Returns the value of the "name" attribute of the given GeneProduct_t
+ * structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return the name of this structure.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProduct_getName(const GeneProduct_t * gp);
+
+
+/**
+ * Returns the value of the "label" attribute of the given GeneProduct_t
+ * structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return the label of this structure.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProduct_getLabel(const GeneProduct_t * gp);
+
+
+/**
+ * Returns the value of the "associatedSpecies" attribute of the given GeneProduct_t
+ * structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return the associatedSpecies of this structure.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProduct_getAssociatedSpecies(const GeneProduct_t * gp);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProduct_t structure's "id"
+ * is set.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return @c 1 if the "id" of this GeneProduct_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_isSetId(const GeneProduct_t * gp);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProduct_t structure's "name"
+ * is set.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return @c 1 if the "name" of this GeneProduct_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_isSetName(const GeneProduct_t * gp);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProduct_t structure's "label"
+ * is set.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return @c 1 if the "label" of this GeneProduct_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_isSetLabel(const GeneProduct_t * gp);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProduct_t structure's "associatedSpecies"
+ * is set.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return @c 1 if the "associatedSpecies" of this GeneProduct_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_isSetAssociatedSpecies(const GeneProduct_t * gp);
+
+
+/**
+ * Sets the "id" attribute of the given GeneProduct_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProduct_unsetId() instead.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @param id the string to which the structures "id" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_setId(GeneProduct_t * gp, const char * id);
+
+
+/**
+ * Sets the "name" attribute of the given GeneProduct_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProduct_unsetName() instead.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @param name the string to which the structures "name" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_setName(GeneProduct_t * gp, const char * name);
+
+
+/**
+ * Sets the "label" attribute of the given GeneProduct_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProduct_unsetLabel() instead.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @param label the string to which the structures "label" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_setLabel(GeneProduct_t * gp, const char * label);
+
+
+/**
+ * Sets the "associatedSpecies" attribute of the given GeneProduct_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProduct_unsetAssociatedSpecies() instead.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @param associatedSpecies the string to which the structures "associatedSpecies" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_setAssociatedSpecies(GeneProduct_t * gp, const char * associatedSpecies);
+
+
+/**
+ * Unsets the value of the "id" attribute of the given 
+ * GeneProduct_t structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_unsetId(GeneProduct_t * gp);
+
+
+/**
+ * Unsets the value of the "name" attribute of the given 
+ * GeneProduct_t structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_unsetName(GeneProduct_t * gp);
+
+
+/**
+ * Unsets the value of the "label" attribute of the given 
+ * GeneProduct_t structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_unsetLabel(GeneProduct_t * gp);
+
+
+/**
+ * Unsets the value of the "associatedSpecies" attribute of the given 
+ * GeneProduct_t structure.
+ *
+ * @param gp the GeneProduct_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_unsetAssociatedSpecies(GeneProduct_t * gp);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * attributes of the given GeneProduct_t structure have been set.
+ *
+ * @param gp the GeneProduct_t structure to check.
+ *
+ * @return @c 1 if all the required attributes for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of GeneProduct_t
+ */
+LIBSBML_EXTERN
+int
+GeneProduct_hasRequiredAttributes(const GeneProduct_t * gp);
+
+
+LIBSBML_EXTERN
+GeneProduct_t *
+ListOfGeneProducts_getById(ListOf_t * lo, const char * sid);
+
+
+LIBSBML_EXTERN
+GeneProduct_t *
+ListOfGeneProducts_removeById(ListOf_t * lo, const char * sid);
+
+
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  !SWIG  */
+
+#endif /*  GeneProduct_H__  */
+
diff --git a/src/sbml/packages/fbc/sbml/GeneProductAssociation.cpp b/src/sbml/packages/fbc/sbml/GeneProductAssociation.cpp
index 9e65b96..9a4a701 100644
--- a/src/sbml/packages/fbc/sbml/GeneProductAssociation.cpp
+++ b/src/sbml/packages/fbc/sbml/GeneProductAssociation.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   GeneProductAssociation.cpp
- * @brief:  Implementation of the GeneProductAssociation class
- * @author: SBMLTeam
+ * @file   GeneProductAssociation.cpp
+ * @brief  Implementation of the GeneProductAssociation class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -341,9 +341,10 @@ int GeneProductAssociation::setAssociation(const std::string& association)
   if (newAssociation == NULL)
     return LIBSBML_OPERATION_FAILED;
 
+  /* this clones the association so we need to free the memory */
   int result = setAssociation(newAssociation);
 
-  if (result != LIBSBML_OPERATION_SUCCESS)
+  if (result == LIBSBML_OPERATION_SUCCESS)
     delete newAssociation;
 
   return result;
@@ -587,6 +588,7 @@ GeneProductAssociation::createObject(XMLInputStream& stream)
                     details, getLine(), getColumn());
 
   }
+  delete mAssociation;
 
   if (name == "and")
   {
diff --git a/src/sbml/packages/fbc/sbml/GeneProductAssociation.h b/src/sbml/packages/fbc/sbml/GeneProductAssociation.h
index bd23512..fb2061e 100644
--- a/src/sbml/packages/fbc/sbml/GeneProductAssociation.h
+++ b/src/sbml/packages/fbc/sbml/GeneProductAssociation.h
@@ -1,826 +1,827 @@
-/**
- * @file:   GeneProductAssociation.h
- * @brief:  Implementation of the GeneProductAssociation class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2014 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class GeneProductAssociation
- * @sbmlbrief{fbc} Association between gene products and reactions
- *
- * In Version 2 of the SBML Level 3 Flux Balance Constraints
- * (“fbc”) package specification, GeneProductAssociation is a
- * class derived from SBase used to associate one more genes or gene products
- * with reactions.  GeneProductAssociation objects are essentially
- * containers, with one such container optionally attached as a subelement to
- * a Reaction object in a model.  The container can contain one of three
- * kinds of objects, all of which are subclasses of the libSBML parent class
- * FbcAssociation.  (Note that this class is named <em>%Association</em> in
- * the “fbc” Version 2 specification, but in libSBML is
- * named FbcAssociation to avoid a name conflict with an existing class.)
- *
- * One of the kinds of FbcAssociation subclasses that can appear in a
- * GeneProductAssociation is GeneProductRef.  This class of objects
- * references a GeneProduct declared in a ListOfGeneProducts attached to the
- * enclosing Model object.  In the “fbc” approach, when more than
- * one gene (or gene product) is present in an association, they are written
- * as logical expressions using Boolean logical operators <em>and</em> and
- * <em>or</em> through the classes (in libSBML) FbcAnd and FbcOr.  (In the
- * “fbc” Version 2 specification, these are simply named
- * <em>And</em> and <em>Or</em>, respectively.) The FbcAnd and FbcOr objects
- * in turn can contain either GeneProductRef objects or other FbcAnd and/or
- * FbcOr objects.
- *
- * Here is a concrete example of what the XML representation of a simple
- * <em>or</em> relationship might look like:
-<pre class="fragment">
-<reaction id = "R_ABTA" <span class="regular-text" style="font-weight: normal; font-style: italic; background-color: #ffd; padding-left: 2px; padding-right: 2px">... rest of Reaction declaration elided for this example ...</span>>
- <fbc:geneProductAssociation fbc:id="ga_16">
-  <fbc:or>
-   <fbc:geneProductRef fbc:geneProduct="g_b2662"/>
-   <fbc:geneProductRef fbc:geneProduct="g_b1302"/>
-  </fbc:or>
- </fbc:geneProductAssociation>
-</reaction>
-</pre>
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- */
-
-#ifndef GeneProductAssociation_H__
-#define GeneProductAssociation_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/fbc/common/fbcfwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/fbc/extension/FbcExtension.h>
-
-#include <sbml/packages/fbc/sbml/FbcAssociation.h>
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-
-class LIBSBML_EXTERN GeneProductAssociation : public SBase
-{
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-  std::string   mId;
-  std::string   mName;
-  FbcAssociation*      mAssociation;
-  /** @endcond */
-
-
-public:
-
-  /**
-   * Creates a new GeneProductAssociation with the given SBML Level, Version, and
-   * “fbc” package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this
-   * GeneProductAssociation
-   *
-   * @param version an unsigned int, the SBML Version to assign to this
-   * GeneProductAssociation
-   *
-   * @param pkgVersion an unsigned int, the SBML “fbc” Version to
-   * assign to this GeneProductAssociation object
-   */
-  GeneProductAssociation(unsigned int level      = FbcExtension::getDefaultLevel(),
-                         unsigned int version    = FbcExtension::getDefaultVersion(),
-                         unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new GeneProductAssociation with the given FbcPkgNamespaces
-   * object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  GeneProductAssociation(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Copy constructor for GeneProductAssociation.
-   *
-   * @param orig; the GeneProductAssociation instance to copy.
-   */
-  GeneProductAssociation(const GeneProductAssociation& orig);
-
-
-   /**
-   * Assignment operator for GeneProductAssociation.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment.
-   */
-  GeneProductAssociation& operator=(const GeneProductAssociation& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this GeneProductAssociation object.
-   *
-   * @return a (deep) copy of this GeneProductAssociation object.
-   */
-  virtual GeneProductAssociation* clone () const;
-
-
-   /**
-   * Destructor for GeneProductAssociation.
-   */
-  virtual ~GeneProductAssociation();
-
-
-   /**
-   * Returns the value of the "id" attribute of this GeneProductAssociation.
-   *
-   * @return the value of the "id" attribute of this GeneProductAssociation
-   * as a string.
-   */
-  virtual const std::string& getId() const;
-
-
-  /**
-   * Returns the value of the "name" attribute of this GeneProductAssociation.
-   *
-   * @return the value of the "name" attribute of this GeneProductAssociation
-   * as a string.
-   */
-  virtual const std::string& getName() const;
-
-
-  /**
-   * Returns the "association" element of this GeneProductAssociation.
-   *
-   * @return the "association" element of this GeneProductAssociation.
-   */
-  virtual const FbcAssociation* getAssociation() const;
-
-
-  /**
-   * Returns the "association" element of this GeneProductAssociation.
-   *
-   * @return the "association" element of this GeneProductAssociation.
-   */
-  virtual FbcAssociation* getAssociation();
-
-
-  /**
-   * Creates a new "association" and sets it for this GeneProductAssociation.
-   *
-   * @return the 
-   */
-  virtual FbcAnd* createAnd();
-
-
-  /**
-   * Creates a new "association" and sets it for this GeneProductAssociation.
-   */
-  virtual FbcOr* createOr();
-
-
-  /**
-   * Creates a new "association" and sets it for this GeneProductAssociation.
-   */
-  virtual GeneProductRef* createGeneProductRef();
-
-
-  /**
-   * Predicate returning @c true if this GeneProductAssociation's "id"
-   * attribute is set.
-   *
-   * @return @c true if this GeneProductAssociation's "id" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetId() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProductAssociation's "name"
-   * attribute is set.
-   *
-   * @return @c true if this GeneProductAssociation's "name" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetName() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProductAssociation's
-   * "association" element is set.
-   *
-   * @return @c true if this GeneProductAssociation's "association" element has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetAssociation() const;
-
-
-  /**
-   * Sets the value of the "id" attribute of this GeneProductAssociation.
-   *
-   * @param id; const std::string& value of the "id" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setId(const std::string& id);
-
-
-  /**
-   * Sets the value of the "name" attribute of this GeneProductAssociation.
-   *
-   * @param name; const std::string& value of the "name" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setName(const std::string& name);
-
-
-  /**
-   * Sets the "association" element of this GeneProductAssociation.
-   *
-   * @param association; FbcAssociation* to be set.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setAssociation(FbcAssociation* association);
-
-  /**
-  * Sets the "association" element of this GeneProductAssociation.
-  *
-  * @param association; string representation of the association to be set
-  *
-  * @return integer value indicating success/failure of the
-  * function.  @if clike The value is drawn from the
-  * enumeration #OperationReturnValues_t. @endif The possible values
-  * returned by this function are:
-  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-  */
-  virtual int setAssociation(const std::string& association);
-
-  /**
-   * Unsets the value of the "id" attribute of this GeneProductAssociation.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetId();
-
-
-  /**
-   * Unsets the value of the "name" attribute of this GeneProductAssociation.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetName();
-
-
-  /**
-   * Unsets the "association" element of this GeneProductAssociation.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetAssociation();
-
-
-  /**
-   * Returns a List of all child SBase objects, including those nested to an
-   * arbitrary depth.
-   *
-   * @return a List* of pointers to all child objects.
-   */
-   virtual List* getAllElements(ElementFilter * filter = NULL);
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For GeneProductAssociation, the XML element name is always @c "geneProductAssociation".
-   *
-   * @return the name of this element, i.e. @c "geneProductAssociation".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_FBC_GENEPRODUCTASSOCIATION, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
- */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes for this
-   * GeneProductAssociation object have been set.
-   *
-   * @note The required attributes for a GeneProductAssociation object are:
-   * @li "association"
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /**
-   * Predicate returning @c true if all the required elements for this
-   * GeneProductAssociation object have been set.
-   *
-   * @note The required elements for a GeneProductAssociation object are:
-   * @li "association"
-   *
-   * @return a boolean value indicating whether all the required
-   * elements for this object have been defined.
-   */
-  virtual bool hasRequiredElements() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Connects to child elements.
-   */
-  virtual void connectToChild ();
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * return the SBML object corresponding to next XMLToken.
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-/**
- * Creates a new GeneProductAssociation_t structure using the given SBML @p level and
- * @p version values.
- *
- * @param level an unsigned int, the SBML level to assign to this
- * GeneProductAssociation_t structure.
- *
- * @param version an unsigned int, the SBML version to assign to this
- * GeneProductAssociation_t structure.
- *
- * @returns the newly-created GeneProductAssociation_t structure, or a null pointer if
- * an error occurred during construction.
- *
- * @copydetails doc_note_setting_lv
- *
- * @memberof GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-GeneProductAssociation_t *
-GeneProductAssociation_create(unsigned int level, unsigned int version,
-                              unsigned int pkgVersion);
-
-
-/**
- * Frees the given GeneProductAssociation_t structure.
- * 
- * @param gpa the GeneProductAssociation_t structure to be freed.
- *
- * @memberof GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-void
-GeneProductAssociation_free(GeneProductAssociation_t * gpa);
-
-
-/**
- * Creates a deep copy of the given GeneProductAssociation_t structure.
- * 
- * @param gpa the GeneProductAssociation_t structure to be copied.
- *
- * @returns a (deep) copy of the given GeneProductAssociation_t structure, or a null
- * pointer if a failure occurred.
- *
- * @memberof GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-GeneProductAssociation_t *
-GeneProductAssociation_clone(GeneProductAssociation_t * gpa);
-
-
-/**
- * Returns the value of the "id" attribute of the given GeneProductAssociation_t
- * structure.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @return the id of this structure.
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProductAssociation_getId(const GeneProductAssociation_t * gpa);
-
-
-/**
- * Returns the value of the "name" attribute of the given GeneProductAssociation_t
- * structure.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @return the name of this structure.
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProductAssociation_getName(const GeneProductAssociation_t * gpa);
-
-
-LIBSBML_EXTERN
-FbcAssociation_t*
-GeneProductAssociation_getAssociation(GeneProductAssociation_t * gpa);
-
-
-LIBSBML_EXTERN
-FbcAnd_t *
-GeneProductAssociation_createAnd(GeneProductAssociation_t * gpa);
-
-
-LIBSBML_EXTERN
-FbcOr_t *
-GeneProductAssociation_createOr(GeneProductAssociation_t * gpa);
-
-
-LIBSBML_EXTERN
-GeneProductRef_t *
-GeneProductAssociation_createGeneProductRef(GeneProductAssociation_t * gpa);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProductAssociation_t structure's
- * "id" is set.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @return @c 1 if the "id" of this GeneProductAssociation_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_isSetId(const GeneProductAssociation_t * gpa);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProductAssociation_t structure's "name"
- * is set.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @return @c 1 if the "name" of this GeneProductAssociation_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_isSetName(const GeneProductAssociation_t * gpa);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProductAssociation_t structure's "association"
- * is set.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @return @c 1 if the "association" of this GeneProductAssociation_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_isSetAssociation(const GeneProductAssociation_t * gpa);
-
-
-/**
- * Sets the "id" attribute of the given GeneProductAssociation_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProductAssociation_unsetId() instead.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @param id the string to which the structures "id" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_setId(GeneProductAssociation_t * gpa, const char * id);
-
-
-/**
- * Sets the "name" attribute of the given GeneProductAssociation_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProductAssociation_unsetName() instead.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @param name the string to which the structures "name" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_setName(GeneProductAssociation_t * gpa, const char * name);
-
-
-LIBSBML_EXTERN
-int
-GeneProductAssociation_setAssociation(GeneProductAssociation_t * gpa, FbcAssociation_t* association);
-
-
-/**
- * Unsets the value of the "id" attribute of the given 
- * GeneProductAssociation_t structure.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_unsetId(GeneProductAssociation_t * gpa);
-
-
-/**
- * Unsets the value of the "name" attribute of the given 
- * GeneProductAssociation_t structure.
- *
- * @param gpa the GeneProductAssociation_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_unsetName(GeneProductAssociation_t * gpa);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * attributes of the given GeneProductAssociation_t structure have been set.
- *
- * @param gpa the GeneProductAssociation_t structure to check.
- *
- * @return @c 1 if all the required attributes for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_hasRequiredAttributes(const GeneProductAssociation_t * gpa);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * sub-elements of the given GeneProductAssociation_t structure have been set.
- *
- * @param gpa the GeneProductAssociation_t structure to check.
- *
- * @return @c 1 if all the required sub-elements for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of GeneProductAssociation_t
- */
-LIBSBML_EXTERN
-int
-GeneProductAssociation_hasRequiredElements(const GeneProductAssociation_t * gpa);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  GeneProductAssociation_H__  */
-
+/**
+ * @file   GeneProductAssociation.h
+ * @brief  Implementation of the GeneProductAssociation class
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class GeneProductAssociation
+ * @sbmlbrief{fbc} Association between gene products and reactions
+ *
+ * In Version 2 of the SBML Level 3 @ref fbc (“fbc”)
+ * package specification, GeneProductAssociation is a class derived from
+ * SBase used to associate one more genes or gene products with reactions.
+ * GeneProductAssociation objects are essentially containers, with one such
+ * container optionally attached as a subelement to a Reaction object in a
+ * model.  The container can contain one of three kinds of objects, all of
+ * which are subclasses of the libSBML parent class FbcAssociation.  (Note
+ * that this class is named <em>%Association</em> in the “fbc”
+ * Version 2 specification, but in libSBML is named FbcAssociation to
+ * avoid a name conflict with an existing class.)
+ *
+ * One of the kinds of FbcAssociation subclasses that can appear in a
+ * GeneProductAssociation is GeneProductRef.  This class of objects
+ * references a GeneProduct declared in a ListOfGeneProducts attached to the
+ * enclosing Model object.  In the “fbc” approach, when more than
+ * one gene (or gene product) is present in an association, they are written
+ * as logical expressions using Boolean logical operators <em>and</em> and
+ * <em>or</em> through the classes (in libSBML) FbcAnd and FbcOr.  (In the
+ * “fbc” Version 2 specification, these are simply named
+ * <em>And</em> and <em>Or</em>, respectively.) The FbcAnd and FbcOr objects
+ * in turn can contain either GeneProductRef objects or other FbcAnd and/or
+ * FbcOr objects.
+ *
+ * Here is a concrete example of what the XML representation of a simple
+ * <em>or</em> relationship might look like:
+<pre class="fragment">
+<reaction id = "R_ABTA" <span class="regular-text" style="font-weight: normal; font-style: italic; background-color: #ffd; padding-left: 2px; padding-right: 2px">... rest of Reaction declaration elided for this example ...</span>>
+ <fbc:geneProductAssociation fbc:id="ga_16">
+  <fbc:or>
+   <fbc:geneProductRef fbc:geneProduct="g_b2662"/>
+   <fbc:geneProductRef fbc:geneProduct="g_b1302"/>
+  </fbc:or>
+ </fbc:geneProductAssociation>
+</reaction>
+</pre>
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ */
+
+#ifndef GeneProductAssociation_H__
+#define GeneProductAssociation_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/fbc/common/fbcfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/SBase.h>
+#include <sbml/ListOf.h>
+#include <sbml/packages/fbc/extension/FbcExtension.h>
+
+#include <sbml/packages/fbc/sbml/FbcAssociation.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+class LIBSBML_EXTERN GeneProductAssociation : public SBase
+{
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+  std::string   mId;
+  std::string   mName;
+  FbcAssociation*      mAssociation;
+  /** @endcond */
+
+
+public:
+
+  /**
+   * Creates a new GeneProductAssociation with the given SBML Level, Version, and
+   * “fbc” package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this
+   * GeneProductAssociation
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * GeneProductAssociation
+   *
+   * @param pkgVersion an unsigned int, the SBML “fbc” Version to
+   * assign to this GeneProductAssociation object
+   */
+  GeneProductAssociation(unsigned int level      = FbcExtension::getDefaultLevel(),
+                         unsigned int version    = FbcExtension::getDefaultVersion(),
+                         unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new GeneProductAssociation with the given FbcPkgNamespaces
+   * object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  GeneProductAssociation(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Copy constructor for GeneProductAssociation.
+   *
+   * @param orig; the GeneProductAssociation instance to copy.
+   */
+  GeneProductAssociation(const GeneProductAssociation& orig);
+
+
+   /**
+   * Assignment operator for GeneProductAssociation.
+   *
+   * @param rhs; the object whose values are used as the basis
+   * of the assignment.
+   */
+  GeneProductAssociation& operator=(const GeneProductAssociation& rhs);
+
+
+   /**
+   * Creates and returns a deep copy of this GeneProductAssociation object.
+   *
+   * @return a (deep) copy of this GeneProductAssociation object.
+   */
+  virtual GeneProductAssociation* clone () const;
+
+
+   /**
+   * Destructor for GeneProductAssociation.
+   */
+  virtual ~GeneProductAssociation();
+
+
+   /**
+   * Returns the value of the "id" attribute of this GeneProductAssociation.
+   *
+   * @return the value of the "id" attribute of this GeneProductAssociation
+   * as a string.
+   */
+  virtual const std::string& getId() const;
+
+
+  /**
+   * Returns the value of the "name" attribute of this GeneProductAssociation.
+   *
+   * @return the value of the "name" attribute of this GeneProductAssociation
+   * as a string.
+   */
+  virtual const std::string& getName() const;
+
+
+  /**
+   * Returns the "association" element of this GeneProductAssociation.
+   *
+   * @return the "association" element of this GeneProductAssociation.
+   */
+  virtual const FbcAssociation* getAssociation() const;
+
+
+  /**
+   * Returns the "association" element of this GeneProductAssociation.
+   *
+   * @return the "association" element of this GeneProductAssociation.
+   */
+  virtual FbcAssociation* getAssociation();
+
+
+  /**
+   * Creates a new "association" and sets it for this GeneProductAssociation.
+   *
+   * @return the 
+   */
+  virtual FbcAnd* createAnd();
+
+
+  /**
+   * Creates a new "association" and sets it for this GeneProductAssociation.
+   */
+  virtual FbcOr* createOr();
+
+
+  /**
+   * Creates a new "association" and sets it for this GeneProductAssociation.
+   */
+  virtual GeneProductRef* createGeneProductRef();
+
+
+  /**
+   * Predicate returning @c true if this GeneProductAssociation's "id"
+   * attribute is set.
+   *
+   * @return @c true if this GeneProductAssociation's "id" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetId() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProductAssociation's "name"
+   * attribute is set.
+   *
+   * @return @c true if this GeneProductAssociation's "name" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetName() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProductAssociation's
+   * "association" element is set.
+   *
+   * @return @c true if this GeneProductAssociation's "association" element has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetAssociation() const;
+
+
+  /**
+   * Sets the value of the "id" attribute of this GeneProductAssociation.
+   *
+   * @param id; const std::string& value of the "id" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setId(const std::string& id);
+
+
+  /**
+   * Sets the value of the "name" attribute of this GeneProductAssociation.
+   *
+   * @param name; const std::string& value of the "name" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setName(const std::string& name);
+
+
+  /**
+   * Sets the "association" element of this GeneProductAssociation.
+   *
+   * @param association; FbcAssociation* to be set.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setAssociation(FbcAssociation* association);
+
+  /**
+  * Sets the "association" element of this GeneProductAssociation.
+  *
+  * @param association; string representation of the association to be set
+  *
+  * @return integer value indicating success/failure of the
+  * function.  @if clike The value is drawn from the
+  * enumeration #OperationReturnValues_t. @endif The possible values
+  * returned by this function are:
+  * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+  * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+  */
+  virtual int setAssociation(const std::string& association);
+
+  /**
+   * Unsets the value of the "id" attribute of this GeneProductAssociation.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetId();
+
+
+  /**
+   * Unsets the value of the "name" attribute of this GeneProductAssociation.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetName();
+
+
+  /**
+   * Unsets the "association" element of this GeneProductAssociation.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetAssociation();
+
+
+  /**
+   * Returns a List of all child SBase objects, including those nested to an
+   * arbitrary depth.
+   *
+   * @return a List* of pointers to all child objects.
+   */
+   virtual List* getAllElements(ElementFilter * filter = NULL);
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For GeneProductAssociation, the XML element name is always @c "geneProductAssociation".
+   *
+   * @return the name of this element, i.e. @c "geneProductAssociation".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_FBC_GENEPRODUCTASSOCIATION, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+ */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Predicate returning @c true if all the required attributes for this
+   * GeneProductAssociation object have been set.
+   *
+   * @note The required attributes for a GeneProductAssociation object are:
+   * @li "association"
+   *
+   * @return a boolean value indicating whether all the required
+   * attributes for this object have been defined.
+   */
+  virtual bool hasRequiredAttributes() const;
+
+
+  /**
+   * Predicate returning @c true if all the required elements for this
+   * GeneProductAssociation object have been set.
+   *
+   * @note The required elements for a GeneProductAssociation object are:
+   * @li "association"
+   *
+   * @return a boolean value indicating whether all the required
+   * elements for this object have been defined.
+   */
+  virtual bool hasRequiredElements() const;
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses should override this method to write out their contained
+   * SBML objects as XML elements.  Be sure to call your parents
+   * implementation of this method as well.
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Accepts the given SBMLVisitor.
+   */
+  virtual bool accept (SBMLVisitor& v) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument.
+   */
+  virtual void setSBMLDocument (SBMLDocument* d);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Connects to child elements.
+   */
+  virtual void connectToChild ();
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Enables/Disables the given package with this element.
+   */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+               const std::string& pkgPrefix, bool flag);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * return the SBML object corresponding to next XMLToken.
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Get the list of expected attributes for this element.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Read values from the given XMLAttributes set into their specific fields.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write values of XMLAttributes to the output stream.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  __cplusplus  */
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+/**
+ * Creates a new GeneProductAssociation_t structure using the given SBML @p level and
+ * @p version values.
+ *
+ * @param level an unsigned int, the SBML level to assign to this
+ * GeneProductAssociation_t structure.
+ *
+ * @param version an unsigned int, the SBML version to assign to this
+ * GeneProductAssociation_t structure.
+ *
+ * @returns the newly-created GeneProductAssociation_t structure, or a null pointer if
+ * an error occurred during construction.
+ *
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+GeneProductAssociation_t *
+GeneProductAssociation_create(unsigned int level, unsigned int version,
+                              unsigned int pkgVersion);
+
+
+/**
+ * Frees the given GeneProductAssociation_t structure.
+ * 
+ * @param gpa the GeneProductAssociation_t structure to be freed.
+ *
+ * @memberof GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+void
+GeneProductAssociation_free(GeneProductAssociation_t * gpa);
+
+
+/**
+ * Creates a deep copy of the given GeneProductAssociation_t structure.
+ * 
+ * @param gpa the GeneProductAssociation_t structure to be copied.
+ *
+ * @returns a (deep) copy of the given GeneProductAssociation_t structure, or a null
+ * pointer if a failure occurred.
+ *
+ * @memberof GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+GeneProductAssociation_t *
+GeneProductAssociation_clone(GeneProductAssociation_t * gpa);
+
+
+/**
+ * Returns the value of the "id" attribute of the given GeneProductAssociation_t
+ * structure.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @return the id of this structure.
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProductAssociation_getId(const GeneProductAssociation_t * gpa);
+
+
+/**
+ * Returns the value of the "name" attribute of the given GeneProductAssociation_t
+ * structure.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @return the name of this structure.
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProductAssociation_getName(const GeneProductAssociation_t * gpa);
+
+
+LIBSBML_EXTERN
+FbcAssociation_t*
+GeneProductAssociation_getAssociation(GeneProductAssociation_t * gpa);
+
+
+LIBSBML_EXTERN
+FbcAnd_t *
+GeneProductAssociation_createAnd(GeneProductAssociation_t * gpa);
+
+
+LIBSBML_EXTERN
+FbcOr_t *
+GeneProductAssociation_createOr(GeneProductAssociation_t * gpa);
+
+
+LIBSBML_EXTERN
+GeneProductRef_t *
+GeneProductAssociation_createGeneProductRef(GeneProductAssociation_t * gpa);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProductAssociation_t structure's
+ * "id" is set.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @return @c 1 if the "id" of this GeneProductAssociation_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_isSetId(const GeneProductAssociation_t * gpa);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProductAssociation_t structure's "name"
+ * is set.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @return @c 1 if the "name" of this GeneProductAssociation_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_isSetName(const GeneProductAssociation_t * gpa);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProductAssociation_t structure's "association"
+ * is set.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @return @c 1 if the "association" of this GeneProductAssociation_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_isSetAssociation(const GeneProductAssociation_t * gpa);
+
+
+/**
+ * Sets the "id" attribute of the given GeneProductAssociation_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProductAssociation_unsetId() instead.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @param id the string to which the structures "id" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_setId(GeneProductAssociation_t * gpa, const char * id);
+
+
+/**
+ * Sets the "name" attribute of the given GeneProductAssociation_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProductAssociation_unsetName() instead.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @param name the string to which the structures "name" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_setName(GeneProductAssociation_t * gpa, const char * name);
+
+
+LIBSBML_EXTERN
+int
+GeneProductAssociation_setAssociation(GeneProductAssociation_t * gpa, FbcAssociation_t* association);
+
+
+/**
+ * Unsets the value of the "id" attribute of the given 
+ * GeneProductAssociation_t structure.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_unsetId(GeneProductAssociation_t * gpa);
+
+
+/**
+ * Unsets the value of the "name" attribute of the given 
+ * GeneProductAssociation_t structure.
+ *
+ * @param gpa the GeneProductAssociation_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_unsetName(GeneProductAssociation_t * gpa);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * attributes of the given GeneProductAssociation_t structure have been set.
+ *
+ * @param gpa the GeneProductAssociation_t structure to check.
+ *
+ * @return @c 1 if all the required attributes for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_hasRequiredAttributes(const GeneProductAssociation_t * gpa);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * sub-elements of the given GeneProductAssociation_t structure have been set.
+ *
+ * @param gpa the GeneProductAssociation_t structure to check.
+ *
+ * @return @c 1 if all the required sub-elements for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of GeneProductAssociation_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductAssociation_hasRequiredElements(const GeneProductAssociation_t * gpa);
+
+
+
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  !SWIG  */
+
+#endif /*  GeneProductAssociation_H__  */
+
diff --git a/src/sbml/packages/fbc/sbml/GeneProductRef.cpp b/src/sbml/packages/fbc/sbml/GeneProductRef.cpp
index dfa32ee..ef0133e 100644
--- a/src/sbml/packages/fbc/sbml/GeneProductRef.cpp
+++ b/src/sbml/packages/fbc/sbml/GeneProductRef.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   GeneProductRef.cpp
- * @brief:  Implementation of the GeneProductRef class
- * @author: SBMLTeam
+ * @file   GeneProductRef.cpp
+ * @brief  Implementation of the GeneProductRef class
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -31,7 +31,7 @@
  * ------------------------------------------------------------------------ -->
  */
 
-
+#include <sbml/packages/fbc/extension/FbcModelPlugin.h>
 #include <sbml/packages/fbc/sbml/GeneProductRef.h>
 #include <sbml/packages/fbc/validator/FbcSBMLError.h>
 #include <sbml/util/ElementFilter.h>
@@ -144,7 +144,18 @@ GeneProductRef::getGeneProduct() const
 std::string 
 GeneProductRef::toInfix() const
 {
-  return mGeneProduct;
+  const SBMLDocument* doc = getSBMLDocument(); 
+  if (doc == NULL) return mGeneProduct;
+  
+  const Model* model = doc->getModel();
+  if (model == NULL) return mGeneProduct;
+    
+  const FbcModelPlugin* plug = dynamic_cast<const FbcModelPlugin*>(model->getPlugin("fbc"));
+  if (plug == NULL) return mGeneProduct;
+  const GeneProduct* product = plug->getGeneProduct(mGeneProduct);
+  if (product == NULL) return mGeneProduct;
+      
+  return product->getLabel();
 }
 
 
diff --git a/src/sbml/packages/fbc/sbml/GeneProductRef.h b/src/sbml/packages/fbc/sbml/GeneProductRef.h
index 8518ce8..57997c0 100644
--- a/src/sbml/packages/fbc/sbml/GeneProductRef.h
+++ b/src/sbml/packages/fbc/sbml/GeneProductRef.h
@@ -1,760 +1,760 @@
-/**
- * @file:   GeneProductRef.h
- * @brief:  Implementation of the GeneProductRef class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2014 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class GeneProductRef
- * @sbmlbrief{fbc} Reference to a gene product of a reaction
- *
- * GeneProductRef encodes a references to a GeneProduct object declared in a
- * ListOfGeneProducts attached to the enclosing Model object.  GeneProductRef
- * is derived from the FbcAssociation class.
- *
- * GeneProductRef objects are used to construct the content of
- * GeneProductAssociation objects.  As described more fully in the
- * documentation of the latter, a GeneProductAssociation is a container that
- * may contain either (i) a single GeneProductRef or (ii) a logical
- * expression built up with FbcAnd and FbcOr and ultimately containing two
- * or more GeneProductRef objects.
- *
- * @copydetails doc_note_fbcv2_annotation_replacement
- */
-
-#ifndef GeneProductRef_H__
-#define GeneProductRef_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/fbc/common/fbcfwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/fbc/extension/FbcExtension.h>
-#include <sbml/packages/fbc/sbml/FbcAssociation.h>
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-
-class LIBSBML_EXTERN GeneProductRef : public FbcAssociation
-{
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-  std::string   mId;
-  std::string   mGeneProduct;
-  std::string   mName;
-  /** @endcond */
-
-
-public:
-
-  /**
-   * Creates a new GeneProductRef with the given SBML Level, Version, and
-   * “fbc”package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this
-   * GeneProductRef
-   *
-   * @param version an unsigned int, the SBML Version to assign to this
-   * GeneProductRef
-   *
-   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
-   * this GeneProductRef
-   */
-  GeneProductRef(unsigned int level      = FbcExtension::getDefaultLevel(),
-                 unsigned int version    = FbcExtension::getDefaultVersion(),
-                 unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new GeneProductRef with the given FbcPkgNamespaces object.
-   *
-   * @param fbcns the FbcPkgNamespaces object
-   */
-  GeneProductRef(FbcPkgNamespaces* fbcns);
-
-
-   /**
-   * Copy constructor for GeneProductRef.
-   *
-   * @param orig; the GeneProductRef instance to copy.
-   */
-  GeneProductRef(const GeneProductRef& orig);
-
-
-   /**
-   * Assignment operator for GeneProductRef.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  GeneProductRef& operator=(const GeneProductRef& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this GeneProductRef object.
-   *
-   * @return a (deep) copy of this GeneProductRef object.
-   */
-  virtual GeneProductRef* clone () const;
-
-
-   /**
-   * Destructor for GeneProductRef.
-   */
-  virtual ~GeneProductRef();
-
-
-   /**
-   * Returns the value of the "id" attribute of this GeneProductRef.
-   *
-   * @return the value of the "id" attribute of this GeneProductRef as a string.
-   */
-  virtual const std::string& getId() const;
-
-
-  /**
-   * Returns the value of the "geneProduct" attribute of this GeneProductRef.
-   *
-   * @return the value of the "geneProduct" attribute of this GeneProductRef as a string.
-   */
-  virtual const std::string& getGeneProduct() const;
-
-  /**
-  * Converts this FbcAssociation object into an infix string representation.
-  *
-  * @return the association as infix string.
-  */
-  virtual std::string toInfix() const;
-
-  /**
-   * Returns the value of the "name" attribute of this GeneProductRef.
-   *
-   * @return the value of the "name" attribute of this GeneProductRef as a string.
-   */
-  virtual const std::string& getName() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProductRef's "id" attribute is
-   * set.
-   *
-   * @return @c true if this GeneProductRef's "id" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetId() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProductRef's "geneProduct"
-   * attribute is set.
-   *
-   * @return @c true if this GeneProductRef's "geneProduct" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetGeneProduct() const;
-
-
-  /**
-   * Predicate returning @c true if this GeneProductRef's "name" attribute is
-   * set.
-   *
-   * @return @c true if this GeneProductRef's "name" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetName() const;
-
-
-  /**
-   * Sets the value of the "id" attribute of this GeneProductRef.
-   *
-   * @param id; const std::string& value of the "id" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setId(const std::string& id);
-
-
-  /**
-   * Sets the value of the "geneProduct" attribute of this GeneProductRef.
-   *
-   * @param geneProduct; const std::string& value of the "geneProduct" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setGeneProduct(const std::string& geneProduct);
-
-
-  /**
-   * Sets the value of the "name" attribute of this GeneProductRef.
-   *
-   * @param name; const std::string& value of the "name" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
-   */
-  virtual int setName(const std::string& name);
-
-
-  /**
-   * Unsets the value of the "id" attribute of this GeneProductRef.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetId();
-
-
-  /**
-   * Unsets the value of the "geneProduct" attribute of this GeneProductRef.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetGeneProduct();
-
-
-  /**
-   * Unsets the value of the "name" attribute of this GeneProductRef.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   */
-  virtual int unsetName();
-
-
-  /**
-   * @copydoc doc_renamesidref_common
-   */
-   virtual void renameSIdRefs(const std::string& oldid, const std::string& newid);
-
-
-  /**
-   * Returns the XML element name of this object.
-   *
-   * For GeneProductRef, the XML element name is always @c "geneProductRef".
-   *
-   * @return the name of this element, i.e. @c "geneProductRef".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   *
-   * @copydetails doc_what_are_typecodes
-   *
-   * @return the SBML type code for this object:
-   * @sbmlconstant{SBML_FBC_GENEPRODUCTREF, SBMLTypeCode_t} (default).
-   *
-   * @copydetails doc_warning_typecodes_not_unique
-   *
-   * @see getElementName()
-   * @see getPackageName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes for this
-   * GeneProductRef object have been set.
-   *
-   * @note The required attributes for a GeneProductRef object are:
-   * @li "geneProduct"
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * return the SBML object corresponding to next XMLToken.
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-/**
- * Creates a new GeneProductRef_t structure using the given SBML @p level and
- * @p version values.
- *
- * @param level an unsigned int, the SBML level to assign to this
- * GeneProductRef_t structure.
- *
- * @param version an unsigned int, the SBML version to assign to this
- * GeneProductRef_t structure.
- *
- * @returns the newly-created GeneProductRef_t structure, or a null pointer if
- * an error occurred during construction.
- *
- * @copydetails doc_note_setting_lv
- *
- * @memberof GeneProductRef_t
- */
-LIBSBML_EXTERN
-GeneProductRef_t *
-GeneProductRef_create(unsigned int level, unsigned int version,
-                      unsigned int pkgVersion);
-
-
-/**
- * Frees the given GeneProductRef_t structure.
- * 
- * @param gpr the GeneProductRef_t structure to be freed.
- *
- * @memberof GeneProductRef_t
- */
-LIBSBML_EXTERN
-void
-GeneProductRef_free(GeneProductRef_t * gpr);
-
-
-/**
- * Creates a deep copy of the given GeneProductRef_t structure.
- * 
- * @param gpr the GeneProductRef_t structure to be copied.
- *
- * @returns a (deep) copy of the given GeneProductRef_t structure, or a null
- * pointer if a failure occurred.
- *
- * @memberof GeneProductRef_t
- */
-LIBSBML_EXTERN
-GeneProductRef_t *
-GeneProductRef_clone(GeneProductRef_t * gpr);
-
-
-/**
- * Returns the value of the "id" attribute of the given GeneProductRef_t
- * structure.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return the id of this structure.
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProductRef_getId(const GeneProductRef_t * gpr);
-
-
-/**
- * Returns the value of the "geneProduct" attribute of the given GeneProductRef_t
- * structure.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return the geneProduct of this structure.
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProductRef_getGeneProduct(const GeneProductRef_t * gpr);
-
-
-/**
- * Returns the value of the "name" attribute of the given GeneProductRef_t
- * structure.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return the name of this structure.
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-const char *
-GeneProductRef_getName(const GeneProductRef_t * gpr);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProductRef_t structure's "id"
- * is set.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return @c 1 if the "id" of this GeneProductRef_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_isSetId(const GeneProductRef_t * gpr);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProductRef_t structure's "geneProduct"
- * is set.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return @c 1 if the "geneProduct" of this GeneProductRef_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_isSetGeneProduct(const GeneProductRef_t * gpr);
-
-
-/**
- * Predicate returning @c 1 if the given GeneProductRef_t structure's "name"
- * is set.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return @c 1 if the "name" of this GeneProductRef_t structure is
- * set, @c 0 otherwise.
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_isSetName(const GeneProductRef_t * gpr);
-
-
-/**
- * Sets the "id" attribute of the given GeneProductRef_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProductRef_unsetId() instead.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @param id the string to which the structures "id" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_setId(GeneProductRef_t * gpr, const char * id);
-
-
-/**
- * Sets the "geneProduct" attribute of the given GeneProductRef_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProductRef_unsetGeneProduct() instead.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @param geneProduct the string to which the structures "geneProduct" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_setGeneProduct(GeneProductRef_t * gpr, const char * geneProduct);
-
-
-/**
- * Sets the "name" attribute of the given GeneProductRef_t structure.
- *
- * This function copies the string given in @p string.  If the string is
- * a null pointer, this function performs GeneProductRef_unsetName() instead.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @param name the string to which the structures "name" attribute should be
- * set.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @note Using this function with a null pointer for @p name is equivalent to
- * unsetting the value of the "name" attribute.
- * 
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_setName(GeneProductRef_t * gpr, const char * name);
-
-
-/**
- * Unsets the value of the "id" attribute of the given 
- * GeneProductRef_t structure.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_unsetId(GeneProductRef_t * gpr);
-
-
-/**
- * Unsets the value of the "geneProduct" attribute of the given 
- * GeneProductRef_t structure.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_unsetGeneProduct(GeneProductRef_t * gpr);
-
-
-/**
- * Unsets the value of the "name" attribute of the given 
- * GeneProductRef_t structure.
- *
- * @param gpr the GeneProductRef_t structure.
- *
- * @return integer value indicating success/failure of the
- * function.  @if clike The value is drawn from the
- * enumeration #OperationReturnValues_t. @endif@~ The possible values
- * returned by this function are:
- * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
- * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_unsetName(GeneProductRef_t * gpr);
-
-
-/**
- * Predicate returning @c 1 or *c 0 depending on whether all the required
- * attributes of the given GeneProductRef_t structure have been set.
- *
- * @param gpr the GeneProductRef_t structure to check.
- *
- * @return @c 1 if all the required attributes for this
- * structure have been defined, @c 0 otherwise.
- *
- * @member of GeneProductRef_t
- */
-LIBSBML_EXTERN
-int
-GeneProductRef_hasRequiredAttributes(const GeneProductRef_t * gpr);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  GeneProductRef_H__  */
-
+/**
+ * @file   GeneProductRef.h
+ * @brief  Implementation of the GeneProductRef class
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class GeneProductRef
+ * @sbmlbrief{fbc} Reference to a gene product of a reaction
+ *
+ * GeneProductRef encodes a references to a GeneProduct object declared in a
+ * ListOfGeneProducts attached to the enclosing Model object.  GeneProductRef
+ * is derived from the FbcAssociation class.
+ *
+ * GeneProductRef objects are used to construct the content of
+ * GeneProductAssociation objects.  As described more fully in the
+ * documentation of the latter, a GeneProductAssociation is a container that
+ * may contain either (i) a single GeneProductRef or (ii) a logical
+ * expression built up with FbcAnd and FbcOr and ultimately containing two
+ * or more GeneProductRef objects.
+ *
+ * @copydetails doc_note_fbcv2_annotation_replacement
+ */
+
+#ifndef GeneProductRef_H__
+#define GeneProductRef_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/fbc/common/fbcfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/SBase.h>
+#include <sbml/ListOf.h>
+#include <sbml/packages/fbc/extension/FbcExtension.h>
+#include <sbml/packages/fbc/sbml/FbcAssociation.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+class LIBSBML_EXTERN GeneProductRef : public FbcAssociation
+{
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+  std::string   mId;
+  std::string   mGeneProduct;
+  std::string   mName;
+  /** @endcond */
+
+
+public:
+
+  /**
+   * Creates a new GeneProductRef with the given SBML Level, Version, and
+   * “fbc”package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this
+   * GeneProductRef
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * GeneProductRef
+   *
+   * @param pkgVersion an unsigned int, the SBML Fbc Version to assign to
+   * this GeneProductRef
+   */
+  GeneProductRef(unsigned int level      = FbcExtension::getDefaultLevel(),
+                 unsigned int version    = FbcExtension::getDefaultVersion(),
+                 unsigned int pkgVersion = FbcExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new GeneProductRef with the given FbcPkgNamespaces object.
+   *
+   * @param fbcns the FbcPkgNamespaces object
+   */
+  GeneProductRef(FbcPkgNamespaces* fbcns);
+
+
+   /**
+   * Copy constructor for GeneProductRef.
+   *
+   * @param orig; the GeneProductRef instance to copy.
+   */
+  GeneProductRef(const GeneProductRef& orig);
+
+
+   /**
+   * Assignment operator for GeneProductRef.
+   *
+   * @param rhs; the object whose values are used as the basis
+   * of the assignment
+   */
+  GeneProductRef& operator=(const GeneProductRef& rhs);
+
+
+   /**
+   * Creates and returns a deep copy of this GeneProductRef object.
+   *
+   * @return a (deep) copy of this GeneProductRef object.
+   */
+  virtual GeneProductRef* clone () const;
+
+
+   /**
+   * Destructor for GeneProductRef.
+   */
+  virtual ~GeneProductRef();
+
+
+   /**
+   * Returns the value of the "id" attribute of this GeneProductRef.
+   *
+   * @return the value of the "id" attribute of this GeneProductRef as a string.
+   */
+  virtual const std::string& getId() const;
+
+
+  /**
+   * Returns the value of the "geneProduct" attribute of this GeneProductRef.
+   *
+   * @return the value of the "geneProduct" attribute of this GeneProductRef as a string.
+   */
+  virtual const std::string& getGeneProduct() const;
+
+  /**
+  * Converts this FbcAssociation object into an infix string representation.
+  *
+  * @return the association as infix string.
+  */
+  virtual std::string toInfix() const;
+
+  /**
+   * Returns the value of the "name" attribute of this GeneProductRef.
+   *
+   * @return the value of the "name" attribute of this GeneProductRef as a string.
+   */
+  virtual const std::string& getName() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProductRef's "id" attribute is
+   * set.
+   *
+   * @return @c true if this GeneProductRef's "id" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetId() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProductRef's "geneProduct"
+   * attribute is set.
+   *
+   * @return @c true if this GeneProductRef's "geneProduct" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetGeneProduct() const;
+
+
+  /**
+   * Predicate returning @c true if this GeneProductRef's "name" attribute is
+   * set.
+   *
+   * @return @c true if this GeneProductRef's "name" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetName() const;
+
+
+  /**
+   * Sets the value of the "id" attribute of this GeneProductRef.
+   *
+   * @param id; const std::string& value of the "id" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setId(const std::string& id);
+
+
+  /**
+   * Sets the value of the "geneProduct" attribute of this GeneProductRef.
+   *
+   * @param geneProduct; const std::string& value of the "geneProduct" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setGeneProduct(const std::string& geneProduct);
+
+
+  /**
+   * Sets the value of the "name" attribute of this GeneProductRef.
+   *
+   * @param name; const std::string& value of the "name" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+   */
+  virtual int setName(const std::string& name);
+
+
+  /**
+   * Unsets the value of the "id" attribute of this GeneProductRef.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetId();
+
+
+  /**
+   * Unsets the value of the "geneProduct" attribute of this GeneProductRef.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetGeneProduct();
+
+
+  /**
+   * Unsets the value of the "name" attribute of this GeneProductRef.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  virtual int unsetName();
+
+
+  /**
+   * @copydoc doc_renamesidref_common
+   */
+   virtual void renameSIdRefs(const std::string& oldid, const std::string& newid);
+
+
+  /**
+   * Returns the XML element name of this object.
+   *
+   * For GeneProductRef, the XML element name is always @c "geneProductRef".
+   *
+   * @return the name of this element, i.e. @c "geneProductRef".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_FBC_GENEPRODUCTREF, SBMLTypeCode_t} (default).
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Predicate returning @c true if all the required attributes for this
+   * GeneProductRef object have been set.
+   *
+   * @note The required attributes for a GeneProductRef object are:
+   * @li "geneProduct"
+   *
+   * @return a boolean value indicating whether all the required
+   * attributes for this object have been defined.
+   */
+  virtual bool hasRequiredAttributes() const;
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Subclasses should override this method to write out their contained
+   * SBML objects as XML elements.  Be sure to call your parents
+   * implementation of this method as well.
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Accepts the given SBMLVisitor.
+   */
+  virtual bool accept (SBMLVisitor& v) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument.
+   */
+  virtual void setSBMLDocument (SBMLDocument* d);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Enables/Disables the given package with this element.
+   */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+               const std::string& pkgPrefix, bool flag);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * return the SBML object corresponding to next XMLToken.
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Get the list of expected attributes for this element.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Read values from the given XMLAttributes set into their specific fields.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write values of XMLAttributes to the output stream.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  __cplusplus  */
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+/**
+ * Creates a new GeneProductRef_t structure using the given SBML @p level and
+ * @p version values.
+ *
+ * @param level an unsigned int, the SBML level to assign to this
+ * GeneProductRef_t structure.
+ *
+ * @param version an unsigned int, the SBML version to assign to this
+ * GeneProductRef_t structure.
+ *
+ * @returns the newly-created GeneProductRef_t structure, or a null pointer if
+ * an error occurred during construction.
+ *
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof GeneProductRef_t
+ */
+LIBSBML_EXTERN
+GeneProductRef_t *
+GeneProductRef_create(unsigned int level, unsigned int version,
+                      unsigned int pkgVersion);
+
+
+/**
+ * Frees the given GeneProductRef_t structure.
+ * 
+ * @param gpr the GeneProductRef_t structure to be freed.
+ *
+ * @memberof GeneProductRef_t
+ */
+LIBSBML_EXTERN
+void
+GeneProductRef_free(GeneProductRef_t * gpr);
+
+
+/**
+ * Creates a deep copy of the given GeneProductRef_t structure.
+ * 
+ * @param gpr the GeneProductRef_t structure to be copied.
+ *
+ * @returns a (deep) copy of the given GeneProductRef_t structure, or a null
+ * pointer if a failure occurred.
+ *
+ * @memberof GeneProductRef_t
+ */
+LIBSBML_EXTERN
+GeneProductRef_t *
+GeneProductRef_clone(GeneProductRef_t * gpr);
+
+
+/**
+ * Returns the value of the "id" attribute of the given GeneProductRef_t
+ * structure.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return the id of this structure.
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProductRef_getId(const GeneProductRef_t * gpr);
+
+
+/**
+ * Returns the value of the "geneProduct" attribute of the given GeneProductRef_t
+ * structure.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return the geneProduct of this structure.
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProductRef_getGeneProduct(const GeneProductRef_t * gpr);
+
+
+/**
+ * Returns the value of the "name" attribute of the given GeneProductRef_t
+ * structure.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return the name of this structure.
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+const char *
+GeneProductRef_getName(const GeneProductRef_t * gpr);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProductRef_t structure's "id"
+ * is set.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return @c 1 if the "id" of this GeneProductRef_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_isSetId(const GeneProductRef_t * gpr);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProductRef_t structure's "geneProduct"
+ * is set.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return @c 1 if the "geneProduct" of this GeneProductRef_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_isSetGeneProduct(const GeneProductRef_t * gpr);
+
+
+/**
+ * Predicate returning @c 1 if the given GeneProductRef_t structure's "name"
+ * is set.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return @c 1 if the "name" of this GeneProductRef_t structure is
+ * set, @c 0 otherwise.
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_isSetName(const GeneProductRef_t * gpr);
+
+
+/**
+ * Sets the "id" attribute of the given GeneProductRef_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProductRef_unsetId() instead.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @param id the string to which the structures "id" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_setId(GeneProductRef_t * gpr, const char * id);
+
+
+/**
+ * Sets the "geneProduct" attribute of the given GeneProductRef_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProductRef_unsetGeneProduct() instead.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @param geneProduct the string to which the structures "geneProduct" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_setGeneProduct(GeneProductRef_t * gpr, const char * geneProduct);
+
+
+/**
+ * Sets the "name" attribute of the given GeneProductRef_t structure.
+ *
+ * This function copies the string given in @p string.  If the string is
+ * a null pointer, this function performs GeneProductRef_unsetName() instead.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @param name the string to which the structures "name" attribute should be
+ * set.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @note Using this function with a null pointer for @p name is equivalent to
+ * unsetting the value of the "name" attribute.
+ * 
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_setName(GeneProductRef_t * gpr, const char * name);
+
+
+/**
+ * Unsets the value of the "id" attribute of the given 
+ * GeneProductRef_t structure.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_unsetId(GeneProductRef_t * gpr);
+
+
+/**
+ * Unsets the value of the "geneProduct" attribute of the given 
+ * GeneProductRef_t structure.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_unsetGeneProduct(GeneProductRef_t * gpr);
+
+
+/**
+ * Unsets the value of the "name" attribute of the given 
+ * GeneProductRef_t structure.
+ *
+ * @param gpr the GeneProductRef_t structure.
+ *
+ * @return integer value indicating success/failure of the
+ * function.  @if clike The value is drawn from the
+ * enumeration #OperationReturnValues_t. @endif@~ The possible values
+ * returned by this function are:
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_unsetName(GeneProductRef_t * gpr);
+
+
+/**
+ * Predicate returning @c 1 or *c 0 depending on whether all the required
+ * attributes of the given GeneProductRef_t structure have been set.
+ *
+ * @param gpr the GeneProductRef_t structure to check.
+ *
+ * @return @c 1 if all the required attributes for this
+ * structure have been defined, @c 0 otherwise.
+ *
+ * @member of GeneProductRef_t
+ */
+LIBSBML_EXTERN
+int
+GeneProductRef_hasRequiredAttributes(const GeneProductRef_t * gpr);
+
+
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  !SWIG  */
+
+#endif /*  GeneProductRef_H__  */
+
diff --git a/src/sbml/packages/fbc/sbml/Makefile.in b/src/sbml/packages/fbc/sbml/Makefile.in
index 29cfd74..853847b 100644
--- a/src/sbml/packages/fbc/sbml/Makefile.in
+++ b/src/sbml/packages/fbc/sbml/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/sbml/Objective.cpp b/src/sbml/packages/fbc/sbml/Objective.cpp
index ea31361..642f2a3 100644
--- a/src/sbml/packages/fbc/sbml/Objective.cpp
+++ b/src/sbml/packages/fbc/sbml/Objective.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   Objective.cpp
- * @brief:  Implementation of the Objective class
- * @author: SBMLTeam
+ * @file   Objective.cpp
+ * @brief  Implementation of the Objective class
+ * @author SBMLTeam
  *
  *<!---------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -554,9 +554,7 @@ Objective::hasRequiredAttributes () const
 bool
 Objective::hasRequiredElements () const
 {
-  bool allPresent = true;
-
-  return allPresent;
+  return getNumFluxObjectives() > 0;
 }
 
 
diff --git a/src/sbml/packages/fbc/sbml/Objective.h b/src/sbml/packages/fbc/sbml/Objective.h
index cffccc7..80719b7 100644
--- a/src/sbml/packages/fbc/sbml/Objective.h
+++ b/src/sbml/packages/fbc/sbml/Objective.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -29,19 +29,21 @@
  * An integral component in a complete description of a steady-state model is
  * the so-called <em>objective function</em>, which generally consists of a
  * linear combination of model variables (fluxes) and a sense (direction). In
- * the SBML Level 3 Flux Balance Constraints (“fbc”)
- * package, this concept is succinctly captured in the Objective class.
+ * the SBML Level 3 @ref fbc (“fbc”) package, this concept
+ * is succinctly captured in the Objective class.
  *
  * The Objective class is derived from the normal SBML SBase class and
  * inherits the "metaid" and "sboTerm" attributes, as well as the
  * subcomponents for Annotation and Notes.  To these, the Objective class
  * adds an optional attribute named "type".  The type attribute can take one
- * of two literal values: @c "maximize" or @c "minimize.  The values
+ * of two literal values: @c "maximize" or @c "minimize".  The values
  * represent the sense of the optimality constraint for the FBC model.
  *
  * The “fbc” package allows for the definition of multiple model
- * objectives, with one being designated as active.  Here is an example of
- * the XML encoding of a model with a list of objective functions:
+ * objectives, with one being designated as active.  The active objective is
+ * indicated using the attribute "activeObjective" on the ListOfObjectives
+ * object. Here is an example of the XML encoding of a model with a list of
+ * objective functions:
  * @verbatim
 <fbc:listOfObjectives fbc:activeObjective="obj1">
  <fbc:objective fbc:id="obj1" fbc:type="maximize">
@@ -59,6 +61,7 @@
 @endverbatim
  *
  * @see FluxObjective
+ * @see ListOfObjectives
  */
 
 #ifndef Objective_H__
@@ -524,6 +527,7 @@ public:
    * Objective object have been set.
    *
    * @note The required elements for a Objective object are:
+   * @li at least one FluxObjective child of the ListOfFluxObjectives.
    *
    * @return a boolean value indicating whether all the required
    * elements for this object have been defined.
@@ -640,14 +644,14 @@ protected:
  * The ListOfObjectives is a container for the SBML extended Model
  * that lists all the possible Objective elements in the model.
  *
- * Unlike most other ListOf subclasses in SBML, SBML Level 3 Flux
- * Balance Constraints Version 2 defines an additional required
- * attribute on ListOfObjectives: the "activeObjective" attribute.  This
- * attribute is of type <code>SIdRef</code> and can only refer to the id of
- * an existing Objective. This required attribute exists so that when
- * multiple Objective's are included in a single model, the model will always
- * be well described; i.e., there will be a single, primary objective
- * function which defines a single optimum and its associated solution space.
+ * Unlike most other ListOf subclasses in SBML, SBML Level 3 @ref fbc
+ * Version 2 defines an additional required attribute on
+ * ListOfObjectives: the "activeObjective" attribute.  This attribute is of
+ * type <code>SIdRef</code> and can only refer to the id of an existing
+ * Objective. This required attribute exists so that when multiple
+ * Objective's are included in a single model, the model will always be well
+ * described; i.e., there will be a single, primary objective function which
+ * defines a single optimum and its associated solution space.
  *
  * @copydetails doc_what_is_listof
  *
diff --git a/src/sbml/packages/fbc/util/CobraToFbcConverter.cpp b/src/sbml/packages/fbc/util/CobraToFbcConverter.cpp
index 15d0a61..0e6bdc8 100644
--- a/src/sbml/packages/fbc/util/CobraToFbcConverter.cpp
+++ b/src/sbml/packages/fbc/util/CobraToFbcConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -138,6 +138,7 @@ CobraToFbcConverter::convert()
   }
 
   std::map<const string, int> chargeMap;
+  std::map<const string, bool> haveChargeMap;
   std::map<const string, string> formulaMap;
   Model* model = mDocument->getModel();
 
@@ -145,9 +146,11 @@ CobraToFbcConverter::convert()
   {
     Species* current = model->getSpecies(i);
     bool haveCharge = current->isSetCharge();
+    haveChargeMap[current->getId()] = false;
     if (haveCharge)
     {
       chargeMap[current->getId()] = current->getCharge();
+      haveChargeMap[current->getId()] = true;
       // need to unset the charge here, as it the call will 
       // not work once this is an L3 model
       current->unsetCharge();
@@ -189,8 +192,11 @@ CobraToFbcConverter::convert()
               stringstream str;
               str << formula;
               str >> charge;
-              if (charge != 0)
+              if (charge != 0 || formula.find("0") != std::string::npos)
+              {
                 chargeMap[current->getId()] = charge;
+                haveChargeMap[current->getId()] = true;
+              }
             }
           }
         }
@@ -330,7 +336,7 @@ CobraToFbcConverter::convert()
     if (removeUnits) current->unsetUnits();
     FbcSpeciesPlugin* splugin = static_cast<FbcSpeciesPlugin*>(current->getPlugin("fbc"));
     int charge = chargeMap[current->getId()];
-    if (charge != 0)
+    if (haveChargeMap[current->getId()])
       splugin->setCharge(charge);
     splugin->setChemicalFormula(formulaMap[current->getId()]);
 
diff --git a/src/sbml/packages/fbc/util/CobraToFbcConverter.h b/src/sbml/packages/fbc/util/CobraToFbcConverter.h
index 53ff1b3..5de8310 100644
--- a/src/sbml/packages/fbc/util/CobraToFbcConverter.h
+++ b/src/sbml/packages/fbc/util/CobraToFbcConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -24,7 +24,7 @@
  * ---------------------------------------------------------------------- -->
  *
  * @class CobraToFbcConverter
- * @sbmlbrief{fbc} COBRA to SBML Level 3 'fbc' converter.
+ * @sbmlbrief{fbc} COBRA to SBML Level 3 “fbc” converter.
  *
  * @htmlinclude libsbml-facility-only-warning.html
  *
diff --git a/src/sbml/packages/fbc/util/FbcToCobraConverter.cpp b/src/sbml/packages/fbc/util/FbcToCobraConverter.cpp
index adc7edf..2c40932 100644
--- a/src/sbml/packages/fbc/util/FbcToCobraConverter.cpp
+++ b/src/sbml/packages/fbc/util/FbcToCobraConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/util/FbcToCobraConverter.h b/src/sbml/packages/fbc/util/FbcToCobraConverter.h
index ce7a043..c6bc57d 100644
--- a/src/sbml/packages/fbc/util/FbcToCobraConverter.h
+++ b/src/sbml/packages/fbc/util/FbcToCobraConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -24,7 +24,7 @@
  * ---------------------------------------------------------------------- -->
  *
  * @class FbcToCobraConverter
- * @sbmlbrief{fbc} SBML Level 3 'fbc' to COBRA converter.
+ * @sbmlbrief{fbc} SBML Level 3 “fbc” to COBRA converter.
  *
  * @htmlinclude libsbml-facility-only-warning.html
  *
diff --git a/src/sbml/packages/fbc/util/FbcV1ToV2Converter.cpp b/src/sbml/packages/fbc/util/FbcV1ToV2Converter.cpp
index 059b5d4..06ba63d 100644
--- a/src/sbml/packages/fbc/util/FbcV1ToV2Converter.cpp
+++ b/src/sbml/packages/fbc/util/FbcV1ToV2Converter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/util/FbcV1ToV2Converter.h b/src/sbml/packages/fbc/util/FbcV1ToV2Converter.h
index c31d36c..7ec69f0 100644
--- a/src/sbml/packages/fbc/util/FbcV1ToV2Converter.h
+++ b/src/sbml/packages/fbc/util/FbcV1ToV2Converter.h
@@ -1,180 +1,180 @@
-/**
- * @file    FbcV1ToV2Converter.h
- * @brief   Definition of a fbc v1 to fbc v2 converter.
- * @author  Frank T. Bergmann
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- * 
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->
- *
- * @class FbcV1ToV2Converter
- * @sbmlbrief{fbc} Convert “fbc” Version 1 models to Version 2
- *
- * @htmlinclude libsbml-facility-only-warning.html
- *
- * This converter takes a model in “fbc” Version 1 format
- * and converts it to “fbc” Version 2 format.
- *
- * FbcV1ToV2Converter is enabled by creating a ConversionProperties object
- * with the option <code>"convert fbc v1 to fbc v2"</code> (literally that
- * full string, including the spaces), and passing this properties object to
- * SBMLDocument::convert(@if java ConversionProperties at endif).  The converter
- * accepts one option:
- *
- * @li @c "strict": Should the model created be a strict one (i.e., should
- * all non-specified bounds be filled)?
- *
- * @copydetails doc_section_using_sbml_converters
- */
-
-#ifndef FbcV1ToV2Converter_h
-#define FbcV1ToV2Converter_h
-
-#include <sbml/common/extern.h>
-#include <sbml/SBMLNamespaces.h>
-#include <sbml/conversion/SBMLConverter.h>
-#include <sbml/conversion/SBMLConverterRegister.h>
-
-
-#ifdef __cplusplus
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-class LIBSBML_EXTERN FbcV1ToV2Converter : public SBMLConverter
-{
-public:
-
-  /** @cond doxygenLibsbmlInternal */
-  /**
-   * Register with the ConversionRegistry.
-   */
-  static void init();
-
-  /** @endcond */
-
-
-  /**
-   * Creates a new FbcV1ToV2Converter object.
-   */
-  FbcV1ToV2Converter();
-
-
-  /**
-   * Copy constructor; creates a copy of an FbcV1ToV2Converter
-   * object.
-   *
-   * @param orig the FbcV1ToV2Converter object to copy.
-   */
-  FbcV1ToV2Converter(const FbcV1ToV2Converter& orig);
-
-
-  /**
-   * Creates and returns a deep copy of this FbcV1ToV2Converter.
-   *
-   * @return a (deep) copy of this FbcV1ToV2Converter.
-   */
-  virtual FbcV1ToV2Converter* clone() const;
-
-
-  /**
-   * Destroy this FbcV1ToV2Converter object.
-   */
-  virtual ~FbcV1ToV2Converter ();
-
-
-  /**
-   * Returns @c true if this converter object's properties match the given
-   * properties.
-   *
-   * A typical use of this method involves creating a ConversionProperties
-   * object, setting the options desired, and then calling this method on
-   * an FbcV1ToV2Converter object to find out if the object's
-   * property values match the given ones.  This method is also used by
-   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
-   * to search across all registered converters for one matching particular
-   * properties.
-   *
-   * @param props the properties to match.
-   *
-   * @return @c true if this converter's properties match, @c false
-   * otherwise.
-   */
-  virtual bool matchesProperties(const ConversionProperties &props) const;
-
-
-  /**
-   * Perform the conversion.
-   *
-   * This method causes the converter to do the actual conversion work,
-   * that is, to convert the SBMLDocument object set by
-   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
-   * with the configuration options set by
-   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
-   *
-   * @copydetails doc_returns_success_code
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
-   */
-  virtual int convert();
-
-
-  /**
-   * @return a boolean, indicating whether the converter should create 
-   *         a 'strict' model, i.e.: a model with all default bounds specified.
-   */
-  bool getStrict();
-
-
-  /**
-   * Returns the default properties of this converter.
-   *
-   * A given converter exposes one or more properties that can be adjusted
-   * in order to influence the behavior of the converter.  This method
-   * returns the @em default property settings for this converter.  It is
-   * meant to be called in order to discover all the settings for the
-   * converter object.
-   *
-   * @return the ConversionProperties object describing the default properties
-   * for this converter.
-   */
-  virtual ConversionProperties getDefaultProperties() const;
-
-
-};
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-
-  
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* !SWIG */
-#endif  /* FbcV1ToV2Converter_h*/
-
+/**
+ * @file    FbcV1ToV2Converter.h
+ * @brief   Definition of a fbc v1 to fbc v2 converter.
+ * @author  Frank T. Bergmann
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->
+ *
+ * @class FbcV1ToV2Converter
+ * @sbmlbrief{fbc} Convert “fbc” Version 1 models to Version 2
+ *
+ * @htmlinclude libsbml-facility-only-warning.html
+ *
+ * This converter takes a model in “fbc” Version 1 format
+ * and converts it to “fbc” Version 2 format.
+ *
+ * FbcV1ToV2Converter is enabled by creating a ConversionProperties object
+ * with the option <code>"convert fbc v1 to fbc v2"</code> (literally that
+ * full string, including the spaces), and passing this properties object to
+ * SBMLDocument::convert(@if java ConversionProperties at endif).  The converter
+ * accepts one option:
+ *
+ * @li @c "strict": Should the model created be a strict one (i.e., should
+ * all non-specified bounds be filled)?
+ *
+ * @copydetails doc_section_using_sbml_converters
+ */
+
+#ifndef FbcV1ToV2Converter_h
+#define FbcV1ToV2Converter_h
+
+#include <sbml/common/extern.h>
+#include <sbml/SBMLNamespaces.h>
+#include <sbml/conversion/SBMLConverter.h>
+#include <sbml/conversion/SBMLConverterRegister.h>
+
+
+#ifdef __cplusplus
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+class LIBSBML_EXTERN FbcV1ToV2Converter : public SBMLConverter
+{
+public:
+
+  /** @cond doxygenLibsbmlInternal */
+  /**
+   * Register with the ConversionRegistry.
+   */
+  static void init();
+
+  /** @endcond */
+
+
+  /**
+   * Creates a new FbcV1ToV2Converter object.
+   */
+  FbcV1ToV2Converter();
+
+
+  /**
+   * Copy constructor; creates a copy of an FbcV1ToV2Converter
+   * object.
+   *
+   * @param orig the FbcV1ToV2Converter object to copy.
+   */
+  FbcV1ToV2Converter(const FbcV1ToV2Converter& orig);
+
+
+  /**
+   * Creates and returns a deep copy of this FbcV1ToV2Converter.
+   *
+   * @return a (deep) copy of this FbcV1ToV2Converter.
+   */
+  virtual FbcV1ToV2Converter* clone() const;
+
+
+  /**
+   * Destroy this FbcV1ToV2Converter object.
+   */
+  virtual ~FbcV1ToV2Converter ();
+
+
+  /**
+   * Returns @c true if this converter object's properties match the given
+   * properties.
+   *
+   * A typical use of this method involves creating a ConversionProperties
+   * object, setting the options desired, and then calling this method on
+   * an FbcV1ToV2Converter object to find out if the object's
+   * property values match the given ones.  This method is also used by
+   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
+   * to search across all registered converters for one matching particular
+   * properties.
+   *
+   * @param props the properties to match.
+   *
+   * @return @c true if this converter's properties match, @c false
+   * otherwise.
+   */
+  virtual bool matchesProperties(const ConversionProperties &props) const;
+
+
+  /**
+   * Perform the conversion.
+   *
+   * This method causes the converter to do the actual conversion work,
+   * that is, to convert the SBMLDocument object set by
+   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
+   * with the configuration options set by
+   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+   */
+  virtual int convert();
+
+
+  /**
+   * @return a boolean, indicating whether the converter should create 
+   *         a 'strict' model, i.e.: a model with all default bounds specified.
+   */
+  bool getStrict();
+
+
+  /**
+   * Returns the default properties of this converter.
+   *
+   * A given converter exposes one or more properties that can be adjusted
+   * in order to influence the behavior of the converter.  This method
+   * returns the @em default property settings for this converter.  It is
+   * meant to be called in order to discover all the settings for the
+   * converter object.
+   *
+   * @return the ConversionProperties object describing the default properties
+   * for this converter.
+   */
+  virtual ConversionProperties getDefaultProperties() const;
+
+
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+
+  
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* !SWIG */
+#endif  /* FbcV1ToV2Converter_h*/
+
diff --git a/src/sbml/packages/fbc/util/FbcV2ToV1Converter.cpp b/src/sbml/packages/fbc/util/FbcV2ToV1Converter.cpp
index 092590a..5752e6e 100644
--- a/src/sbml/packages/fbc/util/FbcV2ToV1Converter.cpp
+++ b/src/sbml/packages/fbc/util/FbcV2ToV1Converter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/util/FbcV2ToV1Converter.h b/src/sbml/packages/fbc/util/FbcV2ToV1Converter.h
index fc9d196..e47617e 100644
--- a/src/sbml/packages/fbc/util/FbcV2ToV1Converter.h
+++ b/src/sbml/packages/fbc/util/FbcV2ToV1Converter.h
@@ -1,170 +1,170 @@
-/**
- * @file    FbcV2ToV1Converter.h
- * @brief   Definition of a fbc v2 to fbc v1 converter.
- * @author  Frank T. Bergmann
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- * 
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->
- *
- * @class FbcV2ToV1Converter
- * @sbmlbrief{fbc} Convert “fbc” Version 2 models to Version 1
- *
- * @htmlinclude libsbml-facility-only-warning.html
- *
- * This converter takes a model in “fbc” Version 2 format
- * and converts it to “fbc” Version 1 format.
- *
- * FbcV2ToV1Converter is enabled by creating a ConversionProperties object
- * with the option <code>"convert fbc v2 to fbc v1"</code> (literally that
- * full string, including the spaces), and passing this properties object to
- * SBMLDocument::convert(@if java ConversionProperties at endif).  The converter
- * offers no options.
- *
- * @copydetails doc_section_using_sbml_converters
- */
-
-#ifndef FbcV2ToV1Converter_h
-#define FbcV2ToV1Converter_h
-
-#include <sbml/common/extern.h>
-#include <sbml/SBMLNamespaces.h>
-#include <sbml/conversion/SBMLConverter.h>
-#include <sbml/conversion/SBMLConverterRegister.h>
-
-
-#ifdef __cplusplus
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-class LIBSBML_EXTERN FbcV2ToV1Converter : public SBMLConverter
-{
-public:
-
-  /** @cond doxygenLibsbmlInternal */
-  /**
-   * Register with the ConversionRegistry.
-   */
-  static void init();
-
-  /** @endcond */
-
-
-  /**
-   * Creates a new FbcV2ToV1Converter object.
-   */
-  FbcV2ToV1Converter();
-
-
-  /**
-   * Copy constructor; creates a copy of an FbcV2ToV1Converter
-   * object.
-   *
-   * @param orig the FbcV2ToV1Converter object to copy.
-   */
-  FbcV2ToV1Converter(const FbcV2ToV1Converter& orig);
-
-
-  /**
-   * Creates and returns a deep copy of this FbcV2ToV1Converter object.
-   *
-   * @return a (deep) copy of this FbcV2ToV1Converter.
-   */
-  virtual FbcV2ToV1Converter* clone() const;
-
-
-  /**
-   * Destroy this FbcV2ToV1Converter object.
-   */
-  virtual ~FbcV2ToV1Converter ();
-
-
-  /**
-   * Returns @c true if this converter object's properties match the given
-   * properties.
-   *
-   * A typical use of this method involves creating a ConversionProperties
-   * object, setting the options desired, and then calling this method on
-   * an FbcV2ToV1Converter object to find out if the object's
-   * property values match the given ones.  This method is also used by
-   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
-   * to search across all registered converters for one matching particular
-   * properties.
-   *
-   * @param props the properties to match.
-   *
-   * @return @c true if this converter's properties match, @c false
-   * otherwise.
-   */
-  virtual bool matchesProperties(const ConversionProperties &props) const;
-
-
-  /**
-   * Perform the conversion.
-   *
-   * This method causes the converter to do the actual conversion work,
-   * that is, to convert the SBMLDocument object set by
-   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
-   * with the configuration options set by
-   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
-   *
-   * @copydetails doc_returns_success_code
-   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
-   * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
-   */
-  virtual int convert();
-
-
-  /**
-   * Returns the default properties of this converter.
-   *
-   * A given converter exposes one or more properties that can be adjusted
-   * in order to influence the behavior of the converter.  This method
-   * returns the @em default property settings for this converter.  It is
-   * meant to be called in order to discover all the settings for the
-   * converter object.
-   *
-   * @return the ConversionProperties object describing the default properties
-   * for this converter.
-   */
-  virtual ConversionProperties getDefaultProperties() const;
-
-
-};
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* !SWIG */
-#endif  /* FbcV2ToV1Converter_h*/
-
+/**
+ * @file    FbcV2ToV1Converter.h
+ * @brief   Definition of a fbc v2 to fbc v1 converter.
+ * @author  Frank T. Bergmann
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->
+ *
+ * @class FbcV2ToV1Converter
+ * @sbmlbrief{fbc} Convert “fbc” Version 2 models to Version 1
+ *
+ * @htmlinclude libsbml-facility-only-warning.html
+ *
+ * This converter takes a model in “fbc” Version 2 format
+ * and converts it to “fbc” Version 1 format.
+ *
+ * FbcV2ToV1Converter is enabled by creating a ConversionProperties object
+ * with the option <code>"convert fbc v2 to fbc v1"</code> (literally that
+ * full string, including the spaces), and passing this properties object to
+ * SBMLDocument::convert(@if java ConversionProperties at endif).  The converter
+ * offers no options.
+ *
+ * @copydetails doc_section_using_sbml_converters
+ */
+
+#ifndef FbcV2ToV1Converter_h
+#define FbcV2ToV1Converter_h
+
+#include <sbml/common/extern.h>
+#include <sbml/SBMLNamespaces.h>
+#include <sbml/conversion/SBMLConverter.h>
+#include <sbml/conversion/SBMLConverterRegister.h>
+
+
+#ifdef __cplusplus
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+class LIBSBML_EXTERN FbcV2ToV1Converter : public SBMLConverter
+{
+public:
+
+  /** @cond doxygenLibsbmlInternal */
+  /**
+   * Register with the ConversionRegistry.
+   */
+  static void init();
+
+  /** @endcond */
+
+
+  /**
+   * Creates a new FbcV2ToV1Converter object.
+   */
+  FbcV2ToV1Converter();
+
+
+  /**
+   * Copy constructor; creates a copy of an FbcV2ToV1Converter
+   * object.
+   *
+   * @param orig the FbcV2ToV1Converter object to copy.
+   */
+  FbcV2ToV1Converter(const FbcV2ToV1Converter& orig);
+
+
+  /**
+   * Creates and returns a deep copy of this FbcV2ToV1Converter object.
+   *
+   * @return a (deep) copy of this FbcV2ToV1Converter.
+   */
+  virtual FbcV2ToV1Converter* clone() const;
+
+
+  /**
+   * Destroy this FbcV2ToV1Converter object.
+   */
+  virtual ~FbcV2ToV1Converter ();
+
+
+  /**
+   * Returns @c true if this converter object's properties match the given
+   * properties.
+   *
+   * A typical use of this method involves creating a ConversionProperties
+   * object, setting the options desired, and then calling this method on
+   * an FbcV2ToV1Converter object to find out if the object's
+   * property values match the given ones.  This method is also used by
+   * SBMLConverterRegistry::getConverterFor(@if java ConversionProperties at endif)
+   * to search across all registered converters for one matching particular
+   * properties.
+   *
+   * @param props the properties to match.
+   *
+   * @return @c true if this converter's properties match, @c false
+   * otherwise.
+   */
+  virtual bool matchesProperties(const ConversionProperties &props) const;
+
+
+  /**
+   * Perform the conversion.
+   *
+   * This method causes the converter to do the actual conversion work,
+   * that is, to convert the SBMLDocument object set by
+   * SBMLConverter::setDocument(@if java SBMLDocument at endif) and
+   * with the configuration options set by
+   * SBMLConverter::setProperties(@if java ConversionProperties at endif).
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+   */
+  virtual int convert();
+
+
+  /**
+   * Returns the default properties of this converter.
+   *
+   * A given converter exposes one or more properties that can be adjusted
+   * in order to influence the behavior of the converter.  This method
+   * returns the @em default property settings for this converter.  It is
+   * meant to be called in order to discover all the settings for the
+   * converter object.
+   *
+   * @return the ConversionProperties object describing the default properties
+   * for this converter.
+   */
+  virtual ConversionProperties getDefaultProperties() const;
+
+
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+
+
+#ifndef SWIG
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+BEGIN_C_DECLS
+
+
+END_C_DECLS
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* !SWIG */
+#endif  /* FbcV2ToV1Converter_h*/
+
diff --git a/src/sbml/packages/fbc/validator/FbcConsistencyValidator.cpp b/src/sbml/packages/fbc/validator/FbcConsistencyValidator.cpp
index e163354..e65ee27 100644
--- a/src/sbml/packages/fbc/validator/FbcConsistencyValidator.cpp
+++ b/src/sbml/packages/fbc/validator/FbcConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/FbcConsistencyValidator.h b/src/sbml/packages/fbc/validator/FbcConsistencyValidator.h
index c074e53..d5bea35 100644
--- a/src/sbml/packages/fbc/validator/FbcConsistencyValidator.h
+++ b/src/sbml/packages/fbc/validator/FbcConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.cpp b/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.cpp
index a2be561..bdca93f 100644
--- a/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.h b/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.h
index c97b50d..f881ed6 100644
--- a/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/fbc/validator/FbcIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/FbcSBMLError.h b/src/sbml/packages/fbc/validator/FbcSBMLError.h
index 760dd97..c47d3e5 100644
--- a/src/sbml/packages/fbc/validator/FbcSBMLError.h
+++ b/src/sbml/packages/fbc/validator/FbcSBMLError.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/FbcSBMLErrorTable.h b/src/sbml/packages/fbc/validator/FbcSBMLErrorTable.h
index 2bd4a7b..02f2fba 100644
--- a/src/sbml/packages/fbc/validator/FbcSBMLErrorTable.h
+++ b/src/sbml/packages/fbc/validator/FbcSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1005,7 +1005,7 @@ static const packageErrorTableEntryV2 fbcErrorTableV2[] =
     LIBSBML_SEV_ERROR,
     "A <GeneProductAssociation> object may have the "
     "optional attributes 'fbc:id' and 'fbc:name'. No other attributes from the SBML "
-    "Level~3 Flux Balance Constraints namespace are permitted on a <GeneProductAssociation> "
+    "Level 3 Flux Balance Constraints namespace are permitted on a <GeneProductAssociation> "
     "object. ",
     { "",
       "L3V1 Fbc V2 Section 3.9"
@@ -1090,7 +1090,7 @@ static const packageErrorTableEntryV2 fbcErrorTableV2[] =
     "A <GeneProductRef> object must have the required "
     "attribute 'fbc:geneProduct' and may have the "
     "optional attribute 'fbc:id'. No other "
-    "attributes from the SBML Level~3 Flux Balance Constraints namespace are "
+    "attributes from the SBML Level 3 Flux Balance Constraints namespace are "
     "permitted on a <> object. "
     "",
     { "",
@@ -1163,7 +1163,7 @@ static const packageErrorTableEntryV2 fbcErrorTableV2[] =
     LIBSBML_SEV_ERROR,
     "An <And> object must have two or more concrete "
     "<Association> objects: <GeneProductRef>, <And>, or <Or>. No other "
-    "elements from the SBML Level~3 Flux Balance Constraints namespace are "
+    "elements from the SBML Level 3 Flux Balance Constraints namespace are "
     "permitted on an <And> object. "
     "",
     { "",
@@ -1209,7 +1209,7 @@ static const packageErrorTableEntryV2 fbcErrorTableV2[] =
     LIBSBML_SEV_ERROR,
     "An <Or> object must have two or more concrete "
     "<Association> objects: <GeneProductRef>, <And>, or <Or>. No other "
-    "elements from the SBML Level~3 Flux Balance Constraints namespace are "
+    "elements from the SBML Level 3 Flux Balance Constraints namespace are "
     "permitted on an <Or> object. "
     "",
     { "",
@@ -1255,7 +1255,7 @@ static const packageErrorTableEntryV2 fbcErrorTableV2[] =
     "A <GeneProduct> object must have the required "
     "attributes 'fbc:id' and 'fbc:label' may have the "
     "optional attributes 'fbc:name' and 'fbc:associatedSpecies'. No other "
-    "attributes from the SBML Level~3 Flux Balance Constraints namespace are "
+    "attributes from the SBML Level 3 Flux Balance Constraints namespace are "
     "permitted on a <GeneProduct> object. "
     "",
     { "",
diff --git a/src/sbml/packages/fbc/validator/FbcValidator.cpp b/src/sbml/packages/fbc/validator/FbcValidator.cpp
index eb1b4c9..3384a13 100644
--- a/src/sbml/packages/fbc/validator/FbcValidator.cpp
+++ b/src/sbml/packages/fbc/validator/FbcValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/FbcValidator.h b/src/sbml/packages/fbc/validator/FbcValidator.h
index 475916f..15bcf92 100644
--- a/src/sbml/packages/fbc/validator/FbcValidator.h
+++ b/src/sbml/packages/fbc/validator/FbcValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -32,8 +32,8 @@
  *
  * The FbcValidator class extends the Validator class from core libSBML to
  * apply validation to the constructs introduced by the SBML Level 3
- * Flux Balance Constraints package. This class then acts as a base class for
- * any validators that apply rules to the “fbc” package
+ * @ref fbc (“fbc”) package.  This class then acts as a base
+ * class for any validators that apply rules to the “fbc” package
  * specification constructs or to entire models that use the
  * “fbc” package, and may therefore be subject to other global
  * restrictions introduced.
diff --git a/src/sbml/packages/fbc/validator/Makefile.in b/src/sbml/packages/fbc/validator/Makefile.in
index 42e633c..69ad9d1 100644
--- a/src/sbml/packages/fbc/validator/Makefile.in
+++ b/src/sbml/packages/fbc/validator/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraints.cpp b/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraints.cpp
index 63bb751..1a6fefa 100644
--- a/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraints.cpp
+++ b/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraintsDeclared.cxx b/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraintsDeclared.cxx
index 152808b..7a34777 100644
--- a/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/fbc/validator/constraints/FbcConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraints.cpp b/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraints.cpp
index 7e32b34..e43abcb 100644
--- a/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraintsDeclared.cxx b/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraintsDeclared.cxx
index 44a22e5..59e483d 100644
--- a/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/fbc/validator/constraints/FbcIdentifierConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.cpp b/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.cpp
index 1f27275..2e2283f 100644
--- a/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.cpp
+++ b/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.h b/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.h
index c37dc32..5aeb9d8 100644
--- a/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.h
+++ b/src/sbml/packages/fbc/validator/constraints/FluxBoundsConsistent.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/Makefile.in b/src/sbml/packages/fbc/validator/constraints/Makefile.in
index c5757b6..a681aa2 100644
--- a/src/sbml/packages/fbc/validator/constraints/Makefile.in
+++ b/src/sbml/packages/fbc/validator/constraints/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.cpp b/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.cpp
index 79fbc93..4247e62 100644
--- a/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.cpp
+++ b/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.h b/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.h
index f2bfcad..c00811b 100644
--- a/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.h
+++ b/src/sbml/packages/fbc/validator/constraints/UniqueGeneProductLabels.h
@@ -1,129 +1,129 @@
-/**
- * @cond doxygenLibsbmlInternal
- *
- * @file    UniqueGeneProductLabels.h
- * @brief   Base class for Id constraints
- * @author  Ben Bornstein
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- * 
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->*/
-
-#ifndef UniqueGeneProductLabels_h
-#define UniqueGeneProductLabels_h
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-#include <sstream>
-#include <set>
-
-#include <sbml/validator/VConstraint.h>
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-class SBase;
-class Validator;
-
-
-/**
- * The UniqueGeneProductLabels Constraint is the base class for all SBML id constraints.  It
- * provides mechanisms for checking only certain subsets of ids within an
- * SBML model and tailoring the error messages logged.
- *
- * To customize:
- *
- *   1.  Override doCheck() to iterate over the SBML objects you are
- *       interested in and call checkId() for each.
- *
- *       checkId() does the work of extracting the unique identifier
- *       (whether it be an id or variable name) from the SBML object and
- *       then delegates to doCheckId().
- *
- *   2.  Override doCheckId() to perform the actual check.  If the check
- *       fails, call logFailure().
- *
- *   3.  Override getMessage() to log error messages.  GetMessage() should
- *       use getPreamble() and getFieldName() when constructing the error
- *       message.
- *
- *   4.  Override getPreamble() to customize the part of the actual error
- *       message that remains constant (e.g. the part that doesn't report
- *       line numbers, SBML object ids and typenames, etc).
- *
- *   5.  Override getFieldName() if you are checking a field that isn't
- *       called 'id', for instance, the 'variable' field of a Rule.
- *
- * Finally, if you need the type name of the SBML object that failed,
- * e.g. 'Compartment' or 'Species', when constructing an error message,
- * call getTypename().
- */
-class UniqueGeneProductLabels: public TConstraint<Model>
-{
-public:
-
-  /**
-   * Creates a new UniqueGeneProductLabels with the given constraint id.
-   */
-  UniqueGeneProductLabels (unsigned int id, Validator& v);
-
-  /**
-   * Destroys this Constraint.
-   */
-  virtual ~UniqueGeneProductLabels ();
-
-
-protected:
-  /**
-   * Called by check().  Override this method to define your own subset.
-   */
-  void doCheck (const Model& m);
-
-
-  /* ------------------------------------------------------------ */
-  /*  You should not need to override methods beyond this point.  */
-  /* ------------------------------------------------------------ */
-
-
-  /**
-   * Checks that all ids for some given subset of the Model adhere to this
-   * Constraint.  Override the doCheck() method to define your own subset.
-   */
-  virtual void check_ (const Model& m, const Model& object);
-
-
-
-  /**
-   * Logs a message that the given @p id (and its corresponding object) have
-   * failed to satisfy this constraint.
-   */
-  void logConflict (const std::string& label, const SBase& object);
-
-
-  typedef std::set<std::string> ExistingLabels;
-  ExistingLabels mLabels;
-};
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-#endif  /* UniqueGeneProductLabels_h */
-/** @endcond */
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    UniqueGeneProductLabels.h
+ * @brief   Base class for Id constraints
+ * @author  Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef UniqueGeneProductLabels_h
+#define UniqueGeneProductLabels_h
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+#include <sstream>
+#include <set>
+
+#include <sbml/validator/VConstraint.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class SBase;
+class Validator;
+
+
+/**
+ * The UniqueGeneProductLabels Constraint is the base class for all SBML id constraints.  It
+ * provides mechanisms for checking only certain subsets of ids within an
+ * SBML model and tailoring the error messages logged.
+ *
+ * To customize:
+ *
+ *   1.  Override doCheck() to iterate over the SBML objects you are
+ *       interested in and call checkId() for each.
+ *
+ *       checkId() does the work of extracting the unique identifier
+ *       (whether it be an id or variable name) from the SBML object and
+ *       then delegates to doCheckId().
+ *
+ *   2.  Override doCheckId() to perform the actual check.  If the check
+ *       fails, call logFailure().
+ *
+ *   3.  Override getMessage() to log error messages.  GetMessage() should
+ *       use getPreamble() and getFieldName() when constructing the error
+ *       message.
+ *
+ *   4.  Override getPreamble() to customize the part of the actual error
+ *       message that remains constant (e.g. the part that doesn't report
+ *       line numbers, SBML object ids and typenames, etc).
+ *
+ *   5.  Override getFieldName() if you are checking a field that isn't
+ *       called 'id', for instance, the 'variable' field of a Rule.
+ *
+ * Finally, if you need the type name of the SBML object that failed,
+ * e.g. 'Compartment' or 'Species', when constructing an error message,
+ * call getTypename().
+ */
+class UniqueGeneProductLabels: public TConstraint<Model>
+{
+public:
+
+  /**
+   * Creates a new UniqueGeneProductLabels with the given constraint id.
+   */
+  UniqueGeneProductLabels (unsigned int id, Validator& v);
+
+  /**
+   * Destroys this Constraint.
+   */
+  virtual ~UniqueGeneProductLabels ();
+
+
+protected:
+  /**
+   * Called by check().  Override this method to define your own subset.
+   */
+  void doCheck (const Model& m);
+
+
+  /* ------------------------------------------------------------ */
+  /*  You should not need to override methods beyond this point.  */
+  /* ------------------------------------------------------------ */
+
+
+  /**
+   * Checks that all ids for some given subset of the Model adhere to this
+   * Constraint.  Override the doCheck() method to define your own subset.
+   */
+  virtual void check_ (const Model& m, const Model& object);
+
+
+
+  /**
+   * Logs a message that the given @p id (and its corresponding object) have
+   * failed to satisfy this constraint.
+   */
+  void logConflict (const std::string& label, const SBase& object);
+
+
+  typedef std::set<std::string> ExistingLabels;
+  ExistingLabels mLabels;
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* UniqueGeneProductLabels_h */
+/** @endcond */
diff --git a/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.cpp b/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.cpp
index 5003d46..f4bd51c 100644
--- a/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.cpp
+++ b/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.h b/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.h
index 7b90513..6593ee3 100644
--- a/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.h
+++ b/src/sbml/packages/fbc/validator/constraints/UniqueModelWideIds.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/CMakeLists.txt b/src/sbml/packages/fbc/validator/test/CMakeLists.txt
index e9cad82..c93bb5f 100644
--- a/src/sbml/packages/fbc/validator/test/CMakeLists.txt
+++ b/src/sbml/packages/fbc/validator/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/Makefile.in b/src/sbml/packages/fbc/validator/test/Makefile.in
index 92a0337..25ff88d 100644
--- a/src/sbml/packages/fbc/validator/test/Makefile.in
+++ b/src/sbml/packages/fbc/validator/test/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/TestFbcConsistencyValidator.cpp b/src/sbml/packages/fbc/validator/test/TestFbcConsistencyValidator.cpp
index 3c254e9..b9f864b 100644
--- a/src/sbml/packages/fbc/validator/test/TestFbcConsistencyValidator.cpp
+++ b/src/sbml/packages/fbc/validator/test/TestFbcConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/TestFile.cpp b/src/sbml/packages/fbc/validator/test/TestFile.cpp
index b89896c..434d4ca 100644
--- a/src/sbml/packages/fbc/validator/test/TestFile.cpp
+++ b/src/sbml/packages/fbc/validator/test/TestFile.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/TestFile.h b/src/sbml/packages/fbc/validator/test/TestFile.h
index 7cef5ba..be4f2e7 100644
--- a/src/sbml/packages/fbc/validator/test/TestFile.h
+++ b/src/sbml/packages/fbc/validator/test/TestFile.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/TestValidator.cpp b/src/sbml/packages/fbc/validator/test/TestValidator.cpp
index d2eb903..7bee65f 100644
--- a/src/sbml/packages/fbc/validator/test/TestValidator.cpp
+++ b/src/sbml/packages/fbc/validator/test/TestValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/TestValidator.h b/src/sbml/packages/fbc/validator/test/TestValidator.h
index 98b4670..5875f02 100644
--- a/src/sbml/packages/fbc/validator/test/TestValidator.h
+++ b/src/sbml/packages/fbc/validator/test/TestValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  * 
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/fbc/validator/test/test-data/Makefile.in b/src/sbml/packages/fbc/validator/test/test-data/Makefile.in
index f1b9f3e..cc50c2c 100644
--- a/src/sbml/packages/fbc/validator/test/test-data/Makefile.in
+++ b/src/sbml/packages/fbc/validator/test/test-data/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/groups-register.cxx b/src/sbml/packages/groups-register.cxx
index 0051df4..9725dc5 100644
--- a/src/sbml/packages/groups-register.cxx
+++ b/src/sbml/packages/groups-register.cxx
@@ -1,5 +1,37 @@
-
-#ifdef USE_GROUPS
-GroupsExtension::init();
-#endif	
-
+/**
+ * @file groups-register.cxx
+ * @brief CMake register file for groups package
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
+
+#ifdef USE_GROUPS
+  GroupsExtension::init();
+#endif
+
diff --git a/src/sbml/packages/groups-register.h b/src/sbml/packages/groups-register.h
index 6262490..f9fc54d 100644
--- a/src/sbml/packages/groups-register.h
+++ b/src/sbml/packages/groups-register.h
@@ -1,5 +1,37 @@
+/**
+ * @file groups-register.h
+ * @brief CMake register file for groups package
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
 
 #ifdef USE_GROUPS
-#include <sbml/packages/groups/extension/GroupsExtension.h>
-#endif	
+  #include <sbml/packages/groups/extension/GroupsExtension.h>
+#endif
 
diff --git a/src/sbml/packages/groups/common/GroupsExtensionTypes.h b/src/sbml/packages/groups/common/GroupsExtensionTypes.h
index b05d076..2c3382f 100644
--- a/src/sbml/packages/groups/common/GroupsExtensionTypes.h
+++ b/src/sbml/packages/groups/common/GroupsExtensionTypes.h
@@ -1,43 +1,51 @@
 /**
- * @file    GroupsExtensionTypes.h
- * @brief   Include all SBML types of groups extension in a single header file.
- * @author  Akiya Jouraku
- *
- * $Id: GroupsExtensionTypes.h 10152 2009-09-01 09:21:03Z sarahkeating $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/trunk/libsbml/src/sbml/GroupsExtensionTypes.h $
+ * @file GroupsExtensionTypes.h
+ * @brief Definition of GroupsExtensionTypes.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->*/
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
+
+
+#ifndef GroupsExtensionTypes_H__
+#define GroupsExtensionTypes_H__
 
-#ifndef GroupsExtensionTypes_h
-#define GroupsExtensionTypes_h
 
 #include <sbml/packages/groups/common/groupsfwd.h>
 
 #include <sbml/packages/groups/extension/GroupsExtension.h>
+#include <sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.h>
 #include <sbml/packages/groups/extension/GroupsModelPlugin.h>
 
-#include <sbml/packages/groups/sbml/Member.h>
-#include <sbml/packages/groups/sbml/MemberConstraint.h>
 #include <sbml/packages/groups/sbml/Group.h>
+#include <sbml/packages/groups/sbml/Member.h>
+
+
+#endif /* !GroupsExtensionTypes_H__ */
+
 
-#endif  /* GroupsExtensionTypes_h */
diff --git a/src/sbml/packages/groups/common/groupsfwd.h b/src/sbml/packages/groups/common/groupsfwd.h
index c926e4b..d4ca9d1 100644
--- a/src/sbml/packages/groups/common/groupsfwd.h
+++ b/src/sbml/packages/groups/common/groupsfwd.h
@@ -1,63 +1,70 @@
 /**
- * @file    groupsfwd.h
- * @brief   SBML Groups C structure declarations
- * @author  Akiya Jouraku
- *
- * $Id: groupsfwd.h 12789 2011-02-08 23:11:37Z mhucka $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/src/sbml/packages/groups/common/groupsfwd.h $
+ * @file groupsfwd.h
+ * @brief Definition of groupsfwd.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 
 
-#ifndef groupsfwd_h__
-#define groupsfwd_h__
+#ifndef groupsfwd_H__
+#define groupsfwd_H__
 
 
 /**
  * Forward declaration of all opaque C types.
  *
- * Declaring all types up-front avoids "redefinition of type 'Foo'" compile
- * errors and allows our combined C/C++ headers to depend minimally upon
- * each other.  Put another way, the type definitions below serve the same
- * purpose as "class Foo;" forward declarations in C++ code.
+ * Declaring all types up-front avoids "redefinition of type Foo" compile
+ * errors and allows our combined C/C++ headers to depend minimally upon each
+ * other. Put another way, the type definitions below serve the same purpose as
+ * "class Foo;" forward declarations in C++ code.
  */
 
 #ifdef __cplusplus
-#  define CLASS_OR_STRUCT class
+# define CLASS_OR_STRUCT class
 #else
-#  define CLASS_OR_STRUCT struct
-#endif  /* __cplusplus */
+# define CLASS_OR_STRUCT struct
+#endif /* __cplusplus */
+
 
 LIBSBML_CPP_NAMESPACE_BEGIN
 
-typedef CLASS_OR_STRUCT Member    Member_t;
-typedef CLASS_OR_STRUCT MemberConstraint    MemberConstraint_t;
-typedef CLASS_OR_STRUCT Group    Group_t;
+
+typedef CLASS_OR_STRUCT Group  Group_t;
+typedef CLASS_OR_STRUCT Member Member_t;
+
 
 LIBSBML_CPP_NAMESPACE_END
 
+
 #undef CLASS_OR_STRUCT
 
 
-#endif  /* groupsfwd_h__ */
+#endif /* !groupsfwd_H__ */
+
+
diff --git a/src/sbml/packages/groups/extension/GroupsExtension.cpp b/src/sbml/packages/groups/extension/GroupsExtension.cpp
index 2b3b33d..7cc78d0 100644
--- a/src/sbml/packages/groups/extension/GroupsExtension.cpp
+++ b/src/sbml/packages/groups/extension/GroupsExtension.cpp
@@ -1,68 +1,64 @@
 /**
- * @file    GroupsExtension.cpp
- * @brief   Implementation of GroupsExtension, the core module of groups package.
- * @author  Akiya Jouraku
- *
- * $Id: GroupsExtension.cpp 13541 2011-04-08 22:16:45Z fbergmann $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/src/sbml/packages/groups/extension/GroupsExtension.cpp $
+ * @file GroupsExtension.cpp
+ * @brief Implementation of GroupsExtension.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
-
 #include <sbml/extension/SBMLExtensionRegister.h>
 #include <sbml/extension/SBMLExtensionRegistry.h>
 #include <sbml/extension/SBasePluginCreator.h>
 #include <sbml/extension/SBMLDocumentPlugin.h>
 
 #include <sbml/packages/groups/extension/GroupsExtension.h>
-#include <sbml/packages/groups/extension/GroupsModelPlugin.h>
 #include <sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.h>
 #include <sbml/packages/groups/validator/GroupsSBMLErrorTable.h>
+#include <sbml/packages/groups/extension/GroupsModelPlugin.h>
 
 
-#ifdef __cplusplus
-
+using namespace std;
 
-#include <iostream>
 
 
 LIBSBML_CPP_NAMESPACE_BEGIN
 
 
-/*---------------------------------------------------------------
- *
- * This block is global initialization code which should be automatically
- * executed before invoking main() block.
- *
- */
 
-/*------------------ (START) ----------------------------------*/
+
+#ifdef __cplusplus
+
 
 /*
- * Returns the package name of this extension.
+ * Returns the nickname of the SBML Level 3 package implemented by this
+ * libSBML extension.
  */
 const std::string&
-GroupsExtension::getPackageName ()
+GroupsExtension::getPackageName()
 {
   static const std::string pkgName = "groups";
   return pkgName;
@@ -70,120 +66,124 @@ GroupsExtension::getPackageName ()
 
 
 /*
- * Returns the default SBML Level this extension.
+ * Returns the default SBML Level implemented by this libSBML extension.
  */
 unsigned int
-GroupsExtension::getDefaultLevel ()
+GroupsExtension::getDefaultLevel()
 {
   return 3;
 }
 
 
 /*
- * Returns the default SBML Version this extension.
+ * Returns the default SBML Version implemented by this libSBML extension.
  */
 unsigned int
-GroupsExtension::getDefaultVersion ()
+GroupsExtension::getDefaultVersion()
 {
   return 1;
 }
 
 
 /*
- * Returns the default SBML version this extension.
+ * Returns the default version of the SBML Level 3 package implemented by
+ * this libSBML extension.
  */
 unsigned int
-GroupsExtension::getDefaultPackageVersion ()
+GroupsExtension::getDefaultPackageVersion()
 {
   return 1;
 }
 
 
 /*
- * XML namespaces of package.
+ * Returns the XML namespace URI of the SBML Level 3 package implemented
+ * by this libSBML extension.
  */
 const std::string&
-GroupsExtension::getXmlnsL3V1V1 ()
+GroupsExtension::getXmlnsL3V1V1()
 {
-  static const std::string xmlns = "http://www.sbml.org/sbml/level3/version1/groups/version1";
+  static const std::string xmlns =
+    "http://www.sbml.org/sbml/level3/version1/groups/version1";
   return xmlns;
 }
 
 
-/*
- * Adds this GroupsExtension object to the SBMLExtensionRegistry class.
- * GroupsExtension::init function is automatically invoked when this
- * object is instantiated
+/**
+ *
+ * Adds this GroupsExtension to the SBMLExtensionRegistry class
+ *
  */
 static SBMLExtensionRegister<GroupsExtension> groupsExtensionRegistry;
 
-
 static
 const char* SBML_GROUPS_TYPECODE_STRINGS[] =
 {
     "Member"
-  , "MemberConstraint"
   , "Group"
 };
 
 
-/*
- * Instantiate SBMLExtensionNamespaces<GroupsExtension>
- * (GroupsPkgNamespaces) for DLL.
+/**
+ *
+ * Instantiate SBMLExtensionNamespaces<GroupsExtension> for DLL
+ *
  */
 template class LIBSBML_EXTERN SBMLExtensionNamespaces<GroupsExtension>;
 
-
-/*------------------ (END) ----------------------------------*/
-
 /*
- * Constructor
+ * Creates a new GroupsExtension instance.
  */
-GroupsExtension::GroupsExtension ()
+GroupsExtension::GroupsExtension()
 {
 }
 
 
 /*
- * Copy constructor.
+ * Copy constructor for GroupsExtension.
  */
 GroupsExtension::GroupsExtension(const GroupsExtension& orig)
-: SBMLExtension(orig)
+  : SBMLExtension( orig )
 {
 }
 
 
 /*
- * Destroy this object.
+ * Assignment operator for GroupsExtension.
  */
-GroupsExtension::~GroupsExtension ()
+GroupsExtension&
+GroupsExtension::operator=(const GroupsExtension& rhs)
 {
+  if (&rhs != this)
+  {
+    SBMLExtension::operator=(rhs);
+  }
+
+  return *this;
 }
 
 
 /*
- * Assignment operator for GroupsExtension.
+ * Creates and returns a deep copy of this GroupsExtension object.
  */
-GroupsExtension& 
-GroupsExtension::operator=(const GroupsExtension& orig)
+GroupsExtension*
+GroupsExtension::clone() const
 {
-  SBMLExtension::operator=(orig);
-  return *this;
+  return new GroupsExtension(*this);
 }
 
 
 /*
- * Creates and returns a deep copy of this GroupsExtension object.
- * 
- * @return a (deep) copy of this SBase object
+ * Destructor for GroupsExtension.
  */
-GroupsExtension* 
-GroupsExtension::clone () const
+GroupsExtension::~GroupsExtension()
 {
-  return new GroupsExtension(*this);  
 }
 
 
+/*
+ * Returns the name of this SBML Level 3 package ("groups").
+ */
 const std::string&
 GroupsExtension::getName() const
 {
@@ -192,14 +192,13 @@ GroupsExtension::getName() const
 
 
 /*
- * Returns the URI (namespace) of the package corresponding to the combination of the given sbml level,
- * sbml version, and package version.
- * Empty string will be returned if no corresponding URI exists.
- *
- * @return a string of the package URI
+ * Returns a string representing the SBML XML namespace of this SBML
+ * Level 3 package.
  */
-const std::string& 
-GroupsExtension::getURI(unsigned int sbmlLevel, unsigned int sbmlVersion, unsigned int pkgVersion) const
+const std::string&
+GroupsExtension::getURI(unsigned int sbmlLevel,
+                        unsigned int sbmlVersion,
+                        unsigned int pkgVersion) const
 {
   if (sbmlLevel == 3)
   {
@@ -213,37 +212,30 @@ GroupsExtension::getURI(unsigned int sbmlLevel, unsigned int sbmlVersion, unsign
   }
 
   static std::string empty = "";
-
   return empty;
 }
 
 
 /*
- * Returns the SBML level with the given URI of this package.
- *
- *  (NOTICE) Package developers MUST OVERRIDE this pure virtual function in their derived class.
- *
+ * Returns the SBML Level for the given URI of this package.
  */
-unsigned int 
-GroupsExtension::getLevel(const std::string &uri) const
+unsigned int
+GroupsExtension::getLevel(const std::string& uri) const
 {
   if (uri == getXmlnsL3V1V1())
   {
     return 3;
   }
-  
+
   return 0;
 }
 
 
 /*
- * Returns the SBML version with the given URI of this package.
- *
- *  (NOTICE) Package developers MUST OVERRIDE this pure virtual function in their derived class.
- *
+ * Returns the Version within the SBML Level for the given URI of this package.
  */
-unsigned int 
-GroupsExtension::getVersion(const std::string &uri) const
+unsigned int
+GroupsExtension::getVersion(const std::string& uri) const
 {
   if (uri == getXmlnsL3V1V1())
   {
@@ -255,13 +247,11 @@ GroupsExtension::getVersion(const std::string &uri) const
 
 
 /*
- * Returns the package version with the given URI of this package.
- *
- *  (NOTICE) Package developers MUST OVERRIDE this pure virtual function in their derived class.
- *
+ * Returns the SBML Level 3 package version for the given URI of this
+ * package.
  */
 unsigned int
-GroupsExtension::getPackageVersion(const std::string &uri) const
+GroupsExtension::getPackageVersion(const std::string& uri) const
 {
   if (uri == getXmlnsL3V1V1())
   {
@@ -273,193 +263,225 @@ GroupsExtension::getPackageVersion(const std::string &uri) const
 
 
 /*
- * Returns an SBMLExtensionNamespaces<class SBMLExtensionType> object 
- * (e.g. SBMLExtensionNamespaces<GroupsExtension> whose alias type is 
- * GroupsPkgNamespaces) corresponding to the given uri.
- * NULL will be returned if the given uri is not defined in the corresponding package.
- *
- *  (NOTICE) Package developers MUST OVERRIDE this pure virtual function in their derived class.
- *
+ * Returns a GroupsPkgNamespaces object.
  */
 SBMLNamespaces*
-GroupsExtension::getSBMLExtensionNamespaces(const std::string &uri) const
+GroupsExtension::getSBMLExtensionNamespaces(const std::string& uri) const
 {
-  GroupsPkgNamespaces* pkgns = 0;
-  if ( uri == getXmlnsL3V1V1())
+  GroupsPkgNamespaces* pkgns = NULL;
+
+  if (uri == getXmlnsL3V1V1())
   {
-    pkgns = new GroupsPkgNamespaces(3,1,1);    
-  }  
+    pkgns = new GroupsPkgNamespaces(3, 1, 1);
+  }
+
   return pkgns;
 }
 
 
 /*
- * This method takes a type code of groups package and returns a string representing
- * the code.
+ * Takes a type code of the “groups” package and returns a string
+ * describing the code.
  */
-const char* 
+const char*
 GroupsExtension::getStringFromTypeCode(int typeCode) const
 {
   int min = SBML_GROUPS_MEMBER;
   int max = SBML_GROUPS_GROUP;
 
-  if ( typeCode < min || typeCode > max)
+  if (typeCode < min || typeCode > max)
   {
-    return "(Unknown SBML Groups Type)";  
+    return "(Unknown SBML Groups Type)";
   }
 
   return SBML_GROUPS_TYPECODE_STRINGS[typeCode - min];
 }
 
 
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Returns the entry in the error table at this index.
+ */
+packageErrorTableEntry
+GroupsExtension::getErrorTable(unsigned int index) const
+{
+  return groupsErrorTable[index];
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
 /*
- *
- * Initialization function of groups extension module which is automatically invoked 
- * by SBMLExtensionRegister class before main() function invoked.
- *
+ * Return the index in the error table with the given errorId.
  */
-void 
-GroupsExtension::init()
+unsigned int
+GroupsExtension::getErrorTableIndex(unsigned int errorId) const
 {
-  //-------------------------------------------------------------------------
-  //
-  // 1. Checks if the groups pacakge has already been registered.
-  //
-  //-------------------------------------------------------------------------
+  unsigned int tableSize =
+    sizeof(groupsErrorTable)/sizeof(groupsErrorTable[0]);
+  unsigned int index = 0;
 
+  for (unsigned int i = 0; i < tableSize; i++)
+  {
+    if (errorId == groupsErrorTable[i].code)
+    {
+      index = i;
+      break;
+    }
+  }
+
+  return index;
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Returns the offset for the errorId range for the "groups" package.
+ */
+unsigned int
+GroupsExtension::getErrorIdOffset() const
+{
+  return 4000000;
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Initializes groups extension by creating an object of this class with the
+ * required SBasePlugin derived objects and registering the object to the
+ * SBMLExtensionRegistry class
+ */
+void
+GroupsExtension::init()
+{
   if (SBMLExtensionRegistry::getInstance().isRegistered(getPackageName()))
   {
-    // do nothing;
     return;
   }
 
-  //-------------------------------------------------------------------------
-  //
-  // 2. Creates an SBMLExtension derived object.
-  //
-  //-------------------------------------------------------------------------
-
   GroupsExtension groupsExtension;
 
-  //-------------------------------------------------------------------------------------
-  //
-  // 3. Creates SBasePluginCreatorBase derived objects required for this 
-  //    extension. The derived classes can be instantiated by using the following 
-  //     template class.
-  //
-  //    temaplate<class SBasePluginType> class SBasePluginCreator
-  //
-  //    The constructor of the creator class has two arguments:
-  //
-  //        (1) SBaseExtensionPoint : extension point to which the plugin object connected
-  //        (2) std::vector<std::string> : a std::vector object that contains a list of URI
-  //                                       (package versions) supported by the plugin object.
-  //
-  //    For example, two plugin objects (plugged in SBMLDocument and Model elements) are 
-  //    required for the groups extension.
-  //
-  //    Since only 'required' attribute is used in SBMLDocument by the groups package, existing
-  //    SBMLDocumentPluginNotRequired class can be used as-is for the plugin.
-  //
-  //    Since the lists of supported package versions (currently only L3V1-groups-V1 supported )
-  //    are equal in the both plugin objects, the same vector object is given to each 
-  //    constructor.
-  //
-  //---------------------------------------------------------------------------------------
 
   std::vector<std::string> packageURIs;
   packageURIs.push_back(getXmlnsL3V1V1());
 
-  SBaseExtensionPoint sbmldocExtPoint("core",SBML_DOCUMENT);
-  SBaseExtensionPoint modelExtPoint("core",SBML_MODEL);
-
-  SBasePluginCreator<GroupsSBMLDocumentPlugin, GroupsExtension> sbmldocPluginCreator(sbmldocExtPoint, packageURIs);
-  SBasePluginCreator<GroupsModelPlugin,   GroupsExtension> modelPluginCreator(modelExtPoint,packageURIs);
+  SBaseExtensionPoint sbmldocExtPoint("core", SBML_DOCUMENT);
+  SBaseExtensionPoint modelExtPoint("core", SBML_MODEL);
 
-  //--------------------------------------------------------------------------------------
-  //
-  // 3. Adds the above SBasePluginCreatorBase derived objects to the SBMLExtension derived object.
-  //
-  //--------------------------------------------------------------------------------------
+  SBasePluginCreator<GroupsSBMLDocumentPlugin, GroupsExtension>
+    sbmldocPluginCreator(sbmldocExtPoint, packageURIs);
+  SBasePluginCreator<GroupsModelPlugin, GroupsExtension>
+    modelPluginCreator(modelExtPoint, packageURIs);
 
   groupsExtension.addSBasePluginCreator(&sbmldocPluginCreator);
   groupsExtension.addSBasePluginCreator(&modelPluginCreator);
 
-  //-------------------------------------------------------------------------
-  //
-  // 4. Registers the SBMLExtension derived object to SBMLExtensionRegistry
-  //
-  //-------------------------------------------------------------------------
+  SBMLExtensionRegistry::getInstance().addExtension(&groupsExtension);
+}
+
+/** @endcond */
+
 
-  int result = SBMLExtensionRegistry::getInstance().addExtension(&groupsExtension);
 
-  if (result != LIBSBML_OPERATION_SUCCESS)
-  {
-    std::cerr << "[Error] GroupsExtension::init() failed." << std::endl;
-  }
-}
 
+#endif /* __cplusplus */
+
+
+static
+const char* SBML_GROUP_KIND_STRINGS[] =
+{
+  "classification"
+, "partonomy"
+, "collection"
+, "(Unknown SBML Groups Type)"
+};
 
-  /** @cond doxygenLibsbmlInternal */
 
 /*
- * Return error table entry. 
  */
-packageErrorTableEntry
-GroupsExtension::getErrorTable(unsigned int index) const
+LIBSBML_EXTERN
+const char*
+GroupKind_toString(GroupKind_t gk)
 {
-  return groupsErrorTable[index];
-}
+  int min = GROUP_KIND_CLASSIFICATION;
+  int max = GROUP_KIND_UNKNOWN;
 
-  /** @endcond doxygenLibsbmlInternal */
+  if (gk < min || gk > max)
+  {
+    return "(Unknown GroupKind value)";
+  }
 
+  return SBML_GROUP_KIND_STRINGS[gk - min];
+}
 
-  /** @cond doxygenLibsbmlInternal */
 
 /*
- * Return error table index for this id. 
  */
-unsigned int
-GroupsExtension::getErrorTableIndex(unsigned int errorId) const
+LIBSBML_EXTERN
+GroupKind_t
+GroupKind_fromString(const char* code)
 {
-  unsigned int tableSize = sizeof(groupsErrorTable)/sizeof(groupsErrorTable[0]);
-  unsigned int index = 0;
+  static int size =
+    sizeof(SBML_GROUP_KIND_STRINGS)/sizeof(SBML_GROUP_KIND_STRINGS[0]);
+  std::string type(code);
 
-  for(unsigned int i = 0; i < tableSize; i++)
+  for (int i = 0; i < size; i++)
   {
-    if (errorId == groupsErrorTable[i].code)
+    if (type == SBML_GROUP_KIND_STRINGS[i])
     {
-      index = i;
-      break;
+      return (GroupKind_t)(i);
     }
-
   }
 
-  return index;
+  return GROUP_KIND_UNKNOWN;
 }
 
-  /** @endcond doxygenLibsbmlInternal */
 
+/*
+ */
+LIBSBML_EXTERN
+int
+GroupKind_isValid(GroupKind_t gk)
+{
+  int min = GROUP_KIND_CLASSIFICATION;
+  int max = GROUP_KIND_UNKNOWN;
+
+  if (gk < min || gk >= max)
+  {
+    return 0;
+  }
+  else
+  {
+    return 1;
+  }
+}
 
-  /** @cond doxygenLibsbmlInternal */
 
 /*
- * Return error offset. 
  */
-unsigned int
-GroupsExtension::getErrorIdOffset() const
+LIBSBML_EXTERN
+int
+GroupKind_isValidString(const char* code)
 {
-  return 4000000;
+  return GroupKind_isValid(GroupKind_fromString(code));
 }
 
-  /** @endcond doxygenLibsbmlInternal */
-
 
 
 
 LIBSBML_CPP_NAMESPACE_END
 
 
-#endif /* __cplusplus */
-
-
diff --git a/src/sbml/packages/groups/extension/GroupsExtension.h b/src/sbml/packages/groups/extension/GroupsExtension.h
index 2c2c53e..dcfbf20 100644
--- a/src/sbml/packages/groups/extension/GroupsExtension.h
+++ b/src/sbml/packages/groups/extension/GroupsExtension.h
@@ -1,302 +1,429 @@
 /**
- * @file    GroupsExtension.h
- * @brief   Definition of GroupsExtension, the core module of groups package. 
- * @author  Akiya Jouraku
- *
- * $Id: GroupsExtension.h 12789 2011-02-08 23:11:37Z mhucka $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/src/sbml/packages/groups/extension/GroupsExtension.h $
+ * @file GroupsExtension.h
+ * @brief Definition of GroupsExtension.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
+ *
+ * @class GroupsExtension
+ * @sbmlbrief{groups} Base extension class for the package.
+ *
+ * This is the Groups package extension of the SBMLExtension class that
+ * every libSBML plug-in must implement in order to implement an
+ * SBML Level 3 package.
+ *
+ * @copydetails doc_what_is_sbmlextension
+ *
+ * @class GroupsPkgNamespaces
+ * @sbmlbrief{groups} SBMLNamespaces extension for the package.
  */
 
-#ifndef GroupsExtension_h
-#define GroupsExtension_h
+
+#ifndef GroupsExtension_H__
+#define GroupsExtension_H__
+
 
 #include <sbml/common/extern.h>
 #include <sbml/SBMLTypeCodes.h>
 
+
 #ifdef __cplusplus
 
+
 #include <sbml/extension/SBMLExtension.h>
 #include <sbml/extension/SBMLExtensionNamespaces.h>
 #include <sbml/extension/SBMLExtensionRegister.h>
 
-
 #ifndef GROUPS_CREATE_NS
-#define GROUPS_CREATE_NS(variable,sbmlns)\
-  EXTENSION_CREATE_NS(GroupsPkgNamespaces,variable,sbmlns);
+#define GROUPS_CREATE_NS(variable, sbmlns)\
+EXTENSION_CREATE_NS(GroupsPkgNamespaces, variable, sbmlns);
 #endif
 
 #include <vector>
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
+
 class LIBSBML_EXTERN GroupsExtension : public SBMLExtension
 {
 public:
 
-  //---------------------------------------------------------------
-  //
-  // Required class methods
-  //
-  //---------------------------------------------------------------
-
   /**
-   * Returns the package name of this extension.
+   * Returns the nickname of the SBML Level 3 package implemented by this
+   * libSBML extension.
+   *
+   * @return the package nickname, as a string.
+   *
+   * @copydetails doc_note_static_methods
    */
-  static const std::string& getPackageName ();
+  static const std::string& getPackageName();
+
 
   /**
-   * Returns the default SBML Level this extension.
+   * Returns the default SBML Level implemented by this libSBML extension.
+   *
+   * @return the SBML Level, as an unsigned integer.
+   *
+   * @copydetails doc_note_static_methods
    */
   static unsigned int getDefaultLevel();
 
+
   /**
-   * Returns the default SBML Version this extension.
+   * Returns the default SBML Version implemented by this libSBML extension.
+   *
+   * @return the Version within the default SBML Level, as an unsigned integer.
+   *
+   * @copydetails doc_note_static_methods
    */
   static unsigned int getDefaultVersion();
 
+
   /**
-   * Returns the default SBML version this extension.
+   * Returns the default version of the SBML Level 3 package implemented
+   * by this libSBML extension.
+   *
+   * @return the default version number of the SBML Level 3 package
+   * definition, as an unsigned integer.
+   *
+   * @copydetails doc_note_static_methods
    */
   static unsigned int getDefaultPackageVersion();
 
+
   /**
-   * Returns URI of supported versions of this package.
+   * Returns the XML namespace URI of the SBML Level 3 package implemented
+   * by this libSBML extension.
+   *
+   * @return the XML namespace, as a string.
+   *
+   * @copydetails doc_note_static_methods
    */
-  static const std::string&  getXmlnsL3V1V1();
-
-  //
-  // Other URI needed in this package (if any)
-  //
-
-  //---------------------------------------------------------------
+  static const std::string& getXmlnsL3V1V1();
 
 
   /**
-   * Constructor
+   * Creates a new GroupsExtension instance.
    */
-  GroupsExtension ();
+  GroupsExtension();
 
 
   /**
-   * Copy constructor.
+   * Copy constructor for GroupsExtension.
+   *
+   * @param orig the GroupsExtension instance to copy.
    */
-  GroupsExtension(const GroupsExtension&);
+  GroupsExtension(const GroupsExtension& orig);
 
 
   /**
-   * Destroy this object.
+   * Assignment operator for GroupsExtension.
+   *
+   * @param rhs the GroupsExtension object whose values are to be used as the
+   * basis of the assignment.
    */
-  virtual ~GroupsExtension ();
+  GroupsExtension& operator=(const GroupsExtension& rhs);
 
 
   /**
-   * Assignment operator for GroupsExtension.
+   * Creates and returns a deep copy of this GroupsExtension object.
+   *
+   * @return a (deep) copy of this GroupsExtension object.
    */
-  GroupsExtension& operator=(const GroupsExtension&);
+  virtual GroupsExtension* clone() const;
 
 
   /**
-   * Creates and returns a deep copy of this GroupsExtension object.
-   * 
-   * @return a (deep) copy of this SBase object
+   * Destructor for GroupsExtension.
    */
-  virtual GroupsExtension* clone () const;
+  virtual ~GroupsExtension();
 
 
   /**
-   * Returns the name of this package ("groups")
+   * Returns the name of this SBML Level 3 package ("groups").
    *
-   * @pram the name of this package ("groups")
+   * @return a string representing the name of this package ("groups").
    */
   virtual const std::string& getName() const;
 
 
   /**
-   * Returns the URI (namespace) of the package corresponding to the combination of 
-   * the given sbml level, sbml version, and package version.
-   * Empty string will be returned if no corresponding URI exists.
+   * Returns a string representing the SBML XML namespace of this SBML
+   * Level 3 package.
+   *
+   * The namespace URI constructed by this method corresponds to the
+   * combination of the Level and Version of SBML, and the Version of the SBML
+   * Level 3 package. (At the time of this writing, the only SBML Level
+   * that supports packages is Level 3, so the value of @p sbmlLevel is
+   * necessarily always <code>3</code>.)
+   *
+   * @param sbmlLevel the level of SBML.
    *
-   * @param sbmlLevel the level of SBML
-   * @param sbmlVersion the version of SBML
-   * @param pkgVersion the version of package
+   * @param sbmlVersion the version of SBML.
    *
-   * @return a string of the package URI
+   * @param pkgVersion the version of this package.
+   *
+   * @return a string representing the name of this package ("groups").
    */
-  virtual const std::string& getURI(unsigned int sbmlLevel, unsigned int sbmlVersion, 
+  virtual const std::string& getURI(unsigned int sbmlLevel,
+                                    unsigned int sbmlVersion,
                                     unsigned int pkgVersion) const;
 
 
   /**
-   * Returns the SBML level with the given URI of this package.
-   *
-   * @param uri the string of URI that represents one of versions of groups package
+   * Returns the SBML Level for the given URI of this package.
    *
-   * @return the SBML level with the given URI of this package. 0 will be returned
-   * if the given URI is invalid.
+   * @param uri the string of the URI that represents one of the versions of
+   * the "groups" package.
    *
+   * @return the SBML Level for the given URI of this package, or @c 0 if the
+   * given URI is invalid.
    */
-  virtual unsigned int getLevel(const std::string &uri) const;
+  virtual unsigned int getLevel(const std::string& uri) const;
 
 
   /**
-   * Returns the SBML version with the given URI of this package.
+   * Returns the Version within the SBML Level for the given URI of this
+   * package.
    *
-   * @param uri the string of URI that represents one of versions of groups package
+   * @param uri the string of the URI that represents one of the versions of
+   * the "groups" package.
    *
-   * @return the SBML version with the given URI of this package. 0 will be returned
-   * if the given URI is invalid.
+   * @return the SBML Version within the SBML Level for the given URI of this
+   * package, or @c 0 if the given URI is invalid.
    */
-  virtual unsigned int getVersion(const std::string &uri) const;
+  virtual unsigned int getVersion(const std::string& uri) const;
 
 
   /**
-   * Returns the package version with the given URI of this package.
+   * Returns the SBML Level 3 package version for the given URI of this
+   * package.
    *
-   * @param uri the string of URI that represents one of versions of groups package
+   * @param uri the string of the URI that represents one of the versions of
+   * the "groups" package.
    *
-   * @return the package version with the given URI of this package. 0 will be returned
-   * if the given URI is invalid.
+   * @return the version of the SBML Level 3 package for the given URI of
+   * this package, or @c 0 if the given URI is invalid.
    */
-  virtual unsigned int getPackageVersion(const std::string &uri) const;
+  virtual unsigned int getPackageVersion(const std::string& uri) const;
 
 
   /**
-   * Returns an SBMLExtensionNamespaces<GroupsExtension> object whose alias type is 
-   * GroupsPkgNamespace.
-   * Null will be returned if the given uri is not defined in the groups package.
+   * Returns a GroupsPkgNamespaces object.
    *
-   * @param uri the string of URI that represents one of versions of groups package
+   * @param uri the string of the URI that represents one of the versions of
+   * the "groups" package.
    *
-   * @return an GroupsPkgNamespace object corresponding to the given uri. NULL will
-   * be returned if the given URI is not defined in groups package.
+   * @return GroupsPkgNamespaces object corresponding to the given URI of this
+   * package, or @c NULL if the given URI is not defined in the "groups"
+   * package.
    */
-  virtual SBMLNamespaces* getSBMLExtensionNamespaces(const std::string &uri) const;
+  virtual SBMLNamespaces* getSBMLExtensionNamespaces(const std::string& uri)
+    const;
 
 
   /**
-   * This method takes a type code from the Groups package and returns a string representing 
-   * the code.
+   * Returns a string describing the type code of the “groups”
+   * package.
+   *
+   * @param typeCode a libSBML type code defined by the libSBML extension
+   * implementing support for the SBML Level 3 “groups”
+   * package.
+   *
+   * @return a text string representing the type code given by @p typeCode. If
+   * the type code is unrecognized for this implementation of the libSBML
+   * “groups” package, the string returned will be <code>"(Unknown
+   * SBML Groups Type)"</code>.
    */
   virtual const char* getStringFromTypeCode(int typeCode) const;
 
 
+
   /** @cond doxygenLibsbmlInternal */
+
   /**
-   * Initializes groups extension by creating an object of this class with 
-   * required SBasePlugin derived objects and registering the object 
-   * to the SBMLExtensionRegistry class.
-   *
-   * (NOTE) This function is automatically invoked when creating the following
-   *        global object in GroupsExtension.cpp
+   * Returns the entry in the error table at this index.
    *
-   *        static SBMLExtensionRegister<GroupsExtension> groupsExtensionRegistry;
+   * @param index an unsigned integer representing the index of the error.
    *
+   * @return packageErrorTableEntry object in the GroupsSBMLErrorTable.
    */
+  virtual packageErrorTableEntry getErrorTable(unsigned int index) const;
 
-  static void init();
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Return the entry in the error table at this index. 
+   * Return the index in the error table with the given errorId.
    *
-   * @param index an unsigned intgere representing the index of the error in the GroupsSBMLErrorTable
+   * @param errorId an unsigned integer representing the errorId of the error.
    *
-   * @return packageErrorTableEntry object in the GroupsSBMLErrorTable corresponding to the index given.
+   * @return unsigned int representing the index in the GroupsSBMLErrorTable
+   * corresponding to the errorId given.
    */
-  virtual packageErrorTableEntry getErrorTable(unsigned int index) const;
+  virtual unsigned int getErrorTableIndex(unsigned int errorId) const;
 
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Return the index in the error table with the given errorId. 
-   *
-   * @param errorId an unsigned intgere representing the errorId of the error in the GroupsSBMLErrorTable
+   * Returns the offset for the errorId range for the "groups" package.
    *
-   * @return unsigned integer representing the index in the GroupsSBMLErrorTable corresponding to the errorId given.
+   * @return unsigned int representing the offset for errors in the
+   * GroupsSBMLErrorTable.
    */
-  virtual unsigned int getErrorTableIndex(unsigned int errorId) const;
+  virtual unsigned int getErrorIdOffset() const;
 
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Return the offset for the errorId range for the groups L3 package. 
+   * Initializes groups extension by creating an object of this class with the
+   * required SBasePlugin derived objects and registering the object to the
+   * SBMLExtensionRegistry class
+   *
+   * This function is automatically invoked when creatingthe following global
+   * object in GroupsExtension.cpp
    *
-   * @return unsigned intege representing the  offset for errors GroupsSBMLErrorTable.
+   * static SBMLExtensionRegister<GroupsExtension> groupsExtensionRegistry;
    */
-  virtual unsigned int getErrorIdOffset() const;
-
+  static void init();
 
-  /** @endcond doxygenLibsbmlInternal */
+  /** @endcond */
 
 
 };
 
+/**
+ *
+ * Required typedef definitions
+ *
+ * GroupsPkgNamespace is derived from SBMLNamespaces class and used when
+ * creating an object of SBase derived classes defined in the groups package
+ *
+ * SBMLExtensionNamespaces<GroupsExtension> must be instantiated in
+ * GroupsExtension.cpp for DLL
+ *
+ */
+typedef SBMLExtensionNamespaces<GroupsExtension> GroupsPkgNamespaces;
+
+
+LIBSBML_CPP_NAMESPACE_END
 
-// --------------------------------------------------------------------
-//
-// Required typedef definitions
-//
-// GroupsPkgNamespaces is derived from the SBMLNamespaces class and
-// used when creating an object of SBase derived classes defined in
-// groups package.
-//
-// --------------------------------------------------------------------
-//
-// (NOTE) 
-//
-// SBMLExtensionNamespaces<GroupsExtension> must be instantiated
-// in GroupsExtension.cpp for DLL.
-//
-typedef SBMLExtensionNamespaces<GroupsExtension> GroupsPkgNamespaces; 
 
+
+
+#endif /* __cplusplus */
+
+
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+/**
+ * @enum SBMLGroupsTypeCode_t
+ * @brief SBMLGroupsTypeCode_t Enumeration of possible types in the libSBML
+ * “groups” package implementation.
+ *
+ * @copydetails doc_what_are_typecodes
+ *
+ * @copydetails doc_additional_typecode_details
+ */
 typedef enum
 {
-    SBML_GROUPS_MEMBER             = 500
-  , SBML_GROUPS_MEMBER_CONSTRAINT  = 501
-  , SBML_GROUPS_GROUP              = 502
+  SBML_GROUPS_MEMBER     =   500  /*!<Member */
+, SBML_GROUPS_GROUP      =   501  /*!<Group */
 } SBMLGroupsTypeCode_t;
 
 
+/**
+ * @enum GroupKind_t
+ * @brief Enumeration of values permitted as the value of the "kind"
+ * attribute on Group objects.
+ *
+ * @see Group::getKind()
+ * @see Group::setKind(@if java long kind at endif)
+ */
+typedef enum
+{
+  GROUP_KIND_CLASSIFICATION       /*!< The group kind is @c "classification". */
+, GROUP_KIND_PARTONOMY            /*!< The group kind is @c "partonomy". */
+, GROUP_KIND_COLLECTION           /*!< The group kind is @c "collection". */
+, GROUP_KIND_UNKNOWN              /*!< Invalid GroupKind value. */
+} GroupKind_t;
+
+
+/**
+ */
+LIBSBML_EXTERN
+const char*
+GroupKind_toString(GroupKind_t gk);
+
+
+/**
+ */
+LIBSBML_EXTERN
+GroupKind_t
+GroupKind_fromString(const char* code);
+
+
+/**
+ */
+LIBSBML_EXTERN
+int
+GroupKind_isValid(GroupKind_t gk);
+
+
+/**
+ */
+LIBSBML_EXTERN
+int
+GroupKind_isValidString(const char* code);
+
+
 
 
 LIBSBML_CPP_NAMESPACE_END
 
 
-#endif /* __cplusplus */
-#endif /* GroupsExtension_H__ */
+
+
+#endif /* !GroupsExtension_H__ */
 
 
diff --git a/src/sbml/packages/groups/extension/GroupsModelPlugin.cpp b/src/sbml/packages/groups/extension/GroupsModelPlugin.cpp
index ea3adcf..a828cd3 100644
--- a/src/sbml/packages/groups/extension/GroupsModelPlugin.cpp
+++ b/src/sbml/packages/groups/extension/GroupsModelPlugin.cpp
@@ -1,318 +1,238 @@
 /**
- * @file    GroupsModelPlugin.cpp
- * @brief   Implementation of GroupsModelPlugin, the plugin class of
- *          groups package for the Model element.
- * @author  Akiya Jouraku
- *
- * $Id: GroupsModelPlugin.cpp 13541 2011-04-08 22:16:45Z fbergmann $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/src/sbml/packages/groups/extension/GroupsModelPlugin.cpp $
+ * @file GroupsModelPlugin.cpp
+ * @brief Implementation of the GroupsModelPlugin class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
-
 #include <sbml/packages/groups/extension/GroupsModelPlugin.h>
-#include <sbml/packages/groups/sbml/Group.h>
-
+#include <sbml/packages/groups/validator/GroupsSBMLError.h>
+#include <sbml/util/ElementFilter.h>
 #include <sbml/Model.h>
 
 
 using namespace std;
 
 
-#ifdef __cplusplus
 
 LIBSBML_CPP_NAMESPACE_BEGIN
 
 
+
+
+#ifdef __cplusplus
+
+
 /*
- * Creates a new GroupsModelPlugin
+ * Creates a new GroupsModelPlugin using the given uri, prefix and package
+ * namespace.
  */
-GroupsModelPlugin::GroupsModelPlugin(const std::string& uri,  
-                                 const std::string& prefix, 
-                               GroupsPkgNamespaces* groupsns) :
-    SBasePlugin(uri, prefix, groupsns)
+GroupsModelPlugin::GroupsModelPlugin(const std::string& uri,
+                                     const std::string& prefix,
+                                     GroupsPkgNamespaces* groupsns)
+  : SBasePlugin(uri, prefix, groupsns)
   , mGroups (groupsns)
 {
+  connectToChild();
 }
 
 
 /*
  * Copy constructor for GroupsModelPlugin.
  */
-GroupsModelPlugin::GroupsModelPlugin(const GroupsModelPlugin& orig) :
-    SBasePlugin(orig)
-  , mGroups ( orig.mGroups)
+GroupsModelPlugin::GroupsModelPlugin(const GroupsModelPlugin& orig)
+  : SBasePlugin( orig )
+  , mGroups ( orig.mGroups )
 {
+  connectToChild();
 }
 
 
 /*
- * Destroy this object.
- */
-GroupsModelPlugin::~GroupsModelPlugin () {}
-
-/*
  * Assignment operator for GroupsModelPlugin.
  */
-GroupsModelPlugin& 
-GroupsModelPlugin::operator=(const GroupsModelPlugin& orig)
+GroupsModelPlugin&
+GroupsModelPlugin::operator=(const GroupsModelPlugin& rhs)
 {
-  if(&orig!=this)
+  if (&rhs != this)
   {
-    this->SBasePlugin::operator =(orig);
-    mGroups    = orig.mGroups;
-  }    
+    SBasePlugin::operator=(rhs);
+    mGroups = rhs.mGroups;
+    connectToChild();
+  }
+
   return *this;
 }
 
 
 /*
  * Creates and returns a deep copy of this GroupsModelPlugin object.
- * 
- * @return a (deep) copy of this SBase object
  */
-GroupsModelPlugin* 
-GroupsModelPlugin::clone () const
+GroupsModelPlugin*
+GroupsModelPlugin::clone() const
 {
-  return new GroupsModelPlugin(*this);  
+  return new GroupsModelPlugin(*this);
 }
 
 
-//---------------------------------------------------------------
-//
-// overridden virtual functions for read/write/check
-//
-//---------------------------------------------------------------
-
 /*
- * create object
+ * Destructor for GroupsModelPlugin.
  */
-SBase*
-GroupsModelPlugin::createObject(XMLInputStream& stream)
+GroupsModelPlugin::~GroupsModelPlugin()
 {
-  SBase*        object = 0;
-
-  const std::string&   name   = stream.peek().getName();
-  const XMLNamespaces& xmlns  = stream.peek().getNamespaces();
-  const std::string&   prefix = stream.peek().getPrefix();
-
-  const std::string& targetPrefix = (xmlns.hasURI(mURI)) ? xmlns.getPrefix(mURI) : mPrefix;
-  
-  if (prefix == targetPrefix)
-  {
-    if ( name == "listOfGroups" ) 
-    {
-      //cout << "[DEBUG] GroupsModelPlugin::createObject create listOfGroups" << endl;
-      object = &mGroups;
-    
-      if (targetPrefix.empty())
-      {
-        //
-        // (NOTE)
-        //
-        // A top-level element (listOfGroups) of the groups extension is located 
-        // in a default namespace, and thus xmlns=".." attribute must be added to 
-        // the element.
-        // This is done by invoking SBMLDocument::enableDefaultNS() function with 
-        // the two arguments (the uri of this package and true value).
-        //
-        mGroups.getSBMLDocument()->enableDefaultNS(mURI,true);
-      }
-    }          
-  }    
-
-  return object;
 }
 
 
 /*
- *
- */
-void
-GroupsModelPlugin::writeElements (XMLOutputStream& stream) const
-{
-  if (getNumGroups() > 0)
-  {
-    mGroups.write(stream);
-  }    
-}
-
-
-/* default for components that have no required elements */
-bool
-GroupsModelPlugin::hasRequiredElements() const
-{
-  bool allPresent = true;
-
-  if (mGroups.size() < 1)
-  {
-    allPresent = false;    
-  }
-  return allPresent;
-}
-
-
-
-/*
- *
- *  (EXTENSION) Additional public functions
- *
- */  
-
-
-/*
- * Returns the ListOf Groups for this Model.
+ * Returns the ListOfGroups from this GroupsModelPlugin.
  */
 const ListOfGroups*
-GroupsModelPlugin::getListOfGroups () const
+GroupsModelPlugin::getListOfGroups() const
 {
-  return &this->mGroups;
+  return &mGroups;
 }
 
 
 /*
- * Returns the ListOf Groups for this Model.
+ * Returns the ListOfGroups from this GroupsModelPlugin.
  */
 ListOfGroups*
-GroupsModelPlugin::getListOfGroups ()
+GroupsModelPlugin::getListOfGroups()
 {
-  return &this->mGroups;
+  return &mGroups;
 }
 
 
 /*
- * Returns the groups object that belongs to the given index. If the index
- * is invalid, NULL is returned.
+ * Get a Group from the GroupsModelPlugin.
  */
-const Group*
-GroupsModelPlugin::getGroup (unsigned int index) const
+Group*
+GroupsModelPlugin::getGroup(unsigned int n)
 {
-  return static_cast<const Group*>( mGroups.get(index) );
+  return static_cast< Group*>(mGroups.get(n));
 }
 
 
 /*
- * Returns the groups object that belongs to the given index. If the index
- * is invalid, NULL is returned.
+ * Get a Group from the GroupsModelPlugin.
  */
-Group*
-GroupsModelPlugin::getGroup (unsigned int index)
+const Group*
+GroupsModelPlugin::getGroup(unsigned int n) const
 {
-  return static_cast<Group*>( mGroups.get(index) );
+  return static_cast<const Group*>(mGroups.get(n));
 }
 
 
 /*
- * Returns the group object based on its identifier.
+ * Get a Group from the GroupsModelPlugin based on its identifier.
  */
 Group*
-GroupsModelPlugin::getGroup (const std::string& sid)
+GroupsModelPlugin::getGroup(const std::string& sid)
 {
-  return static_cast<Group*>( mGroups.get(sid) );
+  return static_cast< Group*>(mGroups.get(sid));
 }
 
 
 /*
- * Returns the group object based on its identifier.
+ * Get a Group from the GroupsModelPlugin based on its identifier.
  */
-const Group* 
-GroupsModelPlugin::getGroup (const std::string& sid) const
+const Group*
+GroupsModelPlugin::getGroup(const std::string& sid) const
 {
-  return static_cast<const Group*>( mGroups.get(sid) );
+  return static_cast<const Group*>(mGroups.get(sid));
 }
 
 
 /*
- * Returns the number of Group objects.
+ * Adds a copy of the given Group to this GroupsModelPlugin.
  */
-unsigned int 
-GroupsModelPlugin::getNumGroups() const
-{
-  return mGroups.size();
-}
-
-
-
-/*
- * Adds a copy of the groups object to the list of groupss.
- */ 
 int
-GroupsModelPlugin::addGroup (const Group* groups)
+GroupsModelPlugin::addGroup(const Group* g)
 {
-  if (!groups)
+  if (g == NULL)
   {
     return LIBSBML_OPERATION_FAILED;
-  }    
-  else if (!groups->hasRequiredElements())
+  }
+  else if (g->hasRequiredAttributes() == false)
   {
     return LIBSBML_INVALID_OBJECT;
   }
-  else if (getLevel() != groups->getLevel())
+  else if (getLevel() != g->getLevel())
   {
     return LIBSBML_LEVEL_MISMATCH;
   }
-  else if (getVersion() != groups->getVersion())
+  else if (getVersion() != g->getVersion())
   {
     return LIBSBML_VERSION_MISMATCH;
   }
-  else if (getPackageVersion() != groups->getPackageVersion())
+  else if (getPackageVersion() != g->getPackageVersion())
   {
     return LIBSBML_PKG_VERSION_MISMATCH;
   }
+  else if (g->isSetId() && (mGroups.get(g->getId())) != NULL)
+  {
+    return LIBSBML_DUPLICATE_OBJECT_ID;
+  }
   else
   {
-    mGroups.append(groups);
+    mGroups.append(g);
+    return LIBSBML_OPERATION_SUCCESS;
   }
+}
 
-  return LIBSBML_OPERATION_SUCCESS;
 
+/*
+ * Get the number of Group objects in this GroupsModelPlugin.
+ */
+unsigned int
+GroupsModelPlugin::getNumGroups() const
+{
+  return mGroups.size();
 }
 
 
 /*
- * Creates a new groups object and adds it to the list of groups objects.
- * A reference to the newly created object is returned.
+ * Creates a new Group object, adds it to this GroupsModelPlugin object and
+ * returns the Group object created.
  */
 Group*
-GroupsModelPlugin::createGroup ()
+GroupsModelPlugin::createGroup()
 {
-  Group* g = 0;
+  Group* g = NULL;
 
   try
-  {  
+  {
     GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
     g = new Group(groupsns);
     delete groupsns;
   }
-  catch(...)
+  catch (...)
   {
-    /* 
-     * NULL will be returned if the mSBMLNS is invalid (basically this
-     * should not happen) or some exception is thrown (e.g. std::bad_alloc)
-     *
-     * (Maybe this should be changed so that caller can detect what kind 
-     *  of error happened in this function.)
-     */
   }
 
   if (g != NULL)
@@ -325,89 +245,353 @@ GroupsModelPlugin::createGroup ()
 
 
 /*
- * Removes the nth Group object from this Model object and
- * returns a pointer to it.
+ * Removes the nth Group from this GroupsModelPlugin and returns a pointer to
+ * it.
  */
-Group* 
-GroupsModelPlugin::removeGroup (unsigned int n)
+Group*
+GroupsModelPlugin::removeGroup(unsigned int n)
 {
   return static_cast<Group*>(mGroups.remove(n));
 }
 
 
 /*
- * Removes the Group object with the given id attribute from 
- * this plugin object and returns a pointer to it.
+ * Removes the Group from this GroupsModelPlugin based on its identifier and
+ * returns a pointer to it.
  */
-Group* 
-GroupsModelPlugin::removeGroup (const std::string& sid)
+Group*
+GroupsModelPlugin::removeGroup(const std::string& sid)
 {
   return static_cast<Group*>(mGroups.remove(sid));
 }
 
 
+/** @cond doxygenLibsbmlInternal */
+
 /*
- * Sets the parent SBMLDocument of this SBML object.
- *
- * @param d the SBMLDocument object to use
+ * Write any contained elements
  */
-void 
-GroupsModelPlugin::setSBMLDocument (SBMLDocument* d)
+void
+GroupsModelPlugin::writeElements(XMLOutputStream& stream) const
+{
+  if (getNumGroups() > 0)
+  {
+    mGroups.write(stream);
+  }
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Accepts the given SBMLVisitor
+ */
+bool
+GroupsModelPlugin::accept(SBMLVisitor& v) const
+{
+  const Model* m = static_cast<const Model*>(this->getParentSBMLObject());
+  v.visit(*m);
+  v.leave(*m);
+
+  mGroups.accept(v);
+
+  return true;
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Sets the parent SBMLDocument
+ */
+void
+GroupsModelPlugin::setSBMLDocument(SBMLDocument* d)
 {
   SBasePlugin::setSBMLDocument(d);
 
-  mGroups.setSBMLDocument(d);  
+  mGroups.setSBMLDocument(d);
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Sets the parent SBML object of this plugin object to
- * this object and child elements (if any).
- * (Creates a child-parent relationship by this plugin object)
+ * Connects to child elements
  */
 void
-GroupsModelPlugin::connectToParent (SBase* sbase)
+GroupsModelPlugin::connectToChild()
 {
-  SBasePlugin::connectToParent(sbase);
+  connectToParent(getParentSBMLObject());
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
-  mGroups.connectToParent(sbase);
+/*
+ * Connects to parent element
+ */
+void
+GroupsModelPlugin::connectToParent(SBase* base)
+{
+  SBasePlugin::connectToParent(base);
+
+  mGroups.connectToParent(base);
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Enables/Disables the given package with child elements in this plugin
- * object (if any).
+ * Enables/disables the given package with this element
  */
 void
 GroupsModelPlugin::enablePackageInternal(const std::string& pkgURI,
-                                        const std::string& pkgPrefix, bool flag)
+                                         const std::string& pkgPrefix,
+                                         bool flag)
 {
-  mGroups.enablePackageInternal(pkgURI,pkgPrefix,flag);
+  mGroups.enablePackageInternal(pkgURI, pkgPrefix, flag);
 }
 
+/** @endcond */
+
 
 /*
- * Accept the SBMLVisitor.
+ * Returns the first child element that has the given @p id in the model-wide
+ * SId namespace, or @c NULL if no such object is found.
  */
-bool
-GroupsModelPlugin::accept(SBMLVisitor& v) const
+SBase*
+GroupsModelPlugin::getElementBySId(const std::string& id)
 {
-  const Model * model = static_cast<const Model * >(this->getParentSBMLObject());
+  if (id.empty())
+  {
+    return NULL;
+  }
 
-  v.visit(*model);
-  v.leave(*model);
+  SBase* obj = NULL;
 
-  for(unsigned int i = 0; i < getNumGroups(); i++)
+  obj = mGroups.getElementBySId(id);
+
+  if (obj != NULL)
   {
-    getGroup(i)->accept(v);
+    return obj;
   }
 
-  return true;
+  return obj;
 }
 
 
+/*
+ * Returns the first child element that has the given @p metaid, or @c NULL if
+ * no such object is found.
+ */
+SBase*
+GroupsModelPlugin::getElementByMetaId(const std::string& metaid)
+{
+  if (metaid.empty())
+  {
+    return NULL;
+  }
+
+  SBase* obj = NULL;
+
+  if (mGroups.getMetaId() == metaid)
+  {
+    return &mGroups;
+  }
+
+  obj = mGroups.getElementByMetaId(metaid);
+
+  if (obj != NULL)
+  {
+    return obj;
+  }
+
+  return obj;
+}
+
+
+/*
+ * Returns a List of all child SBase objects, including those nested to an
+ * arbitrary depth.
+ */
+List*
+GroupsModelPlugin::getAllElements(ElementFilter* filter)
+{
+  List* ret = new List();
+  List* sublist = NULL;
+
+
+  ADD_FILTERED_LIST(ret, sublist, mGroups, filter);
+
+  return ret;
+}
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Append items from model (used in comp flattening)
+ */
+int
+GroupsModelPlugin::appendFrom(const Model* model)
+{
+  int ret = LIBSBML_OPERATION_SUCCESS;
+
+  if (model == NULL)
+  {
+    return LIBSBML_INVALID_OBJECT;
+  }
+
+  const GroupsModelPlugin* plug = static_cast<const
+    GroupsModelPlugin*>(model->getPlugin(getPrefix()));
+
+  if (plug == NULL)
+  {
+    return ret;
+  }
+
+  Model* parent = static_cast<Model*>(getParentSBMLObject());
+
+  if (parent == NULL)
+  {
+    return LIBSBML_INVALID_OBJECT;
+  }
+
+  ret = mGroups.appendFrom(plug->getListOfGroups());
+
+  if (ret != LIBSBML_OPERATION_SUCCESS)
+  {
+    return ret;
+  }
+
+  return ret;
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Creates a new object from the next XMLToken on the XMLInputStream
+ */
+SBase*
+GroupsModelPlugin::createObject(XMLInputStream& stream)
+{
+  SBase* obj = NULL;
+
+  const std::string& name = stream.peek().getName();
+
+  if (name == "listOfGroups")
+  {
+    if (mGroups.size() != 0)
+    {
+      getErrorLog()->logPackageError("groups", GroupsModelAllowedElements,
+        getPackageVersion(), getLevel(), getVersion());
+    }
+
+    obj = &mGroups;
+  }
+
+  connectToChild();
+
+  return obj;
+}
+
+/** @endcond */
+
+
+void 
+GroupsModelPlugin::copyInformationToNestedLists()
+{
+  bool change = true;
+  while (change) 
+  {
+    change = false;
+    
+    for (unsigned int lnum = 0; lnum < getNumGroups(); lnum++) 
+    {
+      Group* group = getGroup(lnum);
+      ListOf* listofmembers = group->getListOfMembers();
+      
+      for (unsigned int mnum = 0; mnum < group->getNumMembers(); mnum++) 
+      {
+        Member* member = group->getMember(mnum);
+        SBase* referent = NULL;
+        
+        if (member->isSetIdRef()) 
+        {
+          referent = getElementBySId(member->getIdRef());
+        }
+        
+        if (referent == NULL && member->isSetMetaIdRef()) 
+        {
+          referent = getElementByMetaId(member->getMetaIdRef());
+        }
+        
+        if (referent != NULL && referent->getTypeCode() == SBML_LIST_OF) 
+        {
+          ListOf* list = static_cast<ListOf*>(referent);
+          
+          if (list->getItemTypeCode() == SBML_GROUPS_MEMBER) 
+          {
+            if (!referent->isSetSBOTerm()) 
+            {
+              if (listofmembers->isSetSBOTerm()) 
+              {
+                referent->setSBOTerm(listofmembers->getSBOTerm());
+                change = true;
+              }
+            }
+            
+            if (!referent->isSetNotes()) 
+            {
+              if (listofmembers->isSetNotes()) 
+              {
+                referent->setNotes(listofmembers->getNotes());
+                change = true;
+              }
+            }
+            
+            if (!referent->isSetAnnotation()) 
+            {
+              if (listofmembers->isSetAnnotation()) 
+              {
+                referent->setAnnotation(listofmembers->getAnnotation());
+                change = true;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+
+
+#endif /* __cplusplus */
+
+
 
 
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __cplusplus */
+
diff --git a/src/sbml/packages/groups/extension/GroupsModelPlugin.h b/src/sbml/packages/groups/extension/GroupsModelPlugin.h
index 4ffd0e5..7140708 100644
--- a/src/sbml/packages/groups/extension/GroupsModelPlugin.h
+++ b/src/sbml/packages/groups/extension/GroupsModelPlugin.h
@@ -1,37 +1,57 @@
 /**
- * @file    GroupsModelPlugin.h
- * @brief   Definition of GroupsModelPlugin, the plugin class of
- *          groups package for the Model element.
- * @author  Akiya Jouraku
- *
- * $Id: GroupsModelPlugin.h 13541 2011-04-08 22:16:45Z fbergmann $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/src/sbml/packages/groups/extension/GroupsModelPlugin.h $
+ * @file GroupsModelPlugin.h
+ * @brief Definition of the GroupsModelPlugin class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
+ *
+ * @class GroupsModelPlugin
+ * @sbmlbrief{groups} Extension of Model.
+ *
+ * The GroupsModelPlugin class inherits from the SBMLSBasePlugin class, and
+ * codifies the extensions to the Model class defined in the SBML
+ * Level 3 @ref groups (“groups”) package.  This extension
+ * allows a Model to contain an optional ListOfGroups object inside a new
+ * element called <code><listOfGroups></code>.  This list holds the
+ * definition of optional groups defined in the model.
+ *
+ * A "group" in SBML Level 3 provides a mechanism for
+ * indicating that components of an SBML model are related in some way.
+ * Groups may contain either the same or different types of SBML objects, and
+ * groups may be nested if desired. There are no predefined behavioral
+ * semantics associated with groups.  All groups in a given model have to be
+ * defined as Group objects and included in the ListOfGroups object attached
+ * to the Model object containing them.
  */
 
-#ifndef GroupsModelPlugin_h
-#define GroupsModelPlugin_h
+
+#ifndef GroupsModelPlugin_H__
+#define GroupsModelPlugin_H__
 
 
 #include <sbml/common/extern.h>
@@ -41,303 +61,444 @@
 
 
 #include <sbml/extension/SBasePlugin.h>
+#include <sbml/packages/groups/sbml/ListOfGroups.h>
 #include <sbml/packages/groups/sbml/Group.h>
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
+
 class LIBSBML_EXTERN GroupsModelPlugin : public SBasePlugin
 {
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  ListOfGroups mGroups;
+
+  /** @endcond */
+
 public:
 
   /**
-   * Creates a new GroupsModelPlugin
+   * Creates a new GroupsModelPlugin using the given URI, prefix and package
+   * namespace.
+   *
+   * @param uri a string, representing the URI of the package.
+   *
+   * @param prefix a string, the prefix to be used.
+   *
+   * @param groupsns a pointer to the GroupsPkgNamespaces object to be used.
    */
-  GroupsModelPlugin(const std::string& uri, const std::string& prefix, 
-                                 GroupsPkgNamespaces* groupsns);
+  GroupsModelPlugin(const std::string& uri,
+                    const std::string& prefix,
+                    GroupsPkgNamespaces* groupsns);
 
 
   /**
    * Copy constructor for GroupsModelPlugin.
    *
-   * @param orig; the GroupsModelPlugin instance to copy.
+   * @param orig the GroupsModelPlugin instance to copy.
    */
   GroupsModelPlugin(const GroupsModelPlugin& orig);
 
 
   /**
-   * Destroy this object.
-   */
-  virtual ~GroupsModelPlugin ();
-
-
-  /**
    * Assignment operator for GroupsModelPlugin.
+   *
+   * @param rhs the GroupsModelPlugin object whose values are to be used as
+   * the basis of the assignment.
    */
-  GroupsModelPlugin& operator=(const GroupsModelPlugin& orig);
+  GroupsModelPlugin& operator=(const GroupsModelPlugin& rhs);
 
 
   /**
    * Creates and returns a deep copy of this GroupsModelPlugin object.
-   * 
-   * @return a (deep) copy of this SBase object
+   *
+   * @return a (deep) copy of this GroupsModelPlugin object.
    */
-  virtual GroupsModelPlugin* clone () const;
-
+  virtual GroupsModelPlugin* clone() const;
 
-  // --------------------------------------------------------
-  //
-  // overridden virtual functions for reading/writing/checking 
-  // elements
-  //
-  // --------------------------------------------------------
-
-  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Subclasses must override this method to create, store, and then
-   * return an SBML object corresponding to the next XMLToken in the
-   * XMLInputStream if they have their specific elements.
-   *
-   * @return the SBML object corresponding to next XMLToken in the
-   * XMLInputStream or NULL if the token was not recognized.
+   * Destructor for GroupsModelPlugin.
    */
-  virtual SBase* createObject (XMLInputStream& stream);
+  virtual ~GroupsModelPlugin();
 
 
   /**
-   * Subclasses must override this method to write out their contained
-   * SBML objects as XML elements if they have their specific elements.
+   * Returns the ListOfGroups from this GroupsModelPlugin.
+   *
+   * @return the ListOfGroups from this GroupsModelPlugin.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  virtual void writeElements (XMLOutputStream& stream) const;
+  const ListOfGroups* getListOfGroups() const;
 
 
   /**
-   * Checks if this plugin object has all the required elements.
+   * Returns the ListOfGroups from this GroupsModelPlugin.
    *
-   * Subclasses should override this function if they have their specific
-   * elements.
+   * @return the ListOfGroups from this GroupsModelPlugin.
    *
-   * @return true if this pugin object has all the required elements,
-   * otherwise false will be returned.
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  virtual bool hasRequiredElements() const ;
+  ListOfGroups* getListOfGroups();
 
 
-  /** ------------------------------------------------------------------
+  /**
+   * Returns the nth Group.
    *
-   *  Additional public functions
+   * @param n an unsigned int representing the index of the Group to retrieve.
    *
-   * ------------------------------------------------------------------
-   */
-  
-  /**
-   * Returns the ListOfGroups in this plugin object.
+   * @return the nth Group in the ListOfGroups within this GroupsModelPlugin.
    *
-   * @return ListOfGroups object in this plugin object.
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  const ListOfGroups* getListOfGroups () const;
+  Group* getGroup(unsigned int n);
 
 
   /**
-   * Returns the ListOfGroups in this plugin object.
+   * Get a Group from the GroupsModelPlugin.
+   *
+   * @param n an unsigned int representing the index of the Group to retrieve.
    *
-   * @return ListOfGroups object in this plugin object.
+   * @return the nth Group in the ListOfGroups within this GroupsModelPlugin
+   * object.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  ListOfGroups* getListOfGroups ();
+  const Group* getGroup(unsigned int n) const;
 
 
   /**
-   * Returns the Group object that belongs to the given index. If the
-   * index is invalid, NULL is returned.
+   * Get a Group from the GroupsModelPlugin based on its identifier.
+   *
+   * @param sid a string representing the identifier of the Group to retrieve.
    *
-   * @param n the index number of the Group to get.
+   * @return the Group in the ListOfGroups within this GroupsModelPlugin with
+   * the given identifier @p sid, or @c NULL if no such Group exists.
    *
-   * @return the nth Group in the ListOfGroups.
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  const Group* getGroup (unsigned int n) const;
+  Group* getGroup(const std::string& sid);
 
 
   /**
-   * Returns the Group object that belongs to the given index. If the
-   * index is invalid, NULL is returned.
+   * Get a Group from the GroupsModelPlugin based on its identifier.
    *
-   * @param n the index number of the Group to get.
+   * @param sid a string representing the identifier of the Group to retrieve.
    *
-   * @return the nth Group in the ListOfGroups.
+   * @return the Group in the ListOfGroups within this GroupsModelPlugin with
+   * the given identifier @p sid, or @c NULL if no such Group exists.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  Group* getGroup (unsigned int n);
+  const Group* getGroup(const std::string& sid) const;
 
 
   /**
-   * Returns the group object based on its identifier.
-   *
-   * @param sid a string representing the identifier 
-   * of the Group to get.
-   * 
-   * @return Group in the ListOfGroups with the given id
-   * or NULL if no such Group exists.
-   *
-   * @see get(unsigned int n)
-   * @see size()
+   * Adds a copy of the given Group to this GroupsModelPlugin.
+   *
+   * @param g the Group object to add.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_LEVEL_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_VERSION_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_PKG_VERSION_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_DUPLICATE_OBJECT_ID, OperationReturnValues_t}
+   *
+   * @copydetails doc_note_object_is_copied
+   *
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  Group* getGroup (const std::string& sid);
+  int addGroup(const Group* g);
 
 
   /**
-   * Returns the group object based on its identifier.
+   * Get the number of Group objects in this GroupsModelPlugin.
    *
-   * @param sid a string representing the identifier 
-   * of the Group to get.
-   * 
-   * @return Group in the ListOfGroups with the given id 
-   * or NULL if no such Group exists.
+   * @return the number of Group objects in this GroupsModelPlugin.
    *
-   * @see get(unsigned int n)
-   * @see size()
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
-  const Group* getGroup (const std::string& sid) const;
+  unsigned int getNumGroups() const;
+
 
   /**
-   * Adds a copy of the given Group object to the list of groups.
+   * Creates a new Group object
    *
-   * @param group the Group object to be added to the list of groups.
+   * This method creates a new Group object, adds it to this
+   * GroupsModelPlugin object, and returns the Group object created.
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   */ 
-  int addGroup (const Group* group);
-
-
-  /**
-   * Creates a new groups object and adds it to the list of groups objects
-   * and returns it.
+   * @return a new Group object instance.
    *
-   * @return a newly created Group object
+   * @see addGroup(const Group* g)
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see removeGroup(unsigned int n)
+   * @see removeGroup(const std::string& sid)
    */
   Group* createGroup();
 
 
   /**
-   * Removes the nth Group object from this plugin object and
+   * Removes the nth Group.
+   *
+   * This removes the nth Group from this GroupsModelPlugin object and
    * returns a pointer to it.
    *
-   * The caller owns the returned object and is responsible for
-   *  deleting it.
+   * @param n an unsigned int representing the index of the Group to remove.
+   *
+   * @return a pointer to the nth Group in this GroupsModelPlugin.
    *
-   * @param n the index of the Group object to remove
+   * @note The caller owns the returned object and is responsible for deleting
+   * it.
    *
-   * @return the Group object removed.  As mentioned above, the 
-   * caller owns the returned object. NULL is returned if the 
-   * given index is out of range.
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
+   * @see removeGroup(const std::string& sid)
    */
-  Group* removeGroup (unsigned int n);
+  Group* removeGroup(unsigned int n);
 
 
   /**
-   * Removes the Group object with the given id attribute from 
-   * this plugin object and returns a pointer to it.
+   * Removes the Group from this GroupsModelPlugin based on its identifier.
+   *
+   * This method removes the Group from this GroupsModelPlugin based on its
+   * identifier, and returns a pointer to it.
+   *
+   * @param sid a string representing the identifier of the Group to remove.
    *
-   * The caller owns the returned object and is responsible for
-   * deleting it.
+   * @return the Group in this GroupsModelPlugin based on the identifier, or
+   * @c @c NULL if no such Group exists.
    *
-   * @param sid the id attribute of the Group object to remove
+   * @note The caller owns the returned object and is responsible for deleting
+   * it.
    *
-   * @return the Group object removed.  As mentioned above, the 
-   * caller owns the returned object. NULL is returned if the 
-   * given index is out of range.
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see getGroup(const std::string& sid)
+   * @see getGroup(unsigned int n)
+   * @see getNumGroups()
    */
-  Group* removeGroup (const std::string& sid);
+  Group* removeGroup(const std::string& sid);
 
 
+  /** @cond doxygenLibsbmlInternal */
+
   /**
-   * Returns the number of Group object in this plugin object.
-   *
-   * @return the number of Group object in this plugin object.
+   * Write any contained elements
    */
-  unsigned int getNumGroups () const;
+  virtual void writeElements(XMLOutputStream& stream) const;
+
+  /** @endcond */
+
 
-  // ---------------------------------------------------------
-  //
-  // virtual functions (internal implementation) which should
-  // be overridden by subclasses.
-  //
-  // ---------------------------------------------------------
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Sets the parent SBMLDocument of this plugin object.
+   * Accepts the given SBMLVisitor
+   */
+  virtual bool accept(SBMLVisitor& v) const;
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Sets the parent SBMLDocument
+   */
+  virtual void setSBMLDocument(SBMLDocument* d);
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Connects to child elements
+   */
+  virtual void connectToChild();
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Connects to parent element
+   */
+  virtual void connectToParent(SBase* base);
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Enables/disables the given package with this element
+   */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+                                     const std::string& pkgPrefix,
+                                     bool flag);
+
+  /** @endcond */
+
+
+  /**
+   * Returns the first child element that has the given @p id
    *
-   * Subclasses which contain one or more SBase derived elements must
-   * override this function.
+   * This method searches the model-wide SId namespace for the @p id.
    *
-   * @param d the SBMLDocument object to use
+   * @param id a string representing the id attribute of the object to
+   * retrieve.
    *
-   * @see connectToParent
-   * @see enablePackageInternal
+   * @return a pointer to the SBase element with the given @p id.  If no such
+   * object is found, this method returns @c NULL.
    */
-  virtual void setSBMLDocument (SBMLDocument* d);
+  virtual SBase* getElementBySId(const std::string& id);
 
 
   /**
-   * Sets the parent SBML object of this plugin object to
-   * this object and child elements (if any).
-   * (Creates a child-parent relationship by this plugin object)
+   * Returns the first child element that has the given @p metaid.
    *
-   * This function is called when this object is created by
-   * the parent element.
-   * Subclasses must override this this function if they have one
-   * or more child elements.Also, SBasePlugin::connectToParent()
-   * must be called in the overridden function.
+   * @param metaid a string representing the metaid attribute of the object to
+   * retrieve.
    *
-   * @param sbase the SBase object to use
-   *
-   * @see setSBMLDocument
-   * @see enablePackageInternal
+   * @return a pointer to the SBase element with the given @p metaid.  If
+   * no such object is found, this method returns @c NULL.
    */
-  virtual void connectToParent (SBase *sbase);
+  virtual SBase* getElementByMetaId(const std::string& metaid);
 
 
   /**
-   * Enables/Disables the given package with child elements in this plugin
-   * object (if any).
-   * (This is an internal implementation invoked from
-   *  SBase::enablePakcageInternal() function)
+   * Returns a List of all child SBase objects, including those nested to an
+   * arbitrary depth.
    *
-   * @note Subclasses in which one or more SBase derived elements are
-   * defined must override this function.
+   * @param filter an ElementFilter that may impose restrictions on the
+   * objects to be retrieved.
    *
-   * @see setSBMLDocument
-   * @see connectToParent
+   * @return a List pointer of pointers to all SBase child objects with any
+   * restriction imposed.
    */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-                                     const std::string& pkgPrefix, bool flag);
-  /** @endcond doxygenLibsbmlInternal */
+  virtual List* getAllElements(ElementFilter * filter = NULL);
+
 
 
   /** @cond doxygenLibsbmlInternal */
 
-  virtual bool accept (SBMLVisitor& v) const;
+  /**
+   * Append items from model (used in comp flattening)
+   *
+   * @param model a pointer to a model object.
+   *
+   */
+  int appendFrom(const Model* model);
 
-  /** @endcond doxygenLibsbmlInternal */
+  /** @endcond */
 
 
 protected:
+
+
   /** @cond doxygenLibsbmlInternal */
 
-  /*-- data members --*/
+  /**
+   * Creates a new object from the next XMLToken on the XMLInputStream
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+  /** @endcond */
+
+
+public:
+
+  /**
+   * For nested groups (Member objects that reference a ListOfMembers 
+   * object), SBO terms, Notes, and Annotation from the
+   * parent ListOfMembers applies to the child.  This function
+   * copies any information from any of those three things to all 
+   * child ListOfMembers, and if that information is not already 
+   * set.  After calling
+   * this function, it is sufficient to check any ListOfMembers
+   * to see if its SBO term, Notes, or Annotation is set, without
+   * further checking to see if that element was nested in another
+   * Group.
+   */
+  virtual void copyInformationToNestedLists();
 
-  ListOfGroups mGroups;
 
-  /** @endcond doxygenLibsbmlInternal */
 };
 
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __cplusplus */
-#endif  /* GroupsModelPlugin_h */
+
+
+
+#endif /* __cplusplus */
+
+
+
+
+#endif /* !GroupsModelPlugin_H__ */
 
 
diff --git a/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.cpp b/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.cpp
index c4965d1..afedc23 100644
--- a/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.cpp
@@ -1,66 +1,87 @@
 /**
- * @file:   GroupsSBMLDocumentPlugin.cpp
- * @brief:  Implementation of the GroupsSBMLDocumentPlugin class
- * @author: Generated by autocreate code
+ * @file GroupsSBMLDocumentPlugin.cpp
+ * @brief Implementation of the GroupsSBMLDocumentPlugin class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 #include <sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.h>
+#include <sbml/packages/groups/validator/GroupsSBMLError.h>
 #include <sbml/packages/groups/validator/GroupsConsistencyValidator.h>
 #include <sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.h>
-#include <sbml/packages/groups/validator/GroupsSBMLError.h>
-
 
-#ifdef __cplusplus
-
-/** @cond doxygenLibsbmlInternal */
 
 using namespace std;
 
-/** @endcond doxygenLibsbmlInternal */
+
 
 LIBSBML_CPP_NAMESPACE_BEGIN
 
-GroupsSBMLDocumentPlugin::GroupsSBMLDocumentPlugin (const string &uri, 
-                              const string &prefix, GroupsPkgNamespaces *groupsns)
-  : SBMLDocumentPlugin(uri,prefix, groupsns)
+
+
+
+#ifdef __cplusplus
+
+
+/*
+ * Creates a new GroupsSBMLDocumentPlugin using the given uri, prefix and
+ * package namespace.
+ */
+GroupsSBMLDocumentPlugin::GroupsSBMLDocumentPlugin(const std::string& uri,
+                                                   const std::string& prefix,
+                                                   GroupsPkgNamespaces*
+                                                     groupsns)
+  : SBMLDocumentPlugin(uri, prefix, groupsns)
 {
 }
 
 
-GroupsSBMLDocumentPlugin::GroupsSBMLDocumentPlugin(const GroupsSBMLDocumentPlugin& orig)
-  : SBMLDocumentPlugin(orig)
+/*
+ * Copy constructor for GroupsSBMLDocumentPlugin.
+ */
+GroupsSBMLDocumentPlugin::GroupsSBMLDocumentPlugin(const
+  GroupsSBMLDocumentPlugin& orig)
+  : SBMLDocumentPlugin( orig )
 {
 }
 
 
-GroupsSBMLDocumentPlugin& 
-GroupsSBMLDocumentPlugin::operator=(const GroupsSBMLDocumentPlugin& orig)
+/*
+ * Assignment operator for GroupsSBMLDocumentPlugin.
+ */
+GroupsSBMLDocumentPlugin&
+GroupsSBMLDocumentPlugin::operator=(const GroupsSBMLDocumentPlugin& rhs)
 {
-  if(&orig!=this)
+  if (&rhs != this)
   {
-    SBMLDocumentPlugin::operator =(orig);
-  }    
+    SBMLDocumentPlugin::operator=(rhs);
+  }
+
   return *this;
 }
 
@@ -68,98 +89,87 @@ GroupsSBMLDocumentPlugin::operator=(const GroupsSBMLDocumentPlugin& orig)
 /*
  * Creates and returns a deep copy of this GroupsSBMLDocumentPlugin object.
  */
-GroupsSBMLDocumentPlugin* 
-GroupsSBMLDocumentPlugin::clone () const
+GroupsSBMLDocumentPlugin*
+GroupsSBMLDocumentPlugin::clone() const
 {
-  return new GroupsSBMLDocumentPlugin(*this);  
+  return new GroupsSBMLDocumentPlugin(*this);
 }
 
+
 /*
- * Destroy this object.
+ * Destructor for GroupsSBMLDocumentPlugin.
  */
-GroupsSBMLDocumentPlugin::~GroupsSBMLDocumentPlugin () 
+GroupsSBMLDocumentPlugin::~GroupsSBMLDocumentPlugin()
 {
 }
 
 
+
 /** @cond doxygenLibsbmlInternal */
 
-void 
-GroupsSBMLDocumentPlugin::readAttributes (const XMLAttributes& attributes,
-                            const ExpectedAttributes& expectedAttributes)
+/*
+ * Accepts the given SBMLVisitor
+ */
+bool
+GroupsSBMLDocumentPlugin::accept(SBMLVisitor& v) const
 {
-  // for now don't read the required flag for L2 models 
-  if (getSBMLDocument() != NULL && getSBMLDocument()->getLevel() < 3) return;
-  
-  unsigned int numErrs = getErrorLog()->getNumErrors();
-  XMLTriple tripleRequired("required", mURI, getPrefix());
-  bool assigned = attributes.readInto(tripleRequired, mRequired);
-  if (assigned == false)
-  {
-    if (getErrorLog()->getNumErrors() == numErrs + 1 && 
-        getErrorLog()->contains(XMLAttributeTypeMismatch))
-    {
-      getErrorLog()->remove(XMLAttributeTypeMismatch);
-      getErrorLog()->logPackageError("groups", GroupsUnknownError,
-        getPackageVersion(), getLevel(), getVersion());
-    }
-    else
-    {
-      getErrorLog()->logPackageError("groups", GroupsUnknownError,
-        getPackageVersion(), getLevel(), getVersion());
-    }
-  }
-  else
-  {
-    mIsSetRequired = true;
-    /* LOG ERROR RELATING TO EXPECTED VALUE */
-    //if (mRequired == true)
-    //{
-    //  getErrorLog()->logPackageError("groups", ERROR,
-    //    getPackageVersion(), getLevel(), getVersion());
-    //}
-  }
+  const SBMLDocument* sbmld = static_cast<const
+    SBMLDocument*>(this->getParentSBMLObject());
+  v.visit(*sbmld);
+  v.leave(*sbmld);
+
+  return true;
 }
 
-/** @endcond doxygenLibsbmlInternal*/
+/** @endcond */
+
 
 
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Predicate indicating whether 'comp' flattening has been implemented for the
+ * Groups package.
+ */
 bool
 GroupsSBMLDocumentPlugin::isCompFlatteningImplemented() const
 {
   return false;
 }
 
+/** @endcond */
+
+
 
-unsigned int 
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Calls check consistency for any relevant Groups validators.
+ */
+unsigned int
 GroupsSBMLDocumentPlugin::checkConsistency()
 {
   unsigned int nerrors = 0;
   unsigned int total_errors = 0;
 
-  SBMLDocument* doc = static_cast<SBMLDocument *>(this->getParentSBMLObject());
-  SBMLErrorLog *log = doc->getErrorLog();
+  SBMLDocument* doc = static_cast<SBMLDocument*>(this->getParentSBMLObject());
+  SBMLErrorLog* log = doc->getErrorLog();
 
   unsigned char applicableValidators = doc->getApplicableValidators();
-
-  /* determine which validators to run */
-  bool id    = ((applicableValidators & 0x01) == 0x01);
-  bool sbml  = ((applicableValidators & 0x02) == 0x02);
-  /* LIST OTHERS HERE */
+  bool id = ((applicableValidators & 0x01) ==0x01);
+  bool core = ((applicableValidators & 0x02) ==0x02);
 
   GroupsIdentifierConsistencyValidator id_validator;
-  GroupsConsistencyValidator validator;
-  /* LIST OTHERS HERE */
+  GroupsConsistencyValidator core_validator;
 
   if (id)
   {
     id_validator.init();
     nerrors = id_validator.validate(*doc);
     total_errors += nerrors;
-    if (nerrors > 0) 
+    if (nerrors > 0)
     {
-      log->add(id_validator.getFailures() );
-      /* only want to bail if errors not warnings */
+      log->add(id_validator.getFailures());
       if (log->getNumFailsWithSeverity(LIBSBML_SEV_ERROR) > 0)
       {
         return total_errors;
@@ -167,28 +177,84 @@ GroupsSBMLDocumentPlugin::checkConsistency()
     }
   }
 
-  if (sbml)
+  if (core)
   {
-    validator.init();
-    nerrors = validator.validate(*doc);
+    core_validator.init();
+    nerrors = core_validator.validate(*doc);
     total_errors += nerrors;
-    if (nerrors > 0) 
+    if (nerrors > 0)
     {
-      log->add(validator.getFailures() );
-      // DO NOT NEED THIS IN LAST CALL
-      // /* only want to bail if errors not warnings */
-      // if (log->getNumFailsWithSeverity(LIBSBML_SEV_ERROR) > 0)
-      // {
-      //   return total_errors;
-      // }
+      log->add(core_validator.getFailures());
+      if (log->getNumFailsWithSeverity(LIBSBML_SEV_ERROR) > 0)
+      {
+        return total_errors;
+      }
     }
   }
 
-  /* ADD OTHERS HERE */
+  return total_errors;
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Reads the Groups attributes in the top-level element.
+ */
+void
+GroupsSBMLDocumentPlugin::readAttributes(const XMLAttributes& attributes,
+                                         const ExpectedAttributes&
+                                           /*expectedAttributes*/)
+{
+  if (getSBMLDocument() != NULL && getSBMLDocument()->getLevel() < 3)
+  {
+    return;
+  }
+
+  SBMLErrorLog* log = getErrorLog();
+  unsigned int numErrs = log->getNumErrors();
+  XMLTriple tripleReqd("required", mURI, getPrefix());
+  bool assigned = attributes.readInto(tripleReqd, mRequired);
 
-  return total_errors;  
+  if (assigned == false)
+  {
+    if (log->getNumErrors() == numErrs + 1 &&
+      log->contains(XMLAttributeTypeMismatch))
+    {
+      log->remove(XMLAttributeTypeMismatch);
+      log->logPackageError("groups", GroupsAttributeRequiredMustBeBoolean,
+        getPackageVersion(), getLevel(), getVersion());
+    }
+    else
+    {
+      log->logPackageError("groups", GroupsAttributeRequiredMissing,
+        getPackageVersion(), getLevel(), getVersion());
+    }
+  }
+  else
+  {
+    mIsSetRequired = true;
+    if (mRequired != false)
+    {
+      log->logPackageError("groups", GroupsAttributeRequiredMustHaveValue,
+        getPackageVersion(), getLevel(), getVersion());
+    }
+  }
 }
 
+/** @endcond */
+
+
+
+
+#endif /* __cplusplus */
+
+
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __cplusplus */
+
diff --git a/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.h b/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.h
index 0b2ecd8..9127245 100644
--- a/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.h
+++ b/src/sbml/packages/groups/extension/GroupsSBMLDocumentPlugin.h
@@ -1,29 +1,42 @@
 /**
- * @file:   GroupsSBMLDocumentPlugin.h
- * @brief:  Implementation of the GroupsSBMLDocumentPlugin class
- * @author: Generated by autocreate code
+ * @file GroupsSBMLDocumentPlugin.h
+ * @brief Definition of the GroupsSBMLDocumentPlugin class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
+ *
+ * @class GroupsSBMLDocumentPlugin
+ * @sbmlbrief{groups} Extension of SBMLDocument.
+ *
+ * This class extends SBMLDocumentPlugin, a class that is used by libSBML
+ * plugins as part of their implementation of SBML Level 3 packages.
+ *
+ * @copydetails doc_what_is_sbmldocumentplugin
  */
 
 
@@ -46,19 +59,28 @@ LIBSBML_CPP_NAMESPACE_BEGIN
 
 class LIBSBML_EXTERN GroupsSBMLDocumentPlugin : public SBMLDocumentPlugin
 {
+
 public:
 
   /**
-   * Creates a new GroupsSBMLDocumentPlugin
+   * Creates a new GroupsSBMLDocumentPlugin using the given uri, prefix and
+   * package namespace.
+   *
+   * @param uri a string, representing the uri of the package.
+   *
+   * @param prefix a string, the prefix to be used.
+   *
+   * @param groupsns a pointer to the GroupsPkgNamespaces object to be used.
    */
-  GroupsSBMLDocumentPlugin(const std::string& uri, const std::string& prefix, 
-                                 GroupsPkgNamespaces* groupsns);
+  GroupsSBMLDocumentPlugin(const std::string& uri,
+                           const std::string& prefix,
+                           GroupsPkgNamespaces* groupsns);
 
 
   /**
    * Copy constructor for GroupsSBMLDocumentPlugin.
    *
-   * @param orig; the GroupsSBMLDocumentPlugin instance to copy.
+   * @param orig the GroupsSBMLDocumentPlugin instance to copy.
    */
   GroupsSBMLDocumentPlugin(const GroupsSBMLDocumentPlugin& orig);
 
@@ -66,8 +88,8 @@ public:
   /**
    * Assignment operator for GroupsSBMLDocumentPlugin.
    *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
+   * @param rhs the GroupsSBMLDocumentPlugin object whose values are to be
+   * used as the basis of the assignment.
    */
   GroupsSBMLDocumentPlugin& operator=(const GroupsSBMLDocumentPlugin& rhs);
 
@@ -77,7 +99,7 @@ public:
    *
    * @return a (deep) copy of this GroupsSBMLDocumentPlugin object.
    */
-  virtual GroupsSBMLDocumentPlugin* clone () const;
+  virtual GroupsSBMLDocumentPlugin* clone() const;
 
 
   /**
@@ -86,74 +108,78 @@ public:
   virtual ~GroupsSBMLDocumentPlugin();
 
 
- #ifndef SWIG
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Reads the attributes of corresponding package in SBMLDocument element
+   * Accepts the given SBMLVisitor
    */
-  virtual void readAttributes (const XMLAttributes& attributes, 
-                               const ExpectedAttributes& expectedAttributes);
-
+  virtual bool accept(SBMLVisitor& v) const;
 
-  /** @endcond doxygenLibsbmlInternal */
+  /** @endcond */
 
 
-#endif // SWIG
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Returns boolean based on whether flattening of a comp model has been implemented.
-   *
-   * @returns @c true if flattening for composed models has been implemented,
-   * false otherwise.
+   * Predicate indicating whether 'comp' flattening has been implemented for
+   * the Groups package.
    */
   virtual bool isCompFlatteningImplemented() const;
 
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Check consistency function.
+   * Calls check consistency for any relevant Groups validators.
    */
   virtual unsigned int checkConsistency();
 
+  /** @endcond */
+
+
+
+
+  #ifndef SWIG
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Accepts the SBMLVisitor.
+   * Reads the Groups attributes in the top-level element.
    */
-//  virtual bool accept(SBMLVisitor& v) const;
+  virtual void readAttributes(const XMLAttributes& attributes,
+                              const ExpectedAttributes& expectedAttributes);
 
+  /** @endcond */
 
-   /** @endcond doxygenLibsbmlInternal */
 
 
-protected:
 
-  /** @cond doxygenLibsbmlInternal */
+  #endif /* !SWIG */
 
-  /** @endcond doxygenLibsbmlInternal */
 
+protected:
 
 };
 
 
 
-
 LIBSBML_CPP_NAMESPACE_END
 
 
+
+
 #endif /* __cplusplus */
-#endif /* GroupsSBMLDocumentPlugin_H__ */
+
+
+
+
+#endif /* !GroupsSBMLDocumentPlugin_H__ */
 
 
diff --git a/src/sbml/packages/groups/extension/test/TestGroupsExtension.cpp b/src/sbml/packages/groups/extension/test/TestGroupsExtension.cpp
index 730350c..bd09cc7 100644
--- a/src/sbml/packages/groups/extension/test/TestGroupsExtension.cpp
+++ b/src/sbml/packages/groups/extension/test/TestGroupsExtension.cpp
@@ -258,8 +258,6 @@ START_TEST(test_GroupsExtension_typecode)
                                                               "Group")== 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_GROUPS_MEMBER), 
                                                             "Member") == 0);
-  fail_unless(strcmp(sbext->getStringFromTypeCode(
-                  SBML_GROUPS_MEMBER_CONSTRAINT), "MemberConstraint") == 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_GROUPS_GROUP+1), 
                                         "(Unknown SBML Groups Type)") == 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_GROUPS_MEMBER-1), 
@@ -275,8 +273,6 @@ START_TEST(test_GroupsExtension_SBMLtypecode)
                                                               "Group") == 0);
 	fail_unless(strcmp(SBMLTypeCode_toString(SBML_GROUPS_MEMBER    ,"groups"), 
                                                              "Member") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_GROUPS_MEMBER_CONSTRAINT,
-                                       "groups"),  "MemberConstraint") == 0);
 	fail_unless(strcmp(SBMLTypeCode_toString(SBML_GROUPS_GROUP + 1, "groups"), 
                                          "(Unknown SBML Groups Type)") == 0);
 	fail_unless(strcmp(SBMLTypeCode_toString(SBML_GROUPS_MEMBER - 1, "groups"), 
diff --git a/src/sbml/packages/groups/extension/test/TestGroupsModelPlugin.cpp b/src/sbml/packages/groups/extension/test/TestGroupsModelPlugin.cpp
new file mode 100644
index 0000000..9379965
--- /dev/null
+++ b/src/sbml/packages/groups/extension/test/TestGroupsModelPlugin.cpp
@@ -0,0 +1,342 @@
+/**
+ * @file    TestGroupsModelPlugin.cpp
+ * @brief   TestGroupsModelPlugin unit tests
+ * @author  Lucian Smith
+ *
+ * $Id: $
+ * $HeadURL: $
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2009-2011 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <limits>
+
+#include <iostream>
+#include <check.h>
+#include <sbml/common/extern.h>
+#include <sbml/packages/groups/common/GroupsExtensionTypes.h>
+#include <sbml/extension/SBMLExtensionRegistry.h>
+#include <sbml/SBMLTypeCodes.h>
+#include <sbml/SBMLTypes.h>
+#include <string>
+
+/** @cond doxygenIgnored */
+
+using namespace std;
+LIBSBML_CPP_NAMESPACE_USE
+
+/** @endcond doxygenIgnored */
+
+
+CK_CPPSTART
+
+extern char *TestDataDirectory;
+
+START_TEST (test_GroupsModelPlugin_copyNesting1)
+{
+  //GroupsPkgNamespaces gpn;
+  //SBMLDocument doc(&gpn);
+  char *filename = safe_strcat(TestDataDirectory, "groups-nested1.xml");
+  SBMLDocument *document = readSBMLFromFile(filename);
+  Model* model = document->getModel();
+  fail_unless(model != NULL);
+  GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+  fail_unless(mplugin != NULL);
+
+  fail_unless(mplugin->getNumGroups() == 4);
+  Group* group1 = mplugin->getGroup(0);
+  Group* group2 = mplugin->getGroup(1);
+  Group* group3 = mplugin->getGroup(2);
+  Group* group4 = mplugin->getGroup(3);
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless(!group2->getListOfMembers()->isSetSBOTerm());
+  fail_unless(!group3->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group4->getListOfMembers()->isSetSBOTerm());
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group2->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group3->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group4->getListOfMembers()->isSetSBOTerm());
+
+  group4->getListOfMembers()->setNotes("These are some notes.", true);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetNotes());
+  fail_unless( group2->getListOfMembers()->isSetNotes());
+  fail_unless( group3->getListOfMembers()->isSetNotes());
+
+  group4->getListOfMembers()->setAnnotation("This is a malformed annotation, but who cares.");
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetAnnotation());
+  fail_unless( group2->getListOfMembers()->isSetAnnotation());
+  fail_unless( group3->getListOfMembers()->isSetAnnotation());
+
+  delete document;
+  safe_free((void*)(filename));
+}
+END_TEST
+
+
+START_TEST (test_GroupsModelPlugin_copyNesting2)
+{
+  //GroupsPkgNamespaces gpn;
+  //SBMLDocument doc(&gpn);
+  char *filename = safe_strcat(TestDataDirectory, "groups-nested1.xml");
+  SBMLDocument *document = readSBMLFromFile(filename);
+  Model* model = document->getModel();
+  fail_unless(model != NULL);
+  GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+  fail_unless(mplugin != NULL);
+
+  fail_unless(mplugin->getNumGroups() == 4);
+  Group* group1 = mplugin->getGroup(0);
+  Group* group2 = mplugin->getGroup(1);
+  Group* group3 = mplugin->getGroup(2);
+  Group* group4 = mplugin->getGroup(3);
+  group3->getListOfMembers()->setSBOTerm(5);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group2->getListOfMembers()->getSBOTerm() == 5);
+  fail_unless( group3->getListOfMembers()->getSBOTerm() == 5);
+  fail_unless( group4->getListOfMembers()->getSBOTerm() == 252);
+
+  group4->getListOfMembers()->setNotes("These are some notes, v1.", true);
+  group3->getListOfMembers()->setNotes("These are some notes, v2.", true);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetNotes());
+  fail_unless( group2->getListOfMembers()->getNotesString().find("These are some notes, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getNotesString().find("These are some notes, v2.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getNotesString().find("These are some notes, v1.") != string::npos);
+
+  group4->getListOfMembers()->setAnnotation("This is a malformed annotation, v1.");
+  group3->getListOfMembers()->setAnnotation("This is a malformed annotation, v2.");
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetAnnotation());
+  fail_unless( group2->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v2.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v1.") != string::npos);
+
+  delete document;
+  safe_free((void*)(filename));
+}
+END_TEST
+
+
+START_TEST (test_GroupsModelPlugin_copyNesting3)
+{
+  //GroupsPkgNamespaces gpn;
+  //SBMLDocument doc(&gpn);
+  char *filename = safe_strcat(TestDataDirectory, "groups-nested1.xml");
+  SBMLDocument *document = readSBMLFromFile(filename);
+  Model* model = document->getModel();
+  fail_unless(model != NULL);
+  GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+  fail_unless(mplugin != NULL);
+
+  fail_unless(mplugin->getNumGroups() == 4);
+  Group* group1 = mplugin->getGroup(0);
+  Group* group2 = mplugin->getGroup(1);
+  Group* group3 = mplugin->getGroup(2);
+  Group* group4 = mplugin->getGroup(3);
+  group2->getListOfMembers()->setSBOTerm(5);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group2->getListOfMembers()->getSBOTerm() == 5);
+  fail_unless( group3->getListOfMembers()->getSBOTerm() == 252);
+  fail_unless( group4->getListOfMembers()->getSBOTerm() == 252);
+
+  group4->getListOfMembers()->setNotes("These are some notes, v1.", true);
+  group2->getListOfMembers()->setNotes("These are some notes, v2.", true);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetNotes());
+  fail_unless( group2->getListOfMembers()->getNotesString().find("These are some notes, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getNotesString().find("These are some notes, v1.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getNotesString().find("These are some notes, v1.") != string::npos);
+
+  group4->getListOfMembers()->setAnnotation("This is a malformed annotation, v1.");
+  group2->getListOfMembers()->setAnnotation("This is a malformed annotation, v2.");
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetAnnotation());
+  fail_unless( group2->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v1.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v1.") != string::npos);
+
+  delete document;
+  safe_free((void*)(filename));
+}
+END_TEST
+
+
+START_TEST (test_GroupsModelPlugin_copyNesting1_v2)
+{
+  //GroupsPkgNamespaces gpn;
+  //SBMLDocument doc(&gpn);
+  char *filename = safe_strcat(TestDataDirectory, "groups-nested2.xml");
+  SBMLDocument *document = readSBMLFromFile(filename);
+  Model* model = document->getModel();
+  fail_unless(model != NULL);
+  GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+  fail_unless(mplugin != NULL);
+
+  fail_unless(mplugin->getNumGroups() == 4);
+  Group* group1 = mplugin->getGroup(0);
+  Group* group2 = mplugin->getGroup(1);
+  Group* group3 = mplugin->getGroup(2);
+  Group* group4 = mplugin->getGroup(3);
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless(!group2->getListOfMembers()->isSetSBOTerm());
+  fail_unless(!group3->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group4->getListOfMembers()->isSetSBOTerm());
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group2->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group3->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group4->getListOfMembers()->isSetSBOTerm());
+
+  group4->getListOfMembers()->setNotes("These are some notes.", true);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetNotes());
+  fail_unless( group2->getListOfMembers()->isSetNotes());
+  fail_unless( group3->getListOfMembers()->isSetNotes());
+
+  group4->getListOfMembers()->setAnnotation("This is a malformed annotation, but who cares.");
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetAnnotation());
+  fail_unless( group2->getListOfMembers()->isSetAnnotation());
+  fail_unless( group3->getListOfMembers()->isSetAnnotation());
+
+  delete document;
+  safe_free((void*)(filename));
+}
+END_TEST
+
+
+START_TEST (test_GroupsModelPlugin_copyNesting2_v2)
+{
+  //GroupsPkgNamespaces gpn;
+  //SBMLDocument doc(&gpn);
+  char *filename = safe_strcat(TestDataDirectory, "groups-nested2.xml");
+  SBMLDocument *document = readSBMLFromFile(filename);
+  Model* model = document->getModel();
+  fail_unless(model != NULL);
+  GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+  fail_unless(mplugin != NULL);
+
+  fail_unless(mplugin->getNumGroups() == 4);
+  Group* group1 = mplugin->getGroup(0);
+  Group* group2 = mplugin->getGroup(1);
+  Group* group3 = mplugin->getGroup(2);
+  Group* group4 = mplugin->getGroup(3);
+  group3->getListOfMembers()->setSBOTerm(5);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group2->getListOfMembers()->getSBOTerm() == 5);
+  fail_unless( group3->getListOfMembers()->getSBOTerm() == 5);
+  fail_unless( group4->getListOfMembers()->getSBOTerm() == 252);
+
+  group4->getListOfMembers()->setNotes("These are some notes, v1.", true);
+  group3->getListOfMembers()->setNotes("These are some notes, v2.", true);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetNotes());
+  fail_unless( group2->getListOfMembers()->getNotesString().find("These are some notes, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getNotesString().find("These are some notes, v2.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getNotesString().find("These are some notes, v1.") != string::npos);
+
+  group4->getListOfMembers()->setAnnotation("This is a malformed annotation, v1.");
+  group3->getListOfMembers()->setAnnotation("This is a malformed annotation, v2.");
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetAnnotation());
+  fail_unless( group2->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v2.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v1.") != string::npos);
+
+  delete document;
+  safe_free((void*)(filename));
+}
+END_TEST
+
+
+START_TEST (test_GroupsModelPlugin_copyNesting3_v2)
+{
+  //GroupsPkgNamespaces gpn;
+  //SBMLDocument doc(&gpn);
+  char *filename = safe_strcat(TestDataDirectory, "groups-nested2.xml");
+  SBMLDocument *document = readSBMLFromFile(filename);
+  Model* model = document->getModel();
+  fail_unless(model != NULL);
+  GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
+  fail_unless(mplugin != NULL);
+
+  fail_unless(mplugin->getNumGroups() == 4);
+  Group* group1 = mplugin->getGroup(0);
+  Group* group2 = mplugin->getGroup(1);
+  Group* group3 = mplugin->getGroup(2);
+  Group* group4 = mplugin->getGroup(3);
+  group2->getListOfMembers()->setSBOTerm(5);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetSBOTerm());
+  fail_unless( group2->getListOfMembers()->getSBOTerm() == 5);
+  fail_unless( group3->getListOfMembers()->getSBOTerm() == 252);
+  fail_unless( group4->getListOfMembers()->getSBOTerm() == 252);
+
+  group4->getListOfMembers()->setNotes("These are some notes, v1.", true);
+  group2->getListOfMembers()->setNotes("These are some notes, v2.", true);
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetNotes());
+  fail_unless( group2->getListOfMembers()->getNotesString().find("These are some notes, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getNotesString().find("These are some notes, v1.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getNotesString().find("These are some notes, v1.") != string::npos);
+
+  group4->getListOfMembers()->setAnnotation("This is a malformed annotation, v1.");
+  group2->getListOfMembers()->setAnnotation("This is a malformed annotation, v2.");
+  mplugin->copyInformationToNestedLists();
+  fail_unless(!group1->getListOfMembers()->isSetAnnotation());
+  fail_unless( group2->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v2.") != string::npos);
+  fail_unless( group3->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v1.") != string::npos);
+  fail_unless( group4->getListOfMembers()->getAnnotationString().find("This is a malformed annotation, v1.") != string::npos);
+
+  delete document;
+  safe_free((void*)(filename));
+}
+END_TEST
+
+
+Suite *
+create_suite_GroupsModelPlugin (void)
+{
+  Suite *suite = suite_create("GroupsModelPlugin");
+  TCase *tcase = tcase_create("GroupsModelPlugin");
+
+  tcase_add_test( tcase, test_GroupsModelPlugin_copyNesting1_v2);
+  tcase_add_test( tcase, test_GroupsModelPlugin_copyNesting2_v2);
+  tcase_add_test( tcase, test_GroupsModelPlugin_copyNesting3_v2);
+
+  tcase_add_test( tcase, test_GroupsModelPlugin_copyNesting1);
+  tcase_add_test( tcase, test_GroupsModelPlugin_copyNesting2);
+  tcase_add_test( tcase, test_GroupsModelPlugin_copyNesting3);
+
+  suite_add_tcase(suite, tcase);
+
+  return suite;
+}
+
+
+CK_CPPEND
diff --git a/src/sbml/packages/groups/extension/test/TestReadGroupsExtension.cpp b/src/sbml/packages/groups/extension/test/TestReadGroupsExtension.cpp
index f2be7be..6bb56a8 100644
--- a/src/sbml/packages/groups/extension/test/TestReadGroupsExtension.cpp
+++ b/src/sbml/packages/groups/extension/test/TestReadGroupsExtension.cpp
@@ -180,74 +180,6 @@ START_TEST (test_GroupsExtension_read_L3V1V1_unknown_elements)
 END_TEST
 
 
-START_TEST (test_GroupsExtension_read_memberConstraints)
-{
-  char *filename = safe_strcat(TestDataDirectory, "groups_speciestype_example.xml");
-  SBMLDocument *document = readSBMLFromFile(filename);
-  fail_unless(document->getPackageName() == "core");
-
-  Model *model = document->getModel();
-
-  fail_unless(model != NULL);
-  fail_unless(model->getPackageName() == "core");
-  fail_unless(document->getNumErrors() == 0);
-
-  // get the Group
-
-  GroupsModelPlugin* mplugin = static_cast<GroupsModelPlugin*>(model->getPlugin("groups"));
-  fail_unless(mplugin != NULL);
-
-  fail_unless(mplugin->getNumGroups() == 1);
-  fail_unless(mplugin->getListOfGroups()->getPackageName() == "groups");
-
-  Group* group = mplugin->getGroup(0);
-  fail_unless(group->getId()          == "ATP");
-  fail_unless(group->getKind()        == GROUP_KIND_CLASSIFICATION);
-  fail_unless(group->getNumMembers()  == 2);
-  fail_unless(group->getNumMemberConstraints() == 3);
-  fail_unless(group->getPackageName() == "groups");
-
-  fail_unless(group->getListOfMembers()->getPackageName() == "groups");
-  fail_unless(group->getListOfMembers()->getSBOTermID()   == "SBO:0000248");
-
-  Member* member = group->getMember(0);
-  fail_unless(member->getIdRef()      == "ATPc");
-  fail_unless(member->getPackageName() == "groups");
-
-  member = group->getMember(1);
-  fail_unless(member->getIdRef()      == "ATPm");
-  fail_unless(member->getPackageName() == "groups");
-
-  ListOfMemberConstraints* lomcs = group->getListOfMemberConstraints();
-  fail_unless(lomcs->getPackageName() == "groups");
-  fail_unless(lomcs->isSetMembersShareType() == true);
-  fail_unless(lomcs->getMembersShareType() == true);
-
-  MemberConstraint* mc = group->getMemberConstraint(0);
-  fail_unless(mc->isSetDistinctAttribute() == true);
-  fail_unless(mc->isSetIdenticalAttribute() == false);
-  fail_unless(mc->getDistinctAttribute() == "compartment");
-  fail_unless(mc->getPackageName() == "groups");
-
-  mc = group->getMemberConstraint(1);
-  fail_unless(mc->isSetDistinctAttribute() == false);
-  fail_unless(mc->isSetIdenticalAttribute() == true);
-  fail_unless(mc->getIdenticalAttribute() == "initialConcentration");
-  fail_unless(mc->getPackageName() == "groups");
-
-  mc = group->getMemberConstraint(2);
-  fail_unless(mc->isSetDistinctAttribute() == false);
-  fail_unless(mc->isSetIdenticalAttribute() == true);
-  fail_unless(mc->getIdenticalAttribute() == "constant");
-  fail_unless(mc->getPackageName() == "groups");
-
-
-  delete document;  
-  safe_free(filename);
-}
-END_TEST
-
-
 Suite *
 create_suite_ReadGroupsExtension (void)
 {
@@ -257,7 +189,6 @@ create_suite_ReadGroupsExtension (void)
   tcase_add_test( tcase, test_GroupsExtension_read_L3V1V1);
   tcase_add_test( tcase, test_GroupsExtension_read_L3V1V1_defaultNS);
   tcase_add_test( tcase, test_GroupsExtension_read_L3V1V1_unknown_elements);
-  tcase_add_test( tcase, test_GroupsExtension_read_memberConstraints);
   
   
   suite_add_tcase(suite, tcase);
diff --git a/src/sbml/packages/groups/extension/test/TestRunner.c b/src/sbml/packages/groups/extension/test/TestRunner.c
index 91294bd..c09276a 100644
--- a/src/sbml/packages/groups/extension/test/TestRunner.c
+++ b/src/sbml/packages/groups/extension/test/TestRunner.c
@@ -46,6 +46,7 @@ CK_CPPSTART
 Suite *create_suite_GroupsExtension (void);
 Suite *create_suite_WriteGroupsExtension (void);
 Suite *create_suite_ReadGroupsExtension (void);
+Suite *create_suite_GroupsModelPlugin (void);
 
 /**
  * Global.
@@ -86,6 +87,7 @@ main (int argc, char* argv[])
   SRunner *runner = srunner_create(create_suite_GroupsExtension());
   srunner_add_suite(runner, create_suite_WriteGroupsExtension());
   srunner_add_suite(runner, create_suite_ReadGroupsExtension());
+  srunner_add_suite(runner, create_suite_GroupsModelPlugin());
 
   if (argc > 1 && !strcmp(argv[1], "-nofork"))
   {
diff --git a/src/sbml/packages/groups/extension/test/test-data/groups-nested1.xml b/src/sbml/packages/groups/extension/test/test-data/groups-nested1.xml
new file mode 100644
index 0000000..6c2973e
--- /dev/null
+++ b/src/sbml/packages/groups/extension/test/test-data/groups-nested1.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" groups:required="false" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" version="1" level="3" >
+  <model>
+    <listOfCompartments>
+      <compartment id="c1" constant="true"/>
+      <compartment id="c2" constant="true"/>
+    </listOfCompartments>
+    <groups:listOfGroups>
+      <groups:group groups:id="g1" groups:kind="classification">
+        <groups:listOfMembers metaid="g1_list">
+          <groups:member groups:idRef="c1"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g2" groups:kind="classification">
+        <groups:listOfMembers metaid="g2_list">
+          <groups:member groups:idRef="c2"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g3" groups:kind="classification">
+        <groups:listOfMembers metaid="g3_list">
+          <groups:member groups:metaIdRef="g2_list"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g4" groups:kind="classification">
+        <groups:listOfMembers sboTerm="SBO:0000252" metaid="g4_list">
+          <groups:member groups:metaIdRef="g3_list"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/extension/test/test-data/groups-nested2.xml b/src/sbml/packages/groups/extension/test/test-data/groups-nested2.xml
new file mode 100644
index 0000000..1c48ad0
--- /dev/null
+++ b/src/sbml/packages/groups/extension/test/test-data/groups-nested2.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" groups:required="false" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" version="1" level="3" >
+  <model>
+    <listOfCompartments>
+      <compartment id="c1" constant="true"/>
+      <compartment id="c2" constant="true"/>
+    </listOfCompartments>
+    <groups:listOfGroups>
+      <groups:group groups:id="g1" groups:kind="classification">
+        <groups:listOfMembers id="g1_list">
+          <groups:member groups:idRef="c1"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g2" groups:kind="classification">
+        <groups:listOfMembers id="g2_list">
+          <groups:member groups:idRef="c2"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g3" groups:kind="classification">
+        <groups:listOfMembers id="g3_list">
+          <groups:member groups:idRef="g2_list"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g4" groups:kind="classification">
+        <groups:listOfMembers sboTerm="SBO:0000252" id="g4_list">
+          <groups:member groups:idRef="g3_list"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/extension/test/test-data/groups_speciestype_example.xml b/src/sbml/packages/groups/extension/test/test-data/groups_speciestype_example.xml
deleted file mode 100644
index 3456a82..0000000
--- a/src/sbml/packages/groups/extension/test/test-data/groups_speciestype_example.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1" 
-  xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1"
-  groups:required="false"> 
-  <model>  
-    <listOfSpecies>     
-      <species id="ATPc" compartment="cytosol" substanceUnits="mole" constant="false" 
-        hasOnlySubstanceUnits="false" boundaryCondition="true" />
-      <species id="ATPm" compartment="mitochon" substanceUnits="mole" constant="false" 
-        hasOnlySubstanceUnits="false" boundaryCondition="true" />
-    </listOfSpecies>   
-    <listOfCompartments>   
-      <compartment id="cytosol" spatialDimensions="3" size="1" constant="true" />
-      <compartment id="mitochon" spatialDimensions="3" size="1" constant="true" />
-    </listOfCompartments>   
-    <listOfGroups xmlns="http://www.sbml.org/sbml/level3/version1/groups/version1">   
-      <group groups:id="ATP" groups:kind="classification"> 
-        <listOfMembers sboTerm="SBO:0000248">
-          <member groups:idRef="ATPc" />
-          <member groups:idRef="ATPm" />
-        </listOfMembers>
-        <listOfMemberConstraints groups:membersShareType="true">
-          <memberConstraint groups:distinctAttribute="compartment" />
-          <memberConstraint groups:identicalAttribute="initialConcentration" />
-          <memberConstraint groups:identicalAttribute="constant" />
-        </listOfMemberConstraints>
-      </group> 
-    </listOfGroups>   
-  </model>  
-</sbml> 
diff --git a/src/sbml/packages/groups/sbml/Group.cpp b/src/sbml/packages/groups/sbml/Group.cpp
index 447107f..eef8136 100644
--- a/src/sbml/packages/groups/sbml/Group.cpp
+++ b/src/sbml/packages/groups/sbml/Group.cpp
@@ -1,82 +1,83 @@
 /**
- * @file    Group.cpp
- * @brief   Implementation of Group, the SBase derived class of groups package.
- * @author  Akiya Jouraku
- *
- * $Id: Group.cpp 13541 2011-04-08 22:16:45Z fbergmann $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/src/sbml/packages/groups/sbml/Group.cpp $
+ * @file Group.cpp
+ * @brief Implementation of the Group class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
-
-
 #include <sbml/packages/groups/sbml/Group.h>
+#include <sbml/packages/groups/sbml/ListOfGroups.h>
 #include <sbml/packages/groups/validator/GroupsSBMLError.h>
+#include <sbml/util/ElementFilter.h>
 
 
 using namespace std;
 
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
 
+
+
+#ifdef __cplusplus
+
+
 /*
- * Creates a new Group with the given level, version, and package version.
+ * Creates a new Group using the given SBML Level, Version and
+ * “groups” package version.
  */
-Group::Group (unsigned int level, unsigned int version, unsigned int pkgVersion) 
-  : SBase (level,version)
-   ,mId("")
-   ,mName("")
-   ,mKind(GROUP_KIND_UNKNOWN)
-   ,mMembers(level,version,pkgVersion)
-   ,mMemberConstraints (level, version, pkgVersion)
+Group::Group(unsigned int level,
+             unsigned int version,
+             unsigned int pkgVersion)
+  : SBase(level, version)
+  , mId ("")
+  , mName ("")
+  , mKind (GROUP_KIND_UNKNOWN)
+  , mMembers (level, version, pkgVersion)
 {
-  // set an SBMLNamespaces derived object of this package
   setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level, version, pkgVersion));
-
-  // connect to child objects
   connectToChild();
 }
 
 
 /*
- * Creates a new Group with the given GroupsPkgNamespaces object.
+ * Creates a new Group using the given GroupsPkgNamespaces object.
  */
-Group::Group(GroupsPkgNamespaces* groupsns)
- : SBase(groupsns)
-  ,mId("")
-  ,mName("")
-  ,mKind(GROUP_KIND_UNKNOWN)
-  ,mMembers(groupsns)
-   ,mMemberConstraints (groupsns)
+Group::Group(GroupsPkgNamespaces *groupsns)
+  : SBase(groupsns)
+  , mId ("")
+  , mName ("")
+  , mKind (GROUP_KIND_UNKNOWN)
+  , mMembers (groupsns)
 {
-  // set the element namespace of this object
   setElementNamespace(groupsns->getURI());
-
-  // connect to child objects
   connectToChild();
-
-  // load package extensions bound with this object (if any) 
   loadPlugins(groupsns);
 }
 
@@ -84,19 +85,19 @@ Group::Group(GroupsPkgNamespaces* groupsns)
 /*
  * Copy constructor for Group.
  */
-Group::Group (const Group& orig)
-  : SBase(orig)
-  , mId  ( orig.mId)
-  , mName  ( orig.mName)
-  , mKind  ( orig.mKind)
-  , mMembers  ( orig.mMembers)
-  , mMemberConstraints  ( orig.mMemberConstraints)
+Group::Group(const Group& orig)
+  : SBase( orig )
+  , mId ( orig.mId )
+  , mName ( orig.mName )
+  , mKind ( orig.mKind )
+  , mMembers ( orig.mMembers )
 {
+  connectToChild();
 }
 
 
 /*
- * Assignment for Group.
+ * Assignment operator for Group.
  */
 Group&
 Group::operator=(const Group& rhs)
@@ -104,24 +105,22 @@ Group::operator=(const Group& rhs)
   if (&rhs != this)
   {
     SBase::operator=(rhs);
-    mId  = rhs.mId;
-    mName  = rhs.mName;
-    mKind  = rhs.mKind;
-    mMembers  = rhs.mMembers;
-    mMemberConstraints  = rhs.mMemberConstraints;
-
-    // connect to child objects
+    mId = rhs.mId;
+    mName = rhs.mName;
+    mKind = rhs.mKind;
+    mMembers = rhs.mMembers;
     connectToChild();
   }
+
   return *this;
 }
 
 
 /*
- * Clone for Group.
+ * Creates and returns a deep copy of this Group object.
  */
 Group*
-Group::clone () const
+Group::clone() const
 {
   return new Group(*this);
 }
@@ -130,149 +129,182 @@ Group::clone () const
 /*
  * Destructor for Group.
  */
-Group::~Group ()
+Group::~Group()
 {
 }
 
 
 /*
-  * Returns the value of the "id" attribute of this Group.
-  */
-const std::string& 
-Group::getId () const
+ * Returns the value of the "id" attribute of this Group.
+ */
+const std::string&
+Group::getId() const
 {
   return mId;
 }
 
 
 /*
-  * Predicate returning @c true or @c false depending on whether this
-  * Group's "id" attribute has been set.
-  */
-bool 
-Group::isSetId () const
+ * Returns the value of the "name" attribute of this Group.
+ */
+const std::string&
+Group::getName() const
 {
-  return (mId.empty() == false);
+  return mName;
 }
 
+
 /*
-  * Sets the value of the "id" attribute of this Group.
-  */
-int 
-Group::setId (const std::string& id)
+ * Returns the value of the "kind" attribute of this Group.
+ */
+GroupKind_t
+Group::getKind() const
 {
-  return SyntaxChecker::checkAndSetSId(id,mId);
+  return mKind;
 }
 
 
 /*
-  * Unsets the value of the "id" attribute of this Group.
-  */
-int 
-Group::unsetId ()
+ * Returns the value of the "kind" attribute of this Group.
+ */
+const std::string&
+Group::getKindAsString() const
 {
-  mId.erase();
-  if (mId.empty())
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
+  static const std::string code_str = GroupKind_toString(mKind);
+  return code_str;
 }
 
 
 /*
- * Sets the name of this SBML object to a copy of name.
+ * Predicate returning @c true if this Group's "id" attribute is set.
  */
-int
-Group::setName (const std::string& name)
+bool
+Group::isSetId() const
 {
-  mName = name;
-  return LIBSBML_OPERATION_SUCCESS;
+  return (mId.empty() == false);
 }
 
 
 /*
- * @return the name of this SBML object.
+ * Predicate returning @c true if this Group's "name" attribute is set.
  */
-const string&
-Group::getName () const
+bool
+Group::isSetName() const
 {
-  return mName;
+  return (mName.empty() == false);
 }
 
 
 /*
- * @return true if the name of this SBML object has been set, false
- * otherwise.
+ * Predicate returning @c true if this Group's "kind" attribute is set.
  */
 bool
-Group::isSetName () const
+Group::isSetKind() const
 {
-  return (mName.empty() == false);
+  return (mKind != GROUP_KIND_UNKNOWN);
 }
 
 
 /*
- * Unsets the name of this SBML object.
+ * Sets the value of the "id" attribute of this Group.
  */
 int
-Group::unsetName ()
+Group::setId(const std::string& id)
 {
-  mName.erase();
+  return SyntaxChecker::checkAndSetSId(id, mId);
+}
 
-  if (mName.empty())
+
+/*
+ * Sets the value of the "name" attribute of this Group.
+ */
+int
+Group::setName(const std::string& name)
+{
+  mName = name;
+  return LIBSBML_OPERATION_SUCCESS;
+}
+
+
+/*
+ * Sets the value of the "kind" attribute of this Group.
+ */
+int
+Group::setKind(const GroupKind_t kind)
+{
+  if (GroupKind_isValid(kind) == 0)
   {
-    return LIBSBML_OPERATION_SUCCESS;
+    mKind = GROUP_KIND_UNKNOWN;
+    return LIBSBML_INVALID_ATTRIBUTE_VALUE;
   }
   else
   {
-    return LIBSBML_OPERATION_FAILED;
+    mKind = kind;
+    return LIBSBML_OPERATION_SUCCESS;
   }
 }
 
 
 /*
- * Sets kind and returns value indicating success.
+ * Sets the value of the "kind" attribute of this Group.
  */
 int
-Group::setKind(const GroupKind_t kind)
+Group::setKind(const std::string& kind)
 {
-  if (GroupKind_isValidGroupKind(kind) == 0)
+  if (GroupKind_isValidString(kind.c_str()) == 0)
   {
     mKind = GROUP_KIND_UNKNOWN;
     return LIBSBML_INVALID_ATTRIBUTE_VALUE;
   }
   else
   {
-    mKind = kind;
+    mKind = GroupKind_fromString(kind.c_str());
     return LIBSBML_OPERATION_SUCCESS;
   }
 }
 
 
 /*
- * @return the kind of this SBML object.
+ * Unsets the value of the "id" attribute of this Group.
  */
-GroupKind_t
-Group::getKind () const
+int
+Group::unsetId()
 {
-  return mKind;
+  mId.erase();
+
+  if (mId.empty() == true)
+  {
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+  else
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
 }
 
+
 /*
- * @return true if the kind of this SBML object has been set, false
- * otherwise.
+ * Unsets the value of the "name" attribute of this Group.
  */
-bool
-Group::isSetKind () const
+int
+Group::unsetName()
 {
-  return (mKind != GROUP_KIND_UNKNOWN);
+  mName.erase();
+
+  if (mName.empty() == true)
+  {
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+  else
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
 }
 
 
+/*
+ * Unsets the value of the "kind" attribute of this Group.
+ */
 int
 Group::unsetKind()
 {
@@ -280,141 +312,142 @@ Group::unsetKind()
   return LIBSBML_OPERATION_SUCCESS;
 }
 
+
 /*
- * Returns the member object that holds all members.
- */ 
+ * Returns the ListOfMembers from this Group.
+ */
 const ListOfMembers*
-Group::getListOfMembers () const
+Group::getListOfMembers() const
 {
-  return &this->mMembers;
+  return &mMembers;
 }
 
 
 /*
- * Remove the member with the given id.
- * A pointer to the removed member is returned.
- * If no member has been removed, NULL is returned.
+ * Returns the ListOfMembers from this Group.
  */
-Member*
-Group::removeMember(const std::string& symbol)
+ListOfMembers*
+Group::getListOfMembers()
 {
-  return mMembers.remove(symbol);
+  return &mMembers;
 }
 
 
 /*
- * Remove the member with the given index.
- * A pointer to the removed member is returned.
- * If no member has been removed, NULL is returned.
+ * Get a Member from the Group.
  */
 Member*
-Group::removeMember(unsigned int index)
+Group::getMember(unsigned int n)
 {
-  return mMembers.remove(index);
+  return mMembers.get(n);
 }
 
 
 /*
- * Returns the member with the given index.
- * If the index is invalid, NULL is returned.
- */ 
-Member* 
-Group::getMember (unsigned int index)
+ * Get a Member from the Group.
+ */
+const Member*
+Group::getMember(unsigned int n) const
 {
-  return mMembers.get(index);
+  return mMembers.get(n);
 }
 
+
 /*
- * Returns the member with the given index.
- * If the index is invalid, NULL is returned.
- */ 
-const Member* 
-Group::getMember (unsigned int index) const
+ * Get a Member from the Group based on its identifier.
+ */
+Member*
+Group::getMember(const std::string& sid)
 {
-  return mMembers.get(index);
+  return mMembers.get(sid);
 }
 
 
 /*
- * Returns the member that has the given id, or NULL if no
- * member has the id.
+ * Get a Member from the Group based on its identifier.
  */
-Member*
-Group::getMember (const std::string& symbol) 
+const Member*
+Group::getMember(const std::string& sid) const
 {
-  return mMembers.get(symbol);
+  return mMembers.get(sid);
 }
 
 
 /*
- * Returns the member that has the given id, or NULL if no
- * member has the id.
+ * Get a Member from the Group based on the IdRef to which it refers.
  */
 const Member*
-Group::getMember (const std::string& symbol) const
+Group::getMemberByIdRef(const std::string& sid) const
 {
-  return mMembers.get(symbol);
+  return mMembers.getByIdRef(sid);
 }
 
 
 /*
- * Adds a member element
+ * Get a Member from the Group based on the IdRef to which it refers.
+ */
+Member*
+Group::getMemberByIdRef(const std::string& sid)
+{
+  return mMembers.getByIdRef(sid);
+}
+
+
+/*
+ * Adds a copy of the given Member to this Group.
  */
 int
-Group::addMember (const Member* member)
+Group::addMember(const Member* m)
 {
-  if (member == NULL)
+  if (m == NULL)
   {
     return LIBSBML_OPERATION_FAILED;
   }
-//  else if (!(member->hasRequiredAttributes()) || !(member->hasRequiredElements()))
-//  {
-//    return LIBSBML_INVALID_OBJECT;
-//  }
-  else if (getLevel() != member->getLevel())
+  else if (m->hasRequiredAttributes() == false)
+  {
+    return LIBSBML_INVALID_OBJECT;
+  }
+  else if (getLevel() != m->getLevel())
   {
     return LIBSBML_LEVEL_MISMATCH;
   }
-  else if (getVersion() != member->getVersion())
+  else if (getVersion() != m->getVersion())
   {
     return LIBSBML_VERSION_MISMATCH;
   }
-  else if (member->isSetId() == true && getMember(member->getId()) != NULL)
+  else if (matchesRequiredSBMLNamespacesForAddition(static_cast<const
+    SBase*>(m)) == false)
   {
-    // an object with this id already exists
-    return LIBSBML_DUPLICATE_OBJECT_ID;
+    return LIBSBML_NAMESPACES_MISMATCH;
   }
-  else if (matchesRequiredSBMLNamespacesForAddition
-    (static_cast<const SBase *>(member)) == false)
+  else if (m->isSetId() && (mMembers.get(m->getId())) != NULL)
   {
-    return LIBSBML_NAMESPACES_MISMATCH;
+    return LIBSBML_DUPLICATE_OBJECT_ID;
   }
   else
   {
-    mMembers.append(member);
-
+    mMembers.append(m);
     return LIBSBML_OPERATION_SUCCESS;
   }
-
 }
 
 
 /*
- * Returns the number of members for the group.
+ * Get the number of Member objects in this Group.
  */
 unsigned int
-Group::getNumMembers () const
+Group::getNumMembers() const
 {
-  return this->mMembers.size();
+  return mMembers.size();
 }
 
 
 /*
- * Creates a Member object, adds it to the end of the member
- * objects list and returns a reference to the newly created object.
+ * Creates a new Member object, adds it to this Group object and returns the
+ * Member object created.
  */
 Member*
-Group::createMember ()
+Group::createMember()
 {
   Member* m = NULL;
 
@@ -426,14 +459,9 @@ Group::createMember ()
   }
   catch (...)
   {
-    /* here we do not create a default object as the level/version must
-     * match the parent object
-     *
-     * do nothing
-     */
   }
 
-  if(m != NULL)
+  if (m != NULL)
   {
     mMembers.appendAndOwn(m);
   }
@@ -443,202 +471,275 @@ Group::createMember ()
 
 
 /*
- * Returns the  "ListOfMemberConstraints" in this Group object.
+ * Removes the nth Member from this Group and returns a pointer to it.
  */
-const ListOfMemberConstraints*
-Group::getListOfMemberConstraints() const
+Member*
+Group::removeMember(unsigned int n)
 {
-  return &mMemberConstraints;
+  return mMembers.remove(n);
 }
 
 
 /*
- * Returns the  "ListOfMemberConstraints" in this Group object.
+ * Removes the Member from this Group based on its identifier and returns a
+ * pointer to it.
  */
-ListOfMemberConstraints*
-Group::getListOfMemberConstraints()
+Member*
+Group::removeMember(const std::string& sid)
 {
-  return &mMemberConstraints;
+  return mMembers.remove(sid);
 }
 
 
 /*
- * Removes the nth MemberConstraint from the ListOfMemberConstraints.
+ * Returns the XML element name of this Group object.
  */
-MemberConstraint*
-Group::removeMemberConstraint(unsigned int n)
+const std::string&
+Group::getElementName() const
 {
-  return mMemberConstraints.remove(n);
+  static const string name = "group";
+  return name;
 }
 
 
 /*
- * Removes the a MemberConstraint with given id from the ListOfMemberConstraints.
+ * Returns the libSBML type code for this Group object.
  */
-MemberConstraint*
-Group::removeMemberConstraint(const std::string& sid)
+int
+Group::getTypeCode() const
 {
-  return mMemberConstraints.remove(sid);
+  return SBML_GROUPS_GROUP;
 }
 
 
 /*
- * Return the nth MemberConstraint in the ListOfMemberConstraints within this Group.
+ * Predicate returning @c true if all the required attributes for this Group
+ * object have been set.
  */
-MemberConstraint*
-Group::getMemberConstraint(unsigned int n)
+bool
+Group::hasRequiredAttributes() const
 {
-  return mMemberConstraints.get(n);
+  bool allPresent = true;
+
+  if (isSetKind() == false)
+  {
+    allPresent = false;
+  }
+
+  return allPresent;
 }
 
 
+/** @cond doxygenLibsbmlInternal */
+
 /*
- * Return the nth MemberConstraint in the ListOfMemberConstraints within this Group.
+ * Write any contained elements
  */
-const MemberConstraint*
-Group::getMemberConstraint(unsigned int n) const
+void
+Group::writeElements(XMLOutputStream& stream) const
 {
-  return mMemberConstraints.get(n);
+  SBase::writeElements(stream);
+
+  if (getNumMembers() > 0)
+  {
+    mMembers.write(stream);
+  }
+
+  SBase::writeExtensionElements(stream);
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Return a MemberConstraint from the ListOfMemberConstraints by id.
+ * Accepts the given SBMLVisitor
  */
-MemberConstraint*
-Group::getMemberConstraint(const std::string& sid)
+bool
+Group::accept(SBMLVisitor& v) const
 {
-  return mMemberConstraints.get(sid);
+  v.visit(*this);
+
+  mMembers.accept(v);
+
+  v.leave(*this);
+  return true;
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Return a MemberConstraint from the ListOfMemberConstraints by id.
+ * Sets the parent SBMLDocument
  */
-const MemberConstraint*
-Group::getMemberConstraint(const std::string& sid) const
+void
+Group::setSBMLDocument(SBMLDocument* d)
 {
-  return mMemberConstraints.get(sid);
+  SBase::setSBMLDocument(d);
+
+  mMembers.setSBMLDocument(d);
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Adds a copy the given "MemberConstraint" to this Group.
+ * Connects to child elements
  */
-int
-Group::addMemberConstraint(const MemberConstraint* mc)
+void
+Group::connectToChild()
 {
-  if (mc == NULL)
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-  else if (mc->hasRequiredAttributes() == false)
-  {
-    return LIBSBML_INVALID_OBJECT;
-  }
-  else if (getLevel() != mc->getLevel())
-  {
-    return LIBSBML_LEVEL_MISMATCH;
-  }
-  else if (getVersion() != mc->getVersion())
-  {
-    return LIBSBML_VERSION_MISMATCH;
-  }
-  else if (matchesRequiredSBMLNamespacesForAddition(static_cast<const SBase *>(mc)) == false)
-  {
-    return LIBSBML_NAMESPACES_MISMATCH;
-  }
-  else
-  {
-    mMemberConstraints.append(mc);
+  SBase::connectToChild();
 
-    return LIBSBML_OPERATION_SUCCESS;
-  }
+  mMembers.connectToParent(this);
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Get the number of MemberConstraint objects in this Group.
+ * Enables/disables the given package with this element
  */
-unsigned int
-Group::getNumMemberConstraints() const
+void
+Group::enablePackageInternal(const std::string& pkgURI,
+                             const std::string& pkgPrefix,
+                             bool flag)
 {
-  return mMemberConstraints.size();
+  SBase::enablePackageInternal(pkgURI, pkgPrefix, flag);
+
+  mMembers.enablePackageInternal(pkgURI, pkgPrefix, flag);
 }
 
+/** @endcond */
+
 
 /*
- * Creates a new MemberConstraint object, adds it to this Groups
+ * Returns the first child element that has the given @p id in the model-wide
+ * SId namespace, or @c NULL if no such object is found.
  */
-MemberConstraint*
-Group::createMemberConstraint()
+SBase*
+Group::getElementBySId(const std::string& id)
 {
-  MemberConstraint* mc = NULL;
-
-  try
+  if (id.empty())
   {
-    GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
-    mc = new MemberConstraint(groupsns);
-    delete groupsns;
+    return NULL;
   }
-  catch (...)
+
+  SBase* obj = NULL;
+
+  if (mMembers.getId() == id)
   {
-    /* here we do not create a default object as the level/version must
-     * match the parent object
-     *
-     * do nothing
-     */
+    return &mMembers;
   }
 
-  if(mc != NULL)
+  obj = mMembers.getElementBySId(id);
+
+  if (obj != NULL)
   {
-    mMemberConstraints.appendAndOwn(mc);
+    return obj;
   }
 
-  return mc;
+  return obj;
 }
 
 
+/*
+ * Returns the first child element that has the given @p metaid, or @c NULL if
+ * no such object is found.
+ */
+SBase*
+Group::getElementByMetaId(const std::string& metaid)
+{
+  if (metaid.empty())
+  {
+    return NULL;
+  }
+
+  SBase* obj = NULL;
+
+  if (mMembers.getMetaId() == metaid)
+  {
+    return &mMembers;
+  }
+
+  obj = mMembers.getElementByMetaId(metaid);
+
+  if (obj != NULL)
+  {
+    return obj;
+  }
+
+  return obj;
+}
+
 
 /*
- * Subclasses should override this method to return XML element name of
- * this SBML object.
+ * Returns a List of all child SBase objects, including those nested to an
+ * arbitrary depth.
  */
-const std::string&
-Group::getElementName () const
+List*
+Group::getAllElements(ElementFilter* filter)
 {
-  static const std::string name = "group";
-  return name;
+  List* ret = new List();
+  List* sublist = NULL;
+
+
+  ADD_FILTERED_LIST(ret, sublist, mMembers, filter);
+
+  ADD_FILTERED_FROM_PLUGIN(ret, sublist, filter);
+
+  return ret;
 }
 
 
+
+/** @cond doxygenLibsbmlInternal */
+
 /*
- * @return the SBML object corresponding to next XMLToken in the
- * XMLInputStream or NULL if the token was not recognized.
+ * Creates a new object from the next XMLToken on the XMLInputStream
  */
 SBase*
-Group::createObject (XMLInputStream& stream)
+Group::createObject(XMLInputStream& stream)
 {
-  const std::string& name   = stream.peek().getName();
-  SBase*        object = 0;
+  SBase* obj = NULL;
+
+  const std::string& name = stream.peek().getName();
 
   if (name == "listOfMembers")
   {
-    object = &mMembers;
-  }
-  else if (name == "listOfMemberConstraints")
-  {
-    object = &mMemberConstraints;
+    if (mMembers.size() != 0)
+    {
+      getErrorLog()->logPackageError("groups", GroupsGroupAllowedElements,
+        getPackageVersion(), getLevel(), getVersion());
+    }
+
+    obj = &mMembers;
   }
 
-  return object;
+  connectToChild();
+
+  return obj;
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
 /*
- * Subclasses should override this method to get the list of
- * expected attributes.
- * This function is invoked from corresponding readAttributes()
- * function.
+ * Adds the expected attributes for this element
  */
 void
 Group::addExpectedAttributes(ExpectedAttributes& attributes)
@@ -646,540 +747,534 @@ Group::addExpectedAttributes(ExpectedAttributes& attributes)
   SBase::addExpectedAttributes(attributes);
 
   attributes.add("id");
+
   attributes.add("name");
+
   attributes.add("kind");
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Subclasses should override this method to read values from the given
- * XMLAttributes set into their specific fields.  Be sure to call your
- * parents implementation of this method as well.
+ * Reads the expected attributes into the member data variables
  */
 void
-Group::readAttributes (const XMLAttributes& attributes,
-                        const ExpectedAttributes& expectedAttributes)
+Group::readAttributes(const XMLAttributes& attributes,
+                      const ExpectedAttributes& expectedAttributes)
 {
-  const unsigned int sbmlLevel   = getLevel  ();
-  const unsigned int sbmlVersion = getVersion();
-
+  unsigned int level = getLevel();
+  unsigned int version = getVersion();
+  unsigned int pkgVersion = getPackageVersion();
   unsigned int numErrs;
+  bool assigned = false;
+  SBMLErrorLog* log = getErrorLog();
 
-  /* look to see whether an unknown attribute error was logged
-   * during the read of the listOfGroups - which will have
-   * happened immediately prior to this read
-  */
-
-  if (getErrorLog() != NULL &&
-      static_cast<ListOfGroups*>(getParentSBMLObject())->size() < 2)
+  if (static_cast<ListOfGroups*>(getParentSBMLObject())->size() < 2)
   {
-    numErrs = getErrorLog()->getNumErrors();
+    numErrs = log->getNumErrors();
     for (int n = numErrs-1; n >= 0; n--)
     {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
+      if (log->getError(n)->getErrorId() == UnknownPackageAttribute)
       {
-        const std::string details =
-              getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("groups", GroupsUnknownError,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details);
+        const std::string details = log->getError(n)->getMessage();
+        log->remove(UnknownPackageAttribute);
+        log->logPackageError("groups", GroupsGroupAllowedAttributes,
+          pkgVersion, level, version, details);
       }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
+      else if (log->getError(n)->getErrorId() == UnknownCoreAttribute)
       {
-        const std::string details =
-                   getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details);
+        const std::string details = log->getError(n)->getMessage();
+        log->remove(UnknownCoreAttribute);
+        log->logPackageError("groups",
+          GroupsModelLOGroupsAllowedCoreAttributes, pkgVersion, level, version,
+            details);
       }
     }
   }
 
   SBase::readAttributes(attributes, expectedAttributes);
+  numErrs = log->getNumErrors();
 
-  // look to see whether an unknown attribute error was logged
-  if (getErrorLog() != NULL)
+  for (int n = numErrs-1; n >= 0; n--)
   {
-    numErrs = getErrorLog()->getNumErrors();
-    for (int n = numErrs-1; n >= 0; n--)
+    if (log->getError(n)->getErrorId() == UnknownPackageAttribute)
     {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
+      const std::string details = log->getError(n)->getMessage();
+      log->remove(UnknownPackageAttribute);
+      log->logPackageError("groups", GroupsGroupAllowedAttributes, pkgVersion,
+        level, version, details);
+    }
+    else if (log->getError(n)->getErrorId() == UnknownCoreAttribute)
+    {
+      const std::string details = log->getError(n)->getMessage();
+      log->remove(UnknownCoreAttribute);
+      log->logPackageError("groups", GroupsGroupAllowedCoreAttributes,
+        pkgVersion, level, version, details);
     }
   }
 
-  bool assigned = false;
+  // 
+  // id SId (use = "optional" )
+  // 
 
-  //
-  // id SId  ( use = "optional" )
-  //
   assigned = attributes.readInto("id", mId);
 
-   if (assigned == true)
+  if (assigned == true)
   {
-    // check string is not empty and correct syntax
-
     if (mId.empty() == true)
     {
-      logEmptyString(mId, getLevel(), getVersion(), "<Group>");
+      logEmptyString(mId, level, version, "<Group>");
     }
     else if (SyntaxChecker::isValidSBMLSId(mId) == false)
     {
-      logError(InvalidIdSyntax);
+      log->logPackageError("groups", GroupsIdSyntaxRule,
+        pkgVersion, level, version, "The id on the <" 
+        + getElementName() + "> is '" + mId + "', which does not conform to the syntax.", 
+        getLine(), getColumn());
     }
   }
 
-  //
-  // name string   ( use = "optional" )
-  //
+  // 
+  // name string (use = "optional" )
+  // 
+
   assigned = attributes.readInto("name", mName);
 
   if (assigned == true)
   {
-    // check string is not empty
-
     if (mName.empty() == true)
     {
-      logEmptyString(mName, getLevel(), getVersion(), "<Group>");
+      logEmptyString(mName, level, version, "<Group>");
     }
   }
 
+  // 
+  // kind enum (use = "required" )
+  // 
 
-  //
-  // kind string   ( use = "required" )
-  //
   std::string kind;
   assigned = attributes.readInto("kind", kind);
 
   if (assigned == true)
   {
-    // check string is not empty
-
     if (kind.empty() == true)
     {
-      logEmptyString(kind, getLevel(), getVersion(), "<Group>");
+      logEmptyString(kind, level, version, "<Group>");
     }
-    else 
+    else
     {
-       mKind = GroupKind_fromString( kind.c_str() );
-       if (GroupKind_isValidGroupKind(mKind) == 0)
-       {
-         logError(NotSchemaConformant, getLevel(), getVersion(),
-           "Invalid group kind.");
-       }
+      mKind = GroupKind_fromString(kind.c_str());
+
+      if (GroupKind_isValid(mKind) == 0)
+      {
+        std::string msg = "The kind on the <Group> ";
+
+        if (isSetId())
+        {
+          msg += "with id '" + getId() + "'";
+        }
+
+        msg += "is '" + kind + "', which is not a valid option.";
+
+        log->logPackageError("groups", GroupsGroupKindMustBeGroupKindEnum,
+          pkgVersion, level, version, msg);
+      }
     }
   }
   else
   {
     std::string message = "Groups attribute 'kind' is missing.";
-    getErrorLog()->logPackageError("groups", UnknownError,
-                   getPackageVersion(), sbmlLevel, sbmlVersion, message);
+    log->logPackageError("groups", GroupsGroupAllowedAttributes, pkgVersion,
+      level, version, message);
   }
 }
 
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Subclasses should override this method to write their XML attributes
- * to the XMLOutputStream.  Be sure to call your parents implementation
- * of this method as well.
+ * Writes the attributes to the stream
  */
 void
-Group::writeAttributes (XMLOutputStream& stream) const
+Group::writeAttributes(XMLOutputStream& stream) const
 {
   SBase::writeAttributes(stream);
 
   if (isSetId() == true)
-    stream.writeAttribute("id",   getPrefix(), mId);
+  {
+    stream.writeAttribute("id", getPrefix(), mId);
+  }
+
   if (isSetName() == true)
+  {
     stream.writeAttribute("name", getPrefix(), mName);
+  }
+
   if (isSetKind() == true)
-    stream.writeAttribute("kind", getPrefix(), 
-                          GroupKind_toString(mKind));
+  {
+    stream.writeAttribute("kind", getPrefix(), GroupKind_toString(mKind));
+  }
 
-  //
-  // (EXTENSION)
-  //
   SBase::writeExtensionAttributes(stream);
 }
 
+/** @endcond */
 
-/*
- * Subclasses should override this method to write out their contained
- * SBML objects as XML elements.  Be sure to call your parents
- * implementation of this method as well.
- */
-void
-Group::writeElements (XMLOutputStream& stream) const
-{
-  SBase::writeElements(stream);
 
-  if (getNumMembers() > 0)
-  {
-    mMembers.write(stream);
-  }
 
-  if (getNumMemberConstraints() > 0)
-  {
-    mMemberConstraints.write(stream);
-  }
 
-  //
-  // (EXTENSION)
-  //
-  SBase::writeExtensionElements(stream);
-}
+#endif /* __cplusplus */
 
 
 /*
- * @return the typecode (int) of this SBML object or SBML_UNKNOWN
- * (default).
- *
- * @see getElementName()
+ * Creates a new Group_t using the given SBML Level, Version and
+ * “groups” package version.
  */
-int
-Group::getTypeCode () const
+LIBSBML_EXTERN
+Group_t *
+Group_create(unsigned int level,
+             unsigned int version,
+             unsigned int pkgVersion)
 {
-  return SBML_GROUPS_GROUP;
+  return new Group(level, version, pkgVersion);
 }
 
 
 /*
- * Accepts the given SBMLVisitor.
+ * Creates and returns a deep copy of this Group_t object.
  */
-bool
-Group::accept (SBMLVisitor& v) const
+LIBSBML_EXTERN
+Group_t*
+Group_clone(const Group_t* g)
 {
-  v.visit(*this);
-
-/* VISIT CHILDREN */
-
-  v.leave(*this);
-
-  return true;
+  if (g != NULL)
+  {
+    return static_cast<Group_t*>(g->clone());
+  }
+  else
+  {
+    return NULL;
+  }
 }
 
 
 /*
- * Sets the parent SBMLDocument of this SBML object.
+ * Frees this Group_t object.
  */
+LIBSBML_EXTERN
 void
-Group::setSBMLDocument (SBMLDocument* d)
+Group_free(Group_t* g)
 {
-  SBase::setSBMLDocument(d);
-
-  mMembers.setSBMLDocument(d);
-  mMemberConstraints.setSBMLDocument(d);
+  if (g != NULL)
+  {
+    delete g;
+  }
 }
 
 
 /*
- * Sets this SBML object to child SBML objects (if any).
- * (Creates a child-parent relationship by the parent)
-  */
-void
-Group::connectToChild()
+ * Returns the value of the "id" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+const char *
+Group_getId(const Group_t * g)
 {
-  SBase::connectToChild();
-  mMembers.connectToParent(this);
-  mMemberConstraints.connectToParent(this);
+  if (g == NULL)
+  {
+    return NULL;
+  }
+
+  return g->getId().empty() ? NULL : safe_strdup(g->getId().c_str());
 }
 
 
 /*
- * Enables/Disables the given package with this element and child
- * elements (if any).
- * (This is an internal implementation for enablePakcage function)
+ * Returns the value of the "name" attribute of this Group_t.
  */
-void
-Group::enablePackageInternal(const std::string& pkgURI,
-                             const std::string& pkgPrefix, bool flag)
+LIBSBML_EXTERN
+const char *
+Group_getName(const Group_t * g)
 {
-  SBase::enablePackageInternal(pkgURI,pkgPrefix,flag);
+  if (g == NULL)
+  {
+    return NULL;
+  }
 
-  mMembers.enablePackageInternal(pkgURI,pkgPrefix,flag);
-  mMemberConstraints.enablePackageInternal(pkgURI, pkgPrefix, flag);
+  return g->getName().empty() ? NULL : safe_strdup(g->getName().c_str());
 }
 
 
-
-/** @cond doxygenLibsbmlInternal */
-bool
-Group::hasRequiredAttributes() const
+/*
+ * Returns the value of the "kind" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+GroupKind_t
+Group_getKind(const Group_t * g)
 {
-  bool allPresent = true;
-
-  
-  if (isSetKind() == false)
+  if (g == NULL)
   {
-    allPresent = false;
+    return GROUP_KIND_UNKNOWN;
   }
-  
-  return allPresent;
+
+  return g->getKind();
 }
-/** @endcond doxygenLibsbmlInternal */
 
 
-/** @cond doxygenLibsbmlInternal */
-/* default for components that have no required elements */
-bool
-Group::hasRequiredElements() const
+/*
+ * Returns the value of the "kind" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+const char *
+Group_getKindAsString(const Group_t * g)
 {
-  bool allPresent = true;
-
-  
-  if (mMembers.size() < 1)
-  {
-    allPresent = false;
-  }
-  
-  return allPresent;
+  return GroupKind_toString(g->getKind());
 }
-/** @endcond doxygenLibsbmlInternal */
 
 
 /*
- * Ctor.
+ * Predicate returning @c 1 if this Group_t's "id" attribute is set.
  */
-ListOfGroups::ListOfGroups(GroupsPkgNamespaces* groupsns)
- : ListOf(groupsns)
+LIBSBML_EXTERN
+int
+Group_isSetId(const Group_t * g)
 {
-  //
-  // set the element namespace of this object
-  //
-  setElementNamespace(groupsns->getURI());
+  return (g != NULL) ? static_cast<int>(g->isSetId()) : 0;
 }
 
 
 /*
- * Ctor.
+ * Predicate returning @c 1 if this Group_t's "name" attribute is set.
  */
-ListOfGroups::ListOfGroups(unsigned int level, unsigned int version, unsigned int pkgVersion)
- : ListOf(level,version)
+LIBSBML_EXTERN
+int
+Group_isSetName(const Group_t * g)
 {
-  setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level,version,pkgVersion));
-};
+  return (g != NULL) ? static_cast<int>(g->isSetName()) : 0;
+}
 
 
 /*
- * @return a (deep) copy of this ListOfUnitDefinitions.
+ * Predicate returning @c 1 if this Group_t's "kind" attribute is set.
  */
-ListOfGroups*
-ListOfGroups::clone () const
+LIBSBML_EXTERN
+int
+Group_isSetKind(const Group_t * g)
 {
-  return new ListOfGroups(*this);
+  return (g != NULL) ? static_cast<int>(g->isSetKind()) : 0;
 }
 
 
-/* return nth item in list */
-Group *
-ListOfGroups::get(unsigned int n)
+/*
+ * Sets the value of the "id" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+int
+Group_setId(Group_t * g, const char * id)
 {
-  return static_cast<Group*>(ListOf::get(n));
+  return (g != NULL) ? g->setId(id) : LIBSBML_INVALID_OBJECT;
 }
 
 
-/* return nth item in list */
-const Group *
-ListOfGroups::get(unsigned int n) const
+/*
+ * Sets the value of the "name" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+int
+Group_setName(Group_t * g, const char * name)
 {
-  return static_cast<const Group*>(ListOf::get(n));
+  return (g != NULL) ? g->setName(name) : LIBSBML_INVALID_OBJECT;
 }
 
 
-/* return item by id */
-Group*
-ListOfGroups::get (const std::string& sid)
+/*
+ * Sets the value of the "kind" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+int
+Group_setKind(Group_t * g, GroupKind_t kind)
 {
-  return const_cast<Group*>( 
-    static_cast<const ListOfGroups&>(*this).get(sid) );
+  return (g != NULL) ? g->setKind(kind) : LIBSBML_INVALID_OBJECT;
 }
 
 
-/* return item by id */
-const Group*
-ListOfGroups::get (const std::string& sid) const
+/*
+ * Sets the value of the "kind" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+int
+Group_setKindAsString(Group_t * g, const char * kind)
 {
-  vector<SBase*>::const_iterator result;
-
-  result = find_if( mItems.begin(), mItems.end(), IdEq<Group>(sid) );
-  return (result == mItems.end()) ? 0 : static_cast <Group*> (*result);
+  return (g != NULL) ? g->setKind(kind): LIBSBML_INVALID_OBJECT;
 }
 
 
-/* Removes the nth item from this list */
-Group*
-ListOfGroups::remove (unsigned int n)
+/*
+ * Unsets the value of the "id" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+int
+Group_unsetId(Group_t * g)
 {
-   return static_cast<Group*>(ListOf::remove(n));
+  return (g != NULL) ? g->unsetId() : LIBSBML_INVALID_OBJECT;
 }
 
 
-/* Removes item in this list by id */
-Group*
-ListOfGroups::remove (const std::string& sid)
+/*
+ * Unsets the value of the "name" attribute of this Group_t.
+ */
+LIBSBML_EXTERN
+int
+Group_unsetName(Group_t * g)
 {
-  SBase* item = 0;
-  vector<SBase*>::iterator result;
-
-  result = find_if( mItems.begin(), mItems.end(), IdEq<Group>(sid) );
-
-  if (result != mItems.end())
-  {
-    item = *result;
-    mItems.erase(result);
-  }
-
-  return static_cast <Group*> (item);
+  return (g != NULL) ? g->unsetName() : LIBSBML_INVALID_OBJECT;
 }
 
 
 /*
- * @return the typecode (int) of SBML objects contained in this ListOf or
- * SBML_UNKNOWN (default).
+ * Unsets the value of the "kind" attribute of this Group_t.
  */
+LIBSBML_EXTERN
 int
-ListOfGroups::getItemTypeCode () const
+Group_unsetKind(Group_t * g)
 {
-  return SBML_GROUPS_GROUP;
+  return (g != NULL) ? g->unsetKind() : LIBSBML_INVALID_OBJECT;
 }
 
 
 /*
- * Subclasses should override this method to return XML element name of
- * this SBML object.
+ * Returns a ListOf_t* containing Member_t objects from this Group_t.
  */
-const std::string&
-ListOfGroups::getElementName () const
+LIBSBML_EXTERN
+ListOf_t*
+Group_getListOfMembers(Group_t* g)
 {
-  static const std::string name = "listOfGroups";
-  return name;
+  return (g != NULL) ? g->getListOfMembers() : NULL;
 }
 
 
 /*
- * @return the SBML object corresponding to next XMLToken in the
- * XMLInputStream or NULL if the token was not recognized.
+ * Get a Member_t from the Group_t.
  */
-SBase*
-ListOfGroups::createObject (XMLInputStream& stream)
+LIBSBML_EXTERN
+const Member_t*
+Group_getMember(Group_t* g, unsigned int n)
 {
-  const std::string& name   = stream.peek().getName();
-  SBase*        object = 0;
+  return (g != NULL) ? g->getMember(n) : NULL;
+}
 
 
-  if (name == "group")
-  {
-    GROUPS_CREATE_NS(groupsns, this->getSBMLNamespaces());
-    object = new Group(groupsns);
-    appendAndOwn(object);
-    delete groupsns;
-    //mItems.push_back(object);
-  }
-
-  return object;
+/*
+ * Get a Member_t from the Group_t based on its identifier.
+ */
+LIBSBML_EXTERN
+const Member_t*
+Group_getMemberById(Group_t* g, const char *sid)
+{
+  return (g != NULL && sid != NULL) ? g->getMember(sid) : NULL;
 }
 
 
-void 
-ListOfGroups::writeXMLNS (XMLOutputStream& stream) const
+/*
+ * Get a Member_t from the Group_t based on the IdRef to which it refers.
+ */
+LIBSBML_EXTERN
+const Member_t*
+Group_getMemberByIdRef(Group_t* g, const char *sid)
 {
-  XMLNamespaces xmlns;
-
-  std::string prefix = getPrefix();
+  return (g != NULL && sid != NULL) ? g->getMemberByIdRef(sid) : NULL;
+}
 
-  if (prefix.empty())
-  {
-    XMLNamespaces* thisxmlns = getNamespaces();
-    if (thisxmlns && thisxmlns->hasURI(GroupsExtension::getXmlnsL3V1V1()))
-    {
-      xmlns.add(GroupsExtension::getXmlnsL3V1V1(),prefix);
-    }
-  }
 
-  stream << xmlns;
+/*
+ * Adds a copy of the given Member_t to this Group_t.
+ */
+LIBSBML_EXTERN
+int
+Group_addMember(Group_t* g, const Member_t* m)
+{
+  return (g != NULL) ? g->addMember(m) : LIBSBML_INVALID_OBJECT;
 }
 
-static
-const char* GROUP_KIND_STRINGS[] =
+
+/*
+ * Get the number of Member_t objects in this Group_t.
+ */
+LIBSBML_EXTERN
+unsigned int
+Group_getNumMembers(Group_t* g)
 {
-    "classification"
-  , "partonomy"
-  , "collection"
-};
+  return (g != NULL) ? g->getNumMembers() : SBML_INT_MAX;
+}
 
 
+/*
+ * Creates a new Member_t object, adds it to this Group_t object and returns
+ * the Member_t object created.
+ */
 LIBSBML_EXTERN
-const char* 
-GroupKind_toString(GroupKind_t kind)
+Member_t*
+Group_createMember(Group_t* g)
 {
-  int max = GROUP_KIND_UNKNOWN;
+  return (g != NULL) ? g->createMember() : NULL;
+}
 
-  if (kind < GROUP_KIND_CLASSIFICATION || kind >= max)
-  {
-      return NULL;
-  }
 
-  return GROUP_KIND_STRINGS[kind];
+/*
+ * Removes the nth Member_t from this Group_t and returns a pointer to it.
+ */
+LIBSBML_EXTERN
+Member_t*
+Group_removeMember(Group_t* g, unsigned int n)
+{
+  return (g != NULL) ? g->removeMember(n) : NULL;
 }
 
 
+/*
+ * Removes the Member_t from this Group_t based on its identifier and returns a
+ * pointer to it.
+ */
 LIBSBML_EXTERN
-GroupKind_t 
-GroupKind_fromString(const char* s)
+Member_t*
+Group_removeMemberById(Group_t* g, const char* sid)
 {
-  if (s == NULL) 
-  {
-    return GROUP_KIND_UNKNOWN;
-  }
-
-  int max = GROUP_KIND_UNKNOWN;
-  for (int i = 0; i < max; i++)
-  {
-    if (strcmp(GROUP_KIND_STRINGS[i], s) == 0)
-      return (GroupKind_t)i;
-  }
-  return GROUP_KIND_UNKNOWN;
+  return (g != NULL && sid != NULL) ? g->removeMember(sid) : NULL;
 }
 
 
+/*
+ * Predicate returning @c 1 if all the required attributes for this Group_t
+ * object have been set.
+ */
 LIBSBML_EXTERN
-int 
-GroupKind_isValidGroupKind(GroupKind_t kind)
+int
+Group_hasRequiredAttributes(const Group_t * g)
 {
-  int max = GROUP_KIND_UNKNOWN;
-
-  if (kind < GROUP_KIND_CLASSIFICATION || kind >= max)
-  {
-    return 0;
-  }
-  else
-  {
-    return 1;
-  }
+  return (g != NULL) ? static_cast<int>(g->hasRequiredAttributes()) : 0;
 }
 
 
+/*
+ * Predicate returning @c 1 if all the required elements for this Group_t
+ * object have been set.
+ */
 LIBSBML_EXTERN
-int 
-GroupKind_isValidGroupKindString(const char* s)
+int
+Group_hasRequiredElements(const Group_t * g)
 {
-  return GroupKind_isValidGroupKind(GroupKind_fromString(s));
+  return (g != NULL) ? static_cast<int>(g->hasRequiredElements()) : 0;
 }
 
 
+
+
 LIBSBML_CPP_NAMESPACE_END
 
+
diff --git a/src/sbml/packages/groups/sbml/Group.h b/src/sbml/packages/groups/sbml/Group.h
index 32f9de4..e2ea6bd 100644
--- a/src/sbml/packages/groups/sbml/Group.h
+++ b/src/sbml/packages/groups/sbml/Group.h
@@ -1,34 +1,143 @@
 /**
- * @file    Group.h
- * @brief   Definition of Group, the SBase derived class of groups package.
- * @author  Akiya Jouraku
- *
- * $Id: Group.h 13541 2011-04-08 22:16:45Z fbergmann $
- * $HeadURL: https://sbml.svn.sourceforge.net/svnroot/sbml/branches/libsbml-5/src/sbml/packages/groups/sbml/Group.h $
+ * @file Group.h
+ * @brief Definition of the Group class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
+ *
+ * @class Group
+ * @sbmlbrief{groups} Representation of a group of SBML components.
+ *
+ * The Group class is the first and most central class in the SBML
+ * Level 3 Groups package.  This class represents a <em>group of
+ * entities</em>: a simple mechanism for indicating that particular
+ * components of an SBML model are related in some way.  The nature of the
+ * relationship is left up to the modeler, and can be clarified by means of
+ * annotations on model components.  Groups may contain either the same or
+ * different types of SBML objects, and groups may be nested if desired.
+ * There are no predefined modeling or mathematical semantics associated with
+ * groups.
+ *
+ * The Groups class has one required attribute, "kind"; two optional
+ * attributes, "id" and "name"; and a single child element, ListOfMembers.
+ * The membership of a group is determined by the contents of the list of
+ * members stored in Member objects within the ListOfMembers child of a Group
+ * object.  Since the Group class of objects is derived from SBase, and SBase
+ * provides the ability to attach SBO terms as well as MIRIAM annotations,
+ * the semantics of a given group in a model can be made more precise using
+ * references to external controlled vocabularies and ontologies.
+ *
+ * @section group-kinds Group kinds
+ *
+ * The attribute "kind" on Group is used to indicate the nature of the group
+ * defined by a Group instance.  The "kind" attribute must always have
+ * one of the following three possible values:
+ *
+ * @li @c "classification": The group represents a class, and its members
+ * have an <em>is-a</em> relationship to the group.  For example, the group
+ * could represent a type of molecule such as ATP, and the members could be
+ * species located in different compartments, thereby establishing that the
+ * species are pools of the same molecule in different locations.
+ *
+ * @li @c "partonomy": The group represents a collection of parts, and its
+ * members have a <em>part-of</em> relationship to the group.  For example, the
+ * group could represent a cellular structure, and individual compartments
+ * could be made members of the group to indicate they represent subparts of
+ * that cellular structure.
+ *
+ * @li @c "collection": The grouping is merely a collection for convenience,
+ * without an implied relationship between the members.  For example, the
+ * group could be used to collect together multiple disparate components of a
+ * model—species, reactions, events—involved in a particular
+ * phenotype, and apply a common annotation rather than having to copy the
+ * same annotation to each component individually.
+ *
+ * In the libSBML API for Groups, these possible values for the "kind"
+ * attribute are programmatically represented as constants so that callers
+ * will not normally need to deal with text string values.  The following
+ * are the constants defined for the three values of "kind" (plus an
+ * additional constant to represent unrecognized values):
+ *
+ * @li @sbmlconstant{GROUP_KIND_CLASSIFICATION, GroupKind_t}
+ * @li @sbmlconstant{GROUP_KIND_PARTONOMY, GroupKind_t}
+ * @li @sbmlconstant{GROUP_KIND_COLLECTION, GroupKind_t}
+ * @li @sbmlconstant{GROUP_KIND_UNKNOWN, GroupKind_t}
+ *
+ * @section group-membership-rules Groups and their members
+ *
+ * If an SBML element is referenced by a Group's child Member (directly or
+ * indirectly), it is considered to be a member of that Group.  If the same
+ * element is referenced by multiple Member objects, this is equivalent to
+ * including it just once.  (It is considered best practice to avoid this,
+ * but does not make for an invalid SBML document.)
+ *
+ * Children of referenced elements are not considered to be members of the
+ * Group: a KineticLaw of a referenced Reaction is not itself a Group
+ * member. Even the membership of so-called SBML container classes (e.g.,
+ * ListOfSpecies, ListOfCompartments, etc.) does not imply inclusion of
+ * children as members of the Group. The sole exception to this rule is the
+ * handling of ListOfMembers class, described below.
+ *
+ * @section groups-semantics Semantics of group memberships
+ *
+ * @copydetails doc_group_semantics
+ *
+ * @see Member
+ * @see ListOfMembers
+ * @see ListOfGroups
  */
 
+/**
+ * <!-- ~ ~ ~ ~ ~ Start of common documentation strings ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
+ * The following text is used as common documentation blocks copied multiple
+ * times elsewhere in this file.  The use of @class is a hack needed because
+ * Doxygen's @copydetails command has limited functionality.  Symbols
+ * beginning with "doc_" are marked as ignored in our Doxygen configuration.
+ * ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  -->
+ *
+ * @class doc_group_kind
+ *
+ * @par
+ * The attribute "kind" on a Group object is used to indicate the nature of
+ * the group defined by a particular Group instance.  In the SBML
+ * Level 3 Version 1 Group specification, there are only three
+ * allowable values for "kind":
+ * <ul>
+ * <li> @c "classification", to indicate that the group represents a class,
+ * and its members have an <em>is-a</em> relationship to the group.
+ *
+ * <li> @c "partonomy", to indicate that the group represents a collection of
+ * parts, and its members have a <em>part-of</em> relationship to the group.
+ *
+ * <li> @c "collection", to indicate that the grouping is merely a collection
+ * for convenience, without an implied relationship between the members.
+ * </ul>
+ */
 
 #ifndef Group_H__
 #define Group_H__
@@ -37,27 +146,18 @@
 #include <sbml/common/extern.h>
 #include <sbml/common/sbmlfwd.h>
 #include <sbml/packages/groups/common/groupsfwd.h>
-LIBSBML_CPP_NAMESPACE_BEGIN
 
-typedef enum
-{
-    GROUP_KIND_CLASSIFICATION
-  , GROUP_KIND_PARTONOMY
-  , GROUP_KIND_COLLECTION
-  , GROUP_KIND_UNKNOWN
-} GroupKind_t;
-
-LIBSBML_CPP_NAMESPACE_END
 
 #ifdef __cplusplus
 
+
 #include <string>
 
+
 #include <sbml/SBase.h>
-#include <sbml/ListOf.h>
 #include <sbml/packages/groups/extension/GroupsExtension.h>
-#include <sbml/packages/groups/sbml/Member.h>
-#include <sbml/packages/groups/sbml/MemberConstraint.h>
+#include <sbml/packages/groups/sbml/ListOfMembers.h>
+
 
 LIBSBML_CPP_NAMESPACE_BEGIN
 
@@ -66,40 +166,59 @@ class LIBSBML_EXTERN Group : public SBase
 {
 protected:
 
-  std::string   mId;
-  std::string   mName;
-  GroupKind_t   mKind;
+  /** @cond doxygenLibsbmlInternal */
+
+  std::string mId;
+  std::string mName;
+  GroupKind_t mKind;
   ListOfMembers mMembers;
-  ListOfMemberConstraints   mMemberConstraints;
+
+  /** @endcond */
 
 public:
 
   /**
-   * Creates a new Group with the given level, version, and package version.
+   * Creates a new Group using the given SBML Level, Version and
+   * “groups” package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this Group.
+   *
+   * @param version an unsigned int, the SBML Version to assign to this Group.
    *
-   * @param level an unsigned int, the SBML Level to assign to this Group
+   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to
+   * this Group.
    *
-   * @param version an unsigned int, the SBML Version to assign to this Group
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
    *
-   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to this Group
+   * @copydetails doc_note_setting_lv
    */
-  Group(unsigned int level      = GroupsExtension::getDefaultLevel(),
-        unsigned int version    = GroupsExtension::getDefaultVersion(),
+  Group(unsigned int level = GroupsExtension::getDefaultLevel(),
+        unsigned int version = GroupsExtension::getDefaultVersion(),
         unsigned int pkgVersion = GroupsExtension::getDefaultPackageVersion());
 
 
   /**
-   * Creates a new Group with the given GroupsPkgNamespaces object.
+   * Creates a new Group using the given GroupsPkgNamespaces object.
    *
-   * @param groupsns the GroupsPkgNamespaces object
+   * @param groupsns the GroupsPkgNamespaces object.
+   *
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
+   *
+   * @copydetails doc_note_setting_lv
    */
-  Group(GroupsPkgNamespaces* groupsns);
+  Group(GroupsPkgNamespaces *groupsns);
 
 
   /**
    * Copy constructor for Group.
    *
-   * @param orig; the Group instance to copy.
+   * @param orig the Group instance to copy.
    */
   Group(const Group& orig);
 
@@ -107,8 +226,8 @@ public:
   /**
    * Assignment operator for Group.
    *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
+   * @param rhs the Group object whose values are to be used as the basis of
+   * the assignment.
    */
   Group& operator=(const Group& rhs);
 
@@ -118,7 +237,7 @@ public:
    *
    * @return a (deep) copy of this Group object.
    */
-  virtual Group* clone () const;
+  virtual Group* clone() const;
 
 
   /**
@@ -132,718 +251,1076 @@ public:
    *
    * @return the value of the "id" attribute of this Group as a string.
    */
-  virtual const std::string& getId() const;
+  const std::string& getId() const;
 
 
   /**
-   * Predicate returning @c true or @c false depending on whether this
-   * Group's "id" attribute has been set.
+   * Returns the value of the "name" attribute of this Group.
    *
-   * @return @c true if this Group's "id" attribute has been set,
-   * otherwise @c false is returned.
+   * @return the value of the "name" attribute of this Group as a string.
    */
-  virtual bool isSetId() const;
+  const std::string& getName() const;
 
 
   /**
-   * Sets the value of the "id" attribute of this Group.
+   * Returns the value of the "kind" attribute of this Group.
    *
-   * @param id; const std::string& value of the "id" attribute to be set
+   * @copydetails doc_group_kind
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * @return the value of the "kind" attribute of this Group.
+   * @if clike The value is drawn from the enumeration
+   * @ref GroupKind_t at endif.
+   * The possible values returned by this method are:
+   * @li @sbmlconstant{GROUP_KIND_CLASSIFICATION, GroupKind_t}
+   * @li @sbmlconstant{GROUP_KIND_PARTONOMY, GroupKind_t}
+   * @li @sbmlconstant{GROUP_KIND_COLLECTION, GroupKind_t}
+   * @li @sbmlconstant{GROUP_KIND_UNKNOWN, GroupKind_t}
    */
-  virtual int setId(const std::string& id);
+  GroupKind_t getKind() const;
 
 
   /**
-   * Unsets the value of the "id" attribute of this Group.
+   * Returns the value of the "kind" attribute of this Group.
+   *
+   * @copydetails doc_group_kind
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
+   * @return the value of the "kind" attribute of this Group as a string.
+   * The possible values returned by this method are:
+   * @li @c "classification"
+   * @li @c "partonomy"
+   * @li @c "collection"
+   * @li @c "unknown"
    */
-  virtual int unsetId();
+  const std::string& getKindAsString() const;
 
 
   /**
-   * Returns the value of the "name" attribute of this Group.
+   * Predicate returning @c true if this Group's "id" attribute is set.
    *
-   * @return the value of the "name" attribute of this Group as a string.
+   * @return @c true if this Group's "id" attribute has been set, otherwise @c
+   * false is returned.
    */
-  virtual const std::string& getName() const;
+  bool isSetId() const;
 
 
   /**
-   * Predicate returning @c true or @c false depending on whether this
-   * Group's "name" attribute has been set.
+   * Predicate returning @c true if this Group's "name" attribute is set.
    *
-   * @htmlinclude comment-set-methods.html
-   * 
-   * @return @c true if this Group's "name" attribute has been set,
-   * otherwise @c false is returned.
+   * @return @c true if this Group's "name" attribute has been set, otherwise
+   * @c false is returned.
    */
-  virtual bool isSetName() const;
+  bool isSetName() const;
+
 
   /**
-   * Sets the value of the "name" attribute of this Group.
+   * Predicate returning @c true if this Group's "kind" attribute is set.
    *
-   * The string in @p name is copied.
+   * @copydetails doc_group_kind
    *
-   * @htmlinclude comment-set-methods.html
-   *
-   * @param name; const std::string& value of the "name" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * @return @c true if this Group's "kind" attribute has been set, otherwise
+   * @c false is returned.
    */
-  virtual int setName(const std::string& name);
+  bool isSetKind() const;
 
 
   /**
-   * Unsets the value of the "name" attribute of this Group.
+   * Sets the value of the "id" attribute of this Group.
    *
-   * @htmlinclude comment-set-methods.html
+   * @param id std::string& value of the "id" attribute to be set.
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE,
+   * OperationReturnValues_t}
    */
-  virtual int unsetName();
+  int setId(const std::string& id);
 
 
   /**
-   * Returns the value of the "kind" attribute of this Group.
-   * 
-   * @return the kind of this Group.
-   */
-  GroupKind_t getKind () const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * Group's "kind" attribute has been set.
+   * Sets the value of the "name" attribute of this Group.
    *
-   * @htmlinclude comment-set-methods.html
-   * 
-   * @return @c true if this Group's "kind" attribute has been set,
-   * otherwise @c false is returned.
+   * @param name std::string& value of the "name" attribute to be set.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
    */
-  virtual bool isSetKind() const;
+  int setName(const std::string& name);
 
 
   /**
    * Sets the value of the "kind" attribute of this Group.
    *
-   * The string in @p kind is copied.
-   *
-   * @htmlinclude comment-set-methods.html
+   * @copydetails doc_group_kind
    *
-   * @param kind the new kind for the Group
+   * @param kind @if clike GroupKind_t at else int at endif value of the 
+   * "kind" attribute to be set.
+   * The value must be one of the predefined constants that represent
+   * valid SBML Level 3 Version 1 Group "kind" names, which
+   * means it must be one of the following values:
+   * @li @sbmlconstant{GROUP_KIND_CLASSIFICATION, GroupKind_t}
+   * @li @sbmlconstant{GROUP_KIND_PARTONOMY, GroupKind_t}
+   * @li @sbmlconstant{GROUP_KIND_COLLECTION, GroupKind_t}
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
    */
-  int setKind (const GroupKind_t kind);
+  int setKind(const GroupKind_t kind);
 
 
   /**
-   * Unsets the value of the "kind" attribute of this Group.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetKind();
-
-
-  /**
-   * Returns the ListOf object that holds all members.
-   *
-   * @return the ListOf object that holds all members.
-   */ 
-  const ListOfMembers* getListOfMembers () const;
-
-  /**
-   * Returns the member with the given index.
-   * If the index is invalid, NULL is returned.
-   *
-   * @param n the index number of the Member to get.
-   *
-   * @return the nth Member in the ListOfMembers.
-   */ 
-  Member* getMember (unsigned int n);
-
-  /**
-   * Returns the member with the given index.
-   * If the index is invalid, NULL is returned.
+   * Sets the value of the "kind" attribute of this Group.
    *
-   * @param n the index number of the Member to get.
+   * @copydetails doc_group_kind
    *
-   * @return the nth Member in the ListOfMembers.
-   */ 
-  const Member* getMember (unsigned int n) const;
-
-  /**
-   * Returns the member with the given symbol.
-   * If the index is invalid, NULL is returned.
+   * @param kind std::string& of the "kind" attribute to be set.  The value
+   * must be one of the following possible strings:
+   * @li "classification"
+   * @li "partonomy"
+   * @li "collection"
    *
-   * @param symbol a string representing the symbol attribute
-   * of the Member to get.
-   * 
-   * @return Member in the ListOfMembers with the given symbol
-   * or NULL if no such Member exists.
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
    */
-  Member* getMember (const std::string& symbol);
+  int setKind(const std::string& kind);
 
 
   /**
-   * Returns the member with the given symbol.
-   * If the index is invalid, NULL is returned.
+   * Unsets the value of the "id" attribute of this Group.
    *
-   * @param symbol a string representing the symbol attribute
-   * of the Member to get.
-   * 
-   * @return Member in the ListOfMembers with the given symbol
-   * or NULL if no such Member exists.
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    */
-  const Member* getMember (const std::string& symbol) const;
+  int unsetId();
 
 
   /**
-   * Adds a copy of the given Member objcect to the list of members.
-   *
-   * @param member the Member object to be added to the list of 
-   * members.
+   * Unsets the value of the "name" attribute of this Group.
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    */
-  int addMember (const Member* member);
+  int unsetName();
 
 
   /**
-   * Returns the number of members for this group.
+   * Unsets the value of the "kind" attribute of this Group.
    *
-   * @return the number of members for this group.
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    */
-  unsigned int getNumMembers () const;
+  int unsetKind();
 
 
   /**
-   * Creates a Member object, adds it to the end of the
-   * member objects list and returns a pointer to the newly
-   * created object.
+   * Returns the ListOfMembers from this Group.
    *
-   * @return a newly created Member object
+   * Using the SBML Level 3 Groups package, the membership of a group
+   * is determined by the contents of the list of members stored in Member
+   * objects within the ListOfMembers child of a Group object.
+   *
+   * @return the ListOfMembers from this Group.
    */
-  Member* createMember ();
+  const ListOfMembers* getListOfMembers() const;
 
 
   /**
-   * Removes the member with the given index from the group.
-   * A pointer to the member that was removed is returned.
-   * If no member has been removed, NULL is returned.
+   * Returns the ListOfMembers from this Group.
    *
-   * @param n the index of the Member object to remove
+   * Using the SBML Level 3 Groups package, the membership of a group
+   * is determined by the contents of the list of members stored in Member
+   * objects within the ListOfMembers child of a Group object.
    *
-   * @return the Member object removed.  As mentioned above, 
-   * the caller owns the returned object. NULL is returned if 
-   * the given index is out of range.
+   * @return the ListOfMembers from this Group.
    */
-  Member* removeMember(unsigned int index);
+  ListOfMembers* getListOfMembers();
 
 
   /**
-   * Removes the member with the given symbol from the group.
-   * A pointer to the member that was removed is returned.
-   * If no member has been removed, NULL is returned.
+   * Get a Member from the Group.
    *
-   * @param symbol the symbol attribute of the Member object to remove
+   * @param n an unsigned int representing the index of the Member to
+   * retrieve.
    *
-   * @return the Member object removed.  As mentioned above, 
-   * the caller owns the returned object. NULL is returned if 
-   * the given index is out of range.
-   */
-  Member* removeMember(const std::string& symbol);
-
-
-  /**
-   * Returns the  "ListOfMemberConstraints" in this Group object.
+   * @return the nth Member in the ListOfMembers within this Group.
    *
-   * @return the "ListOfMemberConstraints" attribute of this Group.
+   * @see addMember(const Member* m)
+   * @see createMember()
+   * @see getMember(const std::string& sid)
+   * @see getNumMembers()
+   * @see removeMember(const std::string& sid)
+   * @see removeMember(unsigned int n)
    */
-  const ListOfMemberConstraints* getListOfMemberConstraints() const;
+  Member* getMember(unsigned int n);
 
 
   /**
-   * Returns the  "ListOfMemberConstraints" in this Group object.
+   * Get a Member from the Group.
+   *
+   * @param n an unsigned int representing the index of the Member to
+   * retrieve.
+   *
+   * @return the nth Member in the ListOfMembers within this Group.
    *
-   * @return the "ListOfMemberConstraints" attribute of this Group.
+   * @see addMember(const Member* m)
+   * @see createMember()
+   * @see getMember(const std::string& sid)
+   * @see getNumMembers()
+   * @see removeMember(const std::string& sid)
+   * @see removeMember(unsigned int n)
    */
-  ListOfMemberConstraints* getListOfMemberConstraints();
+  const Member* getMember(unsigned int n) const;
 
 
   /**
-   * Get a MemberConstraint from the ListOfMemberConstraints.
+   * Get a Member from the Group based on its identifier.
    *
-   * @param n the index number of the MemberConstraint to get.
+   * @param sid a string representing the identifier of the Member to retrieve.
    *
-   * @return the nth MemberConstraint in the ListOfMemberConstraints within this Group.
+   * @return the Member in the ListOfMembers within this Group with the given
+   * id or NULL if no such Member exists.
    *
-   * @see getNumMemberConstraints()
+   * @see addMember(const Member* m)
+   * @see createMember()
+   * @see getMember(unsigned int n)
+   * @see getNumMembers()
+   * @see removeMember(const std::string& sid)
+   * @see removeMember(unsigned int n)
    */
-  MemberConstraint* getMemberConstraint(unsigned int n);
+  Member* getMember(const std::string& sid);
 
 
   /**
-   * Get a MemberConstraint from the ListOfMemberConstraints.
+   * Get a Member from the Group based on its identifier.
    *
-   * @param n the index number of the MemberConstraint to get.
+   * @param sid a string representing the identifier of the Member to retrieve.
    *
-   * @return the nth MemberConstraint in the ListOfMemberConstraints within this Group.
+   * @return the Member in the ListOfMembers within this Group with the given
+   * id or NULL if no such Member exists.
    *
-   * @see getNumMemberConstraints()
+   * @see addMember(const Member* m)
+   * @see createMember()
+   * @see getMember(unsigned int n)
+   * @see getNumMembers()
+   * @see removeMember(const std::string& sid)
+   * @see removeMember(unsigned int n)
    */
-  const MemberConstraint* getMemberConstraint(unsigned int n) const;
+  const Member* getMember(const std::string& sid) const;
 
 
   /**
-   * Get a MemberConstraint from the ListOfMemberConstraints
-   * based on its identifier.
+   * Get a Member from the Group based on the IdRef to which it refers.
    *
-   * @param sid a string representing the identifier
-   * of the MemberConstraint to get.
+   * @param sid a string representing the idRef attribute of the Member object
+   * to retrieve.
    *
-   * @return the MemberConstraint in the ListOfMemberConstraints
-   * with the given id or NULL if no such
-   * MemberConstraint exists.
-   *
-   * @see getMemberConstraint(unsigned int n)
-   *
-   * @see getNumMemberConstraints()
+   * @return the first Member in this Group based on the given idRef attribute
+   * or NULL if no such Member exists.
    */
-  MemberConstraint* getMemberConstraint(const std::string& sid);
+  const Member* getMemberByIdRef(const std::string& sid) const;
 
 
   /**
-   * Get a MemberConstraint from the ListOfMemberConstraints
-   * based on its identifier.
+   * Get a Member from the Group based on the IdRef to which it refers.
    *
-   * @param sid a string representing the identifier
-   * of the MemberConstraint to get.
+   * @param sid a string representing the idRef attribute of the Member object
+   * to retrieve.
    *
-   * @return the MemberConstraint in the ListOfMemberConstraints
-   * with the given id or NULL if no such
-   * MemberConstraint exists.
-   *
-   * @see getMemberConstraint(unsigned int n)
-   *
-   * @see getNumMemberConstraints()
+   * @return the first Member in this Group based on the given idRef attribute
+   * or NULL if no such Member exists.
    */
-  const MemberConstraint* getMemberConstraint(const std::string& sid) const;
+  Member* getMemberByIdRef(const std::string& sid);
 
 
   /**
-   * Adds a copy the given "MemberConstraint" to this Group.
-   *
-   * @param mc; the MemberConstraint object to add
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * Adds a copy of the given Member to this Group.
+   *
+   * @param m the Member object to add.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_LEVEL_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_VERSION_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_NAMESPACES_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_DUPLICATE_OBJECT_ID, OperationReturnValues_t}
+   *
+   * @copydetails doc_note_object_is_copied
+   *
+   * @see createMember()
+   * @see getMember(const std::string& sid)
+   * @see getMember(unsigned int n)
+   * @see getNumMembers()
+   * @see removeMember(const std::string& sid)
+   * @see removeMember(unsigned int n)
    */
-  int addMemberConstraint(const MemberConstraint* mc);
+  int addMember(const Member* m);
 
 
   /**
-   * Get the number of MemberConstraint objects in this Group.
+   * Get the number of Member objects in this Group.
+   *
+   * @return the number of Member objects in this Group.
    *
-   * @return the number of MemberConstraint objects in this Group
+   * @see addMember(const Member* m)
+   * @see createMember()
+   * @see getMember(const std::string& sid)
+   * @see getMember(unsigned int n)
+   * @see removeMember(const std::string& sid)
+   * @see removeMember(unsigned int n)
    */
-  unsigned int getNumMemberConstraints() const;
+  unsigned int getNumMembers() const;
 
 
   /**
-   * Creates a new MemberConstraint object, adds it to this Groups
-   * ListOfMemberConstraints and returns the MemberConstraint object created. 
+   * Creates a new Member object, adds it to this Group object and returns the
+   * Member object created.
    *
-   * @return a new MemberConstraint object instance
+   * @return a new Member object instance.
    *
-   * @see addMemberConstraint(const MemberConstraint* mc)
+   * @see addMember(const Member* m)
+   * @see getMember(const std::string& sid)
+   * @see getMember(unsigned int n)
+   * @see getNumMembers()
+   * @see removeMember(const std::string& sid)
+   * @see removeMember(unsigned int n)
    */
-  MemberConstraint* createMemberConstraint();
+  Member* createMember();
 
 
   /**
-   * Removes the nth MemberConstraint from the ListOfMemberConstraints within this Group.
-   * and returns a pointer to it.
+   * Removes the nth Member from this Group and returns a pointer to it.
    *
-   * The caller owns the returned item and is responsible for deleting it.
+   * @param n an unsigned int representing the index of the Member to remove.
    *
-   * @param n the index of the MemberConstraint to remove.
+   * @return a pointer to the nth Member in this Group.
    *
-   * @see getNumMemberConstraints()
+   * @note the caller owns the returned object and is responsible for deleting
+   * it.
+   *
+   * @see addMember(const Member* m)
+   * @see createMember()
+   * @see getMember(const std::string& sid)
+   * @see getMember(unsigned int n)
+   * @see getNumMembers()
+   * @see removeMember(const std::string& sid)
    */
-  MemberConstraint* removeMemberConstraint(unsigned int n);
+  Member* removeMember(unsigned int n);
 
 
   /**
-   * Removes the MemberConstraint with the given identifier from the ListOfMemberConstraints within this Group
-   * and returns a pointer to it.
+   * Removes the Member from this Group based on its identifier and returns a
+   * pointer to it.
+   *
+   * @param sid a string representing the identifier of the Member to remove.
    *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
+   * @return the Member in this Group based on the identifier or NULL if no
+   * such Member exists.
    *
-   * @param sid the identifier of the MemberConstraint to remove.
+   * @note the caller owns the returned object and is responsible for deleting
+   * it.
    *
-   * @return the MemberConstraint removed. As mentioned above, the caller owns the
-   * returned item.
+   * @see addMember(const Member* m)
+   * @see createMember()
+   * @see getMember(const std::string& sid)
+   * @see getMember(unsigned int n)
+   * @see getNumMembers()
+   * @see removeMember(unsigned int n)
    */
-  MemberConstraint* removeMemberConstraint(const std::string& sid);
-
+  Member* removeMember(const std::string& sid);
 
 
   /**
-   * Subclasses should override this method to return XML element name of
-   * this SBML object.
+   * Returns the XML element name of this Group object.
+   *
+   * For Group, the XML element name is always @c "group".
    *
-   * @return the string of the name of this element.
+   * @return the name of this element, i.e. @c "group".
    */
-  virtual const std::string& getElementName () const ;
+  virtual const std::string& getElementName() const;
 
 
   /**
-   * @return the typecode (int) of this SBML object or SBML_UNKNOWN
-   * (default).
+   * Returns the libSBML type code for this Group object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   * @sbmlconstant{SBML_GROUPS_GROUP, SBMLGroupsTypeCode_t}
+   *
+   * @copydetails doc_warning_typecodes_not_unique
    *
    * @see getElementName()
+   * @see getPackageName()
    */
-  int getTypeCode () const;
+  virtual int getTypeCode() const;
 
 
-  /** @cond doxygenLibsbmlInternal */
   /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.  For example:
+   * Predicate returning @c true if all the required attributes for this Group
+   * object have been set.
    *
-   *   SBase::writeElements(stream);
-   *   mReactans.write(stream);
-   *   mProducts.write(stream);
-   *   ...
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /**
-   * Accepts the given SBMLVisitor.
+   * @return @c true to indicate that all the required attributes of this Group
+   * have been set, otherwise @c false is returned.
    *
-   * @return the result of calling <code>v.visit()</code>, which indicates
-   * whether or not the Visitor would like to visit the SBML object's next
-   * sibling object (if available).
+   *
+   * @note The required attributes for the Group object are:
+   * @li "kind"
    */
-  virtual bool accept (SBMLVisitor& v) const;
-  /** @endcond doxygenLibsbmlInternal */
+  virtual bool hasRequiredAttributes() const;
 
 
   /** @cond doxygenLibsbmlInternal */
-  /**
-   * Sets the parent SBMLDocument of this SBML object.
-   *
-   * @param d the SBMLDocument object to use
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
 
   /**
-   * Sets this SBML object to child SBML objects (if any).
-   * (Creates a child-parent relationship by the parent)
-   *
-   * Subclasses must override this function if they define
-   * one ore more child elements.
-   * Basically, this function needs to be called in
-   * constructor, copy constructor, assignment operator.
-   *
-   * @see setSBMLDocument
-   * @see enablePackageInternal
+   * Write any contained elements
    */
-  virtual void connectToChild ();
+  virtual void writeElements(XMLOutputStream& stream) const;
 
+  /** @endcond */
 
-  /**
-   * Enables/Disables the given package with this element and child
-   * elements (if any).
-   * (This is an internal implementation for enablePakcage function)
-   *
-   * @note Subclasses in which one or more child elements are defined
-   * must override this function.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-                                     const std::string& pkgPrefix, bool flag);
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
-  /* function returns true if component has all the required
-   * attributes
-   * needs to be overloaded for each component
+
+  /**
+   * Accepts the given SBMLVisitor
    */
-  virtual bool hasRequiredAttributes() const ;
-  /** @endcond doxygenLibsbmlInternal */
+  virtual bool accept(SBMLVisitor& v) const;
+
+  /** @endcond */
 
 
 
   /** @cond doxygenLibsbmlInternal */
-  /* function returns true if component has all the required
-   * elements
-   * needs to be overloaded for each component
-   */
-  virtual bool hasRequiredElements() const ;
-  /** @endcond doxygenLibsbmlInternal */
 
-    
-protected:
   /**
-   * @return the SBML object corresponding to next XMLToken in the
-   * XMLInputStream or NULL if the token was not recognized.
+   * Sets the parent SBMLDocument
    */
-  virtual SBase*
-  createObject (XMLInputStream& stream);
+  virtual void setSBMLDocument(SBMLDocument* d);
 
-  /**
-   * Subclasses should override this method to get the list of
-   * expected attributes.
-   * This function is invoked from corresponding readAttributes()
-   * function.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+  /** @endcond */
 
 
-  /**
-   * Subclasses should override this method to read values from the given
-   * XMLAttributes set into their specific fields.  Be sure to call your
-   * parents implementation of this method as well.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes, 
-                               const ExpectedAttributes& expectedAttributes);
+
+  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Subclasses should override this method to write their XML attributes
-   * to the XMLOutputStream.  Be sure to call your parents implementation
-   * of this method as well.  For example:
-   *
-   *   SBase::writeAttributes(stream);
-   *   stream.writeAttribute( "id"  , mId   );
-   *   stream.writeAttribute( "name", mName );
-   *   ...
+   * Connects to child elements
    */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
+  virtual void connectToChild();
 
-};
+  /** @endcond */
 
-class LIBSBML_EXTERN ListOfGroups : public ListOf
-{
-public:
 
-  /**
-   * @return a (deep) copy of this ListOfGroups.
-   */
-  virtual ListOfGroups* clone () const;
 
+  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Creates a new ListOfGroups with the given level, version, and package version.
+   * Enables/disables the given package with this element
    */
-   ListOfGroups(unsigned int level      = GroupsExtension::getDefaultLevel(), 
-                unsigned int version    = GroupsExtension::getDefaultVersion(), 
-                unsigned int pkgVersion = GroupsExtension::getDefaultPackageVersion());
+  virtual void enablePackageInternal(const std::string& pkgURI,
+                                     const std::string& pkgPrefix,
+                                     bool flag);
 
-
-  /**
-   * Creates a new ListOfGroups with the given GroupsPkgNamespaces object.
-   */
-   ListOfGroups(GroupsPkgNamespaces* groupsns);
+  /** @endcond */
 
 
   /**
-   * Get a Group from the ListOfGroups.
+   * Returns the first child element that has the given @p id in the model-wide
+   * SId namespace, or @c NULL if no such object is found.
    *
-   * @param n the index number of the Group to get.
-   * 
-   * @return the nth Group in this ListOfGroups.
+   * @param id a string representing the id attribute of the object to
+   * retrieve.
    *
-   * @see size()
+   * @return a pointer to the SBase element with the given @p id.
    */
-  virtual Group* get(unsigned int n); 
+  virtual SBase* getElementBySId(const std::string& id);
 
 
   /**
-   * Get a Group from the ListOfGroups.
+   * Returns the first child element that has the given @p metaid, or @c NULL
+   * if no such object is found.
    *
-   * @param n the index number of the Group to get.
-   * 
-   * @return the nth Group in this ListOfGroups.
+   * @param metaid a string representing the metaid attribute of the object to
+   * retrieve.
    *
-   * @see size()
+   * @return a pointer to the SBase element with the given @p metaid.
    */
-  virtual const Group * get(unsigned int n) const; 
+  virtual SBase* getElementByMetaId(const std::string& metaid);
 
 
   /**
-   * Get a Group from the ListOfGroups
-   * based on its identifier.
+   * Returns a List of all child SBase objects, including those nested to an
+   * arbitrary depth.
    *
-   * @param sid a string representing the identifier 
-   * of the Group to get.
-   * 
-   * @return Group in this ListOfGroups
-   * with the given id or NULL if no such
-   * Group exists.
+   * filter, an ElementFilter that may impose restrictions on the objects to be
+   * retrieved.
    *
-   * @see get(unsigned int n)
-   * @see size()
+   * @return a List* pointer of pointers to all SBase child objects with any
+   * restriction imposed.
    */
-  virtual Group* get (const std::string& sid);
+  virtual List* getAllElements(ElementFilter * filter = NULL);
 
 
-  /**
-   * Get a Group from the ListOfGroups
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier 
-   * of the Group to get.
-   * 
-   * @return Group in this ListOfGroups
-   * with the given id or NULL if no such
-   * Group exists.
-   *
-   * @see get(unsigned int n)
-   * @see size()
-   */
-  virtual const Group* get (const std::string& sid) const;
+protected:
 
 
+  /** @cond doxygenLibsbmlInternal */
+
   /**
-   * Removes the nth item from this ListOfGroups items and returns a pointer to
-   * it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the item to remove
-   *
-   * @see size()
+   * Creates a new object from the next XMLToken on the XMLInputStream
    */
-  virtual Group* remove (unsigned int n);
+  virtual SBase* createObject(XMLInputStream& stream);
 
+  /** @endcond */
 
-  /**
-   * Removes item in this ListOfGroups items with the given identifier.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then @c
-   * NULL is returned.
-   *
-   * @param sid the identifier of the item to remove
-   *
-   * @return the item removed.  As mentioned above, the caller owns the
-   * returned item.
-   */
-  virtual Group* remove (const std::string& sid);
 
 
+  /** @cond doxygenLibsbmlInternal */
+
   /**
-   * @return the typecode (int) of SBML objects contained in this ListOf or
-   * SBML_UNKNOWN (default).
+   * Adds the expected attributes for this element
    */
-  virtual int getItemTypeCode () const;
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Subclasses should override this method to return XML element name of
-   * this SBML object.
-   *
-   * @return the string of the name of this element.
+   * Reads the expected attributes into the member data variables
    */
-  virtual const std::string& getElementName () const;
+  virtual void readAttributes(const XMLAttributes& attributes,
+                              const ExpectedAttributes& expectedAttributes);
+
+  /** @endcond */
 
 
-protected:
+
+  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * @return the SBML object corresponding to next XMLToken in the
-   * XMLInputStream or NULL if the token was not recognized.
+   * Writes the attributes to the stream
    */
-  virtual SBase* createObject (XMLInputStream& stream);
+  virtual void writeAttributes(XMLOutputStream& stream) const;
+
+  /** @endcond */
+
 
-  virtual void writeXMLNS (XMLOutputStream& stream) const;
 };
 
 
+
 LIBSBML_CPP_NAMESPACE_END
 
+
+
+
 #endif /* __cplusplus */
 
 
+
+
 #ifndef SWIG
 
+
+
+
 LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+
 BEGIN_C_DECLS
 
-//
-// C API will be added here.
-//
 
+/**
+ * Creates a new Group_t using the given SBML Level, Version and
+ * “groups” package version.
+ *
+ * @param level an unsigned int, the SBML Level to assign to this Group_t.
+ *
+ * @param version an unsigned int, the SBML Version to assign to this Group_t.
+ *
+ * @param pkgVersion an unsigned int, the SBML Groups Version to assign to this
+ * Group_t.
+ *
+ * @throws SBMLConstructorException
+ * Thrown if the given @p level and @p version combination, or this kind of
+ * SBML object, are either invalid or mismatched with respect to the parent
+ * SBMLDocument object.
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof Group_t
+ */
 LIBSBML_EXTERN
-const char* 
-GroupKind_toString(GroupKind_t kind);
+Group_t *
+Group_create(unsigned int level = GroupsExtension::getDefaultLevel(),
+             unsigned int version = GroupsExtension::getDefaultVersion(),
+             unsigned int pkgVersion =
+               GroupsExtension::getDefaultPackageVersion());
 
 
+/**
+ * Creates and returns a deep copy of this Group_t object.
+ *
+ * @param g the Group_t structure.
+ *
+ * @return a (deep) copy of this Group_t object.
+ *
+ * @memberof Group_t
+ */
 LIBSBML_EXTERN
-GroupKind_t 
-GroupKind_fromString(const char* s);
+Group_t*
+Group_clone(const Group_t* g);
 
 
+/**
+ * Frees this Group_t object.
+ *
+ * @param g the Group_t structure.
+ *
+ * @memberof Group_t
+ */
 LIBSBML_EXTERN
-int 
-GroupKind_isValidGroupKind(GroupKind_t kind);
+void
+Group_free(Group_t* g);
 
 
+/**
+ * Returns the value of the "id" attribute of this Group_t.
+ *
+ * @param g the Group_t structure whose id is sought.
+ *
+ * @return the value of the "id" attribute of this Group_t as a pointer to a
+ * string.
+ *
+ * @memberof Group_t
+ */
 LIBSBML_EXTERN
-int 
-GroupKind_isValidGroupKindString(const char* s);
+const char *
+Group_getId(const Group_t * g);
+
+
+/**
+ * Returns the value of the "name" attribute of this Group_t.
+ *
+ * @param g the Group_t structure whose name is sought.
+ *
+ * @return the value of the "name" attribute of this Group_t as a pointer to a
+ * string.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+const char *
+Group_getName(const Group_t * g);
+
+
+/**
+ * Returns the value of the "kind" attribute of this Group_t.
+ *
+ * @param g the Group_t structure whose kind is sought.
+ *
+ * @return the value of the "kind" attribute of this Group_t as a GroupKind_t.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+GroupKind_t
+Group_getKind(const Group_t * g);
+
+
+/**
+ * Returns the value of the "kind" attribute of this Group_t.
+ *
+ * @param g the Group_t structure whose kind is sought.
+ *
+ * @return the value of the "kind" attribute of this Group_t as a const char *.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+const char *
+Group_getKindAsString(const Group_t * g);
+
+
+/**
+ * Predicate returning @c 1 if this Group_t's "id" attribute is set.
+ *
+ * @param g the Group_t structure.
+ *
+ * @return @c 1 if this Group_t's "id" attribute has been set, otherwise @c 0
+ * is returned.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_isSetId(const Group_t * g);
+
+
+/**
+ * Predicate returning @c 1 if this Group_t's "name" attribute is set.
+ *
+ * @param g the Group_t structure.
+ *
+ * @return @c 1 if this Group_t's "name" attribute has been set, otherwise @c 0
+ * is returned.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_isSetName(const Group_t * g);
+
+
+/**
+ * Predicate returning @c 1 if this Group_t's "kind" attribute is set.
+ *
+ * @param g the Group_t structure.
+ *
+ * @return @c 1 if this Group_t's "kind" attribute has been set, otherwise @c 0
+ * is returned.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_isSetKind(const Group_t * g);
+
+
+/**
+ * Sets the value of the "id" attribute of this Group_t.
+ *
+ * @param g the Group_t structure.
+ *
+ * @param id const char * value of the "id" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_setId(Group_t * g, const char * id);
+
+
+/**
+ * Sets the value of the "name" attribute of this Group_t.
+ *
+ * @param g the Group_t structure.
+ *
+ * @param name const char * value of the "name" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_setName(Group_t * g, const char * name);
+
+
+/**
+ * Sets the value of the "kind" attribute of this Group_t.
+ *
+ * @param g the Group_t structure.
+ *
+ * @param kind GroupKind_t value of the "kind" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_setKind(Group_t * g, GroupKind_t kind);
+
+
+/**
+ * Sets the value of the "kind" attribute of this Group_t.
+ *
+ * @param g the Group_t structure.
+ *
+ * @param kind const char * of the "kind" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_setKindAsString(Group_t * g, const char * kind);
+
+
+/**
+ * Unsets the value of the "id" attribute of this Group_t.
+ *
+ * @param g the Group_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_unsetId(Group_t * g);
+
+
+/**
+ * Unsets the value of the "name" attribute of this Group_t.
+ *
+ * @param g the Group_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_unsetName(Group_t * g);
+
+
+/**
+ * Unsets the value of the "kind" attribute of this Group_t.
+ *
+ * @param g the Group_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_unsetKind(Group_t * g);
+
+
+/**
+ * Returns a ListOf_t* containing Member_t objects from this Group_t.
+ *
+ * @param g the Group_t structure whose "ListOfMembers" is sought.
+ *
+ * @return the "ListOfMembers" from this Group_t as a ListOf_t *.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+ListOf_t*
+Group_getListOfMembers(Group_t* g);
+
+
+/**
+ * Get a Member_t from the Group_t.
+ *
+ * @param g the Group_t structure to search.
+ *
+ * @param n an unsigned int representing the index of the Member_t to
+ * retrieve.
+ *
+ * @return the nth Member_t in the ListOfMembers within this Group.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+const Member_t*
+Group_getMember(Group_t* g, unsigned int n);
+
+
+/**
+ * Get a Member_t from the Group_t based on its identifier.
+ *
+ * @param g the Group_t structure to search.
+ *
+ * @param sid a string representing the identifier of the Member_t to retrieve.
+ *
+ * @return the Member_t in the ListOfMembers within this Group with the given
+ * id or NULL if no such Member_t exists.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+const Member_t*
+Group_getMemberById(Group_t* g, const char *sid);
+
+
+/**
+ * Get a Member_t from the Group_t based on the IdRef to which it refers.
+ *
+ * @param g the Group_t structure to search.
+ *
+ * @param sid a string representing the idRef attribute of the Member_t object
+ * to retrieve.
+ *
+ * @return the first Member_t in this Group_t based on the given idRef
+ * attribute or NULL if no such Member_t exists.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+const Member_t*
+Group_getMemberByIdRef(Group_t* g, const char *sid);
+
+
+/**
+ * Adds a copy of the given Member_t to this Group_t.
+ *
+ * @param g the Group_t structure to which the Member_t should be added.
+ *
+ * @param m the Member_t object to add.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_addMember(Group_t* g, const Member_t* m);
+
+
+/**
+ * Get the number of Member_t objects in this Group_t.
+ *
+ * @param g the Group_t structure to query.
+ *
+ * @return the number of Member_t objects in this Group_t.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+unsigned int
+Group_getNumMembers(Group_t* g);
+
+
+/**
+ * Creates a new Member_t object, adds it to this Group_t object and returns
+ * the Member_t object created.
+ *
+ * @param g the Group_t structure to which the Member_t should be added.
+ *
+ * @return a new Member_t object instance.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+Member_t*
+Group_createMember(Group_t* g);
+
+
+/**
+ * Removes the nth Member_t from this Group_t and returns a pointer to it.
+ *
+ * @param g the Group_t structure to search.
+ *
+ * @param n an unsigned int representing the index of the Member_t to remove.
+ *
+ * @return a pointer to the nth Member_t in this Group_t.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+Member_t*
+Group_removeMember(Group_t* g, unsigned int n);
+
+
+/**
+ * Removes the Member_t from this Group_t based on its identifier and returns a
+ * pointer to it.
+ *
+ * @param g the Group_t structure to search.
+ *
+ * @param sid a string representing the identifier of the Member_t to remove.
+ *
+ * @return the Member_t in this Group_t based on the identifier or NULL if no
+ * such Member_t exists.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+Member_t*
+Group_removeMemberById(Group_t* g, const char* sid);
+
+
+/**
+ * Predicate returning @c 1 if all the required attributes for this Group_t
+ * object have been set.
+ *
+ * @param g the Group_t structure.
+ *
+ * @return @c 1 to indicate that all the required attributes of this Group_t
+ * have been set, otherwise @c 0 is returned.
+ *
+ *
+ * @note The required attributes for the Group_t object are:
+ * @li "kind"
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_hasRequiredAttributes(const Group_t * g);
+
+
+/**
+ * Predicate returning @c 1 if all the required elements for this Group_t
+ * object have been set.
+ *
+ * @param g the Group_t structure.
+ *
+ * @return @c 1 to indicate that all the required elements of this Group_t have
+ * been set, otherwise @c 0 is returned.
+ *
+ *
+ * @note The required elements for the Group_t object are:
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+int
+Group_hasRequiredElements(const Group_t * g);
+
+
 
 
 END_C_DECLS
+
+
+
+
 LIBSBML_CPP_NAMESPACE_END
 
 
-#endif  /* !SWIG */
-#endif  /* Group_H__ */
+
+
+#endif /* !SWIG */
+
+
+
+
+#endif /* !Group_H__ */
+
+
diff --git a/src/sbml/packages/groups/sbml/ListOfGroups.cpp b/src/sbml/packages/groups/sbml/ListOfGroups.cpp
new file mode 100644
index 0000000..8bcb4e6
--- /dev/null
+++ b/src/sbml/packages/groups/sbml/ListOfGroups.cpp
@@ -0,0 +1,420 @@
+/**
+ * @file ListOfGroups.cpp
+ * @brief Implementation of the ListOfGroups class.
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
+#include <sbml/packages/groups/sbml/ListOfGroups.h>
+#include <sbml/packages/groups/validator/GroupsSBMLError.h>
+
+
+using namespace std;
+
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+
+#ifdef __cplusplus
+
+
+/*
+ * Creates a new ListOfGroups using the given SBML Level, Version and
+ * “groups” package version.
+ */
+ListOfGroups::ListOfGroups(unsigned int level,
+                           unsigned int version,
+                           unsigned int pkgVersion)
+  : ListOf(level, version)
+{
+  setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level, version, pkgVersion));
+}
+
+
+/*
+ * Creates a new ListOfGroups using the given GroupsPkgNamespaces object.
+ */
+ListOfGroups::ListOfGroups(GroupsPkgNamespaces *groupsns)
+  : ListOf(groupsns)
+{
+  setElementNamespace(groupsns->getURI());
+}
+
+
+/*
+ * Copy constructor for ListOfGroups.
+ */
+ListOfGroups::ListOfGroups(const ListOfGroups& orig)
+  : ListOf( orig )
+{
+}
+
+
+/*
+ * Assignment operator for ListOfGroups.
+ */
+ListOfGroups&
+ListOfGroups::operator=(const ListOfGroups& rhs)
+{
+  if (&rhs != this)
+  {
+    ListOf::operator=(rhs);
+  }
+
+  return *this;
+}
+
+
+/*
+ * Creates and returns a deep copy of this ListOfGroups object.
+ */
+ListOfGroups*
+ListOfGroups::clone() const
+{
+  return new ListOfGroups(*this);
+}
+
+
+/*
+ * Destructor for ListOfGroups.
+ */
+ListOfGroups::~ListOfGroups()
+{
+}
+
+
+/*
+ * Get a Group from the ListOfGroups.
+ */
+Group*
+ListOfGroups::get(unsigned int n)
+{
+  return static_cast<Group*>(ListOf::get(n));
+}
+
+
+/*
+ * Get a Group from the ListOfGroups.
+ */
+const Group*
+ListOfGroups::get(unsigned int n) const
+{
+  return static_cast<const Group*>(ListOf::get(n));
+}
+
+
+/*
+ * Get a Group from the ListOfGroups based on its identifier.
+ */
+Group*
+ListOfGroups::get(const std::string& sid)
+{
+  return const_cast<Group*>(static_cast<const ListOfGroups&>(*this).get(sid));
+}
+
+
+/*
+ * Get a Group from the ListOfGroups based on its identifier.
+ */
+const Group*
+ListOfGroups::get(const std::string& sid) const
+{
+  vector<SBase*>::const_iterator result;
+  result = find_if(mItems.begin(), mItems.end(), IdEq<Group>(sid));
+  return (result == mItems.end()) ? 0 : static_cast <const Group*> (*result);
+}
+
+
+/*
+ * Removes the nth Group from this ListOfGroups and returns a pointer to it.
+ */
+Group*
+ListOfGroups::remove(unsigned int n)
+{
+  return static_cast<Group*>(ListOf::remove(n));
+}
+
+
+/*
+ * Removes the Group from this ListOfGroups based on its identifier and returns
+ * a pointer to it.
+ */
+Group*
+ListOfGroups::remove(const std::string& sid)
+{
+  SBase* item = NULL;
+  vector<SBase*>::iterator result;
+
+  result = find_if(mItems.begin(), mItems.end(), IdEq<Group>(sid));
+
+  if (result != mItems.end())
+  {
+    item = *result;
+    mItems.erase(result);
+  }
+
+  return static_cast <Group*> (item);
+}
+
+
+/*
+ * Adds a copy of the given Group to this ListOfGroups.
+ */
+int
+ListOfGroups::addGroup(const Group* g)
+{
+  if (g == NULL)
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
+  else if (g->hasRequiredAttributes() == false)
+  {
+    return LIBSBML_INVALID_OBJECT;
+  }
+  else if (getLevel() != g->getLevel())
+  {
+    return LIBSBML_LEVEL_MISMATCH;
+  }
+  else if (getVersion() != g->getVersion())
+  {
+    return LIBSBML_VERSION_MISMATCH;
+  }
+  else if (matchesRequiredSBMLNamespacesForAddition(static_cast<const
+    SBase*>(g)) == false)
+  {
+    return LIBSBML_NAMESPACES_MISMATCH;
+  }
+  else
+  {
+    append(g);
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+}
+
+
+/*
+ * Get the number of Group objects in this ListOfGroups.
+ */
+unsigned int
+ListOfGroups::getNumGroups() const
+{
+  return size();
+}
+
+
+/*
+ * Creates a new Group object, adds it to this ListOfGroups object and returns
+ * the Group object created.
+ */
+Group*
+ListOfGroups::createGroup()
+{
+  Group* g = NULL;
+
+  try
+  {
+    GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
+    g = new Group(groupsns);
+    delete groupsns;
+  }
+  catch (...)
+  {
+  }
+
+  if (g != NULL)
+  {
+    appendAndOwn(g);
+  }
+
+  return g;
+}
+
+
+/*
+ * Returns the XML element name of this ListOfGroups object.
+ */
+const std::string&
+ListOfGroups::getElementName() const
+{
+  static const string name = "listOfGroups";
+  return name;
+}
+
+
+/*
+ * Returns the libSBML type code for this ListOfGroups object.
+ */
+int
+ListOfGroups::getTypeCode() const
+{
+  return SBML_LIST_OF;
+}
+
+
+/*
+ * Returns the libSBML type code for the SBML objects contained in this
+ * ListOfGroups object.
+ */
+int
+ListOfGroups::getItemTypeCode() const
+{
+  return SBML_GROUPS_GROUP;
+}
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Creates a new Group in this ListOfGroups
+ */
+SBase*
+ListOfGroups::createObject(XMLInputStream& stream)
+{
+  const std::string& name = stream.peek().getName();
+  SBase* object = NULL;
+  GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
+
+  if (name == "group")
+  {
+    object = new Group(groupsns);
+    appendAndOwn(object);
+  }
+
+  delete groupsns;
+  return object;
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Writes the namespace for the Groups package
+ */
+void
+ListOfGroups::writeXMLNS(XMLOutputStream& stream) const
+{
+  XMLNamespaces xmlns;
+  std::string prefix = getPrefix();
+
+  if (prefix.empty())
+  {
+    XMLNamespaces* thisxmlns = getNamespaces();
+    if (thisxmlns && thisxmlns->hasURI(GroupsExtension::getXmlnsL3V1V1()))
+    {
+      xmlns.add(GroupsExtension::getXmlnsL3V1V1(), prefix);
+    }
+  }
+
+  stream << xmlns;
+}
+
+/** @endcond */
+
+
+
+
+#endif /* __cplusplus */
+
+
+/*
+ * Get a Group_t from the ListOf_t.
+ */
+LIBSBML_EXTERN
+const Group_t*
+ListOfGroups_getGroup(ListOf_t* lo, unsigned int n)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return static_cast <ListOfGroups*>(lo)->get(n);
+}
+
+
+/*
+ * Get a Group_t from the ListOf_t based on its identifier.
+ */
+LIBSBML_EXTERN
+const Group_t*
+ListOfGroups_getById(ListOf_t* lo, const char *sid)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return (sid != NULL) ? static_cast <ListOfGroups*>(lo)->get(sid) : NULL;
+}
+
+
+/*
+ * Removes the nth Group_t from this ListOf_t and returns a pointer to it.
+ */
+LIBSBML_EXTERN
+Group_t*
+ListOfGroups_remove(ListOf_t* lo, unsigned int n)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return static_cast <ListOfGroups*>(lo)->remove(n);
+}
+
+
+/*
+ * Removes the Group_t from this ListOf_t based on its identifier and returns a
+ * pointer to it.
+ */
+LIBSBML_EXTERN
+Group_t*
+ListOfGroups_removeById(ListOf_t* lo, const char* sid)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return (sid != NULL) ? static_cast <ListOfGroups*>(lo)->remove(sid) : NULL;
+}
+
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+
diff --git a/src/sbml/packages/groups/sbml/ListOfGroups.h b/src/sbml/packages/groups/sbml/ListOfGroups.h
new file mode 100644
index 0000000..15e61bb
--- /dev/null
+++ b/src/sbml/packages/groups/sbml/ListOfGroups.h
@@ -0,0 +1,494 @@
+/**
+ * @file ListOfGroups.h
+ * @brief Definition of the ListOfGroups class.
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class ListOfGroups
+ * @sbmlbrief{groups} A list of Group objects.
+ *
+ * The SBML Level 3 Groups package provides a means of defining a
+ * <em>group of entities</em>: a simple mechanism for indicating that
+ * particular components of an SBML model are related in some way.  A group
+ * is defined using a Group class object, and all the Group objects in a
+ * model are stored in the parent Model object within a ListOfGroups object.
+ *
+ * A ListOfGroups is optional, but, if present, must contain at least one
+ * Group object.  In common with other ListOf___ classes in SBML,
+ * ListOfGroups is derived from SBase. It inherits SBase's attributes
+ * "metaid" and "sboTerm", as well as the subcomponents for Annotation and
+ * Notes, but does not add any new attributes of its own.
+ *
+ * @copydetails doc_what_is_listof
+ */
+
+
+#ifndef ListOfGroups_H__
+#define ListOfGroups_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/groups/common/groupsfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/ListOf.h>
+#include <sbml/packages/groups/extension/GroupsExtension.h>
+#include <sbml/packages/groups/sbml/Group.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+class LIBSBML_EXTERN ListOfGroups : public ListOf
+{
+
+public:
+
+  /**
+   * Creates a new ListOfGroups using the given SBML Level, Version and
+   * “groups” package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this
+   * ListOfGroups.
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * ListOfGroups.
+   *
+   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to
+   * this ListOfGroups.
+   *
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
+   * @copydetails doc_note_setting_lv
+   */
+  ListOfGroups(unsigned int level = GroupsExtension::getDefaultLevel(),
+               unsigned int version = GroupsExtension::getDefaultVersion(),
+               unsigned int pkgVersion =
+                 GroupsExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new ListOfGroups using the given GroupsPkgNamespaces object.
+   *
+   * @param groupsns the GroupsPkgNamespaces object.
+   *
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
+   * @copydetails doc_note_setting_lv
+   */
+  ListOfGroups(GroupsPkgNamespaces *groupsns);
+
+
+  /**
+   * Copy constructor for ListOfGroups.
+   *
+   * @param orig the ListOfGroups instance to copy.
+   */
+  ListOfGroups(const ListOfGroups& orig);
+
+
+  /**
+   * Assignment operator for ListOfGroups.
+   *
+   * @param rhs the ListOfGroups object whose values are to be used as the
+   * basis of the assignment.
+   */
+  ListOfGroups& operator=(const ListOfGroups& rhs);
+
+
+  /**
+   * Creates and returns a deep copy of this ListOfGroups object.
+   *
+   * @return a (deep) copy of this ListOfGroups object.
+   */
+  virtual ListOfGroups* clone() const;
+
+
+  /**
+   * Destructor for ListOfGroups.
+   */
+  virtual ~ListOfGroups();
+
+
+  /**
+   * Get a Group from the ListOfGroups.
+   *
+   * @param n an unsigned int representing the index of the Group to retrieve.
+   *
+   * @return the nth Group in this ListOfGroups.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see get(const std::string& sid)
+   * @see getNumGroups()
+   * @see remove(const std::string& sid)
+   * @see remove(unsigned int n)
+   */
+  virtual Group* get(unsigned int n);
+
+
+  /**
+   * Get a Group from the ListOfGroups.
+   *
+   * @param n an unsigned int representing the index of the Group to retrieve.
+   *
+   * @return the nth Group in this ListOfGroups.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see get(const std::string& sid)
+   * @see getNumGroups()
+   * @see remove(const std::string& sid)
+   * @see remove(unsigned int n)
+   */
+  virtual const Group* get(unsigned int n) const;
+
+
+  /**
+   * Get a Group from the ListOfGroups based on its identifier.
+   *
+   * @param sid a string representing the identifier of the Group to retrieve.
+   *
+   * @return the Group in this ListOfGroups with the given id or NULL if no
+   * such Group exists.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see get(unsigned int n)
+   * @see getNumGroups()
+   * @see remove(const std::string& sid)
+   * @see remove(unsigned int n)
+   */
+  virtual Group* get(const std::string& sid);
+
+
+  /**
+   * Get a Group from the ListOfGroups based on its identifier.
+   *
+   * @param sid a string representing the identifier of the Group to retrieve.
+   *
+   * @return the Group in this ListOfGroups with the given id or NULL if no
+   * such Group exists.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see get(unsigned int n)
+   * @see getNumGroups()
+   * @see remove(const std::string& sid)
+   * @see remove(unsigned int n)
+   * @see getNumGroups()
+   */
+  virtual const Group* get(const std::string& sid) const;
+
+
+  /**
+   * Removes the nth Group from this ListOfGroups and returns a pointer to it.
+   *
+   * @param n an unsigned int representing the index of the Group to remove.
+   *
+   * @return a pointer to the nth Group in this ListOfGroups.
+   *
+   * @note The caller owns the returned object and is responsible for deleting
+   * it.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see get(const std::string& sid)
+   * @see get(unsigned int n)
+   * @see getNumGroups()
+   * @see remove(const std::string& sid)
+   */
+  virtual Group* remove(unsigned int n);
+
+
+  /**
+   * Removes the Group from this ListOfGroups based on its identifier and
+   * returns a pointer to it.
+   *
+   * @param sid a string representing the identifier of the Group to remove.
+   *
+   * @return the Group in this ListOfGroups based on the identifier or NULL if
+   * no such Group exists.
+   *
+   * @note The caller owns the returned object and is responsible for deleting
+   * it.
+   *
+   * @see addGroup(const Group* g)
+   * @see createGroup()
+   * @see get(const std::string& sid)
+   * @see get(unsigned int n)
+   * @see getNumGroups()
+   * @see remove(unsigned int n)
+   */
+  virtual Group* remove(const std::string& sid);
+
+
+  /**
+   * Adds a copy of the given Group to this ListOfGroups.
+   *
+   * @param g the Group object to add.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_OBJECT, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_LEVEL_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_VERSION_MISMATCH, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_NAMESPACES_MISMATCH, OperationReturnValues_t}
+   *
+   * @copydetails doc_note_object_is_copied
+   *
+   * @see createGroup()
+   * @see get(const std::string& sid)
+   * @see get(unsigned int n)
+   * @see getNumGroups()
+   * @see remove(const std::string& sid)
+   * @see remove(unsigned int n)
+   */
+  int addGroup(const Group* g);
+
+
+  /**
+   * Get the number of Group objects in this ListOfGroups.
+   *
+   * @return the number of Group objects in this ListOfGroups.
+   *
+   * @see createGroup()
+   * @see get(const std::string& sid)
+   * @see get(unsigned int n)
+   * @see remove(const std::string& sid)
+   * @see remove(unsigned int n)
+   */
+  unsigned int getNumGroups() const;
+
+
+  /**
+   * Creates a new Group object, adds it to this ListOfGroups object and
+   * returns the Group object created.
+   *
+   * @return a new Group object instance.
+   *
+   * @see get(const std::string& sid)
+   * @see get(unsigned int n)
+   * @see getNumGroups()
+   * @see remove(const std::string& sid)
+   * @see remove(unsigned int n)
+   */
+  Group* createGroup();
+
+
+  /**
+   * Returns the XML element name of this ListOfGroups object.
+   *
+   * For ListOfGroups, the XML element name is always @c "listOfGroups".
+   *
+   * @return the name of this element, i.e. @c "listOfGroups".
+   */
+  virtual const std::string& getElementName() const;
+
+
+  /**
+   * Returns the libSBML type code for this ListOfGroups object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   *
+   * @sbmlconstant{SBML_LIST_OF, SBMLTypeCode_t}
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   */
+  virtual int getTypeCode() const;
+
+
+  /**
+   * Returns the libSBML type code for the SBML objects contained in this
+   * ListOfGroups object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML typecode for the objects contained in this ListOfGroups:
+   *
+   * @sbmlconstant{SBML_GROUPS_GROUP, SBMLGroupsTypeCode_t}
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getItemTypeCode() const;
+
+
+protected:
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Creates a new Group in this ListOfGroups
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Writes the namespace for the Groups package
+   */
+  virtual void writeXMLNS(XMLOutputStream& stream) const;
+
+  /** @endcond */
+
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+
+
+
+#endif /* __cplusplus */
+
+
+
+
+#ifndef SWIG
+
+
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+
+BEGIN_C_DECLS
+
+
+/**
+ * Get a Group_t from the ListOf_t.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param n an unsigned int representing the index of the Group_t to retrieve.
+ *
+ * @return the nth Group_t in this ListOf_t.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+const Group_t*
+ListOfGroups_getGroup(ListOf_t* lo, unsigned int n);
+
+
+/**
+ * Get a Group_t from the ListOf_t based on its identifier.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param sid a string representing the identifier of the Group_t to retrieve.
+ *
+ * @return the Group_t in this ListOf_t with the given id or NULL if no such
+ * Group_t exists.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+const Group_t*
+ListOfGroups_getById(ListOf_t* lo, const char *sid);
+
+
+/**
+ * Removes the nth Group_t from this ListOf_t and returns a pointer to it.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param n an unsigned int representing the index of the Group_t to remove.
+ *
+ * @return a pointer to the nth Group_t in this ListOf_t.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+Group_t*
+ListOfGroups_remove(ListOf_t* lo, unsigned int n);
+
+
+/**
+ * Removes the Group_t from this ListOf_t based on its identifier and returns a
+ * pointer to it.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param sid a string representing the identifier of the Group_t to remove.
+ *
+ * @return the Group_t in this ListOf_t based on the identifier or NULL if no
+ * such Group_t exists.
+ *
+ * @memberof Group_t
+ */
+LIBSBML_EXTERN
+Group_t*
+ListOfGroups_removeById(ListOf_t* lo, const char* sid);
+
+
+
+
+END_C_DECLS
+
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+
+
+
+#endif /* !SWIG */
+
+
+
+
+#endif /* !ListOfGroups_H__ */
diff --git a/src/sbml/packages/groups/sbml/ListOfMembers.cpp b/src/sbml/packages/groups/sbml/ListOfMembers.cpp
new file mode 100644
index 0000000..bebd7d3
--- /dev/null
+++ b/src/sbml/packages/groups/sbml/ListOfMembers.cpp
@@ -0,0 +1,808 @@
+/**
+ * @file ListOfMembers.cpp
+ * @brief Implementation of the ListOfMembers class.
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
+#include <sbml/packages/groups/sbml/ListOfMembers.h>
+#include <sbml/packages/groups/validator/GroupsSBMLError.h>
+
+
+using namespace std;
+
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+
+#ifdef __cplusplus
+
+
+/*
+ * Creates a new ListOfMembers using the given SBML Level, Version and
+ * “groups” package version.
+ */
+ListOfMembers::ListOfMembers(unsigned int level,
+                             unsigned int version,
+                             unsigned int pkgVersion)
+  : ListOf(level, version)
+  , mId ("")
+  , mName ("")
+{
+  setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level, version, pkgVersion));
+}
+
+
+/*
+ * Creates a new ListOfMembers using the given GroupsPkgNamespaces object.
+ */
+ListOfMembers::ListOfMembers(GroupsPkgNamespaces *groupsns)
+  : ListOf(groupsns)
+  , mId ("")
+  , mName ("")
+{
+  setElementNamespace(groupsns->getURI());
+}
+
+
+/*
+ * Copy constructor for ListOfMembers.
+ */
+ListOfMembers::ListOfMembers(const ListOfMembers& orig)
+  : ListOf( orig )
+  , mId ( orig.mId )
+  , mName ( orig.mName )
+{
+}
+
+
+/*
+ * Assignment operator for ListOfMembers.
+ */
+ListOfMembers&
+ListOfMembers::operator=(const ListOfMembers& rhs)
+{
+  if (&rhs != this)
+  {
+    ListOf::operator=(rhs);
+    mId = rhs.mId;
+    mName = rhs.mName;
+  }
+
+  return *this;
+}
+
+
+/*
+ * Creates and returns a deep copy of this ListOfMembers object.
+ */
+ListOfMembers*
+ListOfMembers::clone() const
+{
+  return new ListOfMembers(*this);
+}
+
+
+/*
+ * Destructor for ListOfMembers.
+ */
+ListOfMembers::~ListOfMembers()
+{
+}
+
+
+/*
+ * Returns the value of the "id" attribute of this ListOfMembers.
+ */
+const std::string&
+ListOfMembers::getId() const
+{
+  return mId;
+}
+
+
+/*
+ * Returns the value of the "name" attribute of this ListOfMembers.
+ */
+const std::string&
+ListOfMembers::getName() const
+{
+  return mName;
+}
+
+
+/*
+ * Predicate returning @c true if this ListOfMembers's "id" attribute is set.
+ */
+bool
+ListOfMembers::isSetId() const
+{
+  return (mId.empty() == false);
+}
+
+
+/*
+ * Predicate returning @c true if this ListOfMembers's "name" attribute is set.
+ */
+bool
+ListOfMembers::isSetName() const
+{
+  return (mName.empty() == false);
+}
+
+
+/*
+ * Sets the value of the "id" attribute of this ListOfMembers.
+ */
+int
+ListOfMembers::setId(const std::string& id)
+{
+  return SyntaxChecker::checkAndSetSId(id, mId);
+}
+
+
+/*
+ * Sets the value of the "name" attribute of this ListOfMembers.
+ */
+int
+ListOfMembers::setName(const std::string& name)
+{
+  mName = name;
+  return LIBSBML_OPERATION_SUCCESS;
+}
+
+
+/*
+ * Unsets the value of the "id" attribute of this ListOfMembers.
+ */
+int
+ListOfMembers::unsetId()
+{
+  mId.erase();
+
+  if (mId.empty() == true)
+  {
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+  else
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
+}
+
+
+/*
+ * Unsets the value of the "name" attribute of this ListOfMembers.
+ */
+int
+ListOfMembers::unsetName()
+{
+  mName.erase();
+
+  if (mName.empty() == true)
+  {
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+  else
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
+}
+
+
+/*
+ * Get a Member from the ListOfMembers.
+ */
+Member*
+ListOfMembers::get(unsigned int n)
+{
+  return static_cast<Member*>(ListOf::get(n));
+}
+
+
+/*
+ * Get a Member from the ListOfMembers.
+ */
+const Member*
+ListOfMembers::get(unsigned int n) const
+{
+  return static_cast<const Member*>(ListOf::get(n));
+}
+
+
+/*
+ * Get a Member from the ListOfMembers based on its identifier.
+ */
+Member*
+ListOfMembers::get(const std::string& sid)
+{
+  return const_cast<Member*>(static_cast<const
+    ListOfMembers&>(*this).get(sid));
+}
+
+
+/*
+ * Get a Member from the ListOfMembers based on its identifier.
+ */
+const Member*
+ListOfMembers::get(const std::string& sid) const
+{
+  vector<SBase*>::const_iterator result;
+  result = find_if(mItems.begin(), mItems.end(), IdEq<Member>(sid));
+  return (result == mItems.end()) ? 0 : static_cast <const Member*> (*result);
+}
+
+
+/*
+ * Removes the nth Member from this ListOfMembers and returns a pointer to it.
+ */
+Member*
+ListOfMembers::remove(unsigned int n)
+{
+  return static_cast<Member*>(ListOf::remove(n));
+}
+
+
+/*
+ * Removes the Member from this ListOfMembers based on its identifier and
+ * returns a pointer to it.
+ */
+Member*
+ListOfMembers::remove(const std::string& sid)
+{
+  SBase* item = NULL;
+  vector<SBase*>::iterator result;
+
+  result = find_if(mItems.begin(), mItems.end(), IdEq<Member>(sid));
+
+  if (result != mItems.end())
+  {
+    item = *result;
+    mItems.erase(result);
+  }
+
+  return static_cast <Member*> (item);
+}
+
+
+/*
+ * Adds a copy of the given Member to this ListOfMembers.
+ */
+int
+ListOfMembers::addMember(const Member* m)
+{
+  if (m == NULL)
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
+  else if (m->hasRequiredAttributes() == false)
+  {
+    return LIBSBML_INVALID_OBJECT;
+  }
+  else if (getLevel() != m->getLevel())
+  {
+    return LIBSBML_LEVEL_MISMATCH;
+  }
+  else if (getVersion() != m->getVersion())
+  {
+    return LIBSBML_VERSION_MISMATCH;
+  }
+  else if (matchesRequiredSBMLNamespacesForAddition(static_cast<const
+    SBase*>(m)) == false)
+  {
+    return LIBSBML_NAMESPACES_MISMATCH;
+  }
+  else
+  {
+    append(m);
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+}
+
+
+/*
+ * Get the number of Member objects in this ListOfMembers.
+ */
+unsigned int
+ListOfMembers::getNumMembers() const
+{
+  return size();
+}
+
+
+/*
+ * Creates a new Member object, adds it to this ListOfMembers object and
+ * returns the Member object created.
+ */
+Member*
+ListOfMembers::createMember()
+{
+  Member* m = NULL;
+
+  try
+  {
+    GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
+    m = new Member(groupsns);
+    delete groupsns;
+  }
+  catch (...)
+  {
+  }
+
+  if (m != NULL)
+  {
+    appendAndOwn(m);
+  }
+
+  return m;
+}
+
+
+/*
+ * Used by ListOfMembers::get() to lookup a Member based on its IdRef.
+ */
+struct IdEqIR : public std::unary_function<SBase*, bool>
+{
+  const string& id;
+   
+  IdEqIR (const string& id) : id(id) { }
+  bool operator() (SBase* sb)
+  {
+  return (static_cast<Member*>(sb)->getIdRef() == id);
+  }
+};
+
+
+/*
+ * Get a Member from the ListOfMembers based on the IdRef to which it refers.
+ */
+const Member*
+ListOfMembers::getByIdRef(const std::string& sid) const
+{
+  vector<SBase*>::const_iterator result;
+  result = find_if(mItems.begin(), mItems.end(), IdEqIR(sid));
+  return (result == mItems.end()) ? 0 : static_cast <const Member*> (*result);
+}
+
+
+/*
+ * Get a Member from the ListOfMembers based on the IdRef to which it refers.
+ */
+Member*
+ListOfMembers::getByIdRef(const std::string& sid)
+{
+  return const_cast<Member*>(static_cast<const
+    ListOfMembers&>(*this).getByIdRef(sid));
+}
+
+
+/*
+ * Returns the XML element name of this ListOfMembers object.
+ */
+const std::string&
+ListOfMembers::getElementName() const
+{
+  static const string name = "listOfMembers";
+  return name;
+}
+
+
+/*
+ * Returns the libSBML type code for this ListOfMembers object.
+ */
+int
+ListOfMembers::getTypeCode() const
+{
+  return SBML_LIST_OF;
+}
+
+
+/*
+ * Returns the libSBML type code for the SBML objects contained in this
+ * ListOfMembers object.
+ */
+int
+ListOfMembers::getItemTypeCode() const
+{
+  return SBML_GROUPS_MEMBER;
+}
+
+
+/*
+ * Predicate returning @c true if all the required attributes for this
+ * ListOfMembers object have been set.
+ */
+bool
+ListOfMembers::hasRequiredAttributes() const
+{
+  bool allPresent = true;
+
+  return allPresent;
+}
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Creates a new Member in this ListOfMembers
+ */
+SBase*
+ListOfMembers::createObject(XMLInputStream& stream)
+{
+  const std::string& name = stream.peek().getName();
+  SBase* object = NULL;
+  GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
+
+  if (name == "member")
+  {
+    object = new Member(groupsns);
+    appendAndOwn(object);
+  }
+
+  delete groupsns;
+  return object;
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Adds the expected attributes for this element
+ */
+void
+ListOfMembers::addExpectedAttributes(ExpectedAttributes& attributes)
+{
+  ListOf::addExpectedAttributes(attributes);
+
+  attributes.add("id");
+
+  attributes.add("name");
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Reads the expected attributes into the member data variables
+ */
+void
+ListOfMembers::readAttributes(const XMLAttributes& attributes,
+                              const ExpectedAttributes& expectedAttributes)
+{
+  unsigned int level = getLevel();
+  unsigned int version = getVersion();
+  unsigned int pkgVersion = getPackageVersion();
+  unsigned int numErrs;
+  bool assigned = false;
+  SBMLErrorLog* log = getErrorLog();
+
+  ListOf::readAttributes(attributes, expectedAttributes);
+  numErrs = log->getNumErrors();
+
+  for (int n = numErrs-1; n >= 0; n--)
+  {
+    if (log->getError(n)->getErrorId() == UnknownPackageAttribute)
+    {
+      const std::string details = log->getError(n)->getMessage();
+      log->remove(UnknownPackageAttribute);
+      log->logPackageError("groups", GroupsGroupLOMembersAllowedAttributes,
+        pkgVersion, level, version, details);
+    }
+    else if (log->getError(n)->getErrorId() == UnknownCoreAttribute)
+    {
+      const std::string details = log->getError(n)->getMessage();
+      log->remove(UnknownCoreAttribute);
+      log->logPackageError("groups", GroupsGroupLOMembersAllowedCoreAttributes,
+        pkgVersion, level, version, details);
+    }
+  }
+
+  // 
+  // id SId (use = "optional" )
+  // 
+
+  assigned = attributes.readInto("id", mId);
+
+  if (assigned == true)
+  {
+    if (mId.empty() == true)
+    {
+      logEmptyString(mId, level, version, "<ListOfMembers>");
+    }
+    else if (SyntaxChecker::isValidSBMLSId(mId) == false)
+    {
+      log->logPackageError("groups", GroupsIdSyntaxRule,
+        pkgVersion, level, version, "The id on the <" 
+        + getElementName() + "> is '" + mId + "', which does not conform to the syntax.", 
+        getLine(), getColumn());
+    }
+  }
+
+  // 
+  // name string (use = "optional" )
+  // 
+
+  assigned = attributes.readInto("name", mName);
+
+  if (assigned == true)
+  {
+    if (mName.empty() == true)
+    {
+      logEmptyString(mName, level, version, "<ListOfMembers>");
+    }
+  }
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Writes the attributes to the stream
+ */
+void
+ListOfMembers::writeAttributes(XMLOutputStream& stream) const
+{
+  ListOf::writeAttributes(stream);
+
+  if (isSetId() == true)
+  {
+    stream.writeAttribute("id", getPrefix(), mId);
+  }
+
+  if (isSetName() == true)
+  {
+    stream.writeAttribute("name", getPrefix(), mName);
+  }
+
+  SBase::writeExtensionAttributes(stream);
+}
+
+/** @endcond */
+
+
+
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Writes the namespace for the Groups package
+ */
+void
+ListOfMembers::writeXMLNS(XMLOutputStream& stream) const
+{
+  XMLNamespaces xmlns;
+  std::string prefix = getPrefix();
+
+  if (prefix.empty())
+  {
+    XMLNamespaces* thisxmlns = getNamespaces();
+    if (thisxmlns && thisxmlns->hasURI(GroupsExtension::getXmlnsL3V1V1()))
+    {
+      xmlns.add(GroupsExtension::getXmlnsL3V1V1(), prefix);
+    }
+  }
+
+  stream << xmlns;
+}
+
+/** @endcond */
+
+
+
+
+#endif /* __cplusplus */
+
+
+/*
+ * Returns the value of the "id" attribute of this ListOf_t.
+ */
+LIBSBML_EXTERN
+const char *
+ListOfMembers_getId(const ListOf_t * lo)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return static_cast<const ListOfMembers*>(lo)->getId().empty() ? NULL :
+    safe_strdup(static_cast<const ListOfMembers*>(lo)->getId().c_str());
+}
+
+
+/*
+ * Returns the value of the "name" attribute of this ListOf_t.
+ */
+LIBSBML_EXTERN
+const char *
+ListOfMembers_getName(const ListOf_t * lo)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return static_cast<const ListOfMembers*>(lo)->getName().empty() ? NULL :
+    safe_strdup(static_cast<const ListOfMembers*>(lo)->getName().c_str());
+}
+
+
+/*
+ * Predicate returning @c 1 if this ListOf_t's "id" attribute is set.
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_isSetId(const ListOf_t * lo)
+{
+  return (static_cast<const ListOfMembers*>(lo) != NULL) ?
+    static_cast<int>(static_cast<const ListOfMembers*>(lo)->isSetId()) : 0;
+}
+
+
+/*
+ * Predicate returning @c 1 if this ListOf_t's "name" attribute is set.
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_isSetName(const ListOf_t * lo)
+{
+  return (static_cast<const ListOfMembers*>(lo) != NULL) ?
+    static_cast<int>(static_cast<const ListOfMembers*>(lo)->isSetName()) : 0;
+}
+
+
+/*
+ * Sets the value of the "id" attribute of this ListOf_t.
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_setId(ListOf_t * lo, const char * id)
+{
+  return (static_cast<ListOfMembers*>(lo) != NULL) ?
+    static_cast<ListOfMembers*>(lo)->setId(id) : LIBSBML_INVALID_OBJECT;
+}
+
+
+/*
+ * Sets the value of the "name" attribute of this ListOf_t.
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_setName(ListOf_t * lo, const char * name)
+{
+  return (static_cast<ListOfMembers*>(lo) != NULL) ?
+    static_cast<ListOfMembers*>(lo)->setName(name) : LIBSBML_INVALID_OBJECT;
+}
+
+
+/*
+ * Unsets the value of the "id" attribute of this ListOf_t.
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_unsetId(ListOf_t * lo)
+{
+  return (static_cast<ListOfMembers*>(lo) != NULL) ?
+    static_cast<ListOfMembers*>(lo)->unsetId() : LIBSBML_INVALID_OBJECT;
+}
+
+
+/*
+ * Unsets the value of the "name" attribute of this ListOf_t.
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_unsetName(ListOf_t * lo)
+{
+  return (static_cast<ListOfMembers*>(lo) != NULL) ?
+    static_cast<ListOfMembers*>(lo)->unsetName() : LIBSBML_INVALID_OBJECT;
+}
+
+
+/*
+ * Get a Member_t from the ListOf_t.
+ */
+LIBSBML_EXTERN
+const Member_t*
+ListOfMembers_getMember(ListOf_t* lo, unsigned int n)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return static_cast <ListOfMembers*>(lo)->get(n);
+}
+
+
+/*
+ * Get a Member_t from the ListOf_t based on its identifier.
+ */
+LIBSBML_EXTERN
+const Member_t*
+ListOfMembers_getById(ListOf_t* lo, const char *sid)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return (sid != NULL) ? static_cast <ListOfMembers*>(lo)->get(sid) : NULL;
+}
+
+
+/*
+ * Removes the nth Member_t from this ListOf_t and returns a pointer to it.
+ */
+LIBSBML_EXTERN
+Member_t*
+ListOfMembers_remove(ListOf_t* lo, unsigned int n)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return static_cast <ListOfMembers*>(lo)->remove(n);
+}
+
+
+/*
+ * Removes the Member_t from this ListOf_t based on its identifier and returns
+ * a pointer to it.
+ */
+LIBSBML_EXTERN
+Member_t*
+ListOfMembers_removeById(ListOf_t* lo, const char* sid)
+{
+  if (lo == NULL)
+  {
+    return NULL;
+  }
+
+  return (sid != NULL) ? static_cast <ListOfMembers*>(lo)->remove(sid) : NULL;
+}
+
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+
diff --git a/src/sbml/packages/groups/sbml/ListOfMembers.h b/src/sbml/packages/groups/sbml/ListOfMembers.h
new file mode 100644
index 0000000..691ee86
--- /dev/null
+++ b/src/sbml/packages/groups/sbml/ListOfMembers.h
@@ -0,0 +1,763 @@
+/**
+ * @file ListOfMembers.h
+ * @brief Definition of the ListOfMembers class.
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ *
+ * @class ListOfMembers
+ * @sbmlbrief{groups} A list of Member objects.
+ *
+ * In the SBML Level 3 Groups package, the membership of a group is
+ * defined by placing Member objects within a ListOfMembers object contained
+ * within a Group object.  A ListOfMembers object is optional, but, if
+ * present, it must contain at least one Member object.  In common with other
+ * ListOf___ classes in SBML, ListOfMembers is derived from SBase.  However,
+ * an uncommon feature of ListOfMembers is that it has optional "id" and
+ * "name" attributes that can be used in a manner discussed below.
+ *
+ * A ListOfMembers must have one or more Member children. Since ListOfMembers
+ * is derived from SBase, it inherits the "sboTerm" and "metaid" attributes,
+ * as well as the optional children Notes and Annotation. Unlike most lists
+ * of objects in SBML, however, the "sboTerm" attribute and the Notes and
+ * Annotation children are taken here to apply directly to every SBML element
+ * referenced by each child Member of this ListOfMembers, if that referenced
+ * element has no such definition. Thus, if a referenced element has no
+ * defined "sboTerm" attribute or child Notes or Annotation objects, that
+ * element should be considered to now have the "sboTerm", child Notes, or
+ * child Annotation of the ListOfMembers.
+ *
+ * If multiple ListOfMembers have child Member elements that reference
+ * the same SBML element, and more than one ListOfMembers or Member has
+ * a value for an sboTerm attribute, Notes, or Annotation element, those
+ * Member elements should be consistent with each other: the "sboTerm"
+ * attributes should either be identical, or one should inherit from
+ * the other; Notes should say the same or similar things; and Annotation
+ * elements should not conflict. Interpreters may choose to resolve any
+ * such conflicts arbitrarily.
+ *
+ * An uncommon feature about ListOfMembers is that, if it is referenced by a
+ * Member of a different Group, the @em children of the referenced
+ * ListOfMembers are also considered to be members of the referencing group.
+ * In this way, groups may be nested semantically to create larger groups out
+ * of subgroups.
+ *
+ * @section listofmembers-groups-semantics Semantics of group memberships
+ *
+ * @copydetails doc_group_semantics
+ *
+ * @see Group
+ * @see Member
+ * @see ListOfGroups
+ */
+
+
+#ifndef ListOfMembers_H__
+#define ListOfMembers_H__
+
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/groups/common/groupsfwd.h>
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+
+
+#include <sbml/ListOf.h>
+#include <sbml/packages/groups/extension/GroupsExtension.h>
+#include <sbml/packages/groups/sbml/Member.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+class LIBSBML_EXTERN ListOfMembers : public ListOf
+{
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  std::string mId;
+  std::string mName;
+
+  /** @endcond */
+
+public:
+
+  /**
+   * Creates a new ListOfMembers using the given SBML Level, Version and
+   * “groups” package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this
+   * ListOfMembers.
+   *
+   * @param version an unsigned int, the SBML Version to assign to this
+   * ListOfMembers.
+   *
+   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to
+   * this ListOfMembers.
+   *
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
+   * @copydetails doc_note_setting_lv
+   */
+  ListOfMembers(unsigned int level = GroupsExtension::getDefaultLevel(),
+                unsigned int version = GroupsExtension::getDefaultVersion(),
+                unsigned int pkgVersion =
+                  GroupsExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new ListOfMembers using the given GroupsPkgNamespaces object.
+   *
+   * @param groupsns the GroupsPkgNamespaces object.
+   *
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
+   * @copydetails doc_note_setting_lv
+   */
+  ListOfMembers(GroupsPkgNamespaces *groupsns);
+
+
+  /**
+   * Copy constructor for ListOfMembers.
+   *
+   * @param orig the ListOfMembers instance to copy.
+   */
+  ListOfMembers(const ListOfMembers& orig);
+
+
+  /**
+   * Assignment operator for ListOfMembers.
+   *
+   * @param rhs the ListOfMembers object whose values are to be used as the
+   * basis of the assignment.
+   */
+  ListOfMembers& operator=(const ListOfMembers& rhs);
+
+
+  /**
+   * Creates and returns a deep copy of this ListOfMembers object.
+   *
+   * @return a (deep) copy of this ListOfMembers object.
+   */
+  virtual ListOfMembers* clone() const;
+
+
+  /**
+   * Destructor for ListOfMembers.
+   */
+  virtual ~ListOfMembers();
+
+
+  /**
+   * Returns the value of the "id" attribute of this ListOfMembers.
+   *
+   * @return the value of the "id" attribute of this ListOfMembers as a string.
+   */
+  const std::string& getId() const;
+
+
+  /**
+   * Returns the value of the "name" attribute of this ListOfMembers.
+   *
+   * @return the value of the "name" attribute of this ListOfMembers as a
+   * string.
+   */
+  const std::string& getName() const;
+
+
+  /**
+   * Predicate returning @c true if this ListOfMembers's "id" attribute is set.
+   *
+   * @return @c true if this ListOfMembers's "id" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  bool isSetId() const;
+
+
+  /**
+   * Predicate returning @c true if this ListOfMembers's "name" attribute is
+   * set.
+   *
+   * @return @c true if this ListOfMembers's "name" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  bool isSetName() const;
+
+
+  /**
+   * Sets the value of the "id" attribute of this ListOfMembers.
+   *
+   * @param id std::string& value of the "id" attribute to be set.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE,
+   * OperationReturnValues_t}
+   */
+  int setId(const std::string& id);
+
+
+  /**
+   * Sets the value of the "name" attribute of this ListOfMembers.
+   *
+   * @param name std::string& value of the "name" attribute to be set.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE,
+   * OperationReturnValues_t}
+   */
+  int setName(const std::string& name);
+
+
+  /**
+   * Unsets the value of the "id" attribute of this ListOfMembers.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  int unsetId();
+
+
+  /**
+   * Unsets the value of the "name" attribute of this ListOfMembers.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   */
+  int unsetName();
+
+
+  /**
+   * Get a Member from the ListOfMembers.
+   *
+   * @param n an unsigned int representing the index of the Member to
+   * retrieve.
+   *
+   * @return the nth Member in this ListOfMembers.
+   *
+   * @see size()
+   */
+  virtual Member* get(unsigned int n);
+
+
+  /**
+   * Get a Member from the ListOfMembers.
+   *
+   * @param n an unsigned int representing the index of the Member to
+   * retrieve.
+   *
+   * @return the nth Member in this ListOfMembers.
+   *
+   * @see size()
+   */
+  virtual const Member* get(unsigned int n) const;
+
+
+  /**
+   * Get a Member from the ListOfMembers based on its identifier.
+   *
+   * @param sid a string representing the identifier of the Member to retrieve.
+   *
+   * @return the Member in this ListOfMembers with the given id or NULL if no
+   * such Member exists.
+   *
+   * @see size()
+   */
+  virtual Member* get(const std::string& sid);
+
+
+  /**
+   * Get a Member from the ListOfMembers based on its identifier.
+   *
+   * @param sid a string representing the identifier of the Member to retrieve.
+   *
+   * @return the Member in this ListOfMembers with the given id or NULL if no
+   * such Member exists.
+   *
+   * @see size()
+   */
+  virtual const Member* get(const std::string& sid) const;
+
+
+  /**
+   * Removes the nth Member from this ListOfMembers and returns a pointer to
+   * it.
+   *
+   * @param n an unsigned int representing the index of the Member to remove.
+   *
+   * @return a pointer to the nth Member in this ListOfMembers.
+   *
+   * @see size()
+   *
+   * @note the caller owns the returned object and is responsible for deleting
+   * it.
+   */
+  virtual Member* remove(unsigned int n);
+
+
+  /**
+   * Removes the Member from this ListOfMembers based on its identifier and
+   * returns a pointer to it.
+   *
+   * @param sid a string representing the identifier of the Member to remove.
+   *
+   * @return the Member in this ListOfMembers based on the identifier or NULL
+   * if no such Member exists.
+   *
+   * @note the caller owns the returned object and is responsible for deleting
+   * it.
+   */
+  virtual Member* remove(const std::string& sid);
+
+
+  /**
+   * Adds a copy of the given Member to this ListOfMembers.
+   *
+   * @param m the Member object to add.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+   *
+   * @copydetails doc_note_object_is_copied
+   *
+   * @see createMember()
+   */
+  int addMember(const Member* m);
+
+
+  /**
+   * Get the number of Member objects in this ListOfMembers.
+   *
+   * @return the number of Member objects in this ListOfMembers.
+   */
+  unsigned int getNumMembers() const;
+
+
+  /**
+   * Creates a new Member object, adds it to this ListOfMembers object and
+   * returns the Member object created.
+   *
+   * @return a new Member object instance.
+   *
+   * @see addMember(const Member* m)
+   */
+  Member* createMember();
+
+
+  /**
+   * Get a Member from the ListOfMembers based on the IdRef to which it refers.
+   *
+   * @param sid a string representing the idRef attribute of the Member object
+   * to retrieve.
+   *
+   * @return the first Member in this ListOfMembers based on the given idRef
+   * attribute or NULL if no such Member exists.
+   */
+  const Member* getByIdRef(const std::string& sid) const;
+
+
+  /**
+   * Get a Member from the ListOfMembers based on the IdRef to which it refers.
+   *
+   * @param sid a string representing the idRef attribute of the Member object
+   * to retrieve.
+   *
+   * @return the first Member in this ListOfMembers based on the given idRef
+   * attribute or NULL if no such Member exists.
+   */
+  Member* getByIdRef(const std::string& sid);
+
+
+  /**
+   * Returns the XML element name of this ListOfMembers object.
+   *
+   * For ListOfMembers, the XML element name is always @c "listOfMembers".
+   *
+   * @return the name of this element, i.e. @c "listOfMembers".
+   */
+  virtual const std::string& getElementName() const;
+
+
+  /**
+   * Returns the libSBML type code for this ListOfMembers object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   *
+   * @sbmlconstant{SBML_LIST_OF, SBMLTypeCode_t}
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   */
+  virtual int getTypeCode() const;
+
+
+  /**
+   * Returns the libSBML type code for the SBML objects contained in this
+   * ListOfMembers object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML typecode for the objects contained in this ListOfMembers:
+   *
+   * @sbmlconstant{SBML_GROUPS_MEMBER, SBMLGroupsTypeCode_t}
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
+   */
+  virtual int getItemTypeCode() const;
+
+
+  /**
+   * Predicate returning @c true if all the required attributes for this
+   * ListOfMembers object have been set.
+   *
+   * @return @c true to indicate that all the required attributes of this
+   * ListOfMembers have been set, otherwise @c false is returned.
+   *
+   *
+   * @note The required attributes for the ListOfMembers object are:
+   */
+  virtual bool hasRequiredAttributes() const;
+
+
+protected:
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Creates a new Member in this ListOfMembers
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Adds the expected attributes for this element
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Reads the expected attributes into the member data variables
+   */
+  virtual void readAttributes(const XMLAttributes& attributes,
+                              const ExpectedAttributes& expectedAttributes);
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Writes the attributes to the stream
+   */
+  virtual void writeAttributes(XMLOutputStream& stream) const;
+
+  /** @endcond */
+
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Writes the namespace for the Groups package
+   */
+  virtual void writeXMLNS(XMLOutputStream& stream) const;
+
+  /** @endcond */
+
+
+};
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+
+
+
+#endif /* __cplusplus */
+
+
+
+
+#ifndef SWIG
+
+
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+
+
+BEGIN_C_DECLS
+
+
+/**
+ * Returns the value of the "id" attribute of this ListOf_t.
+ *
+ * @param lo the ListOf_t structure whose id is sought.
+ *
+ * @return the value of the "id" attribute of this ListOf_t as a pointer to a
+ * string.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+const char *
+ListOfMembers_getId(const ListOf_t * lo);
+
+
+/**
+ * Returns the value of the "name" attribute of this ListOf_t.
+ *
+ * @param lo the ListOf_t structure whose name is sought.
+ *
+ * @return the value of the "name" attribute of this ListOf_t as a pointer to a
+ * string.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+const char *
+ListOfMembers_getName(const ListOf_t * lo);
+
+
+/**
+ * Predicate returning @c 1 if this ListOf_t's "id" attribute is set.
+ *
+ * @param lo the ListOf_t structure.
+ *
+ * @return @c 1 if this ListOf_t's "id" attribute has been set, otherwise @c 0
+ * is returned.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_isSetId(const ListOf_t * lo);
+
+
+/**
+ * Predicate returning @c 1 if this ListOf_t's "name" attribute is set.
+ *
+ * @param lo the ListOf_t structure.
+ *
+ * @return @c 1 if this ListOf_t's "name" attribute has been set, otherwise @c
+ * 0 is returned.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_isSetName(const ListOf_t * lo);
+
+
+/**
+ * Sets the value of the "id" attribute of this ListOf_t.
+ *
+ * @param lo the ListOf_t structure.
+ *
+ * @param id const char * value of the "id" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_setId(ListOf_t * lo, const char * id);
+
+
+/**
+ * Sets the value of the "name" attribute of this ListOf_t.
+ *
+ * @param lo the ListOf_t structure.
+ *
+ * @param name const char * value of the "name" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_setName(ListOf_t * lo, const char * name);
+
+
+/**
+ * Unsets the value of the "id" attribute of this ListOf_t.
+ *
+ * @param lo the ListOf_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_unsetId(ListOf_t * lo);
+
+
+/**
+ * Unsets the value of the "name" attribute of this ListOf_t.
+ *
+ * @param lo the ListOf_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+int
+ListOfMembers_unsetName(ListOf_t * lo);
+
+
+/**
+ * Get a Member_t from the ListOf_t.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param n an unsigned int representing the index of the Member_t to
+ * retrieve.
+ *
+ * @return the nth Member_t in this ListOf_t.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+const Member_t*
+ListOfMembers_getMember(ListOf_t* lo, unsigned int n);
+
+
+/**
+ * Get a Member_t from the ListOf_t based on its identifier.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param sid a string representing the identifier of the Member_t to retrieve.
+ *
+ * @return the Member_t in this ListOf_t with the given id or NULL if no such
+ * Member_t exists.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+const Member_t*
+ListOfMembers_getById(ListOf_t* lo, const char *sid);
+
+
+/**
+ * Removes the nth Member_t from this ListOf_t and returns a pointer to it.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param n an unsigned int representing the index of the Member_t to remove.
+ *
+ * @return a pointer to the nth Member_t in this ListOf_t.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+Member_t*
+ListOfMembers_remove(ListOf_t* lo, unsigned int n);
+
+
+/**
+ * Removes the Member_t from this ListOf_t based on its identifier and returns
+ * a pointer to it.
+ *
+ * @param lo the ListOf_t structure to search.
+ *
+ * @param sid a string representing the identifier of the Member_t to remove.
+ *
+ * @return the Member_t in this ListOf_t based on the identifier or NULL if no
+ * such Member_t exists.
+ *
+ * @memberof Member_t
+ */
+LIBSBML_EXTERN
+Member_t*
+ListOfMembers_removeById(ListOf_t* lo, const char* sid);
+
+
+
+
+END_C_DECLS
+
+
+
+
+LIBSBML_CPP_NAMESPACE_END
+
+
+
+
+#endif /* !SWIG */
+
+
+
+
+#endif /* !ListOfMembers_H__ */
diff --git a/src/sbml/packages/groups/sbml/Member.cpp b/src/sbml/packages/groups/sbml/Member.cpp
index f7bfca8..ca274d3 100644
--- a/src/sbml/packages/groups/sbml/Member.cpp
+++ b/src/sbml/packages/groups/sbml/Member.cpp
@@ -1,71 +1,81 @@
 /**
- * @file:   Member.cpp
- * @brief:  Implementation of the Member class
- * @author: Generated by autocreate code
+ * @file Member.cpp
+ * @brief Implementation of the Member class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
-
-
 #include <sbml/packages/groups/sbml/Member.h>
+#include <sbml/packages/groups/sbml/ListOfMembers.h>
 #include <sbml/packages/groups/validator/GroupsSBMLError.h>
+#include <sbml/Model.h>
 
 
 using namespace std;
 
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
 
+
+
+#ifdef __cplusplus
+
+
 /*
- * Creates a new Member with the given level, version, and package version.
+ * Creates a new Member using the given SBML Level, Version and
+ * “groups” package version.
  */
-Member::Member (unsigned int level, unsigned int version, unsigned int pkgVersion)
+Member::Member(unsigned int level,
+               unsigned int version,
+               unsigned int pkgVersion)
   : SBase(level, version)
-   ,mId ("")
-   ,mName ("")
-   ,mIdRef ("")
-   ,mMetaIdRef ("")
+  , mId ("")
+  , mName ("")
+  , mIdRef ("")
+  , mMetaIdRef ("")
 {
-  // set an SBMLNamespaces derived object of this package
   setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level, version, pkgVersion));
 }
 
 
 /*
- * Creates a new Member with the given GroupsPkgNamespaces object.
+ * Creates a new Member using the given GroupsPkgNamespaces object.
  */
-Member::Member (GroupsPkgNamespaces* groupsns)
+Member::Member(GroupsPkgNamespaces *groupsns)
   : SBase(groupsns)
-   ,mId ("")
-   ,mName ("")
-   ,mIdRef ("")
-   ,mMetaIdRef ("")
+  , mId ("")
+  , mName ("")
+  , mIdRef ("")
+  , mMetaIdRef ("")
 {
-  // set the element namespace of this object
   setElementNamespace(groupsns->getURI());
-
-  // load package extensions bound with this object (if any) 
   loadPlugins(groupsns);
 }
 
@@ -73,18 +83,18 @@ Member::Member (GroupsPkgNamespaces* groupsns)
 /*
  * Copy constructor for Member.
  */
-Member::Member (const Member& orig)
-  : SBase(orig)
-  , mId  ( orig.mId)
-  , mName  ( orig.mName)
-  , mIdRef  ( orig.mIdRef)
-  , mMetaIdRef  ( orig.mMetaIdRef)
+Member::Member(const Member& orig)
+  : SBase( orig )
+  , mId ( orig.mId )
+  , mName ( orig.mName )
+  , mIdRef ( orig.mIdRef )
+  , mMetaIdRef ( orig.mMetaIdRef )
 {
 }
 
 
 /*
- * Assignment for Member.
+ * Assignment operator for Member.
  */
 Member&
 Member::operator=(const Member& rhs)
@@ -92,20 +102,21 @@ Member::operator=(const Member& rhs)
   if (&rhs != this)
   {
     SBase::operator=(rhs);
-    mId  = rhs.mId;
-    mName  = rhs.mName;
-    mIdRef  = rhs.mIdRef;
-    mMetaIdRef  = rhs.mMetaIdRef;
+    mId = rhs.mId;
+    mName = rhs.mName;
+    mIdRef = rhs.mIdRef;
+    mMetaIdRef = rhs.mMetaIdRef;
   }
+
   return *this;
 }
 
 
 /*
- * Clone for Member.
+ * Creates and returns a deep copy of this Member object.
  */
 Member*
-Member::clone () const
+Member::clone() const
 {
   return new Member(*this);
 }
@@ -114,7 +125,7 @@ Member::clone () const
 /*
  * Destructor for Member.
  */
-Member::~Member ()
+Member::~Member()
 {
 }
 
@@ -160,7 +171,7 @@ Member::getMetaIdRef() const
 
 
 /*
- * Returns true/false if id is set.
+ * Predicate returning @c true if this Member's "id" attribute is set.
  */
 bool
 Member::isSetId() const
@@ -170,7 +181,7 @@ Member::isSetId() const
 
 
 /*
- * Returns true/false if name is set.
+ * Predicate returning @c true if this Member's "name" attribute is set.
  */
 bool
 Member::isSetName() const
@@ -180,7 +191,7 @@ Member::isSetName() const
 
 
 /*
- * Returns true/false if idRef is set.
+ * Predicate returning @c true if this Member's "idRef" attribute is set.
  */
 bool
 Member::isSetIdRef() const
@@ -190,7 +201,7 @@ Member::isSetIdRef() const
 
 
 /*
- * Returns true/false if metaIdRef is set.
+ * Predicate returning @c true if this Member's "metaIdRef" attribute is set.
  */
 bool
 Member::isSetMetaIdRef() const
@@ -200,7 +211,7 @@ Member::isSetMetaIdRef() const
 
 
 /*
- * Sets id and returns value indicating success.
+ * Sets the value of the "id" attribute of this Member.
  */
 int
 Member::setId(const std::string& id)
@@ -210,7 +221,7 @@ Member::setId(const std::string& id)
 
 
 /*
- * Sets name and returns value indicating success.
+ * Sets the value of the "name" attribute of this Member.
  */
 int
 Member::setName(const std::string& name)
@@ -221,7 +232,7 @@ Member::setName(const std::string& name)
 
 
 /*
- * Sets idRef and returns value indicating success.
+ * Sets the value of the "idRef" attribute of this Member.
  */
 int
 Member::setIdRef(const std::string& idRef)
@@ -239,7 +250,7 @@ Member::setIdRef(const std::string& idRef)
 
 
 /*
- * Sets metaIdRef and returns value indicating success.
+ * Sets the value of the "metaIdRef" attribute of this Member.
  */
 int
 Member::setMetaIdRef(const std::string& metaIdRef)
@@ -250,7 +261,7 @@ Member::setMetaIdRef(const std::string& metaIdRef)
 
 
 /*
- * Unsets id and returns value indicating success.
+ * Unsets the value of the "id" attribute of this Member.
  */
 int
 Member::unsetId()
@@ -269,7 +280,7 @@ Member::unsetId()
 
 
 /*
- * Unsets name and returns value indicating success.
+ * Unsets the value of the "name" attribute of this Member.
  */
 int
 Member::unsetName()
@@ -288,7 +299,7 @@ Member::unsetName()
 
 
 /*
- * Unsets idRef and returns value indicating success.
+ * Unsets the value of the "idRef" attribute of this Member.
  */
 int
 Member::unsetIdRef()
@@ -307,7 +318,7 @@ Member::unsetIdRef()
 
 
 /*
- * Unsets metaIdRef and returns value indicating success.
+ * Unsets the value of the "metaIdRef" attribute of this Member.
  */
 int
 Member::unsetMetaIdRef()
@@ -326,10 +337,23 @@ Member::unsetMetaIdRef()
 
 
 /*
- * Returns the XML element name of this object
+ * @copydoc doc_renamesidref_common
+ */
+void
+Member::renameSIdRefs(const std::string& oldid, const std::string& newid)
+{
+  if (isSetIdRef() && mIdRef == oldid)
+  {
+    setIdRef(newid);
+  }
+}
+
+
+/*
+ * Returns the XML element name of this Member object.
  */
 const std::string&
-Member::getElementName () const
+Member::getElementName() const
 {
   static const string name = "member";
   return name;
@@ -337,20 +361,21 @@ Member::getElementName () const
 
 
 /*
- * Returns the libSBML type code for this SBML object.
+ * Returns the libSBML type code for this Member object.
  */
 int
-Member::getTypeCode () const
+Member::getTypeCode() const
 {
   return SBML_GROUPS_MEMBER;
 }
 
 
 /*
- * check if all the required attributes are set
+ * Predicate returning @c true if all the required attributes for this Member
+ * object have been set.
  */
 bool
-Member::hasRequiredAttributes () const
+Member::hasRequiredAttributes() const
 {
   bool allPresent = true;
 
@@ -358,73 +383,75 @@ Member::hasRequiredAttributes () const
 }
 
 
-  /** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * write contained elements
+ * Write any contained elements
  */
 void
-Member::writeElements (XMLOutputStream& stream) const
+Member::writeElements(XMLOutputStream& stream) const
 {
   SBase::writeElements(stream);
 
   SBase::writeExtensionElements(stream);
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Accepts the given SBMLVisitor.
+ * Accepts the given SBMLVisitor
  */
 bool
-Member::accept (SBMLVisitor& v) const
+Member::accept(SBMLVisitor& v) const
 {
   return v.visit(*this);
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Sets the parent SBMLDocument.
+ * Sets the parent SBMLDocument
  */
 void
-Member::setSBMLDocument (SBMLDocument* d)
+Member::setSBMLDocument(SBMLDocument* d)
 {
   SBase::setSBMLDocument(d);
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Enables/Disables the given package with this element.
+ * Enables/disables the given package with this element
  */
 void
 Member::enablePackageInternal(const std::string& pkgURI,
-             const std::string& pkgPrefix, bool flag)
+                              const std::string& pkgPrefix,
+                              bool flag)
 {
   SBase::enablePackageInternal(pkgURI, pkgPrefix, flag);
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Get the list of expected attributes for this element.
+ * Adds the expected attributes for this element
  */
 void
 Member::addExpectedAttributes(ExpectedAttributes& attributes)
@@ -432,529 +459,387 @@ Member::addExpectedAttributes(ExpectedAttributes& attributes)
   SBase::addExpectedAttributes(attributes);
 
   attributes.add("id");
+
   attributes.add("name");
+
   attributes.add("idRef");
+
   attributes.add("metaIdRef");
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Read values from the given XMLAttributes set into their specific fields.
+ * Reads the expected attributes into the member data variables
  */
 void
-Member::readAttributes (const XMLAttributes& attributes,
-                             const ExpectedAttributes& expectedAttributes)
+Member::readAttributes(const XMLAttributes& attributes,
+                       const ExpectedAttributes& expectedAttributes)
 {
-  const unsigned int sbmlLevel   = getLevel  ();
-  const unsigned int sbmlVersion = getVersion();
-
+  unsigned int level = getLevel();
+  unsigned int version = getVersion();
+  unsigned int pkgVersion = getPackageVersion();
   unsigned int numErrs;
+  bool assigned = false;
+  SBMLErrorLog* log = getErrorLog();
 
-  /* look to see whether an unknown attribute error was logged
-   * during the read of the listOfMembers - which will have
-   * happened immediately prior to this read
-  */
-
-  if (getErrorLog() != NULL &&
-      static_cast<ListOfMembers*>(getParentSBMLObject())->size() < 2)
+  if (static_cast<ListOfMembers*>(getParentSBMLObject())->size() < 2)
   {
-    numErrs = getErrorLog()->getNumErrors();
+    numErrs = log->getNumErrors();
     for (int n = numErrs-1; n >= 0; n--)
     {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
+      if (log->getError(n)->getErrorId() == UnknownPackageAttribute)
       {
-        const std::string details =
-              getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("groups", GroupsUnknownError,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details);
+        const std::string details = log->getError(n)->getMessage();
+        log->remove(UnknownPackageAttribute);
+        log->logPackageError("groups", GroupsGroupLOMembersAllowedAttributes,
+          pkgVersion, level, version, details);
       }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
+      else if (log->getError(n)->getErrorId() == UnknownCoreAttribute)
       {
-        const std::string details =
-                   getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details);
+        const std::string details = log->getError(n)->getMessage();
+        log->remove(UnknownCoreAttribute);
+        log->logPackageError("groups",
+          GroupsGroupLOMembersAllowedCoreAttributes, pkgVersion, level, version,
+            details);
       }
     }
   }
 
   SBase::readAttributes(attributes, expectedAttributes);
+  numErrs = log->getNumErrors();
 
-  // look to see whether an unknown attribute error was logged
-  if (getErrorLog() != NULL)
+  for (int n = numErrs-1; n >= 0; n--)
   {
-    numErrs = getErrorLog()->getNumErrors();
-    for (int n = numErrs-1; n >= 0; n--)
+    if (log->getError(n)->getErrorId() == UnknownPackageAttribute)
     {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
+      const std::string details = log->getError(n)->getMessage();
+      log->remove(UnknownPackageAttribute);
+      log->logPackageError("groups", GroupsMemberAllowedAttributes, pkgVersion,
+        level, version, details);
+    }
+    else if (log->getError(n)->getErrorId() == UnknownCoreAttribute)
+    {
+      const std::string details = log->getError(n)->getMessage();
+      log->remove(UnknownCoreAttribute);
+      log->logPackageError("groups", GroupsMemberAllowedCoreAttributes,
+        pkgVersion, level, version, details);
     }
   }
 
-  bool assigned = false;
+  // 
+  // id SId (use = "optional" )
+  // 
 
-  //
-  // id SId  ( use = "optional" )
-  //
   assigned = attributes.readInto("id", mId);
 
-   if (assigned == true)
+  if (assigned == true)
   {
-    // check string is not empty and correct syntax
-
     if (mId.empty() == true)
     {
-      logEmptyString(mId, getLevel(), getVersion(), "<Member>");
+      logEmptyString(mId, level, version, "<Member>");
     }
     else if (SyntaxChecker::isValidSBMLSId(mId) == false)
     {
-      logError(InvalidIdSyntax);
+      log->logPackageError("groups", GroupsIdSyntaxRule,
+        pkgVersion, level, version, "The id on the <" 
+        + getElementName() + "> is '" + mId + "', which does not conform to the syntax.", 
+        getLine(), getColumn());
     }
   }
 
-  //
-  // name string   ( use = "optional" )
-  //
+  // 
+  // name string (use = "optional" )
+  // 
+
   assigned = attributes.readInto("name", mName);
 
   if (assigned == true)
   {
-    // check string is not empty
-
     if (mName.empty() == true)
     {
-      logEmptyString(mName, getLevel(), getVersion(), "<Member>");
+      logEmptyString(mName, level, version, "<Member>");
     }
   }
 
-  //
-  // idRef SIdRef   ( use = "optional" )
-  //
+  // 
+  // idRef SIdRef (use = "optional" )
+  // 
+
   assigned = attributes.readInto("idRef", mIdRef);
 
   if (assigned == true)
   {
-    // check string is not empty and correct syntax
-
     if (mIdRef.empty() == true)
     {
-      logEmptyString(mIdRef, getLevel(), getVersion(), "<Member>");
+      logEmptyString(mIdRef, level, version, "<Member>");
     }
     else if (SyntaxChecker::isValidSBMLSId(mIdRef) == false)
     {
-      logError(InvalidIdSyntax, getLevel(), getVersion(), 
-        "The syntax of the attribute idRef='" + mIdRef + "' does not conform.");
+      std::string msg = "The idRef on the <" + this->getElementName() + "> ";
+      if (this->isSetId()) {
+        msg += "with id '" + this->getId() +"' ";
+      }
+      msg += "is '" + mIdRef + "', which does not conform to the syntax.";
+      log->logPackageError("groups", GroupsMemberIdRefMustBeSId, 
+        pkgVersion, level, version, msg, getLine(), getColumn());
     }
   }
 
-  //
-  // metaIdRef string   ( use = "optional" )
-  //
+  // 
+  // metaIdRef IDREF (use = "optional" )
+  // 
+
   assigned = attributes.readInto("metaIdRef", mMetaIdRef);
 
   if (assigned == true)
   {
-    // check string is not empty
-
     if (mMetaIdRef.empty() == true)
     {
-      logEmptyString(mMetaIdRef, getLevel(), getVersion(), "<Member>");
+      logEmptyString(mMetaIdRef, level, version, "<Member>");
+    }
+    else if (SyntaxChecker::isValidXMLID(mMetaIdRef) == false)
+    {
+      std::string msg = "The metaIdRef on the <" + this->getElementName() + "> ";
+      if (this->isSetId()) {
+        msg += "with id '" + this->getId() +"' ";
+      }
+      msg += "is '" + mMetaIdRef + "', which does not conform to the syntax.";
+      log->logPackageError("groups", GroupsMemberMetaIdRefMustBeID, 
+        pkgVersion, level, version, msg, getLine(), getColumn());
     }
   }
-
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 /*
- * Write values of XMLAttributes to the output stream.
+ * Writes the attributes to the stream
  */
-  void
-Member::writeAttributes (XMLOutputStream& stream) const
+void
+Member::writeAttributes(XMLOutputStream& stream) const
 {
   SBase::writeAttributes(stream);
 
   if (isSetId() == true)
+  {
     stream.writeAttribute("id", getPrefix(), mId);
+  }
 
   if (isSetName() == true)
+  {
     stream.writeAttribute("name", getPrefix(), mName);
+  }
 
   if (isSetIdRef() == true)
+  {
     stream.writeAttribute("idRef", getPrefix(), mIdRef);
+  }
 
   if (isSetMetaIdRef() == true)
+  {
     stream.writeAttribute("metaIdRef", getPrefix(), mMetaIdRef);
+  }
 
   SBase::writeExtensionAttributes(stream);
-
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
-
-/*
- * Constructor 
- */
-ListOfMembers::ListOfMembers(unsigned int level, 
-                unsigned int version, 
-                unsigned int pkgVersion)
- : ListOf(level, version)
-{
-  setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level, version, pkgVersion)); 
-}
-
-
-/*
- * Constructor 
- */
-ListOfMembers::ListOfMembers(GroupsPkgNamespaces* groupsns)
-  : ListOf(groupsns)
-{
-  setElementNamespace(groupsns->getURI());
-}
-
-
-/*
- * Returns a deep copy of this ListOfMembers 
- */
-ListOfMembers* 
-ListOfMembers::clone () const
- {
-  return new ListOfMembers(*this);
-}
-
-
-/*
- * Get a Member from the ListOfMembers by index.
-*/
-Member*
-ListOfMembers::get(unsigned int n)
-{
-  return static_cast<Member*>(ListOf::get(n));
-}
-
-
-/*
- * Get a Member from the ListOfMembers by index.
- */
-const Member*
-ListOfMembers::get(unsigned int n) const
-{
-  return static_cast<const Member*>(ListOf::get(n));
-}
-
-
-/*
- * Get a Member from the ListOfMembers by id.
- */
-Member*
-ListOfMembers::get(const std::string& sid)
-{
-  return const_cast<Member*>(
-    static_cast<const ListOfMembers&>(*this).get(sid));
-}
-
-
-/*
- * Get a Member from the ListOfMembers by id.
- */
-const Member*
-ListOfMembers::get(const std::string& sid) const
-{
-  vector<SBase*>::const_iterator result;
-
-  result = find_if( mItems.begin(), mItems.end(), IdEq<Member>(sid) );
-  return (result == mItems.end()) ? 0 : static_cast <Member*> (*result);
-}
-
-
-/*
- * Removes the nth Member from this ListOfMembers
- */
-Member*
-ListOfMembers::remove(unsigned int n)
-{
-  return static_cast<Member*>(ListOf::remove(n));
-}
-
-
-/*
- * Removes the Member from this ListOfMembers with the given identifier
- */
-Member*
-ListOfMembers::remove(const std::string& sid)
+SBase*
+Member::getReferencedElement()
 {
-  SBase* item = NULL;
-  vector<SBase*>::iterator result;
+  SBase * obj = NULL;
+  // get parent model
+  Model *model = static_cast<Model*>(getAncestorOfType(SBML_MODEL));
 
-  result = find_if( mItems.begin(), mItems.end(), IdEq<Member>(sid) );
+  if (model == NULL) return obj;
 
-  if (result != mItems.end())
+  if (isSetIdRef())
   {
-    item = *result;
-    mItems.erase(result);
+    obj = model->getElementBySId(getIdRef());
   }
-
-  return static_cast <Member*> (item);
-}
-
-
-/*
- * Returns the XML element name of this object
- */
-const std::string&
-ListOfMembers::getElementName () const
-{
-  static const string name = "listOfMembers";
-  return name;
-}
-
-
-/*
- * Returns the libSBML type code for this SBML object.
- */
-int
-ListOfMembers::getTypeCode () const
-{
-  return SBML_LIST_OF;
-}
-
-
-/*
- * Returns the libSBML type code for the objects in this LIST_OF.
- */
-int
-ListOfMembers::getItemTypeCode () const
-{
-  return SBML_GROUPS_MEMBER;
-}
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Creates a new Member in this ListOfMembers
- */
-SBase*
-ListOfMembers::createObject(XMLInputStream& stream)
-{
-  const std::string& name   = stream.peek().getName();
-  SBase* object = NULL;
-
-  if (name == "member")
+  else if (isSetMetaIdRef())
   {
-    GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
-    object = new Member(groupsns);
-    appendAndOwn(object);
-    delete groupsns;
+    obj = model->getElementByMetaId(getMetaIdRef());
   }
 
-  return object;
+  return obj;
 }
 
+/** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
+#endif /* __cplusplus */
 
-  /** @cond doxygenLibsbmlInternal */
 
 /*
- * Write the namespace for the Groups package.
- */
-void
-ListOfMembers::writeXMLNS(XMLOutputStream& stream) const
-{
-  XMLNamespaces xmlns;
-
-  std::string prefix = getPrefix();
-
-  if (prefix.empty())
-  {
-    XMLNamespaces* thisxmlns = getNamespaces();
-    if (thisxmlns && thisxmlns->hasURI(GroupsExtension::getXmlnsL3V1V1()))
-    {
-      xmlns.add(GroupsExtension::getXmlnsL3V1V1(),prefix);
-    }
-  }
-
-  stream << xmlns;
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-/**
- * write comments
+ * Creates a new Member_t using the given SBML Level, Version and
+ * “groups” package version.
  */
 LIBSBML_EXTERN
 Member_t *
-Member_create(unsigned int level, unsigned int version,
+Member_create(unsigned int level,
+              unsigned int version,
               unsigned int pkgVersion)
 {
   return new Member(level, version, pkgVersion);
 }
 
 
-/**
- * write comments
+/*
+ * Creates and returns a deep copy of this Member_t object.
  */
 LIBSBML_EXTERN
-void
-Member_free(Member_t * m)
+Member_t*
+Member_clone(const Member_t* m)
 {
   if (m != NULL)
-    delete m;
+  {
+    return static_cast<Member_t*>(m->clone());
+  }
+  else
+  {
+    return NULL;
+  }
 }
 
 
-/**
- * write comments
+/*
+ * Frees this Member_t object.
  */
 LIBSBML_EXTERN
-Member_t *
-Member_clone(Member_t * m)
+void
+Member_free(Member_t* m)
 {
   if (m != NULL)
   {
-    return static_cast<Member_t*>(m->clone());
-  }
-  else
-  {
-    return NULL;
+    delete m;
   }
 }
 
 
-/**
- * write comments
+/*
+ * Returns the value of the "id" attribute of this Member_t.
  */
 LIBSBML_EXTERN
-char *
-Member_getId(Member_t * m)
+const char *
+Member_getId(const Member_t * m)
 {
   if (m == NULL)
+  {
     return NULL;
+  }
 
   return m->getId().empty() ? NULL : safe_strdup(m->getId().c_str());
 }
 
 
-/**
- * write comments
+/*
+ * Returns the value of the "name" attribute of this Member_t.
  */
 LIBSBML_EXTERN
-char *
-Member_getName(Member_t * m)
+const char *
+Member_getName(const Member_t * m)
 {
   if (m == NULL)
+  {
     return NULL;
+  }
 
   return m->getName().empty() ? NULL : safe_strdup(m->getName().c_str());
 }
 
 
-/**
- * write comments
+/*
+ * Returns the value of the "idRef" attribute of this Member_t.
  */
 LIBSBML_EXTERN
-char *
-Member_getIdRef(Member_t * m)
+const char *
+Member_getIdRef(const Member_t * m)
 {
   if (m == NULL)
+  {
     return NULL;
+  }
 
   return m->getIdRef().empty() ? NULL : safe_strdup(m->getIdRef().c_str());
 }
 
 
-/**
- * write comments
+/*
+ * Returns the value of the "metaIdRef" attribute of this Member_t.
  */
 LIBSBML_EXTERN
-char *
-Member_getMetaIdRef(Member_t * m)
+const char *
+Member_getMetaIdRef(const Member_t * m)
 {
   if (m == NULL)
+  {
     return NULL;
+  }
 
-  return m->getMetaIdRef().empty() ? NULL : safe_strdup(m->getMetaIdRef().c_str());
+  return m->getMetaIdRef().empty() ? NULL :
+    safe_strdup(m->getMetaIdRef().c_str());
 }
 
 
-/**
- * write comments
+/*
+ * Predicate returning @c 1 if this Member_t's "id" attribute is set.
  */
 LIBSBML_EXTERN
 int
-Member_isSetId(Member_t * m)
+Member_isSetId(const Member_t * m)
 {
   return (m != NULL) ? static_cast<int>(m->isSetId()) : 0;
 }
 
 
-/**
- * write comments
+/*
+ * Predicate returning @c 1 if this Member_t's "name" attribute is set.
  */
 LIBSBML_EXTERN
 int
-Member_isSetName(Member_t * m)
+Member_isSetName(const Member_t * m)
 {
   return (m != NULL) ? static_cast<int>(m->isSetName()) : 0;
 }
 
 
-/**
- * write comments
+/*
+ * Predicate returning @c 1 if this Member_t's "idRef" attribute is set.
  */
 LIBSBML_EXTERN
 int
-Member_isSetIdRef(Member_t * m)
+Member_isSetIdRef(const Member_t * m)
 {
   return (m != NULL) ? static_cast<int>(m->isSetIdRef()) : 0;
 }
 
 
-/**
- * write comments
+/*
+ * Predicate returning @c 1 if this Member_t's "metaIdRef" attribute is set.
  */
 LIBSBML_EXTERN
 int
-Member_isSetMetaIdRef(Member_t * m)
+Member_isSetMetaIdRef(const Member_t * m)
 {
   return (m != NULL) ? static_cast<int>(m->isSetMetaIdRef()) : 0;
 }
 
 
-/**
- * write comments
+/*
+ * Sets the value of the "id" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -964,8 +849,8 @@ Member_setId(Member_t * m, const char * id)
 }
 
 
-/**
- * write comments
+/*
+ * Sets the value of the "name" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -975,8 +860,8 @@ Member_setName(Member_t * m, const char * name)
 }
 
 
-/**
- * write comments
+/*
+ * Sets the value of the "idRef" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -986,8 +871,8 @@ Member_setIdRef(Member_t * m, const char * idRef)
 }
 
 
-/**
- * write comments
+/*
+ * Sets the value of the "metaIdRef" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -997,8 +882,8 @@ Member_setMetaIdRef(Member_t * m, const char * metaIdRef)
 }
 
 
-/**
- * write comments
+/*
+ * Unsets the value of the "id" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -1008,8 +893,8 @@ Member_unsetId(Member_t * m)
 }
 
 
-/**
- * write comments
+/*
+ * Unsets the value of the "name" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -1019,8 +904,8 @@ Member_unsetName(Member_t * m)
 }
 
 
-/**
- * write comments
+/*
+ * Unsets the value of the "idRef" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -1030,8 +915,8 @@ Member_unsetIdRef(Member_t * m)
 }
 
 
-/**
- * write comments
+/*
+ * Unsets the value of the "metaIdRef" attribute of this Member_t.
  */
 LIBSBML_EXTERN
 int
@@ -1041,45 +926,18 @@ Member_unsetMetaIdRef(Member_t * m)
 }
 
 
-/**
- * write comments
+/*
+ * Predicate returning @c 1 if all the required attributes for this Member_t
+ * object have been set.
  */
 LIBSBML_EXTERN
 int
-Member_hasRequiredAttributes(Member_t * m)
+Member_hasRequiredAttributes(const Member_t * m)
 {
   return (m != NULL) ? static_cast<int>(m->hasRequiredAttributes()) : 0;
 }
 
 
-/**
- * write comments
- */
-LIBSBML_EXTERN
-Member_t *
-ListOfMembers_getById(ListOf_t * lo, const char * sid)
-{
-  if (lo == NULL)
-    return NULL;
-
-  return (sid != NULL) ? static_cast <ListOfMembers *>(lo)->get(sid) : NULL;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-Member_t *
-ListOfMembers_removeById(ListOf_t * lo, const char * sid)
-{
-  if (lo == NULL)
-    return NULL;
-
-  return (sid != NULL) ? static_cast <ListOfMembers *>(lo)->remove(sid) : NULL;
-}
-
-
 
 
 LIBSBML_CPP_NAMESPACE_END
diff --git a/src/sbml/packages/groups/sbml/Member.h b/src/sbml/packages/groups/sbml/Member.h
index c2a579b..25287f5 100644
--- a/src/sbml/packages/groups/sbml/Member.h
+++ b/src/sbml/packages/groups/sbml/Member.h
@@ -1,29 +1,129 @@
 /**
- * @file:   Member.h
- * @brief:  Implementation of the Member class
- * @author: Generated by autocreate code
+ * @file Member.h
+ * @brief Definition of the Member class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
+ *
+ * @class Member
+ * @sbmlbrief{groups} A member of a Group.
+ *
+ * Member class objects are used to define what constitutes a "group" in the
+ * SBML Level 3 Group package.  Member objects reference other SBML
+ * components in an SBML document.  A Member has four optional attributes:
+ * "id" and "name", which identify the element, and "idRef" and "metaIdRef"
+ * which reference the identifiers of other elements.
+ *
+ * There must be exactly one (and only one) method used to reference another
+ * element: either "idRef" or "metaIdRef" may be defined, but not both.
+ * (Multiple attributes are needed to account for the different types of
+ * identifiers that a given object may have.) The referenced object
+ * (including, potentially, another Group object) is thus made a member of
+ * the Group in which the Member object is contained.
+ *
+ * Since Member is derived from SBase, which provides both the ability to
+ * attach SBO terms as well as MIRIAM annotations, the semantics of a given
+ * member in a model can be made more precise by reference to external
+ * controlled vocabularies and ontologies.
+ *
+ * @section member-membership-rules Membership in a Group object
+ *
+ * If an SBML element is referenced by a Group's child Member (directly or
+ * indirectly), it is considered to be a member of that Group.  If the same
+ * element is referenced by multiple Member objects, this is equivalent to
+ * including it just once.  (It is considered best practice to avoid this,
+ * but does not make for an invalid SBML document.)
+ *
+ * Children of referenced elements are not considered to be members of the
+ * Group: a KineticLaw of a referenced Reaction is not itself a Group
+ * member. Even the membership of so-called SBML container classes (e.g.,
+ * ListOfSpecies, ListOfCompartments, etc.) does not imply inclusion of
+ * children as members of the Group. The sole exception to this rule is the
+ * handling of ListOfMembers class.
+ *
+ * Please refer to the description of the Group class for more information
+ * about groups, members, and the semantics of group membership.
+ *
+ * @see Group
+ * @see ListOfGroups
+ * @see ListOfMembers
+ */
+
+/**
+ * <!-- ~ ~ ~ ~ ~ Start of common documentation strings ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
+ * The following text is used as common documentation blocks copied multiple
+ * times elsewhere in this file.  The use of @class is a hack needed because
+ * Doxygen's @copydetails command has limited functionality.  Symbols
+ * beginning with "doc_" are marked as ignored in our Doxygen configuration.
+ * ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  -->
+ *
+ * @class doc_group_member_sidref
+ *
+ * @par
+ * The attributes "idRef" and "metaIdRef" on Member are used to reference the
+ * identifiers of other components in a model in order to include them as
+ * members of a Group.  There must be exactly one (and only one) method used
+ * to reference another element: either "idRef" or "metaIdRef" may be
+ * defined, but not both.  The value must be the identifier of an object
+ * elsewhere in the Model.  (Object identifiers are usually set by attributes
+ * named "id"; thus, the "idRef" value will usually be the "id" value of an
+ * object in the Model.)  An example value of "idRef" might be the identifier
+ * of a species in the model, or the identifier of a Group object.  The
+ * namespace in which the <code>SId</code> value is to be found is the
+ * <code>SId</code> namespace of the Model to which the Group belongs.
+ * Conversely, elements with "id" values that are not part of the SId
+ * namespace may @em not be referenced by this "idRef" attribute.  In SBML
+ * Level 3 Version 1, this includes the Unit and LocalParameter
+ * objects.
+ *
+ * <!-- ------------------------------------------------------------------- -->
+ * @class doc_group_member_metaidref
+ *
+ * @par
+ * The attributes "idRef" and "metaIdRef" on Member are used to reference the
+ * identifiers of other components in a model in order to include them as
+ * members of a Group.  There must be exactly one (and only one) method used
+ * to reference another element: either "idRef" or "metaIdRef" may be
+ * defined, but not both.  The "metaIdRef" attribute takes a value of type
+ * <code>IDREF</code>.  This attribute is used to refer to a "metaid"
+ * attribute value on any other object in the Model, for cases where the
+ * object being referenced does not have an identifier in the Model SId
+ * namespace.  (This is the case with, for example, units and rules in SBML
+ * Level 3 Version 1.)  Since meta identifiers are optional
+ * attributes of SBase, all SBML objects have the potential to have a meta
+ * identifier value, including most elements from other SBML packages.
+ *
+ * Note that even if used in conjunction with the SBML Level 3
+ * Hierarchical Model Composition package, this attribute is not allowed to
+ * reference elements that reside within other Model objects in the same SBML
+ * Document.  Referenced elements must be normal members of the parent Model
+ * containing the Member object, and submodel elements may be normally
+ * accessed by creating replacements.
  */
 
 
@@ -43,7 +143,6 @@
 
 
 #include <sbml/SBase.h>
-#include <sbml/ListOf.h>
 #include <sbml/packages/groups/extension/GroupsExtension.h>
 
 
@@ -52,43 +151,60 @@ LIBSBML_CPP_NAMESPACE_BEGIN
 
 class LIBSBML_EXTERN Member : public SBase
 {
-
 protected:
 
-  std::string   mId;
-  std::string   mName;
-  std::string   mIdRef;
-  std::string   mMetaIdRef;
+  /** @cond doxygenLibsbmlInternal */
+
+  std::string mId;
+  std::string mName;
+  std::string mIdRef;
+  std::string mMetaIdRef;
 
+  /** @endcond */
 
 public:
 
   /**
-   * Creates a new Member with the given level, version, and package version.
+   * Creates a new Member using the given SBML Level, Version and
+   * “groups” package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this Member.
    *
-   * @param level an unsigned int, the SBML Level to assign to this Member
+   * @param version an unsigned int, the SBML Version to assign to this Member.
    *
-   * @param version an unsigned int, the SBML Version to assign to this Member
+   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to
+   * this Member.
    *
-   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to this Member
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
+   * @copydetails doc_note_setting_lv
    */
-  Member(unsigned int level      = GroupsExtension::getDefaultLevel(),
-         unsigned int version    = GroupsExtension::getDefaultVersion(),
-         unsigned int pkgVersion = GroupsExtension::getDefaultPackageVersion());
+  Member(unsigned int level = GroupsExtension::getDefaultLevel(),
+         unsigned int version = GroupsExtension::getDefaultVersion(),
+         unsigned int pkgVersion =
+           GroupsExtension::getDefaultPackageVersion());
 
 
   /**
-   * Creates a new Member with the given GroupsPkgNamespaces object.
+   * Creates a new Member using the given GroupsPkgNamespaces object.
    *
-   * @param groupsns the GroupsPkgNamespaces object
+   * @param groupsns the GroupsPkgNamespaces object.
+   *
+   * @throws SBMLConstructorException
+   * Thrown if the given @p level and @p version combination, or this kind of
+   * SBML object, are either invalid or mismatched with respect to the parent
+   * SBMLDocument object.
+   * @copydetails doc_note_setting_lv
    */
-  Member(GroupsPkgNamespaces* groupsns);
+  Member(GroupsPkgNamespaces *groupsns);
 
 
   /**
    * Copy constructor for Member.
    *
-   * @param orig; the Member instance to copy.
+   * @param orig the Member instance to copy.
    */
   Member(const Member& orig);
 
@@ -96,8 +212,8 @@ public:
   /**
    * Assignment operator for Member.
    *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
+   * @param rhs the Member object whose values are to be used as the basis of
+   * the assignment.
    */
   Member& operator=(const Member& rhs);
 
@@ -107,7 +223,7 @@ public:
    *
    * @return a (deep) copy of this Member object.
    */
-  virtual Member* clone () const;
+  virtual Member* clone() const;
 
 
   /**
@@ -121,678 +237,683 @@ public:
    *
    * @return the value of the "id" attribute of this Member as a string.
    */
-  virtual const std::string& getId() const;
+  const std::string& getId() const;
 
 
   /**
-   * Predicate returning @c true or @c false depending on whether this
-   * Member's "id" attribute has been set.
+   * Returns the value of the "name" attribute of this Member.
    *
-   * @return @c true if this Member's "id" attribute has been set,
-   * otherwise @c false is returned.
+   * @return the value of the "name" attribute of this Member as a string.
    */
-  virtual bool isSetId() const;
+  const std::string& getName() const;
 
 
   /**
-   * Sets the value of the "id" attribute of this Member.
+   * Returns the value of the "idRef" attribute of this Member.
    *
-   * @param id; const std::string& value of the "id" attribute to be set
+   * @copydetails doc_group_member_sidref
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * @return the value of the "idRef" attribute of this Member as a string.
    */
-  virtual int setId(const std::string& id);
+  const std::string& getIdRef() const;
 
 
   /**
-   * Unsets the value of the "id" attribute of this Member.
+   * Returns the value of the "metaIdRef" attribute of this Member.
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
+   * @copydetails doc_group_member_metaidref
+   *
+   * @return the value of the "metaIdRef" attribute of this Member as a string.
    */
-  virtual int unsetId();
+  const std::string& getMetaIdRef() const;
 
 
   /**
-   * Returns the value of the "name" attribute of this Member.
+   * Predicate returning @c true if this Member's "id" attribute is set.
    *
-   * @return the value of the "name" attribute of this Member as a string.
+   * @return @c true if this Member's "id" attribute has been set, otherwise @c
+   * false is returned.
    */
-  virtual const std::string& getName() const;
+  bool isSetId() const;
 
 
   /**
-   * Predicate returning @c true or @c false depending on whether this
-   * Member's "name" attribute has been set.
+   * Predicate returning @c true if this Member's "name" attribute is set.
    *
-   * @return @c true if this Member's "name" attribute has been set,
-   * otherwise @c false is returned.
+   * @return @c true if this Member's "name" attribute has been set, otherwise
+   * @c false is returned.
    */
-  virtual bool isSetName() const;
+  bool isSetName() const;
 
 
   /**
-   * Sets the value of the "name" attribute of this Member.
+   * Predicate returning @c true if this Member's "idRef" attribute is set.
    *
-   * @param name; const std::string& value of the "name" attribute to be set
+   * @copydetails doc_group_member_sidref
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * @return @c true if this Member's "idRef" attribute has been set, otherwise
+   * @c false is returned.
    */
-  virtual int setName(const std::string& name);
+  bool isSetIdRef() const;
 
 
   /**
-   * Unsets the value of the "name" attribute of this Member.
+   * Predicate returning @c true if this Member's "metaIdRef" attribute is set.
+   *
+   * @copydetails doc_group_member_metaidref
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
+   * @return @c true if this Member's "metaIdRef" attribute has been set,
+   * otherwise @c false is returned.
    */
-  virtual int unsetName();
+  bool isSetMetaIdRef() const;
 
 
   /**
-   * Returns the value of the "idRef" attribute of this Member.
+   * Sets the value of the "id" attribute of this Member.
    *
-   * @return the value of the "idRef" attribute of this Member as a string.
+   * @param id std::string& value of the "id" attribute to be set.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
    */
-  virtual const std::string& getIdRef() const;
+  int setId(const std::string& id);
 
 
   /**
-   * Predicate returning @c true or @c false depending on whether this
-   * Member's "idRef" attribute has been set.
+   * Sets the value of the "name" attribute of this Member.
    *
-   * @return @c true if this Member's "idRef" attribute has been set,
-   * otherwise @c false is returned.
+   * @param name std::string& value of the "name" attribute to be set.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
    */
-  virtual bool isSetIdRef() const;
+  int setName(const std::string& name);
 
 
   /**
    * Sets the value of the "idRef" attribute of this Member.
    *
-   * @param idRef; const std::string& value of the "idRef" attribute to be set
+   * @copydetails doc_group_member_sidref
+   *
+   * @param idRef std::string& value of the "idRef" attribute to be set.
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
    */
-  virtual int setIdRef(const std::string& idRef);
+  int setIdRef(const std::string& idRef);
 
 
   /**
-   * Unsets the value of the "idRef" attribute of this Member.
+   * Sets the value of the "metaIdRef" attribute of this Member.
+   *
+   * @copydetails doc_group_member_metaidref
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
+   * @param metaIdRef std::string& value of the "metaIdRef" attribute to be
+   * set.
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
    */
-  virtual int unsetIdRef();
+  int setMetaIdRef(const std::string& metaIdRef);
 
 
   /**
-   * Returns the value of the "metaIdRef" attribute of this Member.
+   * Unsets the value of the "id" attribute of this Member.
    *
-   * @return the value of the "metaIdRef" attribute of this Member as a string.
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    */
-  virtual const std::string& getMetaIdRef() const;
+  int unsetId();
 
 
   /**
-   * Predicate returning @c true or @c false depending on whether this
-   * Member's "metaIdRef" attribute has been set.
+   * Unsets the value of the "name" attribute of this Member.
    *
-   * @return @c true if this Member's "metaIdRef" attribute has been set,
-   * otherwise @c false is returned.
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    */
-  virtual bool isSetMetaIdRef() const;
+  int unsetName();
 
 
   /**
-   * Sets the value of the "metaIdRef" attribute of this Member.
+   * Unsets the value of the "idRef" attribute of this Member.
    *
-   * @param metaIdRef; const std::string& value of the "metaIdRef" attribute to be set
+   * @copydetails doc_group_member_sidref
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    */
-  virtual int setMetaIdRef(const std::string& metaIdRef);
+  int unsetIdRef();
 
 
   /**
    * Unsets the value of the "metaIdRef" attribute of this Member.
    *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
+   * @copydetails doc_group_member_metaidref
+   *
+   * @copydetails doc_returns_success_code
+   * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+   * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
    */
-  virtual int unsetMetaIdRef();
+  int unsetMetaIdRef();
 
 
   /**
-   * Returns the XML element name of this object, which for Member, is
-   * always @c "member".
-   *
-   * @return the name of this element, i.e. @c "member".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for this object, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
+   * @copydoc doc_renamesidref_common
    */
-  virtual int getTypeCode () const;
+  virtual void renameSIdRefs(const std::string& oldid,
+                             const std::string& newid);
 
 
   /**
-   * Predicate returning @c true if all the required attributes
-   * for this Member object have been set.
+   * Returns the XML element name of this Member object.
    *
-   * @note The required attributes for a Member object are:
+   * For Member, the XML element name is always @c "member".
    *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
+   * @return the name of this element, i.e. @c "member".
    */
-  virtual bool hasRequiredAttributes() const;
+  virtual const std::string& getElementName() const;
 
 
-  /** @cond doxygenLibsbmlInternal */
-
   /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
+   * Returns the libSBML type code for this Member object.
+   *
+   * @copydetails doc_what_are_typecodes
+   *
+   * @return the SBML type code for this object:
+   *
+   * @sbmlconstant{SBML_GROUPS_MEMBER, SBMLGroupsTypeCode_t}
+   *
+   * @copydetails doc_warning_typecodes_not_unique
+   *
+   * @see getElementName()
+   * @see getPackageName()
    */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
+  virtual int getTypeCode() const;
 
 
-  /** @cond doxygenLibsbmlInternal */
-
   /**
-   * Accepts the given SBMLVisitor.
+   * Predicate returning @c true if all the required attributes for this Member
+   * object have been set.
+   *
+   * @return @c true to indicate that all the required attributes of this
+   * Member have been set, otherwise @c false is returned.
+   *
+   *
+   * @note The required attributes for the Member object are:
    */
-  virtual bool accept (SBMLVisitor& v) const;
-
+  virtual bool hasRequiredAttributes() const;
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Sets the parent SBMLDocument.
+   * Write any contained elements
    */
-  virtual void setSBMLDocument (SBMLDocument* d);
+  virtual void writeElements(XMLOutputStream& stream) const;
 
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Enables/Disables the given package with this element.
+   * Accepts the given SBMLVisitor
    */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
+  virtual bool accept(SBMLVisitor& v) const;
 
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-protected:
-
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Get the list of expected attributes for this element.
+   * Sets the parent SBMLDocument
    */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+  virtual void setSBMLDocument(SBMLDocument* d);
 
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Read values from the given XMLAttributes set into their specific fields.
+   * Enables/disables the given package with this element
    */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
+  virtual void enablePackageInternal(const std::string& pkgURI,
+                                     const std::string& pkgPrefix,
+                                     bool flag);
 
+  /** @endcond */
 
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Write values of XMLAttributes to the output stream.
+   * Enables/disables the given package with this element
    */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
+  SBase* getReferencedElement();
 
+  /** @endcond */
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-
-};
-
-class LIBSBML_EXTERN ListOfMembers : public ListOf
-{
-
-public:
-
-  /**
-   * Creates a new ListOfMembers with the given level, version, and package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this ListOfMembers
-   *
-   * @param version an unsigned int, the SBML Version to assign to this ListOfMembers
-   *
-   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to this ListOfMembers
-   */
-  ListOfMembers(unsigned int level      = GroupsExtension::getDefaultLevel(),
-                unsigned int version    = GroupsExtension::getDefaultVersion(),
-                unsigned int pkgVersion = GroupsExtension::getDefaultPackageVersion());
+protected:
 
 
-  /**
-   * Creates a new ListOfMembers with the given GroupsPkgNamespaces object.
-   *
-   * @param groupsns the GroupsPkgNamespaces object
-   */
-  ListOfMembers(GroupsPkgNamespaces* groupsns);
-
+  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Creates and returns a deep copy of this ListOfMembers object.
-   *
-   * @return a (deep) copy of this ListOfMembers object.
+   * Adds the expected attributes for this element
    */
-  virtual ListOfMembers* clone () const;
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
 
+  /** @endcond */
 
-  /**
-   * Get a Member from the ListOfMembers.
-   *
-   * @param n the index number of the Member to get.
-   *
-   * @return the nth Member in this ListOfMembers.
-   *
-   * @see size()
-   */
-  virtual Member* get(unsigned int n);
 
 
-  /**
-   * Get a Member from the ListOfMembers.
-   *
-   * @param n the index number of the Member to get.
-   *
-   * @return the nth Member in this ListOfMembers.
-   *
-   * @see size()
-   */
-  virtual const Member* get(unsigned int n) const;
-
+  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Get a Member from the ListOfMembers
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the Member to get.
-   *
-   * @return Member in this ListOfMembers
-   * with the given id or NULL if no such
-   * Member exists.
-   *
-   * @see get(unsigned int n)   *
-   * @see size()
+   * Reads the expected attributes into the member data variables
    */
-  virtual Member* get(const std::string& sid);
+  virtual void readAttributes(const XMLAttributes& attributes,
+                              const ExpectedAttributes& expectedAttributes);
 
+  /** @endcond */
 
-  /**
-   * Get a Member from the ListOfMembers
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the Member to get.
-   *
-   * @return Member in this ListOfMembers
-   * with the given id or NULL if no such
-   * Member exists.
-   *
-   * @see get(unsigned int n)   *
-   * @see size()
-   */
-  virtual const Member* get(const std::string& sid) const;
 
 
-  /**
-   * Removes the nth Member from this ListOfMembers
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the Member to remove.
-   *
-   * @see size()
-   */
-  virtual Member* remove(unsigned int n);
-
+  /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Removes the Member from this ListOfMembers with the given identifier
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
-   *
-   * @param sid the identifier of the Member to remove.
-   *
-   * @return the Member removed. As mentioned above, the caller owns the
-   * returned item.
+   * Writes the attributes to the stream
    */
-  virtual Member* remove(const std::string& sid);
+  virtual void writeAttributes(XMLOutputStream& stream) const;
 
+  /** @endcond */
 
-  /**
-   * Returns the XML element name of this object, which for ListOfMembers, is
-   * always @c "listOfMembers".
-   *
-   * @return the name of this element, i.e. @c "listOfMembers".
-   */
-  virtual const std::string& getElementName () const;
 
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for this object, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Returns the libSBML type code for the SBML objects
-   * contained in this ListOf object
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for the objects in this ListOf instance, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getItemTypeCode () const;
+};
 
 
-protected:
 
-  /** @cond doxygenLibsbmlInternal */
+LIBSBML_CPP_NAMESPACE_END
 
-  /**
-   * Creates a new Member in this ListOfMembers
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
 
 
-  /** @endcond doxygenLibsbmlInternal */
 
+#endif /* __cplusplus */
 
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write the namespace for the Groups package.
-   */
-  virtual void writeXMLNS(XMLOutputStream& stream) const;
 
 
-  /** @endcond doxygenLibsbmlInternal */
 
+#ifndef SWIG
 
 
-};
 
 
+LIBSBML_CPP_NAMESPACE_BEGIN
 
-LIBSBML_CPP_NAMESPACE_END
 
-#endif  /*  __cplusplus  */
 
-#ifndef SWIG
 
-LIBSBML_CPP_NAMESPACE_BEGIN
 BEGIN_C_DECLS
 
+
+/**
+ * Creates a new Member_t using the given SBML Level, Version and
+ * “groups” package version.
+ *
+ * @param level an unsigned int, the SBML Level to assign to this Member_t.
+ *
+ * @param version an unsigned int, the SBML Version to assign to this Member_t.
+ *
+ * @param pkgVersion an unsigned int, the SBML Groups Version to assign to this
+ * Member_t.
+ *
+ * @throws SBMLConstructorException
+ * Thrown if the given @p level and @p version combination, or this kind of
+ * SBML object, are either invalid or mismatched with respect to the parent
+ * SBMLDocument object.
+ * @copydetails doc_note_setting_lv
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 Member_t *
-Member_create(unsigned int level, unsigned int version,
-              unsigned int pkgVersion);
+Member_create(unsigned int level = GroupsExtension::getDefaultLevel(),
+              unsigned int version = GroupsExtension::getDefaultVersion(),
+              unsigned int pkgVersion =
+                GroupsExtension::getDefaultPackageVersion());
 
 
+/**
+ * Creates and returns a deep copy of this Member_t object.
+ *
+ * @param m the Member_t structure.
+ *
+ * @return a (deep) copy of this Member_t object.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
-void
-Member_free(Member_t * m);
+Member_t*
+Member_clone(const Member_t* m);
 
 
+/**
+ * Frees this Member_t object.
+ *
+ * @param m the Member_t structure.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
-Member_t *
-Member_clone(Member_t * m);
+void
+Member_free(Member_t* m);
 
 
+/**
+ * Returns the value of the "id" attribute of this Member_t.
+ *
+ * @param m the Member_t structure whose id is sought.
+ *
+ * @return the value of the "id" attribute of this Member_t as a pointer to a
+ * string.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
-char *
-Member_getId(Member_t * m);
+const char *
+Member_getId(const Member_t * m);
 
 
+/**
+ * Returns the value of the "name" attribute of this Member_t.
+ *
+ * @param m the Member_t structure whose name is sought.
+ *
+ * @return the value of the "name" attribute of this Member_t as a pointer to a
+ * string.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
-char *
-Member_getName(Member_t * m);
+const char *
+Member_getName(const Member_t * m);
 
 
+/**
+ * Returns the value of the "idRef" attribute of this Member_t.
+ *
+ * @param m the Member_t structure whose idRef is sought.
+ *
+ * @return the value of the "idRef" attribute of this Member_t as a pointer to
+ * a string.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
-char *
-Member_getIdRef(Member_t * m);
+const char *
+Member_getIdRef(const Member_t * m);
 
 
+/**
+ * Returns the value of the "metaIdRef" attribute of this Member_t.
+ *
+ * @param m the Member_t structure whose metaIdRef is sought.
+ *
+ * @return the value of the "metaIdRef" attribute of this Member_t as a pointer
+ * to a string.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
-char *
-Member_getMetaIdRef(Member_t * m);
+const char *
+Member_getMetaIdRef(const Member_t * m);
 
 
+/**
+ * Predicate returning @c 1 if this Member_t's "id" attribute is set.
+ *
+ * @param m the Member_t structure.
+ *
+ * @return @c 1 if this Member_t's "id" attribute has been set, otherwise @c 0
+ * is returned.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
-Member_isSetId(Member_t * m);
+Member_isSetId(const Member_t * m);
 
 
+/**
+ * Predicate returning @c 1 if this Member_t's "name" attribute is set.
+ *
+ * @param m the Member_t structure.
+ *
+ * @return @c 1 if this Member_t's "name" attribute has been set, otherwise @c
+ * 0 is returned.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
-Member_isSetName(Member_t * m);
+Member_isSetName(const Member_t * m);
 
 
+/**
+ * Predicate returning @c 1 if this Member_t's "idRef" attribute is set.
+ *
+ * @param m the Member_t structure.
+ *
+ * @return @c 1 if this Member_t's "idRef" attribute has been set, otherwise @c
+ * 0 is returned.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
-Member_isSetIdRef(Member_t * m);
+Member_isSetIdRef(const Member_t * m);
 
 
+/**
+ * Predicate returning @c 1 if this Member_t's "metaIdRef" attribute is set.
+ *
+ * @param m the Member_t structure.
+ *
+ * @return @c 1 if this Member_t's "metaIdRef" attribute has been set,
+ * otherwise @c 0 is returned.
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
-Member_isSetMetaIdRef(Member_t * m);
+Member_isSetMetaIdRef(const Member_t * m);
 
 
+/**
+ * Sets the value of the "id" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @param id const char * value of the "id" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_setId(Member_t * m, const char * id);
 
 
+/**
+ * Sets the value of the "name" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @param name const char * value of the "name" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_setName(Member_t * m, const char * name);
 
 
+/**
+ * Sets the value of the "idRef" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @param idRef const char * value of the "idRef" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_setIdRef(Member_t * m, const char * idRef);
 
 
+/**
+ * Sets the value of the "metaIdRef" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @param metaIdRef const char * value of the "metaIdRef" attribute to be set.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_INVALID_ATTRIBUTE_VALUE, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_setMetaIdRef(Member_t * m, const char * metaIdRef);
 
 
+/**
+ * Unsets the value of the "id" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_unsetId(Member_t * m);
 
 
+/**
+ * Unsets the value of the "name" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_unsetName(Member_t * m);
 
 
+/**
+ * Unsets the value of the "idRef" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_unsetIdRef(Member_t * m);
 
 
+/**
+ * Unsets the value of the "metaIdRef" attribute of this Member_t.
+ *
+ * @param m the Member_t structure.
+ *
+ * @copydetails doc_returns_success_code
+ * @li @sbmlconstant{LIBSBML_OPERATION_SUCCESS, OperationReturnValues_t}
+ * @li @sbmlconstant{LIBSBML_OPERATION_FAILED, OperationReturnValues_t}
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
 Member_unsetMetaIdRef(Member_t * m);
 
 
+/**
+ * Predicate returning @c 1 if all the required attributes for this Member_t
+ * object have been set.
+ *
+ * @param m the Member_t structure.
+ *
+ * @return @c 1 to indicate that all the required attributes of this Member_t
+ * have been set, otherwise @c 0 is returned.
+ *
+ *
+ * @note The required attributes for the Member_t object are:
+ *
+ * @memberof Member_t
+ */
 LIBSBML_EXTERN
 int
-Member_hasRequiredAttributes(Member_t * m);
+Member_hasRequiredAttributes(const Member_t * m);
 
 
-LIBSBML_EXTERN
-Member_t *
-ListOfMembers_getById(ListOf_t * lo, const char * sid);
 
 
-LIBSBML_EXTERN
-Member_t *
-ListOfMembers_removeById(ListOf_t * lo, const char * sid);
+END_C_DECLS
 
 
 
 
-END_C_DECLS
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /*  !SWIG  */
 
-#endif /*  Member_H__  */
+
+
+#endif /* !SWIG */
+
+
+
+
+#endif /* !Member_H__ */
+
 
diff --git a/src/sbml/packages/groups/sbml/MemberConstraint.cpp b/src/sbml/packages/groups/sbml/MemberConstraint.cpp
deleted file mode 100644
index 6bd8306..0000000
--- a/src/sbml/packages/groups/sbml/MemberConstraint.cpp
+++ /dev/null
@@ -1,1382 +0,0 @@
-/**
- * @file:   MemberConstraint.cpp
- * @brief:  Implementation of the MemberConstraint class
- * @author: Generated by autocreate code
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- */
-
-
-#include <sbml/packages/groups/sbml/MemberConstraint.h>
-#include <sbml/packages/groups/validator/GroupsSBMLError.h>
-
-
-using namespace std;
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-/*
- * Creates a new MemberConstraint with the given level, version, and package version.
- */
-MemberConstraint::MemberConstraint (unsigned int level, unsigned int version, unsigned int pkgVersion)
-  : SBase(level, version)
-   ,mId ("")
-   ,mName ("")
-   ,mDistinctAttribute ("")
-   ,mIdenticalAttribute ("")
-{
-  // set an SBMLNamespaces derived object of this package
-  setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level, version, pkgVersion));
-}
-
-
-/*
- * Creates a new MemberConstraint with the given GroupsPkgNamespaces object.
- */
-MemberConstraint::MemberConstraint (GroupsPkgNamespaces* groupsns)
-  : SBase(groupsns)
-   ,mId ("")
-   ,mName ("")
-   ,mDistinctAttribute ("")
-   ,mIdenticalAttribute ("")
-{
-  // set the element namespace of this object
-  setElementNamespace(groupsns->getURI());
-
-  // load package extensions bound with this object (if any) 
-  loadPlugins(groupsns);
-}
-
-
-/*
- * Copy constructor for MemberConstraint.
- */
-MemberConstraint::MemberConstraint (const MemberConstraint& orig)
-  : SBase(orig)
-  , mId  ( orig.mId)
-  , mName  ( orig.mName)
-  , mDistinctAttribute  ( orig.mDistinctAttribute)
-  , mIdenticalAttribute  ( orig.mIdenticalAttribute)
-{
-}
-
-
-/*
- * Assignment for MemberConstraint.
- */
-MemberConstraint&
-MemberConstraint::operator=(const MemberConstraint& rhs)
-{
-  if (&rhs != this)
-  {
-    SBase::operator=(rhs);
-    mId  = rhs.mId;
-    mName  = rhs.mName;
-    mDistinctAttribute  = rhs.mDistinctAttribute;
-    mIdenticalAttribute  = rhs.mIdenticalAttribute;
-  }
-  return *this;
-}
-
-
-/*
- * Clone for MemberConstraint.
- */
-MemberConstraint*
-MemberConstraint::clone () const
-{
-  return new MemberConstraint(*this);
-}
-
-
-/*
- * Destructor for MemberConstraint.
- */
-MemberConstraint::~MemberConstraint ()
-{
-}
-
-
-/*
- * Returns the value of the "id" attribute of this MemberConstraint.
- */
-const std::string&
-MemberConstraint::getId() const
-{
-  return mId;
-}
-
-
-/*
- * Returns the value of the "name" attribute of this MemberConstraint.
- */
-const std::string&
-MemberConstraint::getName() const
-{
-  return mName;
-}
-
-
-/*
- * Returns the value of the "distinctAttribute" attribute of this MemberConstraint.
- */
-const std::string&
-MemberConstraint::getDistinctAttribute() const
-{
-  return mDistinctAttribute;
-}
-
-
-/*
- * Returns the value of the "identicalAttribute" attribute of this MemberConstraint.
- */
-const std::string&
-MemberConstraint::getIdenticalAttribute() const
-{
-  return mIdenticalAttribute;
-}
-
-
-/*
- * Returns true/false if id is set.
- */
-bool
-MemberConstraint::isSetId() const
-{
-  return (mId.empty() == false);
-}
-
-
-/*
- * Returns true/false if name is set.
- */
-bool
-MemberConstraint::isSetName() const
-{
-  return (mName.empty() == false);
-}
-
-
-/*
- * Returns true/false if distinctAttribute is set.
- */
-bool
-MemberConstraint::isSetDistinctAttribute() const
-{
-  return (mDistinctAttribute.empty() == false);
-}
-
-
-/*
- * Returns true/false if identicalAttribute is set.
- */
-bool
-MemberConstraint::isSetIdenticalAttribute() const
-{
-  return (mIdenticalAttribute.empty() == false);
-}
-
-
-/*
- * Sets id and returns value indicating success.
- */
-int
-MemberConstraint::setId(const std::string& id)
-{
-  return SyntaxChecker::checkAndSetSId(id, mId);
-}
-
-
-/*
- * Sets name and returns value indicating success.
- */
-int
-MemberConstraint::setName(const std::string& name)
-{
-  mName = name;
-  return LIBSBML_OPERATION_SUCCESS;
-}
-
-
-/*
- * Sets distinctAttribute and returns value indicating success.
- */
-int
-MemberConstraint::setDistinctAttribute(const std::string& distinctAttribute)
-{
-  mDistinctAttribute = distinctAttribute;
-  return LIBSBML_OPERATION_SUCCESS;
-}
-
-
-/*
- * Sets identicalAttribute and returns value indicating success.
- */
-int
-MemberConstraint::setIdenticalAttribute(const std::string& identicalAttribute)
-{
-  mIdenticalAttribute = identicalAttribute;
-  return LIBSBML_OPERATION_SUCCESS;
-}
-
-
-/*
- * Unsets id and returns value indicating success.
- */
-int
-MemberConstraint::unsetId()
-{
-  mId.erase();
-
-  if (mId.empty() == true)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
- * Unsets name and returns value indicating success.
- */
-int
-MemberConstraint::unsetName()
-{
-  mName.erase();
-
-  if (mName.empty() == true)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
- * Unsets distinctAttribute and returns value indicating success.
- */
-int
-MemberConstraint::unsetDistinctAttribute()
-{
-  mDistinctAttribute.erase();
-
-  if (mDistinctAttribute.empty() == true)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
- * Unsets identicalAttribute and returns value indicating success.
- */
-int
-MemberConstraint::unsetIdenticalAttribute()
-{
-  mIdenticalAttribute.erase();
-
-  if (mIdenticalAttribute.empty() == true)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
- * Returns the XML element name of this object
- */
-const std::string&
-MemberConstraint::getElementName () const
-{
-  static const string name = "memberConstraint";
-  return name;
-}
-
-
-/*
- * Returns the libSBML type code for this SBML object.
- */
-int
-MemberConstraint::getTypeCode () const
-{
-  return SBML_GROUPS_MEMBER_CONSTRAINT;
-}
-
-
-/*
- * check if all the required attributes are set
- */
-bool
-MemberConstraint::hasRequiredAttributes () const
-{
-  bool allPresent = true;
-
-  return allPresent;
-}
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * write contained elements
- */
-void
-MemberConstraint::writeElements (XMLOutputStream& stream) const
-{
-  SBase::writeElements(stream);
-
-  SBase::writeExtensionElements(stream);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Accepts the given SBMLVisitor.
- */
-bool
-MemberConstraint::accept (SBMLVisitor& v) const
-{
-  return v.visit(*this);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Sets the parent SBMLDocument.
- */
-void
-MemberConstraint::setSBMLDocument (SBMLDocument* d)
-{
-  SBase::setSBMLDocument(d);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Enables/Disables the given package with this element.
- */
-void
-MemberConstraint::enablePackageInternal(const std::string& pkgURI,
-             const std::string& pkgPrefix, bool flag)
-{
-  SBase::enablePackageInternal(pkgURI, pkgPrefix, flag);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Get the list of expected attributes for this element.
- */
-void
-MemberConstraint::addExpectedAttributes(ExpectedAttributes& attributes)
-{
-  SBase::addExpectedAttributes(attributes);
-
-  attributes.add("id");
-  attributes.add("name");
-  attributes.add("distinctAttribute");
-  attributes.add("identicalAttribute");
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Read values from the given XMLAttributes set into their specific fields.
- */
-void
-MemberConstraint::readAttributes (const XMLAttributes& attributes,
-                             const ExpectedAttributes& expectedAttributes)
-{
-  const unsigned int sbmlLevel   = getLevel  ();
-  const unsigned int sbmlVersion = getVersion();
-
-  unsigned int numErrs;
-
-  /* look to see whether an unknown attribute error was logged
-   * during the read of the listOfMemberConstraints - which will have
-   * happened immediately prior to this read
-  */
-
-  if (getErrorLog() != NULL &&
-      static_cast<ListOfMemberConstraints*>(getParentSBMLObject())->size() < 2)
-  {
-    numErrs = getErrorLog()->getNumErrors();
-    for (int n = numErrs-1; n >= 0; n--)
-    {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
-      {
-        const std::string details =
-              getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("groups", GroupsUnknownError,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
-      {
-        const std::string details =
-                   getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-    }
-  }
-
-  SBase::readAttributes(attributes, expectedAttributes);
-
-  // look to see whether an unknown attribute error was logged
-  if (getErrorLog() != NULL)
-  {
-    numErrs = getErrorLog()->getNumErrors();
-    for (int n = numErrs-1; n >= 0; n--)
-    {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-    }
-  }
-
-  bool assigned = false;
-
-  //
-  // id SId  ( use = "optional" )
-  //
-  assigned = attributes.readInto("id", mId);
-
-   if (assigned == true)
-  {
-    // check string is not empty and correct syntax
-
-    if (mId.empty() == true)
-    {
-      logEmptyString(mId, getLevel(), getVersion(), "<MemberConstraint>");
-    }
-    else if (SyntaxChecker::isValidSBMLSId(mId) == false)
-    {
-      logError(InvalidIdSyntax);
-    }
-  }
-
-  //
-  // name string   ( use = "optional" )
-  //
-  assigned = attributes.readInto("name", mName);
-
-  if (assigned == true)
-  {
-    // check string is not empty
-
-    if (mName.empty() == true)
-    {
-      logEmptyString(mName, getLevel(), getVersion(), "<MemberConstraint>");
-    }
-  }
-
-  //
-  // distinctAttribute string   ( use = "optional" )
-  //
-  assigned = attributes.readInto("distinctAttribute", mDistinctAttribute);
-
-  if (assigned == true)
-  {
-    // check string is not empty
-
-    if (mDistinctAttribute.empty() == true)
-    {
-      logEmptyString(mDistinctAttribute, getLevel(), getVersion(), "<MemberConstraint>");
-    }
-  }
-
-  //
-  // identicalAttribute string   ( use = "optional" )
-  //
-  assigned = attributes.readInto("identicalAttribute", mIdenticalAttribute);
-
-  if (assigned == true)
-  {
-    // check string is not empty
-
-    if (mIdenticalAttribute.empty() == true)
-    {
-      logEmptyString(mIdenticalAttribute, getLevel(), getVersion(), "<MemberConstraint>");
-    }
-  }
-
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Write values of XMLAttributes to the output stream.
- */
-  void
-MemberConstraint::writeAttributes (XMLOutputStream& stream) const
-{
-  SBase::writeAttributes(stream);
-
-  if (isSetId() == true)
-    stream.writeAttribute("id", getPrefix(), mId);
-
-  if (isSetName() == true)
-    stream.writeAttribute("name", getPrefix(), mName);
-
-  if (isSetDistinctAttribute() == true)
-    stream.writeAttribute("distinctAttribute", getPrefix(), mDistinctAttribute);
-
-  if (isSetIdenticalAttribute() == true)
-    stream.writeAttribute("identicalAttribute", getPrefix(), mIdenticalAttribute);
-
-  SBase::writeExtensionAttributes(stream);
-
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-/*
- * Constructor 
- */
-ListOfMemberConstraints::ListOfMemberConstraints(unsigned int level, 
-                          unsigned int version, 
-                          unsigned int pkgVersion)
- : ListOf(level, version)
-   ,mId ("")
-   ,mName ("")
-   ,mMembersShareType (false)
-   ,mIsSetMembersShareType (false)
-{
-  setSBMLNamespacesAndOwn(new GroupsPkgNamespaces(level, version, pkgVersion)); 
-}
-
-
-/*
- * Constructor 
- */
-ListOfMemberConstraints::ListOfMemberConstraints(GroupsPkgNamespaces* groupsns)
-  : ListOf(groupsns)
-   ,mId ("")
-   ,mName ("")
-   ,mMembersShareType (false)
-   ,mIsSetMembersShareType (false)
-{
-  setElementNamespace(groupsns->getURI());
-}
-
-
-/*
- * Returns a deep copy of this ListOfMemberConstraints 
- */
-ListOfMemberConstraints* 
-ListOfMemberConstraints::clone () const
- {
-  return new ListOfMemberConstraints(*this);
-}
-
-
-/*
- * Get a MemberConstraint from the ListOfMemberConstraints by index.
-*/
-MemberConstraint*
-ListOfMemberConstraints::get(unsigned int n)
-{
-  return static_cast<MemberConstraint*>(ListOf::get(n));
-}
-
-
-/*
- * Get a MemberConstraint from the ListOfMemberConstraints by index.
- */
-const MemberConstraint*
-ListOfMemberConstraints::get(unsigned int n) const
-{
-  return static_cast<const MemberConstraint*>(ListOf::get(n));
-}
-
-
-/*
- * Get a MemberConstraint from the ListOfMemberConstraints by id.
- */
-MemberConstraint*
-ListOfMemberConstraints::get(const std::string& sid)
-{
-  return const_cast<MemberConstraint*>(
-    static_cast<const ListOfMemberConstraints&>(*this).get(sid));
-}
-
-
-/*
- * Get a MemberConstraint from the ListOfMemberConstraints by id.
- */
-const MemberConstraint*
-ListOfMemberConstraints::get(const std::string& sid) const
-{
-  vector<SBase*>::const_iterator result;
-
-  result = find_if( mItems.begin(), mItems.end(), IdEq<MemberConstraint>(sid) );
-  return (result == mItems.end()) ? 0 : static_cast <MemberConstraint*> (*result);
-}
-
-
-/*
- * Removes the nth MemberConstraint from this ListOfMemberConstraints
- */
-MemberConstraint*
-ListOfMemberConstraints::remove(unsigned int n)
-{
-  return static_cast<MemberConstraint*>(ListOf::remove(n));
-}
-
-
-/*
- * Removes the MemberConstraint from this ListOfMemberConstraints with the given identifier
- */
-MemberConstraint*
-ListOfMemberConstraints::remove(const std::string& sid)
-{
-  SBase* item = NULL;
-  vector<SBase*>::iterator result;
-
-  result = find_if( mItems.begin(), mItems.end(), IdEq<MemberConstraint>(sid) );
-
-  if (result != mItems.end())
-  {
-    item = *result;
-    mItems.erase(result);
-  }
-
-  return static_cast <MemberConstraint*> (item);
-}
-
-
-/*
- * Returns the value of the "id" attribute of this MemberConstraint.
- */
-const std::string&
-ListOfMemberConstraints::getId() const
-{
-  return mId;
-}
-
-
-/*
- * Returns the value of the "name" attribute of this MemberConstraint.
- */
-const std::string&
-ListOfMemberConstraints::getName() const
-{
-  return mName;
-}
-
-
-/*
- * Returns the value of the "membersShareType" attribute of this MemberConstraint.
- */
-bool
-ListOfMemberConstraints::getMembersShareType() const
-{
-  return mMembersShareType;
-}
-
-
-/*
- * Returns true/false if id is set.
- */
-bool
-ListOfMemberConstraints::isSetId() const
-{
-  return (mId.empty() == false);
-}
-
-
-/*
- * Returns true/false if name is set.
- */
-bool
-ListOfMemberConstraints::isSetName() const
-{
-  return (mName.empty() == false);
-}
-
-
-/*
- * Returns true/false if membersShareType is set.
- */
-bool
-ListOfMemberConstraints::isSetMembersShareType() const
-{
-  return mIsSetMembersShareType;
-}
-
-
-/*
- * Sets id and returns value indicating success.
- */
-int
-ListOfMemberConstraints::setId(const std::string& id)
-{
-  return SyntaxChecker::checkAndSetSId(id, mId);
-}
-
-
-/*
- * Sets name and returns value indicating success.
- */
-int
-ListOfMemberConstraints::setName(const std::string& name)
-{
-  mName = name;
-  return LIBSBML_OPERATION_SUCCESS;
-}
-
-
-/*
- * Sets membersShareType and returns value indicating success.
- */
-int
-ListOfMemberConstraints::setMembersShareType(bool membersShareType)
-{
-  mMembersShareType = membersShareType;
-  mIsSetMembersShareType = true;
-  return LIBSBML_OPERATION_SUCCESS;
-}
-
-
-/*
- * Unsets id and returns value indicating success.
- */
-int
-ListOfMemberConstraints::unsetId()
-{
-  mId.erase();
-
-  if (mId.empty() == true)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
- * Unsets name and returns value indicating success.
- */
-int
-ListOfMemberConstraints::unsetName()
-{
-  mName.erase();
-
-  if (mName.empty() == true)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
- * Unsets membersShareType and returns value indicating success.
- */
-int
-ListOfMemberConstraints::unsetMembersShareType()
-{
-  mMembersShareType = false;
-  mIsSetMembersShareType = false;
-  return LIBSBML_OPERATION_FAILED;
-}
-
-
-/*
- * Returns the XML element name of this object
- */
-const std::string&
-ListOfMemberConstraints::getElementName () const
-{
-  static const string name = "listOfMemberConstraints";
-  return name;
-}
-
-
-/*
- * Returns the libSBML type code for this SBML object.
- */
-int
-ListOfMemberConstraints::getTypeCode () const
-{
-  return SBML_LIST_OF;
-}
-
-
-/*
- * Returns the libSBML type code for the objects in this LIST_OF.
- */
-int
-ListOfMemberConstraints::getItemTypeCode () const
-{
-  return SBML_GROUPS_MEMBER_CONSTRAINT;
-}
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Creates a new MemberConstraint in this ListOfMemberConstraints
- */
-SBase*
-ListOfMemberConstraints::createObject(XMLInputStream& stream)
-{
-  const std::string& name   = stream.peek().getName();
-  SBase* object = NULL;
-
-  if (name == "memberConstraint")
-  {
-    GROUPS_CREATE_NS(groupsns, getSBMLNamespaces());
-    object = new MemberConstraint(groupsns);
-    appendAndOwn(object);
-    delete groupsns;
-  }
-
-  return object;
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Get the list of expected attributes for this element.
- */
-void
-ListOfMemberConstraints::addExpectedAttributes(ExpectedAttributes& attributes)
-{
-  SBase::addExpectedAttributes(attributes);
-
-  attributes.add("id");
-  attributes.add("name");
-  attributes.add("membersShareType");
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Read values from the given XMLAttributes set into their specific fields.
- */
-void
-ListOfMemberConstraints::readAttributes (const XMLAttributes& attributes,
-                             const ExpectedAttributes& expectedAttributes)
-{
-  const unsigned int sbmlLevel   = getLevel  ();
-  const unsigned int sbmlVersion = getVersion();
-
-  unsigned int numErrs;
-
-  SBase::readAttributes(attributes, expectedAttributes);
-
-  // look to see whether an unknown attribute error was logged
-  if (getErrorLog() != NULL)
-  {
-    numErrs = getErrorLog()->getNumErrors();
-    for (int n = numErrs-1; n >= 0; n--)
-    {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("groups", UnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details);
-      }
-    }
-  }
-
-  bool assigned = false;
-
-  //
-  // id SId  ( use = "optional" )
-  //
-  assigned = attributes.readInto("id", mId);
-
-  if (assigned == true)
-  {
-    // check string is not empty and correct syntax
-
-    if (mId.empty() == true)
-    {
-      logEmptyString(mId, getLevel(), getVersion(), "<ListOfMemberConstraints>");
-    }
-    else if (SyntaxChecker::isValidSBMLSId(mId) == false)
-    {
-      logError(InvalidIdSyntax);
-    }
-  }
-
-  //
-  // name string   ( use = "optional" )
-  //
-  assigned = attributes.readInto("name", mName);
-
-  if (assigned == true)
-  {
-    // check string is not empty
-
-    if (mName.empty() == true)
-    {
-      logEmptyString(mName, getLevel(), getVersion(), "<ListOfMemberConstraints>");
-    }
-  }
-
-  //
-  // constant bool   ( use = "required" )
-  //
-  numErrs = getErrorLog()->getNumErrors();
-  mIsSetMembersShareType = attributes.readInto("membersShareType", mMembersShareType);
-
-  if (mIsSetMembersShareType == false)
-  {
-    if (getErrorLog() != NULL)
-    {
-      if (getErrorLog()->getNumErrors() == numErrs + 1 &&
-              getErrorLog()->contains(XMLAttributeTypeMismatch))
-      {
-        getErrorLog()->remove(XMLAttributeTypeMismatch);
-        getErrorLog()->logPackageError("groups", GroupsUnknownError,
-                     getPackageVersion(), sbmlLevel, sbmlVersion);
-      }
-      else
-      {
-      std::string message = "Groups attribute 'membersShareType' is missing.";
-      getErrorLog()->logPackageError("groups", GroupsUnknownError,
-                     getPackageVersion(), sbmlLevel, sbmlVersion, message);
-      }
-    }
-  }
-
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Write values of XMLAttributes to the output stream.
- */
-void
-ListOfMemberConstraints::writeAttributes (XMLOutputStream& stream) const
-{
-  SBase::writeAttributes(stream);
-
-  if (isSetId() == true)
-    stream.writeAttribute("id", getPrefix(), mId);
-
-  if (isSetName() == true)
-    stream.writeAttribute("name", getPrefix(), mName);
-
-  if (isSetMembersShareType() == true)
-    stream.writeAttribute("membersShareType", getPrefix(), mMembersShareType);
-
-  SBase::writeExtensionAttributes(stream);
-
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Write the namespace for the Groups package.
- */
-void
-ListOfMemberConstraints::writeXMLNS(XMLOutputStream& stream) const
-{
-  XMLNamespaces xmlns;
-
-  std::string prefix = getPrefix();
-
-  if (prefix.empty())
-  {
-    XMLNamespaces* thisxmlns = getNamespaces();
-    if (thisxmlns && thisxmlns->hasURI(GroupsExtension::getXmlnsL3V1V1()))
-    {
-      xmlns.add(GroupsExtension::getXmlnsL3V1V1(),prefix);
-    }
-  }
-
-  stream << xmlns;
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-MemberConstraint_t *
-MemberConstraint_create(unsigned int level, unsigned int version,
-                        unsigned int pkgVersion)
-{
-  return new MemberConstraint(level, version, pkgVersion);
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-void
-MemberConstraint_free(MemberConstraint_t * mc)
-{
-  if (mc != NULL)
-    delete mc;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-MemberConstraint_t *
-MemberConstraint_clone(MemberConstraint_t * mc)
-{
-  if (mc != NULL)
-  {
-    return static_cast<MemberConstraint_t*>(mc->clone());
-  }
-  else
-  {
-    return NULL;
-  }
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-char *
-MemberConstraint_getId(MemberConstraint_t * mc)
-{
-  if (mc == NULL)
-    return NULL;
-
-  return mc->getId().empty() ? NULL : safe_strdup(mc->getId().c_str());
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-char *
-MemberConstraint_getName(MemberConstraint_t * mc)
-{
-  if (mc == NULL)
-    return NULL;
-
-  return mc->getName().empty() ? NULL : safe_strdup(mc->getName().c_str());
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-char *
-MemberConstraint_getDistinctAttribute(MemberConstraint_t * mc)
-{
-  if (mc == NULL)
-    return NULL;
-
-  return mc->getDistinctAttribute().empty() ? NULL : safe_strdup(mc->getDistinctAttribute().c_str());
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-char *
-MemberConstraint_getIdenticalAttribute(MemberConstraint_t * mc)
-{
-  if (mc == NULL)
-    return NULL;
-
-  return mc->getIdenticalAttribute().empty() ? NULL : safe_strdup(mc->getIdenticalAttribute().c_str());
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetId(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? static_cast<int>(mc->isSetId()) : 0;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetName(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? static_cast<int>(mc->isSetName()) : 0;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetDistinctAttribute(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? static_cast<int>(mc->isSetDistinctAttribute()) : 0;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetIdenticalAttribute(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? static_cast<int>(mc->isSetIdenticalAttribute()) : 0;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_setId(MemberConstraint_t * mc, const char * id)
-{
-  return (mc != NULL) ? mc->setId(id) : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_setName(MemberConstraint_t * mc, const char * name)
-{
-  return (mc != NULL) ? mc->setName(name) : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_setDistinctAttribute(MemberConstraint_t * mc, const char * distinctAttribute)
-{
-  return (mc != NULL) ? mc->setDistinctAttribute(distinctAttribute) : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_setIdenticalAttribute(MemberConstraint_t * mc, const char * identicalAttribute)
-{
-  return (mc != NULL) ? mc->setIdenticalAttribute(identicalAttribute) : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetId(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? mc->unsetId() : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetName(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? mc->unsetName() : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetDistinctAttribute(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? mc->unsetDistinctAttribute() : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetIdenticalAttribute(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? mc->unsetIdenticalAttribute() : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-int
-MemberConstraint_hasRequiredAttributes(MemberConstraint_t * mc)
-{
-  return (mc != NULL) ? static_cast<int>(mc->hasRequiredAttributes()) : 0;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-MemberConstraint_t *
-ListOfMemberConstraints_getById(ListOf_t * lo, const char * sid)
-{
-  if (lo == NULL)
-    return NULL;
-
-  return (sid != NULL) ? static_cast <ListOfMemberConstraints *>(lo)->get(sid) : NULL;
-}
-
-
-/**
- * write comments
- */
-LIBSBML_EXTERN
-MemberConstraint_t *
-ListOfMemberConstraints_removeById(ListOf_t * lo, const char * sid)
-{
-  if (lo == NULL)
-    return NULL;
-
-  return (sid != NULL) ? static_cast <ListOfMemberConstraints *>(lo)->remove(sid) : NULL;
-}
-
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-
diff --git a/src/sbml/packages/groups/sbml/MemberConstraint.h b/src/sbml/packages/groups/sbml/MemberConstraint.h
deleted file mode 100644
index 516b827..0000000
--- a/src/sbml/packages/groups/sbml/MemberConstraint.h
+++ /dev/null
@@ -1,969 +0,0 @@
-/**
- * @file:   MemberConstraint.h
- * @brief:  Implementation of the MemberConstraint class
- * @author: Generated by autocreate code
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- */
-
-
-#ifndef MemberConstraint_H__
-#define MemberConstraint_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/groups/common/groupsfwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/groups/extension/GroupsExtension.h>
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-class LIBSBML_EXTERN MemberConstraint : public SBase
-{
-
-protected:
-
-  std::string   mId;
-  std::string   mName;
-  std::string   mDistinctAttribute;
-  std::string   mIdenticalAttribute;
-
-
-public:
-
-  /**
-   * Creates a new MemberConstraint with the given level, version, and package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this MemberConstraint
-   *
-   * @param version an unsigned int, the SBML Version to assign to this MemberConstraint
-   *
-   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to this MemberConstraint
-   */
-  MemberConstraint(unsigned int level      = GroupsExtension::getDefaultLevel(),
-                   unsigned int version    = GroupsExtension::getDefaultVersion(),
-                   unsigned int pkgVersion = GroupsExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new MemberConstraint with the given GroupsPkgNamespaces object.
-   *
-   * @param groupsns the GroupsPkgNamespaces object
-   */
-  MemberConstraint(GroupsPkgNamespaces* groupsns);
-
-
-  /**
-   * Copy constructor for MemberConstraint.
-   *
-   * @param orig; the MemberConstraint instance to copy.
-   */
-  MemberConstraint(const MemberConstraint& orig);
-
-
-  /**
-   * Assignment operator for MemberConstraint.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  MemberConstraint& operator=(const MemberConstraint& rhs);
-
-
-  /**
-   * Creates and returns a deep copy of this MemberConstraint object.
-   *
-   * @return a (deep) copy of this MemberConstraint object.
-   */
-  virtual MemberConstraint* clone () const;
-
-
-  /**
-   * Destructor for MemberConstraint.
-   */
-  virtual ~MemberConstraint();
-
-
-  /**
-   * Returns the value of the "id" attribute of this MemberConstraint.
-   *
-   * @return the value of the "id" attribute of this MemberConstraint as a string.
-   */
-  virtual const std::string& getId() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * MemberConstraint's "id" attribute has been set.
-   *
-   * @return @c true if this MemberConstraint's "id" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetId() const;
-
-
-  /**
-   * Sets the value of the "id" attribute of this MemberConstraint.
-   *
-   * @param id; const std::string& value of the "id" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setId(const std::string& id);
-
-
-  /**
-   * Unsets the value of the "id" attribute of this MemberConstraint.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetId();
-
-
-  /**
-   * Returns the value of the "name" attribute of this MemberConstraint.
-   *
-   * @return the value of the "name" attribute of this MemberConstraint as a string.
-   */
-  virtual const std::string& getName() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * MemberConstraint's "name" attribute has been set.
-   *
-   * @return @c true if this MemberConstraint's "name" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetName() const;
-
-
-  /**
-   * Sets the value of the "name" attribute of this MemberConstraint.
-   *
-   * @param name; const std::string& value of the "name" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setName(const std::string& name);
-
-
-  /**
-   * Unsets the value of the "name" attribute of this MemberConstraint.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetName();
-
-
-  /**
-   * Returns the value of the "distinctAttribute" attribute of this MemberConstraint.
-   *
-   * @return the value of the "distinctAttribute" attribute of this MemberConstraint as a string.
-   */
-  virtual const std::string& getDistinctAttribute() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * MemberConstraint's "distinctAttribute" attribute has been set.
-   *
-   * @return @c true if this MemberConstraint's "distinctAttribute" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetDistinctAttribute() const;
-
-
-  /**
-   * Sets the value of the "distinctAttribute" attribute of this MemberConstraint.
-   *
-   * @param distinctAttribute; const std::string& value of the "distinctAttribute" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setDistinctAttribute(const std::string& distinctAttribute);
-
-
-  /**
-   * Unsets the value of the "distinctAttribute" attribute of this MemberConstraint.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetDistinctAttribute();
-
-
-  /**
-   * Returns the value of the "identicalAttribute" attribute of this MemberConstraint.
-   *
-   * @return the value of the "identicalAttribute" attribute of this MemberConstraint as a string.
-   */
-  virtual const std::string& getIdenticalAttribute() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * MemberConstraint's "identicalAttribute" attribute has been set.
-   *
-   * @return @c true if this MemberConstraint's "identicalAttribute" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetIdenticalAttribute() const;
-
-
-  /**
-   * Sets the value of the "identicalAttribute" attribute of this MemberConstraint.
-   *
-   * @param identicalAttribute; const std::string& value of the "identicalAttribute" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setIdenticalAttribute(const std::string& identicalAttribute);
-
-
-  /**
-   * Unsets the value of the "identicalAttribute" attribute of this MemberConstraint.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetIdenticalAttribute();
-
-
-  /**
-   * Returns the XML element name of this object, which for MemberConstraint, is
-   * always @c "memberConstraint".
-   *
-   * @return the name of this element, i.e. @c "memberConstraint".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for this object, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes
-   * for this MemberConstraint object have been set.
-   *
-   * @note The required attributes for a MemberConstraint object are:
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-class LIBSBML_EXTERN ListOfMemberConstraints : public ListOf
-{
-
-public:
-
-  /**
-   * Creates a new ListOfMemberConstraints with the given level, version, and package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this ListOfMemberConstraints
-   *
-   * @param version an unsigned int, the SBML Version to assign to this ListOfMemberConstraints
-   *
-   * @param pkgVersion an unsigned int, the SBML Groups Version to assign to this ListOfMemberConstraints
-   */
-  ListOfMemberConstraints(unsigned int level      = GroupsExtension::getDefaultLevel(),
-                          unsigned int version    = GroupsExtension::getDefaultVersion(),
-                          unsigned int pkgVersion = GroupsExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new ListOfMemberConstraints with the given GroupsPkgNamespaces object.
-   *
-   * @param groupsns the GroupsPkgNamespaces object
-   */
-  ListOfMemberConstraints(GroupsPkgNamespaces* groupsns);
-
-
-  /**
-   * Creates and returns a deep copy of this ListOfMemberConstraints object.
-   *
-   * @return a (deep) copy of this ListOfMemberConstraints object.
-   */
-  virtual ListOfMemberConstraints* clone () const;
-
-
-  /**
-   * Get a MemberConstraint from the ListOfMemberConstraints.
-   *
-   * @param n the index number of the MemberConstraint to get.
-   *
-   * @return the nth MemberConstraint in this ListOfMemberConstraints.
-   *
-   * @see size()
-   */
-  virtual MemberConstraint* get(unsigned int n);
-
-
-  /**
-   * Get a MemberConstraint from the ListOfMemberConstraints.
-   *
-   * @param n the index number of the MemberConstraint to get.
-   *
-   * @return the nth MemberConstraint in this ListOfMemberConstraints.
-   *
-   * @see size()
-   */
-  virtual const MemberConstraint* get(unsigned int n) const;
-
-
-  /**
-   * Get a MemberConstraint from the ListOfMemberConstraints
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the MemberConstraint to get.
-   *
-   * @return MemberConstraint in this ListOfMemberConstraints
-   * with the given id or NULL if no such
-   * MemberConstraint exists.
-   *
-   * @see get(unsigned int n)   *
-   * @see size()
-   */
-  virtual MemberConstraint* get(const std::string& sid);
-
-
-  /**
-   * Get a MemberConstraint from the ListOfMemberConstraints
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the MemberConstraint to get.
-   *
-   * @return MemberConstraint in this ListOfMemberConstraints
-   * with the given id or NULL if no such
-   * MemberConstraint exists.
-   *
-   * @see get(unsigned int n)   *
-   * @see size()
-   */
-  virtual const MemberConstraint* get(const std::string& sid) const;
-
-
-  /**
-   * Removes the nth MemberConstraint from this ListOfMemberConstraints
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the MemberConstraint to remove.
-   *
-   * @see size()
-   */
-  virtual MemberConstraint* remove(unsigned int n);
-
-
-  /**
-   * Removes the MemberConstraint from this ListOfMemberConstraints with the given identifier
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
-   *
-   * @param sid the identifier of the MemberConstraint to remove.
-   *
-   * @return the MemberConstraint removed. As mentioned above, the caller owns the
-   * returned item.
-   */
-  virtual MemberConstraint* remove(const std::string& sid);
-
-
-  /**
-   * Returns the value of the "id" attribute of this ListOfMemberConstraints.
-   *
-   * @return the value of the "id" attribute of this ListOfMemberConstraints as a string.
-   */
-  virtual const std::string& getId() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * ListOfMemberConstraints' "id" attribute has been set.
-   *
-   * @return @c true if this ListOfMemberConstraints' "id" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetId() const;
-
-
-  /**
-   * Sets the value of the "id" attribute of this ListOfMemberConstraints.
-   *
-   * @param id; const std::string& value of the "id" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setId(const std::string& id);
-
-
-  /**
-   * Unsets the value of the "id" attribute of this ListOfMemberConstraints.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetId();
-
-
-  /**
-   * Returns the value of the "name" attribute of this ListOfMemberConstraints.
-   *
-   * @return the value of the "name" attribute of this ListOfMemberConstraints as a string.
-   */
-  virtual const std::string& getName() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * ListOfMemberConstraints' "name" attribute has been set.
-   *
-   * @return @c true if this ListOfMemberConstraints' "name" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetName() const;
-
-
-  /**
-   * Sets the value of the "name" attribute of this ListOfMemberConstraints.
-   *
-   * @param name; const std::string& value of the "name" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setName(const std::string& name);
-
-
-  /**
-   * Unsets the value of the "name" attribute of this ListOfMemberConstraints.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetName();
-
-
-  /**
-   * Returns the value of the "membersShareType" attribute of this ListOfMemberConstraints.
-   *
-   * @return the value of the "membersShareType" attribute of this ListOfMemberConstraints as a string.
-   */
-  virtual bool getMembersShareType() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * ListOfMemberConstraints's "membersShareType" attribute has been set.
-   *
-   * @return @c true if this ListOfMemberConstraints's "membersShareType" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetMembersShareType() const;
-
-
-  /**
-   * Sets the value of the "membersShareType" attribute of this ListOfMemberConstraints.
-   *
-   * @param membersShareType; const std::string& value of the "membersShareType" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setMembersShareType(bool membersShareType);
-
-
-  /**
-   * Unsets the value of the "membersShareType" attribute of this ListOfMemberConstraints.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetMembersShareType();
-
-
-  /**
-   * Returns the XML element name of this object, which for ListOfMemberConstraints, is
-   * always @c "listOfMemberConstraints".
-   *
-   * @return the name of this element, i.e. @c "listOfMemberConstraints".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for this object, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Returns the libSBML type code for the SBML objects
-   * contained in this ListOf object
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for the objects in this ListOf instance, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getItemTypeCode () const;
-
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Creates a new MemberConstraint in this ListOfMemberConstraints
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write the namespace for the Groups package.
-   */
-  virtual void writeXMLNS(XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-  /** @cond doxygenLibsbmlInternal */
-  /**
-   * Subclasses should override this method to get the list of
-   * expected attributes.
-   * This function is invoked from corresponding readAttributes()
-   * function.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-  /** @endcond */
-
-
-  /** @cond doxygenLibsbmlInternal */
-  /**
-   * Reads the attributes of corresponding package in SBMLDocument element.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-  /** @endcond */
-
-
-  /** @cond doxygenLibsbmlInternal */
-  /**
-   * Writes the attributes of corresponding package in SBMLDocument element.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;  
-  
-  std::string mId;
-  std::string mName;
-  bool mMembersShareType;
-  bool mIsSetMembersShareType;
-
-  /** @endcond */
-
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-LIBSBML_EXTERN
-MemberConstraint_t *
-MemberConstraint_create(unsigned int level, unsigned int version,
-                        unsigned int pkgVersion);
-
-
-LIBSBML_EXTERN
-void
-MemberConstraint_free(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-MemberConstraint_t *
-MemberConstraint_clone(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-char *
-MemberConstraint_getId(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-char *
-MemberConstraint_getName(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-char *
-MemberConstraint_getDistinctAttribute(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-char *
-MemberConstraint_getIdenticalAttribute(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetId(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetName(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetDistinctAttribute(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_isSetIdenticalAttribute(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_setId(MemberConstraint_t * mc, const char * id);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_setName(MemberConstraint_t * mc, const char * name);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_setDistinctAttribute(MemberConstraint_t * mc, const char * distinctAttribute);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_setIdenticalAttribute(MemberConstraint_t * mc, const char * identicalAttribute);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetId(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetName(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetDistinctAttribute(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_unsetIdenticalAttribute(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-int
-MemberConstraint_hasRequiredAttributes(MemberConstraint_t * mc);
-
-
-LIBSBML_EXTERN
-MemberConstraint_t *
-ListOfMemberConstraints_getById(ListOf_t * lo, const char * sid);
-
-
-LIBSBML_EXTERN
-MemberConstraint_t *
-ListOfMemberConstraints_removeById(ListOf_t * lo, const char * sid);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  MemberConstraint_H__  */
-
diff --git a/src/sbml/packages/groups/validator/GroupsConsistencyValidator.cpp b/src/sbml/packages/groups/validator/GroupsConsistencyValidator.cpp
index e090821..9eb7b47 100644
--- a/src/sbml/packages/groups/validator/GroupsConsistencyValidator.cpp
+++ b/src/sbml/packages/groups/validator/GroupsConsistencyValidator.cpp
@@ -1,53 +1,71 @@
-  /** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 /**
- * @file:   GroupsConsistencyValidator.cpp
- * @brief:  Implementation of the GroupsConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file GroupsConsistencyValidator.cpp
+ * @brief Definition of GroupsConsistencyValidator.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 
-
 #ifndef doxygen_ignore
 
 #include <sbml/packages/groups/validator/GroupsConsistencyValidator.h>
 
+/**
+ * Compile ConsistencyConstraints
+ */
 #include "constraints/GroupsConsistencyConstraints.cpp"
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
+
+/**
+ * Initializes this Validator with a set of Constraints
+ */
 void
-GroupsConsistencyValidator::init ()
+GroupsConsistencyValidator::init()
 {
 #define  AddingConstraintsToValidator 1
-#include "constraints/GroupsConsistencyConstraints.cpp"
+#include "constraints/GroupsConsistencyConstraintsDeclared.cxx"
 }
 
+
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __doxygen_ignore */
 
-  /** @endcond doxygenLibsbmlInternal */
 
+#endif /* doxygen_ignore */
+
+
+/** @endcond */
 
diff --git a/src/sbml/packages/groups/validator/GroupsConsistencyValidator.h b/src/sbml/packages/groups/validator/GroupsConsistencyValidator.h
index daa125f..0aa5a9b 100644
--- a/src/sbml/packages/groups/validator/GroupsConsistencyValidator.h
+++ b/src/sbml/packages/groups/validator/GroupsConsistencyValidator.h
@@ -1,30 +1,36 @@
-  /** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 /**
- * @file:   GroupsConsistencyValidator.h
- * @brief:  Implementation of the GroupsConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file GroupsConsistencyValidator.h
+ * @brief Definition of GroupsConsistencyValidator.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 
@@ -33,30 +39,55 @@
 #define GroupsConsistencyValidator_H__
 
 
+
+
 #ifdef __cplusplus
 
+
 #include <sbml/packages/groups/validator/GroupsValidator.h>
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
-class GroupsConsistencyValidator: public GroupsValidator
+
+class GroupsConsistencyValidator : public GroupsValidator
 {
 public:
 
-  GroupsConsistencyValidator () :
-    GroupsValidator(LIBSBML_CAT_GENERAL_CONSISTENCY) { }
+  GroupsConsistencyValidator()
+    : GroupsValidator( LIBSBML_CAT_GENERAL_CONSISTENCY )
+  {
+  }
+
+
+  virtual ~GroupsConsistencyValidator()
+  {
+  }
+
+
+  /**
+   * Initializes this Validator with a set of Constraints
+   */
+  virtual void init();
 
-  virtual ~GroupsConsistencyValidator () { }
 
-   virtual void init ();
 };
 
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __cplusplus*/
-#endif  /* GroupsConsistencyValidator_H__ */
 
 
-  /** @endcond doxygenLibsbmlInternal */
 
+#endif /* __cplusplus */
+
+
+
+
+#endif /* !GroupsConsistencyValidator_H__ */
+
+
+
+/** @endcond */
 
diff --git a/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.cpp b/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.cpp
index 221f8fe..b6cad08 100644
--- a/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.cpp
@@ -1,53 +1,71 @@
-  /** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 /**
- * @file:   GroupsIdentifierConsistencyValidator.cpp
- * @brief:  Implementation of the GroupsIdentifierConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file GroupsIdentifierConsistencyValidator.cpp
+ * @brief Definition of GroupsIdentifierConsistencyValidator.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 
-
 #ifndef doxygen_ignore
 
 #include <sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.h>
 
+/**
+ * Compile IdentifierConsistencyConstraints
+ */
 #include "constraints/GroupsIdentifierConsistencyConstraints.cpp"
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
+
+/**
+ * Initializes this Validator with a set of Constraints
+ */
 void
-GroupsIdentifierConsistencyValidator::init ()
+GroupsIdentifierConsistencyValidator::init()
 {
 #define  AddingConstraintsToValidator 1
-#include "constraints/GroupsIdentifierConsistencyConstraints.cpp"
+#include "constraints/GroupsIdentifierConsistencyConstraintsDeclared.cxx"
 }
 
+
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __doxygen_ignore */
 
-  /** @endcond doxygenLibsbmlInternal */
 
+#endif /* doxygen_ignore */
+
+
+/** @endcond */
 
diff --git a/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.h b/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.h
index 754a14a..7b199e8 100644
--- a/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.h
@@ -1,30 +1,36 @@
-  /** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 /**
- * @file:   GroupsIdentifierConsistencyValidator.h
- * @brief:  Implementation of the GroupsIdentifierConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file GroupsIdentifierConsistencyValidator.h
+ * @brief Definition of GroupsIdentifierConsistencyValidator.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 
@@ -33,30 +39,55 @@
 #define GroupsIdentifierConsistencyValidator_H__
 
 
+
+
 #ifdef __cplusplus
 
+
 #include <sbml/packages/groups/validator/GroupsValidator.h>
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
-class GroupsIdentifierConsistencyValidator: public GroupsValidator
+
+class GroupsIdentifierConsistencyValidator : public GroupsValidator
 {
 public:
 
-  GroupsIdentifierConsistencyValidator () :
-    GroupsValidator(LIBSBML_CAT_IDENTIFIER_CONSISTENCY) { }
+  GroupsIdentifierConsistencyValidator()
+    : GroupsValidator( LIBSBML_CAT_IDENTIFIER_CONSISTENCY )
+  {
+  }
+
+
+  virtual ~GroupsIdentifierConsistencyValidator()
+  {
+  }
+
+
+  /**
+   * Initializes this Validator with a set of Constraints
+   */
+  virtual void init();
 
-  virtual ~GroupsIdentifierConsistencyValidator () { }
 
-  virtual void init ();
 };
 
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __cplusplus*/
-#endif  /* GroupsIdentifierConsistencyValidator_H__ */
 
 
-  /** @endcond doxygenLibsbmlInternal */
 
+#endif /* __cplusplus */
+
+
+
+
+#endif /* !GroupsIdentifierConsistencyValidator_H__ */
+
+
+
+/** @endcond */
 
diff --git a/src/sbml/packages/groups/validator/GroupsSBMLError.h b/src/sbml/packages/groups/validator/GroupsSBMLError.h
index efc3a33..840500a 100644
--- a/src/sbml/packages/groups/validator/GroupsSBMLError.h
+++ b/src/sbml/packages/groups/validator/GroupsSBMLError.h
@@ -1,28 +1,33 @@
 /**
- * @file:   GroupsSBMLError.h
- * @brief:  Implementation of the GroupsSBMLError class
- * @author: Generated by autocreate code
+ * @file GroupsSBMLError.h
+ * @brief Definition of the GroupsSBMLError class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 
@@ -30,23 +35,62 @@
 #ifndef GroupsSBMLError_H__
 #define GroupsSBMLError_H__
 
-
-
 LIBSBML_CPP_NAMESPACE_BEGIN
-
 BEGIN_C_DECLS
 
-
+/**
+ * @enum GroupsSBMLErrorCode_t
+ * Codes for all SBML-level errors and warnings from the 'groups' package.
+ *
+ * These are distinguished from other SBML error codes
+ * by having a number between 4000000 and 4099999.
+ *
+ * @copydetails doc_sbml_error_code_ranges
+ */
 typedef enum
 {
-  GroupsUnknownError               = 4010100
-
+  GroupsUnknown                                               = 4010100
+, GroupsNSUndeclared                                          = 4010101
+, GroupsElementNotInNs                                        = 4010102
+, GroupsDuplicateComponentId                                  = 4010301
+, GroupsIdSyntaxRule                                          = 4010302
+, GroupsAttributeRequiredMissing                              = 4020101
+, GroupsAttributeRequiredMustBeBoolean                        = 4020102
+, GroupsAttributeRequiredMustHaveValue                        = 4020103
+, GroupsModelAllowedElements                                  = 4020201
+, GroupsModelEmptyLOElements                                  = 4020202
+, GroupsModelLOGroupsAllowedCoreElements                      = 4020203
+, GroupsModelLOGroupsAllowedCoreAttributes                    = 4020204
+, GroupsGroupAllowedCoreAttributes                            = 4020301
+, GroupsGroupAllowedCoreElements                              = 4020302
+, GroupsGroupAllowedAttributes                                = 4020303
+, GroupsGroupAllowedElements                                  = 4020304
+, GroupsGroupKindMustBeGroupKindEnum                          = 4020305
+, GroupsGroupNameMustBeString                                 = 4020306
+, GroupsGroupEmptyLOElements                                  = 4020307
+, GroupsGroupLOMembersAllowedCoreElements                     = 4020308
+, GroupsGroupLOMembersAllowedCoreAttributes                   = 4020309
+, GroupsGroupLOMembersAllowedAttributes                       = 4020310
+, GroupsLOMembersNameMustBeString                             = 4020311
+, GroupsLOMembersConsistentReferences                         = 4020312
+, GroupsNotCircularReferences                                 = 4020313
+, GroupsMemberAllowedCoreAttributes                           = 4020401
+, GroupsMemberAllowedCoreElements                             = 4020402
+, GroupsMemberAllowedAttributes                               = 4020403
+, GroupsMemberNameMustBeString                                = 4020404
+, GroupsMemberIdRefMustBeSBase                                = 4020405
+, GroupsMemberMetaIdRefMustBeSBase                            = 4020406
+, GroupsMemberIdRefMustBeSId                                  = 4020407
+, GroupsMemberMetaIdRefMustBeID                               = 4020408
+} GroupsSBMLErrorCode_t;
 
-}  GroupsSBMLErrorCode_t;
 
 END_C_DECLS
-
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /*  GroupsSBMLError_h__  */
+
+
+
+#endif /* !GroupsSBMLError_H__ */
+
 
diff --git a/src/sbml/packages/groups/validator/GroupsSBMLErrorTable.h b/src/sbml/packages/groups/validator/GroupsSBMLErrorTable.h
index b0b5f31..e1757fa 100644
--- a/src/sbml/packages/groups/validator/GroupsSBMLErrorTable.h
+++ b/src/sbml/packages/groups/validator/GroupsSBMLErrorTable.h
@@ -1,28 +1,33 @@
 /**
- * @file:   GroupsSBMLErrorTable.h
- * @brief:  Implementation of the GroupsSBMLErrorTable class
- * @author: Generated by autocreate code
+ * @file GroupsSBMLErrorTable.h
+ * @brief Definition of the GroupsSBMLErrorTable class.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
 
@@ -33,29 +38,420 @@
 
 #include <sbml/packages/groups/validator/GroupsSBMLError.h>
 
+
 LIBSBML_CPP_NAMESPACE_BEGIN
 
-  /** @cond doxygenLibsbmlInternal */
 
-static const packageErrorTableEntry groupsErrorTable[] = 
+
+/** @cond doxygenLibsbmlInternal */
+
+static const packageErrorTableEntry groupsErrorTable[] =
 {
-  //4010100
-  {  GroupsUnknownError,
-    "Unknown error from groups",
+  // 4010100
+  { GroupsUnknown,
+    "Unknown error from Groups",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "Unknown error from Groups",
+    { ""
+    }
+  },
+
+  // 4010101
+  { GroupsNSUndeclared,
+    "The Groups namespace is not correctly declared.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "To conform to the Groups Package specification for SBML Level 3 Version 1, "
+    "an SBML document must declare "
+    "'http://www.sbml.org/sbml/level3/version1/groups/version1' as the "
+    "XMLNamespaceto use for elements of this package.",
+    { "L3V1 Groups V1 Section 3.1"
+    }
+  },
+
+  // 4010102
+  { GroupsElementNotInNs,
+    "Element not in Groups namespace",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "Wherever they appear in an SBML document, elements and attributes from the "
+    "Groups Package must use the "
+    "'http://www.sbml.org/sbml/level3/version1/groups/version1' namespace, "
+    "declaring so either explicitly or implicitly.",
+    { "L3V1 Groups V1 Section 3.1"
+    }
+  },
+
+  // 4010301
+  { GroupsDuplicateComponentId,
+    "Duplicate 'id' attribute value",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "(Extends validation rule #10301 in the SBML Level 3 Core specification. TO "
+    "DO list scope of ids)",
+    { "L3V1 Groups V1 Section 3.3"
+    }
+  },
+
+  // 4010302
+  { GroupsIdSyntaxRule,
+    "Invalid SId syntax",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of a 'groups:id' must conform to the syntax of the <sbml> data "
+    "type 'SId'",
+    { "L3V1 Groups V1 Section 3.3.1"
+    }
+  },
+
+  // 4020101
+  { GroupsAttributeRequiredMissing,
+    "Required groups:required attribute on <sbml>",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "In all SBML documents using the Groups Package, the <sbml> object must "
+    "have the 'groups:required' attribute.",
+    { "L3V1 Core Section 4.1.2"
+    }
+  },
+
+  // 4020102
+  { GroupsAttributeRequiredMustBeBoolean,
+    "The groups:required attribute must be Boolean",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of attribute 'groups:required' on the <sbml> object must be of "
+    "data type 'boolean'.",
+    { "L3V1 Core Section 4.1.2"
+    }
+  },
+
+  // 4020103
+  { GroupsAttributeRequiredMustHaveValue,
+    "The groups:required attribute must be 'false'",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of attribute 'groups:required' on the <sbml> object must be set "
+    "to 'false'.",
+    { "L3V1 Groups V1 Section 3.1"
+    }
+  },
+
+  // 4020201
+  { GroupsModelAllowedElements,
+    "Elements allowed on <model>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <model> object may contain one and only one instance of the "
+    "<listOfGroups> element. No other elements from the SBML Level 3 Groups "
+    "namespaces are permitted on a <model> object. ",
+    { "L3V1 Groups V1 Section 3.6"
+    }
+  },
+
+  // 4020202
+  { GroupsModelEmptyLOElements,
+    "No Empty ListOf elements allowed on <Model>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The <listOfGroups> subobject on a <model> object is optional, but if "
+    "present, this container object must not be empty.",
+    { "L3V1 Groups V1 Section 3.6"
+    }
+  },
+
+  // 4020203
+  { GroupsModelLOGroupsAllowedCoreElements,
+    "Core elements allowed on <model>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "Apart from the general notes and annotations subobjects permitted on all "
+    "SBML objects, a <listOfGroups> container object may only contain <group> "
+    "objects.",
+    { "L3V1 Groups V1 Section 3.6"
+    }
+  },
+
+  // 4020204
+  { GroupsModelLOGroupsAllowedCoreAttributes,
+    "Core attributes allowed on <model>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <listOfGroups> object may have the optional SBML Level 3 Core attributes "
+    "'metaid' and 'sboTerm'. No other attributes from the SBML Level 3 Core "
+    "namespaces are permitted on a <listOfGroups> object.",
+    { "L3V1 Groups V1 Section 3.6"
+    }
+  },
+
+  // 4020301
+  { GroupsGroupAllowedCoreAttributes,
+    "Core attributes allowed on <group>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <group> object may have the optional SBML Level 3 Core attributes "
+    "'metaid' and 'sboTerm'. No other attributes from the SBML Level 3 Core "
+    "namespaces are permitted on a <group>.",
+    { "L3V1 Core Section 3.2"
+    }
+  },
+
+  // 4020302
+  { GroupsGroupAllowedCoreElements,
+    "Core elements allowed on <group>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <group> object may have the optional SBML Level 3 Core subobjects for "
+    "notes and annotations. No other elements from the SBML Level 3 Core "
+    "namespaces are permitted on a <group>.",
+    { "L3V1 Core Section 3.2"
+    }
+  },
+
+  // 4020303
+  { GroupsGroupAllowedAttributes,
+    "Attributes allowed on <group>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <group> object must have the required attribute 'groups:kind', and may "
+    "have the optional attributes 'groups:id' and 'groups:name'. No other "
+    "attributes from the SBML Level 3 Groups namespaces are permitted on a "
+    "<group> object. ",
+    { "L3V1 Groups V1 Section 3.3"
+    }
+  },
+
+  // 4020304
+  { GroupsGroupAllowedElements,
+    "Elements allowed on <group>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <group> object may contain one and only one instance of the "
+    "<listOfMembers> element. No other elements from the SBML Level 3 Groups "
+    "namespaces are permitted on a <group> object. ",
+    { "L3V1 Groups V1 Section 3.3"
+    }
+  },
+
+  // 4020305
+  { GroupsGroupKindMustBeGroupKindEnum,
+    "Kind attribute must be GroupKindEnum.",
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
-    "Unknown error from groups",
-    { " "
+    "The value of the attribute 'groups:kind' of a <group> object must conform "
+    "to the syntax of SBML data type 'groupKind' and may only take on the "
+    "allowed values of 'groupKind' defined in SBML; that is, the value must be "
+    "one of the following: 'classification', 'partonomy' or 'collection'.",
+    { "L3V1 Groups V1 Section 3.3"
     }
-  }
+  },
+
+  // 4020306
+  { GroupsGroupNameMustBeString,
+    "Name attribute must be String.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The attribute 'groups:name' on a <group> must have a value of data type "
+    "'string'.",
+    { "L3V1 Groups V1 Section 3.3"
+    }
+  },
+
+  // 4020307
+  { GroupsGroupEmptyLOElements,
+    "No Empty ListOf elements allowed on <group>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The <listOfMembers> subobject on a <group> object is optional, but if "
+    "present, this container object must not be empty.",
+    { "L3V1 Groups V1 Section 3.3"
+    }
+  },
+
+  // 4020308
+  { GroupsGroupLOMembersAllowedCoreElements,
+    "Core elements allowed on <listOfMembers>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "Apart from the general notes and annotations subobjects permitted on all "
+    "SBML objects, a <listOfMembers> container object may only contain <member> "
+    "objects.",
+    { "L3V1 Core Section 3.2"
+    }
+  },
+
+  // 4020309
+  { GroupsGroupLOMembersAllowedCoreAttributes,
+    "Core attributes allowed on <listOfMembers>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <listOfMembers> object may have the optional SBML Level 3 Core "
+    "attributes 'metaid' and 'sboTerm'. No other attributes from the SBML Level "
+    "3 Core namespaces are permitted on a <listOfMembers> object.",
+    { "L3V1 Core Section 3.2"
+    }
+  },
+
+  // 4020310
+  { GroupsGroupLOMembersAllowedAttributes,
+    "Attributes allowed on <listOfMembers>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <listOfMembers> object may have the optional attributes 'groups:id' and "
+    "'groups:name'. No other attributes from the SBML Level 3 Groups namespaces "
+    "are permitted on a <listOfMembers> object. ",
+    { "L3V1 Groups V1 Section 3.4"
+    }
+  },
+
+  // 4020311
+  { GroupsLOMembersNameMustBeString,
+    "Name attribute must be String.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The attribute 'groups:name' on a <listOfMembers> must have a value of data "
+    "type 'string'.",
+    { "L3V1 Groups V1 Section 3.4"
+    }
+  },
+
+  // 4020312
+  { GroupsLOMembersConsistentReferences,
+    "Consistent references by multiple <member> objects.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_WARNING,
+    "If <listOfMembers> objects from different <group> objects contain "
+    "<member> elements that reference the same SBase object, the 'sboTerm' "
+    "attribute and any child <notes> or <annotation> elements set for those "
+    "<listOfMembers> should be consistent, as they should all apply to the "
+    "same referenced object.",
+    { "L3V1 Groups V1 Section 3.5.4"
+    }
+  },
+
+  // 4020313
+  { GroupsNotCircularReferences,
+    "Circular references by multiple <member> objects.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "Member references may not be circular: no <member>'s 'idRef' or "
+    "'metaIdRef' may reference itself, its parent <listOfMembers>, nor its "
+    "parent <group>. If a <member> references a <group> or a <listOfMembers>, "
+    "the same restrictions apply to that subgroup's children: they may not "
+    "reference the <member>, its parent <listOfMembers>, nor its parent "
+    "<group>, and if any of those children reference a <group>, the same "
+    "restrictions apply to them, etc.",
+    { "L3V1 Groups V1 Section 3.5.4"
+    }
+  },
+
+  // 4020401
+  { GroupsMemberAllowedCoreAttributes,
+    "Core attributes allowed on <member>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <member> object may have the optional SBML Level 3 Core attributes "
+    "'metaid' and 'sboTerm'. No other attributes from the SBML Level 3 Core "
+    "namespaces are permitted on a <member>.",
+    { "L3V1 Core Section 3.2"
+    }
+  },
+
+  // 4020402
+  { GroupsMemberAllowedCoreElements,
+    "Core elements allowed on <member>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <member> object may have the optional SBML Level 3 Core subobjects for "
+    "notes and annotations. No other elements from the SBML Level 3 Core "
+    "namespaces are permitted on a <member>.",
+    { "L3V1 Core Section 3.2"
+    }
+  },
+
+  // 4020403
+  { GroupsMemberAllowedAttributes,
+    "Attributes allowed on <member>.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A <member> object may have the optional attributes 'groups:id' and "
+    "'groups:name' and must have a value for one (and exactly one) of "
+    "the attributes 'groups:idRef' and 'groups:metaIdRef'. No other attributes "
+    "from the SBML Level 3 Groups namespaces are permitted on a <member> "
+    "object. ",
+    { "L3V1 Groups V1 Section 3.5"
+    }
+  },
+
+  // 4020404
+  { GroupsMemberNameMustBeString,
+    "Name attribute must be String.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The attribute 'groups:name' on a <member> must have a value of data type "
+    "'string'.",
+    { "L3V1 Groups V1 Section 3.5"
+    }
+  },
+
+  // 4020405
+  { GroupsMemberIdRefMustBeSBase,
+    "Attribute 'idRef' must point to SBase object.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of the attribute 'groups:idRef' of a <member> object must be the "
+    "identifier of an existing <SBase> object defined in the enclosing <model> "
+    "object.",
+    { "L3V1 Groups V1 Section 3.5"
+    }
+  },
+
+  // 4020406
+  { GroupsMemberMetaIdRefMustBeSBase,
+    "Attribute 'metaIdRef' must point to SBase object.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of the attribute 'groups:metaIdRef' of a <member> object must be the "
+    "'metaid' of an existing <SBase> object defined in the enclosing <model> "
+    "object.",
+    { "L3V1 Groups V1 Section 3.5"
+    }
+  },
+
+  // 4020407
+  { GroupsMemberIdRefMustBeSId,
+    "Attribute 'idRef' must be type 'SId'.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of the attribute 'groups:idRef' of a <member> object must "
+    "conform to the syntax of the SBML data type 'SId'.",
+    { "L3V1 Groups V1 Section 3.5"
+    }
+  },
+
+  // 4020408
+  { GroupsMemberMetaIdRefMustBeID,
+    "Attribute 'metaIdRef' must be type 'ID'.",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of the attribute 'groups:metaIdRef' of a <member> object must "
+    "conform to the syntax of the SBML data type 'ID'.",
+    { "L3V1 Groups V1 Section 3.5"
+    }
+  },
 
 };
 
+/** @endcond */
+
+
 
 LIBSBML_CPP_NAMESPACE_END
 
-  /** @endcond doxygenLibsbmlInternal */
 
 
-#endif  /*  GroupsSBMLErrorTable_h__  */
+
+#endif /* !GroupsSBMLErrorTable_H__ */
+
 
diff --git a/src/sbml/packages/groups/validator/GroupsValidator.cpp b/src/sbml/packages/groups/validator/GroupsValidator.cpp
index b63d27c..3ea11df 100644
--- a/src/sbml/packages/groups/validator/GroupsValidator.cpp
+++ b/src/sbml/packages/groups/validator/GroupsValidator.cpp
@@ -1,111 +1,119 @@
 /**
- * @file:   GroupsValidator.cpp
- * @brief:  Implementation of the GroupsValidator class
- * @author: Generated by autocreate code
+ * @file GroupsValidator.cpp
+ * @brief Definition of GroupsValidator.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
+
 #include <sbml/validator/VConstraint.h>
 
 #include <sbml/packages/groups/common/GroupsExtensionTypes.h>
 #include <sbml/packages/groups/validator/GroupsValidator.h>
 
-#include <sbml/SBMLReader.h>
-
-
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 using namespace std;
 
-  /** @endcond doxygenLibsbmlInternal */
-
+/** @endcond */
 
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-//
-// NOTE: ConstraintSet, ValidatorConstraints, and ValidatingVisitor used to
-// be in separate .cpp and .h files, but in order to link under MSVC6 (the
-// compiler doesn't instantiate templates (i.e. generate code), even when
-// told explicitly to do so), the classes needed to be combined into a single
-// file.
-//
 
 
-// ----------------------------------------------------------------------
-// Apply<T> and ConstraintSet<T>
-// ----------------------------------------------------------------------
+LIBSBML_CPP_NAMESPACE_BEGIN
 
 
-/*
+// -------------------------------------------
+// Apply<T>
+// -------------------------------------------
+/**
  * Applies a Constraint<T> to an SBML object of type T.
  */
+
 template <typename T>
 struct Apply : public unary_function<TConstraint<T>*, void>
 {
-  Apply (const Model& m, const T& o) : model(m), object(o) { }
+  Apply(const Model& m, const T& o)
+    : model(m)
+    , object(o)
+  {
+  }
 
 
-  void operator() (TConstraint<T>* constraint)
+  void
+  operator()(TConstraint<T>* constraint)
   {
     constraint->check(model, object);
   }
 
 
   const Model& model;
-  const T&     object;
+  const T& object;
 };
 
 
+// -------------------------------------------
+// ConstraintSet<T>
+// -------------------------------------------
 template <typename T>
 class ConstraintSet
 {
 public:
 
-   ConstraintSet () { }
-  ~ConstraintSet () { }
+  ConstraintSet() { }
+  ~ConstraintSet() { }
 
 
   /*
-   * Adds a Constraint to this ConstraintSet.
+   * Adds a Constraint to this ConstraintSet
    */
-  void add (TConstraint<T>* c)
+  void
+  add(TConstraint<T>* c)
   {
     constraints.push_back(c);
   }
 
+
   /*
-   * Applies all Constraints in this ConstraintSet to the given SBML object
-   * of type T.  Constraint violations are logged to Validator.
+   * Applies all Constraints in this ConstraintSet to the given SBML object of
+   * type T. Constraint violations are logged to Validator.
    */
-  void applyTo (const Model& model, const T& object)
+  void
+  applyTo(const Model& model, const T& object)
   {
     for_each(constraints.begin(), constraints.end(), Apply<T>(model, object));
   }
 
+
   /*
-   * @return true if this ConstraintSet is empty, false otherwise.
+   * Returns true if the ConstraintSet is empty, false otherwise
    */
-  bool empty () const
+  bool
+  empty() const
   {
     return constraints.empty();
   }
@@ -117,141 +125,121 @@ protected:
 };
 
 
+// -------------------------------------------
+// ValidatorConstraints
+// -------------------------------------------
+struct GroupsValidatorConstraints
+{
 
-// ----------------------------------------------------------------------
-
+  ConstraintSet<SBMLDocument>                   mSBMLDocument;
+  ConstraintSet<Model>                          mModel;
+  ConstraintSet<Group>                          mGroup;
+  ConstraintSet<Member>                         mMember;
 
+  map<VConstraint*, bool> ptrMap;
 
+  ~GroupsValidatorConstraints();
 
-// ----------------------------------------------------------------------
-// ValidatorConstraints
-// ----------------------------------------------------------------------
+  void add(VConstraint* c);
 
-/*
- * ValidatorConstraints maintain a separate list of constraints for each
- * SBML type.  This is done so that constraints may be applied efficiently
- * during the validation process.
- */
-struct GroupsValidatorConstraints
-{
-  ConstraintSet<SBMLDocument>             mSBMLDocument;
-  ConstraintSet<Model>                    mModel;
-  ConstraintSet<Member>      mMember;
-  ConstraintSet<MemberConstraint>      mMemberConstraint;
-  ConstraintSet<Group>      mGroup;
-  map<VConstraint*,bool> ptrMap;
-
-  ~GroupsValidatorConstraints ();
-  void add (VConstraint* c);
 };
 
 
 /*
- * Deletes constraints (TConstraint(T>*) which are stored in lists
- * (ConstraintSet<T>) of this struct.
- * Since the same pointer values could be stored in different lists
- * (e.g., TConstraint<SimpleSpeciesReference>* is stored in both
- * ConstraintSet<SimpleSpeciesReference> and
- * ConstraintSet<ModifierSimpleSpeciesReference>), a pointer map is used for
- * avoiding segmentation fault caused by deleting the same pointer twice.
+ * Destroys this GroupsValidatorConstraints object.
  */
-GroupsValidatorConstraints::~GroupsValidatorConstraints ()
+GroupsValidatorConstraints::~GroupsValidatorConstraints()
 {
-  map<VConstraint*,bool>::iterator it = ptrMap.begin();
+  map<VConstraint*, bool>::iterator it = ptrMap.begin();
 
-  while(it != ptrMap.end())
+  while (it != ptrMap.end())
   {
-     if(it->second) delete it->first;
-     ++it;
+    if (it->second)
+    {
+      delete it->first;
+    }
+
+    ++it;
   }
 }
 
 
 /*
- * Adds the given Contraint to the appropriate ConstraintSet.
+ * Adds the given Constraint to the appropriate ConstraintSet
  */
 void
-GroupsValidatorConstraints::add (VConstraint* c)
+GroupsValidatorConstraints::add(VConstraint* c)
 {
   if (c == NULL) return;
 
-  ptrMap.insert(pair<VConstraint*,bool>(c,true));
+  ptrMap.insert(pair<VConstraint*, bool>(c, true));
 
   if (dynamic_cast< TConstraint<SBMLDocument>* >(c) != NULL)
   {
-    mSBMLDocument.add( static_cast< TConstraint<SBMLDocument>* >(c) );
+    mSBMLDocument.add(static_cast< TConstraint<SBMLDocument>* >(c) );
     return;
   }
 
   if (dynamic_cast< TConstraint<Model>* >(c) != NULL)
   {
-    mModel.add( static_cast< TConstraint<Model>* >(c) );
-    return;
-  }
-  if (dynamic_cast< TConstraint<Member>* >(c) != NULL)
-  {
-    mMember.add( static_cast< TConstraint<Member>* >(c) );
+    mModel.add(static_cast< TConstraint<Model>* >(c) );
     return;
   }
 
-  if (dynamic_cast< TConstraint<MemberConstraint>* >(c) != NULL)
+  if (dynamic_cast< TConstraint<Group>* >(c) != NULL)
   {
-    mMemberConstraint.add( static_cast< TConstraint<MemberConstraint>* >(c) );
+    mGroup.add(static_cast< TConstraint<Group>* >(c) );
     return;
   }
 
-  if (dynamic_cast< TConstraint<Group>* >(c) != NULL)
+  if (dynamic_cast< TConstraint<Member>* >(c) != NULL)
   {
-    mGroup.add( static_cast< TConstraint<Group>* >(c) );
+    mMember.add(static_cast< TConstraint<Member>* >(c) );
     return;
   }
-
 }
 
-// ----------------------------------------------------------------------
 
-
-
-
-// ----------------------------------------------------------------------
+// -------------------------------------------
 // ValidatingVisitor
-// ----------------------------------------------------------------------
+// -------------------------------------------
 
-
-/*
- * An SBMLVisitor visits each object in an SBML object tree, calling the
- * appropriate visit() method for the object visited.
- *
- * A ValidatingVisitor overrides each visit method to validate the given
- * SBML object.
- */
 class GroupsValidatingVisitor: public SBMLVisitor
 {
 public:
 
-  GroupsValidatingVisitor (GroupsValidator& v, const Model& m) : v(v), m(m) { }
+  GroupsValidatingVisitor(GroupsValidator& v, const Model& m)
+    : v(v)
+    , m(m)
+  {
+  }
+
 
   using SBMLVisitor::visit;
 
-  bool visit (const Member &x)
+  bool
+  visit(const Group& x)
   {
-    v.mGroupsConstraints->mMember.applyTo(m, x);
-    return !v.mGroupsConstraints->mMember.empty();
+    v.mGroupsConstraints->mGroup.applyTo(m, x);
+    return !v.mGroupsConstraints->mGroup.empty();
   }
 
-  bool visit (const MemberConstraint &x)
+
+  bool
+  visit(const Member& x)
   {
-    v.mGroupsConstraints->mMemberConstraint.applyTo(m, x);
-    return !v.mGroupsConstraints->mMemberConstraint.empty();
+    v.mGroupsConstraints->mMember.applyTo(m, x);
+    return !v.mGroupsConstraints->mMember.empty();
   }
 
-  bool visit (const Group &x)
+
+  virtual void visit (const Model &x)
   {
-    v.mGroupsConstraints->mGroup.applyTo(m, x);
-    return !v.mGroupsConstraints->mGroup.empty();
+    v.mGroupsConstraints->mModel.applyTo(m, x);
   }
 
-  virtual bool visit(const SBase &x)
+  virtual bool
+  visit(const SBase& x)
   {
     if (x.getPackageName() != "groups")
     {
@@ -268,120 +256,113 @@ public:
     }
     else
     {
-      if (code == SBML_GROUPS_MEMBER)
+      if (code == SBML_GROUPS_GROUP)
       {
-        return visit((const Member&)x);
-      }
-      else if (code == SBML_GROUPS_MEMBER_CONSTRAINT)
-      {
-        return visit((const MemberConstraint&)x);
+        return visit((const Group&)x);
       }
-      else if (code == SBML_GROUPS_GROUP)
+      else if (code == SBML_GROUPS_MEMBER)
       {
-        return visit((const Group&)x);
+        return visit((const Member&)x);
       }
-      else 
+      else
       {
         return SBMLVisitor::visit(x);
-      } 
+      }
     }
   }
 
+
 protected:
 
-  GroupsValidator&   v;
+  GroupsValidator& v;
   const Model& m;
 };
 
 
-// ----------------------------------------------------------------------
-
-
+// -------------------------------------------
+// GroupsValidator
+// -------------------------------------------
 
-
-// ----------------------------------------------------------------------
-// Validator
-// ----------------------------------------------------------------------
-
-
-GroupsValidator::GroupsValidator (const SBMLErrorCategory_t category):
-  Validator(category)
+/*
+ * Creates a new GroupsValidator object for the given category of validation.
+ */
+GroupsValidator::GroupsValidator(SBMLErrorCategory_t category)
+  : Validator(category)
 {
   mGroupsConstraints = new GroupsValidatorConstraints();
 }
 
 
-GroupsValidator::~GroupsValidator ()
+/*
+ * Destroys this GroupsValidator object.
+ */
+GroupsValidator::~GroupsValidator()
 {
   delete mGroupsConstraints;
 }
 
 
 /*
- * Adds the given Contraint to this validator.
+ * Adds the given VConstraint object to this GroupsValidator.
  */
 void
-GroupsValidator::addConstraint (VConstraint* c)
+GroupsValidator::addConstraint(VConstraint* c)
 {
   mGroupsConstraints->add(c);
 }
 
 
 /*
- * Validates the given SBMLDocument.  Failures logged during
- * validation may be retrieved via <code>getFailures()</code>.
- *
- * @return the number of validation errors that occurred.
+ * Validates the given SBMLDocument
  */
 unsigned int
-GroupsValidator::validate (const SBMLDocument& d)
+GroupsValidator::validate(const SBMLDocument& d)
 {
   const Model* m = d.getModel();
 
   if (m != NULL)
   {
     GroupsValidatingVisitor vv(*this, *m);
-
-    const GroupsModelPlugin* plugin = 
-      static_cast <const GroupsModelPlugin *> (m->getPlugin("groups"));
-      
+    const GroupsModelPlugin* plugin = static_cast<const
+      GroupsModelPlugin*>(m->getPlugin("groups"));
     if (plugin != NULL)
     {
       plugin->accept(vv);
     }
   }
 
-  /* ADD ANY OTHER OBJECTS THAT HAVE PLUGINS */
-  
-  return (unsigned int)mFailures.size();
+  // ADD ANY OTHER OBJECTS THAT HAS PLUGINS
+
+  return (unsigned int)(mFailures.size());
 }
 
 
 /*
- * Validates the given SBMLDocument.  Failures logged during
- * validation may be retrieved via <code>getFailures()</code>.
- *
- * @return the number of validation errors that occurred.
+ * Validates the SBMLDocument located at the given filename
  */
 unsigned int
-GroupsValidator::validate (const std::string& filename)
+GroupsValidator::validate(const std::string& filename)
 {
-  SBMLReader    reader;
+  SBMLReader reader;
   SBMLDocument* d = reader.readSBML(filename);
 
 
-  for (unsigned int n = 0; n < d->getNumErrors(); ++n)
+  unsigned int numErrors = d->getNumErrors();
+
+
+  for (unsigned int n=0; n < numErrors; ++n)
   {
-    logFailure( *d->getError(n) );
+    logFailure(*d->getError(n));
   }
 
-  unsigned int ret = validate(*d);
+  numErrors = validate(*d);
   delete d;
-  return ret;
+  return numErrors;
 }
 
 
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-// ----------------------------------------------------------------------
 
diff --git a/src/sbml/packages/groups/validator/GroupsValidator.h b/src/sbml/packages/groups/validator/GroupsValidator.h
index 074607f..012e1f6 100644
--- a/src/sbml/packages/groups/validator/GroupsValidator.h
+++ b/src/sbml/packages/groups/validator/GroupsValidator.h
@@ -1,50 +1,78 @@
 /**
- * @file:   GroupsValidator.h
- * @brief:  Implementation of the GroupsValidator class
- * @author: Generated by autocreate code
+ * @file GroupsValidator.h
+ * @brief Definition of GroupsValidator.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
+ *
+ * @class GroupsValidator
+ * @sbmlbrief{groups} Entry point for “groups” package validation.
+ *
+ * @htmlinclude not-sbml-warning.html
+ *
+ * @copydetails doc_common_intro_package_validators
+ *
+ * The GroupsValidator class extends the Validator class from core libSBML to
+ * apply validation to the constructs introduced by the SBML Level 3
+ * Groups package. This class then acts as a base class for any validators that
+ * apply rules to the “groups” package specification constructs or
+ * to entire models that use the “groups” package, and may
+ * therefore be subject to other global restrictions introduced.
+ *
+ * @copydetails doc_section_package_validators_general_info
  */
 
-#ifndef GroupsValidator__H
-#define GroupsValidator__H
+
+#ifndef GroupsValidator_H__
+#define GroupsValidator_H__
+
+
 
 
 #ifdef __cplusplus
 
 
-  /** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 #include <list>
 #include <string>
-  /** @endcond doxygenLibsbmlInternal */
 
+/** @endcond */
 
 #include <sbml/SBMLError.h>
 #include <sbml/validator/Validator.h>
+#include <sbml/SBMLReader.h>
+
 
 LIBSBML_CPP_NAMESPACE_BEGIN
 
+
 class VConstraint;
 struct GroupsValidatorConstraints;
 class SBMLDocument;
@@ -55,26 +83,18 @@ class GroupsValidator : public Validator
 public:
 
   /**
-   * Constructor; creates a new GroupsValidator object for the given
-   * category of validation.
+   * Creates a new GroupsValidator object for the given category of validation.
    *
-   * @param category code indicating the kind of validations that this
-   * validator will perform.  The category code value must be
-   * @if clike taken from the enumeration #SBMLErrorCategory_t @endif@~
-   * @if java one of of the values from the set of constants whose names
-   * begin with the characters <code>LIBSBML_CAT_</code> in the interface
-   * class {@link libsbmlConstants}. at endif@~
-   * @if python one of of the values from the set of constants whose names
-   * begin with the characters <code>LIBSBML_CAT_</code> in the interface
-   * class @link libsbml libsbml at endlink.@endif@~
+   * @param category code indicating the type of validation that this validator
+   * will perform.
    */
-  GroupsValidator ( SBMLErrorCategory_t category = LIBSBML_CAT_SBML );
+  GroupsValidator(SBMLErrorCategory_t category = LIBSBML_CAT_SBML);
 
 
   /**
    * Destroys this GroupsValidator object.
    */
-  virtual ~GroupsValidator ();
+  virtual ~GroupsValidator();
 
 
   /**
@@ -83,40 +103,41 @@ public:
    * When creating a subclass of GroupsValidator, override this method to add
    * your own validation code.
    */
-  virtual void init () = 0;
+  virtual void init() = 0;
 
 
   /**
-   * Adds the given VContraint object to this validator.
+   * Adds the given VConstraint object to this GroupsValidator.
    *
    * @param c the VConstraint ("validator constraint") object to add.
    */
-  virtual void addConstraint (VConstraint* c);
+  virtual void addConstraint(VConstraint* c);
 
 
   /**
-   * Validates the given SBML document.
+   * Validates the given SBMLDocument
    *
    * @param d the SBMLDocument object to be validated.
    *
-   * @return the number of validation failures that occurred.  The objects
+   * @return the number of validation failures that occurred. The objects
    * describing the actual failures can be retrieved using getFailures().
    */
-  virtual unsigned int validate (const SBMLDocument& d);
+  virtual unsigned int validate(const SBMLDocument& d);
 
 
   /**
-   * Validates the SBML document located at the given file name.
+   * Validates the SBMLDocument located at the given filename
    *
    * @param filename the path to the file to be read and validated.
    *
-   * @return the number of validation failures that occurred.  The objects
+   * @return the number of validation failures that occurred. The objects
    * describing the actual failures can be retrieved using getFailures().
    */
-  virtual unsigned int validate (const std::string& filename);
+  virtual unsigned int validate(const std::string& filename);
 
 
 protected:
+
   /** @cond doxygenLibsbmlInternal */
 
   GroupsValidatorConstraints* mGroupsConstraints;
@@ -124,9 +145,21 @@ protected:
   friend class GroupsValidatingVisitor;
 
   /** @endcond */
+
 };
 
+
+
 LIBSBML_CPP_NAMESPACE_END
 
-#endif  /* __cplusplus*/
-#endif  /* GroupsValidator__H */
+
+
+
+#endif /* __cplusplus */
+
+
+
+
+#endif /* !GroupsValidator_H__ */
+
+
diff --git a/src/sbml/packages/groups/validator/constraints/GroupCircularReferences.cpp b/src/sbml/packages/groups/validator/constraints/GroupCircularReferences.cpp
new file mode 100644
index 0000000..0bfb24e
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/GroupCircularReferences.cpp
@@ -0,0 +1,455 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    GroupCircularReferences.cpp
+ * @brief   Checks cycles in groups
+ * @author  Sarah Keating
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <cstring>
+
+#include <sbml/Model.h>
+#include <sbml/packages/groups/extension/GroupsModelPlugin.h>
+#include <sbml/util/IdList.h>
+
+#include "GroupCircularReferences.h"
+
+/** @cond doxygenIgnored */
+using namespace std;
+/** @endcond */
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+/**
+ * Creates a new Constraint with the given constraint id.
+ */
+GroupCircularReferences::GroupCircularReferences (unsigned int id, Validator& v) :
+  TConstraint<Model>(id, v)
+{
+}
+
+
+/**
+ * Destroys this Constraint.
+ */
+GroupCircularReferences::~GroupCircularReferences ()
+{
+}
+
+
+/**
+ * Checks that all ids on the following Model objects are unique:
+ * event assignments and assignment rules.
+ */
+void
+GroupCircularReferences::check_ (const Model& m, const Model& /*object*/)
+{
+  mIdMap.clear();
+
+  const GroupsModelPlugin * plug = 
+                 static_cast<const GroupsModelPlugin*>(m.getPlugin("groups"));
+  
+  if (plug == NULL) 
+  {
+    return;
+  }
+
+  unsigned int numGroups = plug->getNumGroups();
+
+  for (unsigned int i = 0; i < numGroups; i++)
+  {
+    checkForSelfReference(plug->getGroup(i), i);
+    addReferenced(m, plug->getGroup(i));
+  }
+
+  determineAllDependencies();
+  determineCycles(m);
+
+  return;
+
+}
+
+void
+GroupCircularReferences::addReferenced(const Model& /*model*/, const Group * group)
+{
+  for (unsigned int i = 0; i < group->getNumMembers(); i++)
+  {
+    const Member* mem = group->getMember(i);
+    // if the member has no id or metaid it can never be referenced
+    if (!mem->isSetId() && !mem->isSetMetaId())
+      continue;
+    else
+      addAllReferences(mem);
+  }
+}
+ 
+
+void 
+GroupCircularReferences::addAllReferences(const Member* mem)
+{
+  std::string ref;
+  if (mem->isSetIdRef())
+  {
+    ref = mem->getIdRef();
+  }
+  else
+  {
+    ref = mem->getMetaIdRef();
+  }
+
+  if (mem->isSetId())
+  { 
+    const std::string id = mem->getId();
+    mIdMap.insert(pair<const std::string, std::string>(id, ref));
+    addChildReferences(mem, id);
+  }
+  if (mem->isSetMetaId())
+  { 
+    const std::string id = mem->getMetaId();
+    mIdMap.insert(pair<const std::string, std::string>(id, ref));
+    addChildReferences(mem, id);
+  }
+
+}
+
+void 
+GroupCircularReferences::addChildReferences(const Member* mem, const std::string& id)
+{
+    SBase* element = const_cast<Member*>(mem)->getReferencedElement();
+    
+    if (element == NULL)
+      return;
+
+    if (element->getTypeCode() == SBML_LIST_OF)
+    {
+      if (static_cast<ListOf*>(element)->getItemTypeCode() == SBML_GROUPS_MEMBER)
+      {
+        for (unsigned int i = 0; i < static_cast<ListOf*>(element)->size(); i++)
+        {
+          Member* child = static_cast<Member*>(static_cast<ListOf*>(element)->get(i));
+          if (child->isSetId())
+          {
+            mIdMap.insert(pair<const std::string, std::string>(id, child->getId()));
+          }
+          if (child->isSetMetaId())
+          {
+            mIdMap.insert(pair<const std::string, std::string>(id, child->getMetaId()));
+          }
+        }
+      }
+    }
+    else if (element->getTypeCode() == SBML_GROUPS_GROUP)
+    {
+      for (unsigned int i = 0; i < static_cast<Group*>(element)->getNumMembers(); i++)
+      {
+        Member* child = static_cast<Group*>(element)->getMember(i);
+        if (child->isSetId())
+        {
+          mIdMap.insert(pair<const std::string, std::string>(id, child->getId()));
+        }
+        if (child->isSetMetaId())
+        {
+          mIdMap.insert(pair<const std::string, std::string>(id, child->getMetaId()));
+        }
+      }
+    }
+}
+
+void 
+GroupCircularReferences::determineAllDependencies()
+{
+  IdIter iterator;
+  IdIter inner_it;
+  IdRange range;
+
+  /* for each pair in the map (x, y)
+   * retrieve all other pairs where y is first (e.g. (y, s))
+   * and create pairs showing that x depends on these e.g. (x, s)
+   * check whether the pair already exists in the map
+   * and add it if not
+   */
+  for (iterator = mIdMap.begin(); iterator != mIdMap.end(); iterator++)
+  {
+    range = mIdMap.equal_range((*iterator).second);
+    for (inner_it = range.first; inner_it != range.second; inner_it++)
+    {
+      const pair<const std::string, std::string> &depend = 
+            pair<const std::string, std::string>((*iterator).first, (*inner_it).second);
+      if (!alreadyExistsInMap(mIdMap, depend))
+        mIdMap.insert(depend);
+    }
+  }
+}
+
+
+bool 
+GroupCircularReferences::alreadyExistsInMap(IdMap map, 
+                                     pair<const std::string, std::string> dependency)
+{
+  bool exists = false;
+
+  IdIter it;
+  
+  for (it = map.begin(); it != map.end(); it++)
+  {
+    if (((*it).first == dependency.first)
+      && ((*it).second == dependency.second))
+      exists = true;
+  }
+
+  return exists;
+}
+
+  
+void 
+GroupCircularReferences::determineCycles(const Model& m)
+{
+  IdIter it;
+  IdRange range;
+  IdList variables;
+  IdMap logged;
+  std::string id;
+  variables.clear();
+
+  /* create a list of variables that are cycles ie (x, x) */
+  for (it = mIdMap.begin(); it != mIdMap.end(); it++)
+  {
+    if ((*it).first == (*it).second)
+    {
+      id = (*it).first;
+      if (!variables.contains(id))
+      {
+        variables.append(id);
+      }
+    }
+  }
+
+  /* loop thru other dependencies for each; if the dependent is also
+   * in the list then this is the cycle
+   * keep a record of logged dependencies to avoid logging twice
+   */
+   
+  for (unsigned int n = 0; n < variables.size(); n++)
+  {
+    id = variables.at((int)n);
+    range = mIdMap.equal_range(id);
+    for (it = range.first; it != range.second; it++)
+    {
+      if (((*it).second != id)
+        && (variables.contains((*it).second))
+        && !alreadyExistsInMap(logged, pair<const std::string, std::string>(id, (*it).second))
+        && !alreadyExistsInMap(logged, pair<const std::string, std::string>((*it).second, id)))
+      {
+        logCycle(m, id, (*it).second);
+        logged.insert(pair<const std::string, std::string>(id, (*it).second));
+      }
+    }
+  }
+}
+ 
+
+
+
+void
+GroupCircularReferences::checkForSelfReference(const Group* g, unsigned int index)
+{
+  IdList ids;
+
+  //create a list that members cannot refer to
+  if (g->isSetId())
+  {
+    ids.append(g->getId());
+  }
+  if (g->isSetMetaId())
+  {
+    ids.append(g->getMetaId());
+  }
+  if (g->getListOfMembers()->isSetId())
+  {
+    ids.append(g->getListOfMembers()->getId());
+  }
+  if (g->getListOfMembers()->isSetMetaId())
+  {
+    ids.append(g->getListOfMembers()->getMetaId());
+  }
+
+  for (unsigned int i = 0; i < g->getNumMembers(); i++)
+  {
+    const Member * mem = g->getMember(i);
+    if (mem->isSetIdRef())
+    {
+      std::string idRef = mem->getIdRef();
+      if (mem->isSetId() && mem->getId() == idRef)
+      {
+        logSelfReference(*mem, *g, index);
+      }
+      else
+      {
+        if (ids.contains(idRef))
+        {
+          logParentReference(*mem, *g, index);
+        }
+      }
+    }
+    else if (mem->isSetMetaIdRef())
+    {
+      std::string idRef = mem->getMetaIdRef();
+      if (mem->isSetMetaId() && mem->getMetaId() == idRef)
+      {
+        logSelfReference(*mem, *g, index);
+      }
+      else
+      {
+        if (ids.contains(idRef))
+        {
+          logParentReference(*mem, *g, index);
+        }
+      }
+    }
+  }
+
+
+}
+
+void
+GroupCircularReferences::logSelfReference (const Member& member,
+                          const Group& group, unsigned int index)
+{
+  ostringstream oss;
+
+  if (group.isSetId())
+  {
+    oss << "In the <group> with id '" <<  group.getId() << "' ";
+  }
+  else
+  {
+    oss << "In <group> listed in place " << index << " ";
+  }
+  if (member.isSetIdRef())
+  {
+    oss << "the <member> with id '" << member.getId() << "' refers to itself.";
+  }
+  else
+  {
+    oss << "the <member> with metaid '" << member.getMetaId() 
+      << "' refers to itself.";
+  }
+  msg = oss.str();
+ 
+  logFailure(member);
+
+}
+
+void
+GroupCircularReferences::logParentReference (const Member& member,
+                          const Group& group, unsigned int index)
+{
+  ostringstream oss;
+
+  if (group.isSetId())
+  {
+    oss << "In the <group> with id '" << group.getId() << "' ";
+  }
+  else
+  {
+    oss << "In <group> listed in place " << index << " ";
+  }
+
+  std::string ref;
+  std::string ref_type;
+
+  if (member.isSetIdRef())
+  {
+    ref = member.getIdRef();
+    if (group.getId() == ref)
+    {
+      ref_type = "<group>.";
+    }
+    else
+    {
+      ref_type = "<listOfMembers>.";
+    }
+  }
+  else
+  {
+    ref = member.getMetaIdRef();
+    if (group.getMetaId() == ref)
+    {
+      ref_type = "<group>.";
+    }
+    else
+    {
+      ref_type = "<listOfMembers>.";
+    }
+  }
+
+
+  oss << "the <member> referencing '" << ref << "' refers to its parent " 
+    << ref_type;
+  msg = oss.str();
+ 
+  logFailure(member);
+
+}
+
+void 
+GroupCircularReferences::logCycle (const Model& m, std::string id, std::string id1)
+{
+  Member * mem = static_cast<Member *>(const_cast<Model&>(m).getElementBySId(id));
+  std::string ref_type = "id"; 
+  if (mem == NULL)
+  {
+    mem = static_cast<Member *>(const_cast<Model&>(m).getElementByMetaId(id));
+    ref_type = "metaid";
+  }
+  Member * mem2 = static_cast<Member *>(const_cast<Model&>(m).getElementBySId(id1));
+  std::string ref_type1 = "id"; 
+  if (mem2 == NULL)
+  {
+    mem2 = static_cast<Member *>(const_cast<Model&>(m).getElementByMetaId(id1));
+    ref_type = "metaid";
+  }
+
+  msg = "The <member> with ";
+  msg += ref_type;
+  msg += " attribute '";
+  msg += id;
+  msg += "' creates a circular reference with the <member> with ";
+  msg += ref_type1;
+  msg += " attribute '";
+  msg += id1;
+  msg += "'.";
+
+
+  logFailure(m);
+}
+
+
+LIBSBML_CPP_NAMESPACE_END
+/** @endcond */
diff --git a/src/sbml/packages/groups/validator/constraints/GroupCircularReferences.h b/src/sbml/packages/groups/validator/constraints/GroupCircularReferences.h
new file mode 100644
index 0000000..8618b2b
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/GroupCircularReferences.h
@@ -0,0 +1,112 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    GroupCircularReferences.h
+ * @brief   Checks cycles in groups
+ * @author  Sarah Keating
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef GroupCircularReferences_h
+#define GroupCircularReferences_h
+
+
+#ifdef __cplusplus
+
+#include <string>
+#include <sbml/validator/VConstraint.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+typedef std::multimap<const std::string, std::string> IdMap;
+typedef IdMap::iterator                               IdIter;
+typedef std::pair<IdIter, IdIter>                     IdRange;
+
+class GroupCircularReferences: public TConstraint<Model>
+{
+public:
+
+  /**
+   * Creates a new Constraint with the given constraint id.
+   */
+  GroupCircularReferences (unsigned int id, Validator& v);
+
+  /**
+   * Destroys this Constraint.
+   */
+  virtual ~GroupCircularReferences ();
+
+
+protected:
+
+  /**
+   * Checks that <ci> element after an apply is already listed as a FunctionDefinition.
+   */
+  virtual void check_ (const Model& m, const Model& object);
+
+  void addReferenced(const Model &model, const Group *group);
+
+  void addAllReferences(const Member* mem);
+
+  void addChildReferences(const Member* mem, const std::string& id);
+
+  void checkForSelfReference(const Group* g, unsigned int index);
+
+  void determineAllDependencies();
+
+
+  /* helper function to check if a pair already exists */
+  bool alreadyExistsInMap(IdMap map, 
+                          std::pair<const std::string, std::string> dependency);
+
+  
+  /* find cycles in the map of dependencies */
+  void determineCycles(const Model& m);
+
+
+  /**
+   * Logs a message .
+   */
+  void logCycle (const Model& m, std::string id, std::string id1);
+
+  void logSelfReference (const Member& mem, const Group& group, 
+                         unsigned int index);
+
+  void logParentReference (const Member& mem, const Group& group, 
+                         unsigned int index);
+  IdMap mIdMap;
+
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* GroupCircularReferences_h */
+/** @endcond */
+
diff --git a/src/sbml/packages/groups/validator/constraints/GroupsConsistencyConstraints.cpp b/src/sbml/packages/groups/validator/constraints/GroupsConsistencyConstraints.cpp
index 65bf251..1923383 100644
--- a/src/sbml/packages/groups/validator/constraints/GroupsConsistencyConstraints.cpp
+++ b/src/sbml/packages/groups/validator/constraints/GroupsConsistencyConstraints.cpp
@@ -1,51 +1,151 @@
-	/** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 /**
- * @file:   GroupsConsistencyConstraints.cpp
- * @brief:  Implementation of the GroupsConsistencyConstraints class
- * @author: Generated by autocreate code
+ * @file GroupsConsistencyConstraints.cpp
+ * @brief Definition of GroupsConsistencyConstraints.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
-
-#ifndef  AddingConstraintsToValidator
+#ifndef AddingConstraintsToValidator
 
 #include <sbml/validator/VConstraint.h>
 
 #include <sbml/packages/groups/validator/GroupsSBMLError.h>
 
-#endif  /* AddingConstrainstToValidator */
+#include <sbml/packages/groups/common/GroupsExtensionTypes.h>
 
-#include <sbml/validator/ConstraintMacros.h>
+#endif /* AddingConstraintsToValidator */
 
-/** @cond doxygenIgnored */
+#include <sbml/validator/ConstraintMacros.h>
+#include "LOMembersConsistentReferences.h"
+#include "GroupCircularReferences.h"
 
 using namespace std;
 
-/** @endcond */
+EXTERN_CONSTRAINT(GroupsLOMembersConsistentReferences, LOMembersConsistentReferences);
+
+EXTERN_CONSTRAINT(GroupsNotCircularReferences, GroupCicularReferences);
+
+START_CONSTRAINT (GroupsMemberAllowedAttributes, Member, member)
+{
+  bool fail = false;
+  bool both = true;
+
+  if (member.isSetIdRef() && member.isSetMetaIdRef())
+  {
+    fail = true;
+  }
+  else if (!member.isSetIdRef() && !member.isSetMetaIdRef())
+  {
+    fail = true;
+    both = false;
+  }
+
+  msg = "Member";
+  if (member.isSetId())
+  {
+    msg += " with id '";
+    msg += member.getId();
+    msg += "'";
+  }
+  if (both == true)
+  {
+    msg += " has values for both 'idRef' and 'metaIdRef'.";
+  }
+  else
+  {
+    msg += " does not reference an object with either both 'idRef' or 'metaIdRef'.";
+  }
+
+
+  inv(fail == false);
+}
+END_CONSTRAINT
 
-/** PUT CONSTRAINTS HERE */
 
-	/** @endcond doxygenLibsbmlInternal */
+START_CONSTRAINT (GroupsMemberIdRefMustBeSBase, Member, member)
+{
+  pre (member.isSetIdRef());
 
+  bool fail = false;
+
+  SBase * referent = const_cast<Model*>(&m)->getElementBySId(member.getIdRef());
+
+  msg = "Member";
+  if (member.isSetId())
+  {
+    msg += " with id '";
+    msg += member.getId();
+    msg += "'";
+  }
+  msg += " has 'idRef' set to '";
+  msg += member.getIdRef();
+  msg += "' which is not the id of an SBase object in the model.";
+  
+  if (referent == NULL)
+  {
+    fail = true;
+  }
+
+  inv(fail == false);
+}
+END_CONSTRAINT
+
+
+START_CONSTRAINT (GroupsMemberMetaIdRefMustBeSBase, Member, member)
+{
+  pre (member.isSetMetaIdRef());
+
+  bool fail = false;
+
+  SBase * referent = const_cast<Model*>(&m)->getElementByMetaId(member.getMetaIdRef());
+
+  msg = "Member";
+  if (member.isSetId())
+  {
+    msg += " with id '";
+    msg += member.getId();
+    msg += "'";
+  }
+  msg += " has 'idRef' set to '";
+  msg += member.getIdRef();
+  msg += "' which is not the id of an SBase object in the model.";
+  
+  if (referent == NULL)
+  {
+    fail = true;
+  }
+
+  inv(fail == false);
+}
+END_CONSTRAINT
+
+/** @endcond */
 
diff --git a/src/sbml/packages/groups/validator/constraints/GroupsConsistencyConstraintsDeclared.cxx b/src/sbml/packages/groups/validator/constraints/GroupsConsistencyConstraintsDeclared.cxx
new file mode 100644
index 0000000..bef7918
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/GroupsConsistencyConstraintsDeclared.cxx
@@ -0,0 +1,45 @@
+
+/** @cond doxygenLibsbmlInternal */
+
+/**
+ * @file GroupsConsistencyConstraintsDeclared.cxx
+ * @brief Definition of GroupsConsistencyConstraintsDeclared.
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
+
+addConstraint(new LOMembersConsistentReferences(GroupsLOMembersConsistentReferences, *this));
+addConstraint(new GroupCircularReferences(GroupsNotCircularReferences, *this));
+addConstraint(new VConstraintMemberGroupsMemberAllowedAttributes(*this));
+addConstraint(new VConstraintMemberGroupsMemberIdRefMustBeSBase(*this));
+addConstraint(new VConstraintMemberGroupsMemberMetaIdRefMustBeSBase(*this));
+
+
+/** @endcond */
+
diff --git a/src/sbml/packages/groups/validator/constraints/GroupsIdentifierConsistencyConstraints.cpp b/src/sbml/packages/groups/validator/constraints/GroupsIdentifierConsistencyConstraints.cpp
index 67829ad..7f8465f 100644
--- a/src/sbml/packages/groups/validator/constraints/GroupsIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/groups/validator/constraints/GroupsIdentifierConsistencyConstraints.cpp
@@ -1,51 +1,56 @@
-	/** @cond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
 
 /**
- * @file:   GroupsIdentifierConsistencyConstraints.cpp
- * @brief:  Implementation of the GroupsIdentifierConsistencyConstraints class
- * @author: Generated by autocreate code
+ * @file GroupsIdentifierConsistencyConstraints.cpp
+ * @brief Definition of GroupsIdentifierConsistencyConstraints.
+ * @author SBMLTeam
  *
  * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
+ * This file is part of libSBML. Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
  * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ * Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
  *
  * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
  * ------------------------------------------------------------------------ -->
  */
-
-#ifndef  AddingConstraintsToValidator
+#ifndef AddingConstraintsToValidator
 
 #include <sbml/validator/VConstraint.h>
 
 #include <sbml/packages/groups/validator/GroupsSBMLError.h>
 
-#endif  /* AddingConstrainstToValidator */
+#include "GroupsUniqueModelWideIds.h"
 
-#include <sbml/validator/ConstraintMacros.h>
+#endif /* AddingConstraintsToValidator */
 
-/** @cond doxygenIgnored */
+#include <sbml/validator/ConstraintMacros.h>
 
 using namespace std;
 
-/** @endcond */
+// 10301
+EXTERN_CONSTRAINT(GroupsDuplicateComponentId, GroupsUniqueModelWideIds);
 
-/** PUT CONSTRAINTS HERE */
 
-	/** @endcond doxygenLibsbmlInternal */
 
+/** @endcond */
 
diff --git a/src/sbml/packages/groups/validator/constraints/GroupsIdentifierConsistencyConstraintsDeclared.cxx b/src/sbml/packages/groups/validator/constraints/GroupsIdentifierConsistencyConstraintsDeclared.cxx
new file mode 100644
index 0000000..312b8b1
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/GroupsIdentifierConsistencyConstraintsDeclared.cxx
@@ -0,0 +1,40 @@
+
+/** @cond doxygenLibsbmlInternal */
+
+/**
+ * @file GroupsIdentifierConsistencyConstraintsDeclared.cxx
+ * @brief Definition of GroupsIdentifierConsistencyConstraintsDeclared.
+ * @author SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML. Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ * 3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ * Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ * 1. California Institute of Technology, Pasadena, CA, USA
+ * 2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by the
+ * Free Software Foundation. A copy of the license agreement is provided in the
+ * file named "LICENSE.txt" included with this software distribution and also
+ * available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
+
+addConstraint(new GroupsUniqueModelWideIds(GroupsDuplicateComponentId, *this));
+
+/** @endcond */
+
diff --git a/src/sbml/packages/groups/validator/constraints/GroupsUniqueModelWideIds.cpp b/src/sbml/packages/groups/validator/constraints/GroupsUniqueModelWideIds.cpp
new file mode 100644
index 0000000..7b11641
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/GroupsUniqueModelWideIds.cpp
@@ -0,0 +1,274 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    GroupsUniqueModelWideIds.cpp
+ * @brief   Base class for Id constraints
+ * @author  Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include "GroupsUniqueModelWideIds.h"
+#include <sbml/packages/groups/extension/GroupsModelPlugin.h>
+
+/** @cond doxygenIgnored */
+using namespace std;
+/** @endcond */
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+
+/*
+ * Creates a new GroupsUniqueModelWideIds with the given constraint id.
+ */
+GroupsUniqueModelWideIds::GroupsUniqueModelWideIds (unsigned int id, Validator& v) : TConstraint<Model>(id, v)
+{
+}
+
+
+/*
+ * Destroys this Constraint.
+ */
+GroupsUniqueModelWideIds::~GroupsUniqueModelWideIds ()
+{
+}
+
+
+/*
+ * Checks that all ids for some given subset of the Model adhere to this
+ * Constraint.  Override the doCheck() method to define your own subset.
+ */
+void
+GroupsUniqueModelWideIds::check_ (const Model& m, const Model& )
+{
+  doCheck(m);
+}
+
+
+/*
+ * @return the typename of the given SBase object.
+ */
+const char*
+GroupsUniqueModelWideIds::getTypename (const SBase& object)
+{
+  return SBMLTypeCode_toString( object.getTypeCode(), object.getPackageName().c_str() );
+}
+
+
+/*
+ * Logs a message that the given @p id (and its corresponding object) have
+ * failed to satisfy this constraint.
+ */
+void
+GroupsUniqueModelWideIds::logIdConflict (const std::string& id, const SBase& object)
+{
+  logFailure(object, getMessage(id, object));
+}
+
+/*
+ * Resets the state of this GlobalConstraint by clearing its internal
+ * list of error messages.
+ */
+void
+GroupsUniqueModelWideIds::reset ()
+{
+  mIdMap.clear();
+}
+
+
+/*
+ * Checks that the id associated with the given object is unique.  If it
+ * is not, logIdConflict is called.
+ */
+void
+GroupsUniqueModelWideIds::doCheckId (const SBase& object)
+{ 
+  if (object.isSetId())
+  {
+    const string& id = object.getId();
+
+    if (mIdMap.insert( make_pair(id, &object) ).second == false)
+    {
+      logIdConflict(id, object);
+    }
+  }
+}
+
+
+void
+GroupsUniqueModelWideIds::logId (const SBase& object)
+{ 
+  if (object.isSetId())
+  {
+    const string& id = object.getId();
+
+    mIdMap.insert( make_pair(id, &object) );
+  }
+}
+
+
+/*
+ * @return the error message to use when logging constraint violations.
+ * This method is called by logFailure.
+ *
+ * Returns a message that the given @p id and its corresponding object are
+ * in  conflict with an object previously defined.
+ */
+const string
+GroupsUniqueModelWideIds::getMessage (const string& id, const SBase& object)
+{
+  IdObjectMap::iterator iter = mIdMap.find(id);
+
+
+  if (iter == mIdMap.end())
+  {
+    return
+      "Internal (but non-fatal) Validator error in "
+      "GroupsUniqueModelWideIds::getMessage().  The SBML object with duplicate id was "
+      "not found when it came time to construct a descriptive error message.";
+  }
+
+
+  ostringstream msg;
+  const SBase&  previous = *(iter->second);
+
+
+  //msg << getPreamble();
+
+  //
+  // Example message: 
+  //
+  // The <compartment> id 'cell' conflicts with the previously defined
+  // <parameter> id 'cell' at line 10.
+  //
+
+  msg << "  The <" << object.getElementName()
+      << "> id '" << id << "' conflicts with the previously defined <"
+      << previous.getElementName()
+      << "> id '" << id << "'";
+
+  if (previous.getLine() != 0)
+  {
+    msg << " at line " << previous.getLine();
+  }
+
+  msg << '.';
+
+  return msg.str();
+}
+/*
+ * Checks that all ids on the following Model objects are unique:
+ * FunctionDefinitions, Species, Compartments, global Parameters,
+ * Reactions, and Events.
+ */
+void
+GroupsUniqueModelWideIds::doCheck (const Model& m)
+{
+  createExistingMap(m);
+
+  unsigned int size = 0;
+
+  const GroupsModelPlugin * modelPlug = 
+    static_cast<const GroupsModelPlugin*>(m.getPlugin("groups"));
+
+
+  size = modelPlug->getNumGroups();
+  for (unsigned int n = 0; n < size; ++n) 
+  {
+    const Group *g = modelPlug->getGroup(n);
+    doCheckId( *g );
+    doCheckId( *(g->getListOfMembers()));
+    for (unsigned int j = 0; j < g->getNumMembers(); j++)
+    {
+      doCheckId(*(g->getMember(j)));
+    }
+  }
+
+  reset();
+}
+
+/*
+ * Checks that all ids on the following Model objects are unique:
+ * FunctionDefinitions, Species, Compartments, global Parameters,
+ * Reactions, and Events.
+ */
+void
+GroupsUniqueModelWideIds::createExistingMap (const Model& m)
+{
+  unsigned int n, size, sr, sr_size;
+
+  logId( m );
+
+  size = m.getNumFunctionDefinitions();
+  for (n = 0; n < size; ++n) logId( *m.getFunctionDefinition(n) );
+
+  size = m.getNumCompartments();
+  for (n = 0; n < size; ++n) logId( *m.getCompartment(n) );
+
+  size = m.getNumSpecies();
+  for (n = 0; n < size; ++n) logId( *m.getSpecies(n) );
+
+  size = m.getNumParameters();
+  for (n = 0; n < size; ++n) logId( *m.getParameter(n) );
+
+  size = m.getNumReactions();
+  for (n = 0; n < size; ++n) 
+  {
+    logId( *m.getReaction(n) );
+
+    sr_size = m.getReaction(n)->getNumReactants();
+    for (sr = 0; sr < sr_size; sr++)
+    {
+      logId(*m.getReaction(n)->getReactant(sr));
+    }
+
+    sr_size = m.getReaction(n)->getNumProducts();
+    for (sr = 0; sr < sr_size; sr++)
+    {
+      logId(*m.getReaction(n)->getProduct(sr));
+    }
+
+    sr_size = m.getReaction(n)->getNumModifiers();
+    for (sr = 0; sr < sr_size; sr++)
+    {
+      logId((SBase&)(*m.getReaction(n)->getModifier(sr)));
+    }
+
+  }
+
+  size = m.getNumEvents();
+  for (n = 0; n < size; ++n) logId( *m.getEvent(n) );
+
+  size = m.getNumCompartmentTypes();
+  for (n = 0; n < size; ++n) logId( *m.getCompartmentType(n) );
+
+  size = m.getNumSpeciesTypes();
+  for (n = 0; n < size; ++n) logId( *m.getSpeciesType(n) );
+}
+
+LIBSBML_CPP_NAMESPACE_END
+/** @endcond */
diff --git a/src/sbml/packages/groups/validator/constraints/GroupsUniqueModelWideIds.h b/src/sbml/packages/groups/validator/constraints/GroupsUniqueModelWideIds.h
new file mode 100644
index 0000000..e2dcae3
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/GroupsUniqueModelWideIds.h
@@ -0,0 +1,186 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    GroupsUniqueModelWideIds.h
+ * @brief   Base class for Id constraints
+ * @author  Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef GroupsUniqueModelWideIds_h
+#define GroupsUniqueModelWideIds_h
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+#include <sstream>
+#include <map>
+
+#include <sbml/validator/VConstraint.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class SBase;
+class Validator;
+
+
+/**
+ * The GroupsUniqueModelWideIds Constraint is the base class for all SBML id constraints.  It
+ * provides mechanisms for checking only certain subsets of ids within an
+ * SBML model and tailoring the error messages logged.
+ *
+ * To customize:
+ *
+ *   1.  Override doCheck() to iterate over the SBML objects you are
+ *       interested in and call checkId() for each.
+ *
+ *       checkId() does the work of extracting the unique identifier
+ *       (whether it be an id or variable name) from the SBML object and
+ *       then delegates to doCheckId().
+ *
+ *   2.  Override doCheckId() to perform the actual check.  If the check
+ *       fails, call logFailure().
+ *
+ *   3.  Override getMessage() to log error messages.  GetMessage() should
+ *       use getPreamble() and getFieldName() when constructing the error
+ *       message.
+ *
+ *   4.  Override getPreamble() to customize the part of the actual error
+ *       message that remains constant (e.g. the part that doesn't report
+ *       line numbers, SBML object ids and typenames, etc).
+ *
+ *   5.  Override getFieldName() if you are checking a field that isn't
+ *       called 'id', for instance, the 'variable' field of a Rule.
+ *
+ * Finally, if you need the type name of the SBML object that failed,
+ * e.g. 'Compartment' or 'Species', when constructing an error message,
+ * call getTypename().
+ */
+class GroupsUniqueModelWideIds: public TConstraint<Model>
+{
+public:
+
+  /**
+   * Creates a new GroupsUniqueModelWideIds with the given constraint id.
+   */
+  GroupsUniqueModelWideIds (unsigned int id, Validator& v);
+
+  /**
+   * Destroys this Constraint.
+   */
+  virtual ~GroupsUniqueModelWideIds ();
+
+
+protected:
+  /**
+   * Resets the state of this GlobalConstraint by clearing its internal
+   * list of error messages.
+   */
+  void reset ();
+
+  /**
+   * Called by check().  Override this method to define your own subset.
+   */
+  void doCheck (const Model& m);
+
+  /**
+   * Checks that the id associated with the given object adheres to this
+   * constraint.  If it does not, logFailure is called.
+   */
+  void doCheckId (const std::string& id, const SBase& object);
+
+  /**
+   * Checks that the id associated with the given object adheres to this
+   * constraint.  If it does not, logFailure is called.
+   */
+  void logId (const SBase& object);
+
+  /**
+   * Called by check().  Override this method to define your own subset.
+   */
+  void createExistingMap (const Model& m);
+
+  /**
+   * Returns the error message to use when logging constraint violations.
+   * This method is called by logFailure.
+   *
+   * If at all possible please use getPreamble() and getFieldname() when
+   * constructing error messages.  This will help to make your constraint
+   * easily customizable.
+   * 
+   * @return the error message to use when logging constraint violations.
+   */
+  const std::string
+  getMessage (const std::string& id, const SBase& object);
+
+
+
+  /* ------------------------------------------------------------ */
+  /*  You should not need to override methods beyond this point.  */
+  /* ------------------------------------------------------------ */
+
+
+  /**
+   * Checks that all ids for some given subset of the Model adhere to this
+   * Constraint.  Override the doCheck() method to define your own subset.
+   */
+  virtual void check_ (const Model& m, const Model& object);
+
+  /**
+   * Checks that the id associated with the given object is unique.  If it
+   * is not, logFailure is called.
+   */
+  void doCheckId (const SBase& object);
+
+
+  /**
+   * Returns a non-owning character pointer to the typename of the given SBase 
+   * @p object, as constructed from its typecode and package.
+   *
+   * @return the typename of the given SBase object.
+   */
+  const char* getTypename (const SBase& object);
+
+  /**
+   * Logs a message that the given @p id (and its corresponding object) have
+   * failed to satisfy this constraint.
+   */
+  void logIdConflict (const std::string& id, const SBase& object);
+
+
+  typedef std::map<std::string, const SBase*> IdObjectMap;
+  IdObjectMap mIdMap;
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* GroupsUniqueModelWideIds_h */
+/** @endcond */
diff --git a/src/sbml/packages/groups/validator/constraints/LOMembersConsistentReferences.cpp b/src/sbml/packages/groups/validator/constraints/LOMembersConsistentReferences.cpp
new file mode 100644
index 0000000..328e8dc
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/LOMembersConsistentReferences.cpp
@@ -0,0 +1,221 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    LOMembersConsistentReferences.cpp
+ * @brief   Checks sboTerm for consistency
+ * @author  Sarah Keating
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <cstring>
+
+#include <sbml/Model.h>
+#include <sbml/util/IdList.h>
+#include <sbml/packages/groups/extension/GroupsModelPlugin.h>
+
+#include "LOMembersConsistentReferences.h"
+
+/** @cond doxygenIgnored */
+using namespace std;
+/** @endcond */
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+/**
+ * Creates a new Constraint with the given constraint id.
+ */
+LOMembersConsistentReferences::LOMembersConsistentReferences (unsigned int id, Validator& v) :
+  TConstraint<Model>(id, v)
+{
+  reported.clear();
+}
+
+
+/**
+ * Destroys this Constraint.
+ */
+LOMembersConsistentReferences::~LOMembersConsistentReferences ()
+{
+}
+
+
+/**
+ * Checks that all ids on the following Model objects are unique:
+ * event assignments and assignment rules.
+ */
+void
+LOMembersConsistentReferences::check_ (const Model& m, const Model& /*object*/)
+{
+  const GroupsModelPlugin * plug = 
+                 static_cast<const GroupsModelPlugin*>(m.getPlugin("groups"));
+  
+  if (plug == NULL) 
+  {
+    return;
+  }
+
+  unsigned int numGroups = plug->getNumGroups();
+  if (numGroups < 2)
+  {
+    return;
+  }
+
+  for (unsigned int i = 0; i < numGroups; i++)
+  {
+    const Group * g = plug->getGroup(i);
+    if (g->getListOfMembers()->isSetSBOTerm())
+    {
+      checkForReferences(plug, i, g->getListOfMembers()->getSBOTerm());
+    }
+  }
+
+}
+ 
+void
+LOMembersConsistentReferences::checkForReferences(const GroupsModelPlugin* plug, 
+                                          unsigned int index, int sbo)
+{
+  List* referenced = new List();
+
+  // populate the members in the target list
+  const Model* m = static_cast<const Model*>(plug->getParentSBMLObject());
+  const Group* g = plug->getGroup(index);
+  referenced->add((void*)(g->getListOfMembers()));
+  for (unsigned int i = 0; i < g->getNumMembers(); i++)
+  {
+    const Member * mem = g->getMember(i);
+    if (mem->isSetIdRef())
+    {
+      referenced->add(const_cast<Model*>(m)->getElementBySId(mem->getIdRef()));
+    }
+    else if (mem->isSetMetaIdRef())
+    {
+      referenced->add(const_cast<Model*>(m)->getElementByMetaId(mem->getMetaIdRef()));
+    }
+  }
+
+  for (unsigned int i = 0; i < plug->getNumGroups(); i++)
+  {
+    if (i == index) continue;
+
+    unsigned int sboTerm = plug->getGroup(i)->getListOfMembers()->getSBOTerm();
+
+    if (!sboTermsConsistent(sboTerm, sbo) && 
+         matchesReferences(referenced, plug->getGroup(i)))
+    {
+      if (!matchAlreadyReported(index, i))
+      {
+        reported.push_back(make_pair(index, i));
+        logInconsistentReference(*(plug->getGroup(i)), *g);
+      }
+    }
+  }
+
+  delete referenced;
+
+}
+
+bool
+LOMembersConsistentReferences::matchAlreadyReported(unsigned int parent, unsigned int match)
+{
+  bool matchReported = false;
+  for (std::vector<std::pair<unsigned int, unsigned int> >::iterator it = reported.begin();
+    it != reported.end(); ++it)
+  {
+    std::pair<unsigned int, unsigned int> value = *it;
+    if (value.first == parent && value.second == match)
+    {
+      matchReported = true;
+    }
+    else if (value.first == match && value.second == parent)
+    {
+      matchReported = true;
+    }
+  }
+  return matchReported;
+}
+
+bool
+LOMembersConsistentReferences::matchesReferences(List *referenced, const Group* g)
+{
+  bool match = false;
+
+  for (unsigned int i = 0; i < g->getNumMembers(); i++)
+  {
+    SBase * referent = const_cast<Member*>(g->getMember(i))->getReferencedElement();
+
+    for (unsigned int n = 0; n < referenced->getSize(); n++)
+    {
+      if (referent == referenced->get(n))
+      {
+        match = true;
+        break;
+      }
+    }
+  }
+
+  return match;
+}
+
+bool 
+LOMembersConsistentReferences::sboTermsConsistent(unsigned int parent, 
+                                                  unsigned int match)
+{
+  bool consistent = false;
+
+  if (parent == match)
+  {
+    consistent = true;
+  }
+  else if (SBO::getParentBranch(parent) == SBO::getParentBranch(match))
+  {
+    consistent = true;
+  }
+
+  return consistent;
+}
+
+
+void
+LOMembersConsistentReferences::logInconsistentReference (const Group& g,
+                          const Group& object)
+{
+  msg =
+    "The <group> with whose <listOfMembers> has sboTerm = '";
+  msg += SBO::intToString(g.getListOfMembers()->getSBOTerm());
+  msg += "' includes the same member as the <group> whose";
+  msg += " <listOfMembers> has sboTerm = '";
+  msg += SBO::intToString(object.getListOfMembers()->getSBOTerm());
+  msg += "' which are not consistent.";
+  
+  logFailure(object);
+
+}
+
+LIBSBML_CPP_NAMESPACE_END
+/** @endcond */
diff --git a/src/sbml/packages/groups/validator/constraints/LOMembersConsistentReferences.h b/src/sbml/packages/groups/validator/constraints/LOMembersConsistentReferences.h
new file mode 100644
index 0000000..61b8cad
--- /dev/null
+++ b/src/sbml/packages/groups/validator/constraints/LOMembersConsistentReferences.h
@@ -0,0 +1,95 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    LOMembersConsistentReferences.h
+ * @brief   Checks sboTerm consistency
+ * @author  Sarah Keating
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef LOMembersConsistentReferences_h
+#define LOMembersConsistentReferences_h
+
+
+#ifdef __cplusplus
+
+#include <string>
+#include <sbml/validator/VConstraint.h>
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class LOMembersConsistentReferences: public TConstraint<Model>
+{
+public:
+
+  /**
+   * Creates a new Constraint with the given constraint id.
+   */
+  LOMembersConsistentReferences (unsigned int id, Validator& v);
+
+  /**
+   * Destroys this Constraint.
+   */
+  virtual ~LOMembersConsistentReferences ();
+
+
+protected:
+
+  /**
+   * Checks that <ci> element after an apply is already listed as a FunctionDefinition.
+   */
+  virtual void check_ (const Model& m, const Model& object);
+
+
+  void checkForReferences(const GroupsModelPlugin* plug, unsigned int index, 
+                          int sbo);
+
+  bool matchesReferences(List* referenced, const Group* g);
+
+  bool matchAlreadyReported(unsigned int parent, unsigned int match);
+
+  bool sboTermsConsistent(unsigned int parent, unsigned int match);
+  
+  /**
+   * Logs a message .
+   */
+  void logInconsistentReference (const Group& g,
+                                 const Group& object);
+
+
+  std::vector<std::pair<unsigned int, unsigned int> > reported;
+
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* LOMembersConsistentReferences_h */
+/** @endcond */
+
diff --git a/src/sbml/packages/groups/validator/test/CMakeLists.txt b/src/sbml/packages/groups/validator/test/CMakeLists.txt
new file mode 100644
index 0000000..5871288
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/CMakeLists.txt
@@ -0,0 +1,60 @@
+## @file    CMakeLists.txt
+## @brief   CMake build script
+## @author  Frank T. Bergmann
+##
+## <!--------------------------------------------------------------------------
+## This file is part of libSBML.  Please visit http://sbml.org for more
+## information about SBML, and the latest version of libSBML.
+##
+## Copyright (C) 2013-2016 jointly by the following organizations:
+##     1. California Institute of Technology, Pasadena, CA, USA
+##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+##     3. University of Heidelberg, Heidelberg, Germany
+## 
+## Copyright (C) 2009-2013 jointly by the following organizations: 
+##     1. California Institute of Technology, Pasadena, CA, USA
+##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+## 
+## This library is free software; you can redistribute it and/or modify it
+## under the terms of the GNU Lesser General Public License as published by
+## the Free Software Foundation.  A copy of the license agreement is provided
+## in the file named "LICENSE.txt" included with this software distribution
+## and also available online as http://sbml.org/software/libsbml/license.html
+## ------------------------------------------------------------------------ -->
+
+file(GLOB C_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
+
+foreach(c_file ${C_FILES})
+	set_source_files_properties(${c_file} PROPERTIES LANGUAGE CXX)
+endforeach()
+
+file(GLOB CPP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )
+file(GLOB H_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.h )
+
+# figure out whether we are doing an individual build, or whether 
+# this package has already been integrated
+set (TEST_LIB)
+if (EXISTS "${LIBSBML_ROOT_SOURCE_DIR}/VERSION.txt")
+  # integrated
+  set (TEST_LIB ${LIBSBML_LIBRARY}-static)
+else()
+  # individual test build
+  set (TEST_LIB groups)
+endif()
+
+set(TEST_LIBSBML_LIBS ${TEST_LIB} ${LIBCHECK_LIBRARY})
+
+set(TEST_FILES ${CPP_FILES} ${C_FILES} ${H_FILES})
+
+
+include_directories(BEFORE ${LIBSBML_ROOT_SOURCE_DIR}/src)
+include_directories(BEFORE ${LIBSBML_ROOT_BINARY_DIR}/src)
+
+include_directories(${LIBCHECK_INCLUDE_DIR})
+add_executable(test_groups_validator ${TEST_FILES})
+target_link_libraries(test_groups_validator ${TEST_LIBSBML_LIBS})
+add_test(test_groups_validator_run ${CMAKE_CURRENT_BINARY_DIR}/test_groups_validator ${CMAKE_CURRENT_SOURCE_DIR})
+set_tests_properties(test_groups_validator_run PROPERTIES ENVIRONMENT 
+	"srcdir=${CMAKE_CURRENT_SOURCE_DIR}")
+
+
diff --git a/src/sbml/packages/groups/validator/test/TestFile.cpp b/src/sbml/packages/groups/validator/test/TestFile.cpp
new file mode 100644
index 0000000..434d4ca
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/TestFile.cpp
@@ -0,0 +1,199 @@
+/**
+ * \file   TestFile.cpp
+ * \brief  Enscapsulates an XML file in the test-data/ directory
+ * \author Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <cstdlib>
+
+#if defined(WIN32) && !defined(CYGWIN)
+#  include "../../../../validator/test/tps/dirent.h"
+#  include "../../../../validator/test/tps/dirent.c"
+#else
+#  include <sys/types.h>
+#  include <dirent.h>
+#endif  /* WIN32 */
+
+#include <iostream>
+#include "TestFile.h"
+
+/** @cond doxygenIgnored */
+
+using namespace std;
+
+/** @endcond */
+
+
+/**
+ * TestFiles (e.g. in the test-data/ directory) have the following naming
+ * convention:
+ *
+ *   ccccccc-pass-00-nn.xml, or
+ *   ccccccc-fail-ff-nn.xml
+ *
+ *   ccccccc-fail-ff-nn-xxxxx.xml
+ *
+ * Where:
+ *
+ *   ccccccc  is the seven digit constraint id the file is designed to test
+ *
+ *   pass   indicates the file must pass validation without error
+ *
+ *   fail   indicates the file must fail validation with extactly ff errors
+ *          all with constraint id ccccc.
+ *
+ *   nn     is the sequence id (to allow multiple test files per constraint).
+ *
+ *   xxxxx  is the number of an additional constraint that this test fails
+ *
+ *
+ * Offsets within mFilename:
+ *
+ *           1        1
+ * 012345678901234567890123456
+ * ccccccc-pass-00-nn.xml
+ * ccccccc-fail-ff-nn.xml
+ * ccccccc-fail-ff-nn-xxxxx.xml
+ */
+
+
+std::string
+TestFile::getFullname () const
+{
+  return mDirectory + "/" + mFilename;
+}
+
+
+unsigned int
+TestFile::getConstraintId () const
+{
+  return atol( mFilename.substr(0, 7).c_str() );
+}
+
+
+unsigned int
+TestFile::getSequenceId () const
+{
+  return atol( mFilename.substr(16, 2).c_str() );
+}
+
+
+unsigned int
+TestFile::getNumFailures () const
+{
+  unsigned num = atol( mFilename.substr(13, 2).c_str() );
+  if (mFilename.length() > 22)
+    return num+1;
+  else
+    return num;
+}
+
+unsigned int
+TestFile::getAdditionalFailId () const
+{
+  if (mFilename.length() > 22)
+    return atol( mFilename.substr(19, 7).c_str() );
+  else
+    return 0;
+
+}
+
+
+/**
+ * @return true if filename adheres to the TestFile naming convention,
+ * false otherwise.
+ */
+bool
+TestFile::isValid (const string& filename)
+{
+  return ((filename.length() == 22 && filename.substr(18, 4) == ".xml")
+    || (filename.length() == 30 && filename.substr(26, 4) == ".xml"));
+}
+
+
+/**
+ * @return the set of TestFiles in the given directory.
+ *
+ * You may optionally limit to the TestFiles returned to only those with
+ * ConstraintIds in the range [begin, end] (if begin == end == 0, all
+ * TestFiles in the given directory will be returned).
+ */
+set<TestFile>
+TestFile::getFilesIn ( const string& directory,
+                       unsigned int  begin,
+                       unsigned int  end,
+                       unsigned int  library)
+{
+  DIR*           dir;
+  struct dirent* entry;
+  set<TestFile>  result;
+
+  dir = opendir( directory.c_str() );
+
+  if (dir == NULL)
+  {
+    cerr << "Could not obtain a list of files in directory "
+         << "[" << directory << "]." << endl;
+    return result;
+  }
+
+  for (entry = readdir(dir); entry != NULL; entry = readdir(dir))
+  {
+    string filename(entry->d_name);
+
+    if ( TestFile::isValid(filename) )
+    {
+      TestFile     file(directory, filename);
+      unsigned int id = file.getConstraintId();
+
+      //// leave out the following tests dependent on parser
+      //if (library == 0)
+      //{
+      // // xerces bug in reading multibyte chars
+      //  if (id == 10309) continue;
+
+        // libxml bug for 2.6.16 on a Mac
+#ifdef BUGGY_APPLE_LIBXML
+      // unsigned int num = file.getSequenceId();
+
+      if (id == 1013) continue;
+      if (id == 1014) continue;
+#endif
+
+      // leave out model constraints moved to units
+      if (id == 20702 || id == 20616
+        || id == 20511 || id == 20512 || id == 20513
+        || id == 20518)
+        continue;
+      //}
+
+      if ((begin == 0 && end == 0) || (id >= begin && id <= end))
+      {
+        result.insert( TestFile(directory, filename) );
+      }
+    }
+  }
+
+  closedir(dir);
+
+  return result;
+}
diff --git a/src/sbml/packages/groups/validator/test/TestFile.h b/src/sbml/packages/groups/validator/test/TestFile.h
new file mode 100644
index 0000000..be4f2e7
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/TestFile.h
@@ -0,0 +1,113 @@
+/**
+ * \file   TestFile.h
+ * \brief  Enscapsulates an XML file in the test-data/ directory
+ * \author Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef TestFile_h
+#define TestFile_h
+
+
+#ifdef __cplusplus
+
+
+#include <set>
+#include <string>
+#include <sbml/common/libsbml-namespace.h>
+
+
+/**
+ * TestFiles (e.g. in the test-data/ directory) have the following naming
+ * convention:
+ *
+ *   cccc-pass-00-nn.xml, or
+ *   cccc-fail-ff-nn.xml
+ *
+ * Where:
+ *
+ *   cccc  is the four digit constraint id the file is designed to test
+ *
+ *   pass  indicates the file must pass validation without error
+ *
+ *   fail  indicates the file must fail validation with extactly ff errors
+ *         all with constraint id cccc.
+ *
+ *   nn    is the sequence id (to allow multiple test files per constraint).
+ */
+class TestFile
+{
+public:
+
+  const std::string& getFilename  () const { return mFilename;  }
+  const std::string& getDirectory () const { return mDirectory; }
+  
+  std::string getFullname () const;
+
+  unsigned int  getConstraintId     () const;
+  unsigned int  getNumFailures      () const;
+  unsigned int  getSequenceId       () const;
+  unsigned int  getAdditionalFailId () const;
+
+  /**
+   * @return the set of TestFiles in the given directory.
+   *
+   * You may optionally limit to the TestFiles returned to only those with
+   * ConstraintIds in the range [begin, end] (if begin == end == 0, all
+   * TestFiles in the given directory will be returned).
+   */
+  static std::set<TestFile> getFilesIn ( const std::string& directory,
+                                         unsigned int begin = 0,
+                                         unsigned int end   = 0, 
+                                         unsigned int library = 0);
+
+  /**
+   * Sort (and test equality) by filename.
+   */
+  bool operator < (const TestFile& rhs) const
+  {
+    return mFilename < rhs.mFilename;
+  }
+
+
+private:
+
+  /**
+   * Creates a new TestFile based on filename.
+   */
+  TestFile (const std::string& directory, const std::string& filename) :
+    mDirectory(directory), mFilename(filename) { }
+
+  /**
+   * @return true if filename adheres to the TestFile naming convention,
+   * false otherwise.
+   */
+  static bool isValid (const std::string& filename);
+
+
+  std::string mDirectory;
+  std::string mFilename;
+};
+
+
+#endif  /* __cplusplus */
+#endif  /* TestFile_h  */
+
diff --git a/src/sbml/packages/groups/validator/test/TestGroupsConsistencyValidator.cpp b/src/sbml/packages/groups/validator/test/TestGroupsConsistencyValidator.cpp
new file mode 100644
index 0000000..39257a7
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/TestGroupsConsistencyValidator.cpp
@@ -0,0 +1,164 @@
+/**
+ * \file   TestGroupsConsistencyValidator.cpp
+ * \brief  Runs the ConsistencyValidator on each SBML file in test-data/
+ * \author Sarah Keating
+ * \author Ben Bornstein
+ * \author Michael Hucka
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <iostream>
+#include <set>
+
+#include <algorithm>
+
+#include "TestFile.h"
+#include "TestValidator.h"
+
+#include <sbml/packages/groups/validator/GroupsConsistencyValidator.h>
+#include <sbml/packages/groups/validator/GroupsIdentifierConsistencyValidator.h>
+
+#ifdef LIBSBML_USE_VLD
+  #include <vld.h>
+#endif
+
+/** @cond doxygenIgnored */
+
+using namespace std;
+LIBSBML_CPP_NAMESPACE_USE
+
+/** @endcond */
+
+
+/**
+ * @return true if the Validator behaved as expected when validating
+ * TestFile, false otherwise.
+ */
+bool
+runMainTest (const TestFile& file)
+{
+  GroupsConsistencyValidator validator;
+  TestValidator        tester(validator);
+
+
+  validator.init();
+
+  return tester.test(file);
+  return true;
+}
+
+/**
+ * @return true if the Validator behaved as expected when validating
+ * TestFile, false otherwise.
+ */
+bool
+runIdTest (const TestFile& file)
+{
+  GroupsIdentifierConsistencyValidator validator;
+  TestValidator        tester(validator);
+
+
+  validator.init();
+
+  return tester.test(file);
+}
+
+/**
+ * Run a given set of tests and print the results.
+ */
+unsigned int
+runTests ( const string& msg,
+	   const string& directory,
+	   unsigned int  begin,
+	   unsigned int  end,
+	   bool (*tester)(const TestFile& file), 
+     unsigned int library)
+{
+  cout.precision(0);
+  cout.width(3);
+
+  cout << msg << "." << endl;
+
+  set<TestFile> files    = TestFile::getFilesIn(directory, begin, end, library);
+  unsigned int  passes   = count_if(files.begin(), files.end(), tester);
+  unsigned int  failures = files.size() - passes;
+  double        percent  = (static_cast<double>(passes) / files.size()) * 100;
+
+  cout << static_cast<int>(percent) << "%: Checks: " << files.size();
+  cout << ", Failures: " << failures << endl;
+
+  return failures;
+}
+
+/**
+ * Runs the libSBML ConsistencyValidator on all consistency TestFiles in
+ * the test-data/ directory.
+ * Runs the libSBML L1CompatibilityValidator on all TestFiles in the
+ * test-data-conversion/ directory.
+ */
+int
+main (int argc, char* argv[])
+{
+  unsigned int library = 0;
+#ifdef USE_EXPAT
+  library = 1;
+#endif
+#ifdef USE_LIBXML
+  library = 2;
+#endif
+  unsigned int failed = 0;
+
+  string prefix(".");
+
+  if (argc == 2)
+  {
+    prefix = argv[1];
+  }
+  else {
+    char *srcdir = getenv("srcdir");
+    if (srcdir != NULL) {
+      prefix = srcdir;
+    }
+  }
+
+  // allow the test runner to be invoked with the directory containing
+  // the test-data and test-data conversion directories 
+  string testDataDir = prefix + "/" + "test-data";
+  string testThisDataDir;
+
+  cout << endl;
+  cout << "Validator testrunner" << endl;
+  cout << "====================" << endl;
+  cout << "using test data from           : " << testDataDir << endl;
+  cout << endl;
+
+
+  testThisDataDir = testDataDir + "/" + "general-constraints";
+  failed += runTests( "Testing General XML Consistency Constraints (20000 - 29999)",
+		      testThisDataDir, 0, 0, runMainTest, library);
+
+  testThisDataDir = testDataDir + "/" + "identifier-constraints";
+  failed += runTests( "Testing Id Consistency Constraints (10300 - 10399)",
+		      testThisDataDir, 0, 0, runIdTest, library);
+
+  return failed;
+}
+
diff --git a/src/sbml/packages/groups/validator/test/TestValidator.cpp b/src/sbml/packages/groups/validator/test/TestValidator.cpp
new file mode 100644
index 0000000..7bee65f
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/TestValidator.cpp
@@ -0,0 +1,229 @@
+/**
+ * \file   TestValidator.cpp
+ * \brief  Validator unit tests
+ * \author Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <iostream>
+#include <sstream>
+
+#include <vector>
+
+#include <algorithm>
+#include <functional>
+#include <iterator>
+
+#include <sbml/SBMLDocument.h>
+#include <sbml/SBMLReader.h>
+#include <sbml/validator/Validator.h>
+
+#include "TestFile.h"
+
+#include "TestValidator.h"
+
+/** @cond doxygenIgnored */
+
+using namespace std;
+LIBSBML_CPP_NAMESPACE_USE
+
+/** @endcond */
+
+
+TestValidator::TestValidator (Validator& v) : mValidator(v), mVerboseAll(false)
+{
+  readVerboseFromEnvironment();
+}
+
+
+TestValidator::~TestValidator ()
+{
+}
+
+
+/**
+ * Function Object: Return true if the given SBMLError has the given
+ * id, false otherwise.
+ */
+struct HasId : public unary_function<SBMLError, bool>
+{
+  unsigned int id;
+
+  HasId (unsigned int id) : id(id) { }
+  bool operator() (const SBMLError& msg) { return msg.getErrorId() == id; }
+};
+
+
+/**
+ * Function Object: Takes a SBMLError and returns its integer id.
+ */
+struct ToId : public unary_function<SBMLError, unsigned int>
+{
+  unsigned int operator() (const SBMLError& msg) { return msg.getErrorId(); }
+};
+
+
+/**
+ * @return true if the Validator behaved as expected when validating
+ * TestFile, false otherwise.
+ */
+bool
+TestValidator::test (const TestFile& file)
+{
+  bool error = false;
+
+  unsigned int id       = file.getConstraintId();
+
+  /* change numbers for specific units tests that report same number */
+  if (id == 99502 || id == 99503 || id == 99504)
+    id = 10501;
+
+  /* change numbers for specific units tests that report same number */
+  if (id == 90502 || id == 90503 || id == 90504)
+    id = 90501;
+
+  unsigned int expected = file.getNumFailures();
+  unsigned int others   = file.getAdditionalFailId();
+  /* for 10311 called using just the id validator you will get 99303 */
+  if (id == 10311 && expected == 1)
+  {
+    expected = 2;
+    others = 99303;
+  }
+
+  unsigned int actual   = mValidator.validate( file.getFullname() );
+
+  list<SBMLError>::const_iterator begin = mValidator.getFailures().begin();
+  list<SBMLError>::const_iterator end   = mValidator.getFailures().end();
+
+
+
+  if (expected != actual)
+  {
+    error = true;
+
+    cout << endl;
+    cout << "Error: " << file.getFilename() << endl;
+    cout << "  - Failures:  Expected: "  << expected << "  Actual: " << actual;
+    cout << endl << endl;
+  }
+
+
+  unsigned int same = (unsigned int)count_if(begin, end, HasId(id));
+  vector<unsigned int> ids;
+
+  if (expected != same && actual != same)
+  {
+    // need to consider case where the test case has
+    // an additional fail
+    if (expected - same != 1)
+    {
+      error = true;
+    }
+    else
+    {
+      transform(begin, end, back_inserter(ids), ToId());
+
+      unsigned int match = 0;
+      for (unsigned int i = 0; i < ids.size(); i++)
+      {
+        if (others != 0 && ids.at(i) == others)
+        {
+          match = 1;
+        }
+      }
+
+      if (match == 0)
+      {
+        error = true;
+      }
+    }
+  }
+
+  if (error)
+  {      
+    cout << endl;
+    cout << "Error: " << file.getFilename() << endl;
+    cout << "  - Constraints:  Expected: " << id << "  Actual: ";
+    cout << endl;
+    copy(ids.begin(), ids.end(), ostream_iterator<unsigned int>(cout, " "));
+    cout << endl;
+  }
+
+  if ( error || isVerbose(id) )
+  {
+    copy(begin, end, ostream_iterator<SBMLError>(cout, "\n"));
+  }
+
+  mValidator.clearFailures();
+
+  return error == false;
+}
+
+
+/**
+ * @return true if the all Validator failures for the given Constraint id
+ * test cases should be printed, false otherwise.
+ */
+bool
+TestValidator::isVerbose (unsigned int id)
+{
+  vector<unsigned int>::iterator begin = mVerboseConstraintIds.begin();
+  vector<unsigned int>::iterator end   = mVerboseConstraintIds.end();
+
+
+  return mVerboseAll || find(begin, end, id) != end;
+}
+
+
+/**
+ * Reads the environment variable 'LIBSBML_TEST_VALIDATOR_VERBOSE' and sets
+ * the internal verbose state accordingly.
+ *
+ * LIBSBML_TEST_VALIDATOR_VERBOSE may either be set to 'all' (case
+ * sensitive) or a space separated list of constraint ids.
+ */
+void
+TestValidator::readVerboseFromEnvironment ()
+{
+  const char* s = getenv("LIBSBML_TEST_VALIDATOR_VERBOSE");
+
+
+  if (s == NULL)
+  {
+    return;
+  }
+  else if (string(s) == "all")
+  {
+    mVerboseAll = true;
+  }
+  else
+  {
+    unsigned int  id;
+    istringstream is(s);
+
+    while ( !is.eof() )
+    {
+      is >> id;
+      mVerboseConstraintIds.push_back(id);
+    }
+  }
+}
diff --git a/src/sbml/packages/groups/validator/test/TestValidator.h b/src/sbml/packages/groups/validator/test/TestValidator.h
new file mode 100644
index 0000000..5875f02
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/TestValidator.h
@@ -0,0 +1,81 @@
+/**
+ * \file   TestValidator.cpp
+ * \brief  Validator unit tests
+ * \author Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ * 
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef TestValidator_h
+#define TestValidator_h
+
+
+#ifdef __cplusplus
+
+
+#include <vector>
+#include <sbml/validator/Validator.h>
+
+LIBSBML_CPP_NAMESPACE_USE
+
+class TestFile;
+
+class TestValidator
+{
+public:
+
+   TestValidator (Validator& v);
+  ~TestValidator ();
+
+  /**
+   * @return true if the Validator behaved as expected when validating
+   * TestFile, false otherwise.
+   */
+  bool test (const TestFile& file);
+
+
+private:
+
+  /**
+   * @return true if the all Validator messages for the given Constraint id
+   * test cases should be printed, false otherwise.
+   */
+  bool isVerbose (unsigned int id);
+
+  /**
+   * Reads the environment variable 'LIBSBML_TEST_VALIDATOR_VERBOSE' and
+   * sets the internal verbose state accordingly.
+   *
+   * LIBSBML_TEST_VALIDATOR_VERBOSE may either be set to 'all' (case
+   * sensitive) or a space separated list of constraint ids.
+   */
+  void readVerboseFromEnvironment ();
+
+
+  Validator& mValidator;
+
+  bool                      mVerboseAll;
+  std::vector<unsigned int> mVerboseConstraintIds;
+};
+
+
+#endif  /* __cplusplus */
+#endif  /* TestValidator_h */
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4010101-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4010101-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4010101-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020101-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020101-fail-01-01.xml
new file mode 100644
index 0000000..d73e2fc
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020101-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020101-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020101-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020101-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020102-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020102-fail-01-01.xml
new file mode 100644
index 0000000..1ab5540
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020102-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="-3.4" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020102-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020102-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020102-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020103-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020103-fail-01-01.xml
new file mode 100644
index 0000000..5bb26db
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020103-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="true" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020103-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020103-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020103-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020201-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020201-fail-01-01.xml
new file mode 100644
index 0000000..eb20bd2
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020201-fail-01-01.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_4" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_5" groups:name="someString">
+                    <groups:member groups:id="id_6" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020201-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020201-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020201-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020202-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020202-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020202-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-02.xml
new file mode 100644
index 0000000..93d3ea6
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-02.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+            <annotation/>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-03.xml
new file mode 100644
index 0000000..de953f8
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020203-pass-00-03.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+            <notes/>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-fail-01-01.xml
new file mode 100644
index 0000000..aa54e64
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups foo="someString">
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-02.xml
new file mode 100644
index 0000000..a51e66e
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups metaid="someString">
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-03.xml
new file mode 100644
index 0000000..fba31fd
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020204-pass-00-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups sboTerm="SBO:0000001">
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-fail-01-01.xml
new file mode 100644
index 0000000..9cfb35d
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group foo="someString" groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-02.xml
new file mode 100644
index 0000000..65264c3
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString" metaid="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-03.xml
new file mode 100644
index 0000000..7ba08d8
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020301-pass-00-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString" sboTerm="SBO:0000001">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-02.xml
new file mode 100644
index 0000000..3ddd7cb
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-02.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+                <annotation/>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-03.xml
new file mode 100644
index 0000000..bcb0028
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020302-pass-00-03.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+                <notes/>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-fail-01-01.xml
new file mode 100644
index 0000000..c080973
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:foo="someString" groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-fail-01-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-fail-01-02.xml
new file mode 100644
index 0000000..fb32225
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-fail-01-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-02.xml
new file mode 100644
index 0000000..dd5e6bb
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_1" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-03.xml
new file mode 100644
index 0000000..245f095
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020303-pass-00-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020304-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020304-fail-01-01.xml
new file mode 100644
index 0000000..51e34d3
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020304-fail-01-01.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+                <groups:listOfMembers groups:id="id_4" groups:name="someString">
+                    <groups:member groups:id="id_5" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020304-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020304-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020304-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020305-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020305-fail-01-01.xml
new file mode 100644
index 0000000..8496ec5
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020305-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="0" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020305-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020305-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020305-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020306-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020306-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020306-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020307-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020307-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020307-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-02.xml
new file mode 100644
index 0000000..2f56958
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-02.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                    <annotation/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-03.xml
new file mode 100644
index 0000000..b1e3c30
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020308-pass-00-03.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                    <notes/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-fail-01-01.xml
new file mode 100644
index 0000000..c2bda09
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers foo="someString" groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-02.xml
new file mode 100644
index 0000000..4d8d689
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString" metaid="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-03.xml
new file mode 100644
index 0000000..1b5f7a3
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020309-pass-00-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString" sboTerm="SBO:0000001">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-fail-01-01.xml
new file mode 100644
index 0000000..d5a7e99
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:foo="someString" groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-02.xml
new file mode 100644
index 0000000..503dd18
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-03.xml
new file mode 100644
index 0000000..6686946
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020310-pass-00-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020311-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020311-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020311-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-01.xml
new file mode 100644
index 0000000..07f9126
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-01.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000002" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-02.xml
new file mode 100644
index 0000000..f94b585
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-02.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000002" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-03.xml
new file mode 100644
index 0000000..f2e5457
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-03.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000002" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-04.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-04.xml
new file mode 100644
index 0000000..b161bca
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-04.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000002" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="lom_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-05.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-05.xml
new file mode 100644
index 0000000..cfbe8ac
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-fail-01-05.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+      <parameter id="s" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000002" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="s"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_3" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000002" groups:id="lom_3">
+          <groups:member groups:id="m_3_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-01.xml
new file mode 100644
index 0000000..3d73d25
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-01.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-02.xml
new file mode 100644
index 0000000..eacb9a5
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-02.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-03.xml
new file mode 100644
index 0000000..4e373f3
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-03.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-04.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-04.xml
new file mode 100644
index 0000000..c0c4430
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-04.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-05.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-05.xml
new file mode 100644
index 0000000..86e8186
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-05.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000003" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="lom_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-06.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-06.xml
new file mode 100644
index 0000000..414049a
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020312-pass-00-06.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:id="g_2" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000044" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:metaIdRef="__p"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-01.xml
new file mode 100644
index 0000000..dc86ab8
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-01.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+      <parameter id="s" constant="true"/>
+      <parameter id="t" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+          <groups:member groups:id="m_1_2" groups:idRef="m_1_2"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-02.xml
new file mode 100644
index 0000000..0ce6a75
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-02.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+      <parameter id="s" constant="true"/>
+      <parameter id="t" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+          <groups:member groups:id="m_1_2" groups:idRef="lom_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-03.xml
new file mode 100644
index 0000000..a6ab636
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-03.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+      <parameter id="s" constant="true"/>
+      <parameter id="t" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+          <groups:member groups:id="m_1_2" groups:idRef="g_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-04.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-04.xml
new file mode 100644
index 0000000..a3dcf99
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-04.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true" value="1" units="dimensionless"/>
+      <parameter id="s" constant="true" units="dimensionless" value="1"/>
+      <parameter id="t" constant="true" units="dimensionless" value="1"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+          <groups:member metaid="__m" groups:id="m_1_2" groups:metaIdRef="__m"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-05.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-05.xml
new file mode 100644
index 0000000..c3caa6a
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-05.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+      <parameter id="s" constant="true"/>
+      <parameter id="t" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:id="g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1" metaid="__lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+          <groups:member groups:id="m_1_2" groups:metaIdRef="__lom_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-06.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-06.xml
new file mode 100644
index 0000000..95ce8fe
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-06.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true"/>
+      <parameter id="s" constant="true"/>
+      <parameter id="t" constant="true"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group metaid="__g_1" groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1" metaid="__lom_1">
+          <groups:member groups:id="m_1_1" groups:idRef="p"/>
+          <groups:member groups:id="m_1_2" groups:metaIdRef="__g_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-07.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-07.xml
new file mode 100644
index 0000000..fc040cf
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-07.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true" value="1" units="dimensionless"/>
+      <parameter id="s" constant="true" units="dimensionless" value="1"/>
+      <parameter id="t" constant="true" units="dimensionless" value="1"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member id="m_1_1" groups:id="m_1_2" groups:metaIdRef="__p"/>
+          <groups:member id="m_1_2" groups:id="m_1_2" groups:idRef="m_2_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="lom_1"/>
+          <groups:member groups:id="m_2_2" groups:idRef="s"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-08.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-08.xml
new file mode 100644
index 0000000..c26bad8
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-08.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true" value="1" units="dimensionless"/>
+      <parameter id="s" constant="true" units="dimensionless" value="1"/>
+      <parameter id="t" constant="true" units="dimensionless" value="1"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" metaid="__lom_1" groups:id="lom_1">
+          <groups:member id="m_1_1" groups:id="m_1_2" groups:metaIdRef="__p"/>
+          <groups:member id="m_1_2" groups:id="m_1_2" groups:idRef="m_2_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:metaIdRef="__lom_1"/>
+          <groups:member groups:id="m_2_2" groups:idRef="s"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-09.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-09.xml
new file mode 100644
index 0000000..e6cfd7a
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-09.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true" value="1" units="dimensionless"/>
+      <parameter id="s" constant="true" units="dimensionless" value="1"/>
+      <parameter id="t" constant="true" units="dimensionless" value="1"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:kind="collection" groups:id="g1">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member id="m_1_1" groups:id="m_1_2" groups:metaIdRef="__p"/>
+          <groups:member id="m_1_2" groups:id="m_1_2" groups:idRef="m_2_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:idRef="g1"/>
+          <groups:member groups:id="m_2_2" groups:idRef="s"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-10.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-10.xml
new file mode 100644
index 0000000..b090c98
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-10.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true" value="1" units="dimensionless"/>
+      <parameter id="s" constant="true" units="dimensionless" value="1"/>
+      <parameter id="t" constant="true" units="dimensionless" value="1"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:kind="collection" groups:id="g1" metaid="__g1">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member id="m_1_1" groups:id="m_1_2" groups:metaIdRef="__p"/>
+          <groups:member id="m_1_2" groups:id="m_1_2" groups:idRef="m_2_1"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_2">
+          <groups:member groups:id="m_2_1" groups:metaIdRef="__g1"/>
+          <groups:member groups:id="m_2_2" groups:idRef="s"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-11.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-11.xml
new file mode 100644
index 0000000..73932e8
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020313-fail-01-11.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1" level="3" version="1" groups:required="false">
+  <model>
+    <listOfParameters>
+      <parameter metaid="__p" id="p" constant="true" value="1" units="dimensionless"/>
+      <parameter id="s" constant="true" units="dimensionless" value="1"/>
+      <parameter id="t" constant="true" units="dimensionless" value="1"/>
+    </listOfParameters>
+    <groups:listOfGroups>
+      <groups:group groups:kind="collection" groups:id="g1" metaid="__g1">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_1">
+          <groups:member id="m_1_1" groups:id="m_1_2" groups:metaIdRef="__m_2_1"/>
+          <groups:member id="m_1_2" groups:id="m_1_2" groups:idRef="s"/>
+        </groups:listOfMembers>
+      </groups:group>
+      <groups:group groups:kind="collection">
+        <groups:listOfMembers sboTerm="SBO:0000045" groups:id="lom_2">
+          <groups:member metaid="__m_2_1" groups:id="m_2_1" groups:metaIdRef="__g1"/>
+          <groups:member groups:id="m_2_2" groups:idRef="s"/>
+        </groups:listOfMembers>
+      </groups:group>
+    </groups:listOfGroups>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-fail-01-01.xml
new file mode 100644
index 0000000..7dcd6fb
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member foo="x" groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-02.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-03.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020401-pass-00-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-02.xml
new file mode 100644
index 0000000..0913731
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-02.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString">
+                        <annotation/>
+                    </groups:member>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-03.xml
new file mode 100644
index 0000000..a2e8ba8
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020402-pass-00-03.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString">
+                        <notes/>
+                    </groups:member>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-01.xml
new file mode 100644
index 0000000..a358331
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:metaIdRef="x" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true" metaid="x"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-02.xml
new file mode 100644
index 0000000..a36705d
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:foo="x" groups:idRef="p" groups:id="id_3" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-03.xml
new file mode 100644
index 0000000..70eafb9
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-fail-01-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-02.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-03.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-04.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-04.xml
new file mode 100644
index 0000000..8bfacba
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-04.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="p"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-05.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-05.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020403-pass-00-05.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020404-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020404-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020404-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-fail-01-01.xml
new file mode 100644
index 0000000..ae37bda
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="s"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-01.xml
new file mode 100644
index 0000000..8bfacba
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="p"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-02.xml
new file mode 100644
index 0000000..c7c9956
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-02.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="p"/>
+                </groups:listOfMembers>
+            </groups:group>
+            <groups:group groups:id="id_4" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_5" groups:name="someString">
+                    <groups:member groups:id="id_6" groups:name="someString" groups:idRef="id_1"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-03.xml
new file mode 100644
index 0000000..f4c7c0f
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020405-pass-00-03.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="p"/>
+                </groups:listOfMembers>
+            </groups:group>
+            <groups:group groups:id="id_4" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_5" groups:name="someString">
+                    <groups:member groups:id="id_6" groups:name="someString" groups:idRef="id_2"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-fail-01-01.xml
new file mode 100644
index 0000000..a04ba83
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:metaIdRef="s"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-01.xml
new file mode 100644
index 0000000..be6fa01
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:metaIdRef="__p"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true" metaid="__p"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-02.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-02.xml
new file mode 100644
index 0000000..1f107a7
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-02.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" metaid= "__id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="p"/>
+                </groups:listOfMembers>
+            </groups:group>
+            <groups:group groups:id="id_4" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_5" groups:name="someString">
+                    <groups:member groups:id="id_6" groups:name="someString" groups:metaIdRef="__id_1"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-03.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-03.xml
new file mode 100644
index 0000000..b089721
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020406-pass-00-03.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString" metaid="__id_2">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="p"/>
+                </groups:listOfMembers>
+            </groups:group>
+            <groups:group groups:id="id_4" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_5" groups:name="someString">
+                    <groups:member groups:id="id_6" groups:name="someString" groups:metaIdRef="__id_2"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020407-fail-01-01-4020405.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020407-fail-01-01-4020405.xml
new file mode 100644
index 0000000..d43b9b2
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020407-fail-01-01-4020405.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:idRef="1p"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020408-fail-01-01-4020406.xml b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020408-fail-01-01-4020406.xml
new file mode 100644
index 0000000..9fb9a49
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/general-constraints/4020408-fail-01-01-4020406.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:name="someString" groups:metaIdRef="1s"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-01.xml
new file mode 100644
index 0000000..c2a6e8a
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_1" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-02.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-02.xml
new file mode 100644
index 0000000..97810ca
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_1" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-03.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-03.xml
new file mode 100644
index 0000000..47554fa
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_2" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-04.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-04.xml
new file mode 100644
index 0000000..762e53c
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-04.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="p" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-05.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-05.xml
new file mode 100644
index 0000000..9aa0b57
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-05.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <listOfCompartments>
+            <compartment id="c" constant="true"/>
+        </listOfCompartments>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="c" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-06.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-06.xml
new file mode 100644
index 0000000..b94d516
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-01-06.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <listOfCompartments>
+            <compartment id="c" constant="true"/>
+        </listOfCompartments>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="p" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-02-01.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-02-01.xml
new file mode 100644
index 0000000..91fcf6d
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-fail-02-01.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <listOfCompartments>
+            <compartment id="c" constant="true"/>
+        </listOfCompartments>
+        <groups:listOfGroups>
+            <groups:group groups:id="c" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="p" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-pass-00-01.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-pass-00-01.xml
new file mode 100644
index 0000000..84c0fce
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010301-pass-00-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-01.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-01.xml
new file mode 100644
index 0000000..575c5c6
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-01.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="1id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-02.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-02.xml
new file mode 100644
index 0000000..ec491e8
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-02.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="2id_2" groups:name="someString">
+                    <groups:member groups:id="id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-03.xml b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-03.xml
new file mode 100644
index 0000000..ff9332e
--- /dev/null
+++ b/src/sbml/packages/groups/validator/test/test-data/identifier-constraints/4010302-fail-01-03.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml groups:required="false" level="3" version="1" xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:groups="http://www.sbml.org/sbml/level3/version1/groups/version1">
+    <model>
+        <groups:listOfGroups>
+            <groups:group groups:id="id_1" groups:kind="classification" groups:name="someString">
+                <groups:listOfMembers groups:id="id_2" groups:name="someString">
+                    <groups:member groups:id="3id_3" groups:idRef="p" groups:name="someString"/>
+                </groups:listOfMembers>
+            </groups:group>
+        </groups:listOfGroups>
+        <listOfParameters>
+            <parameter id="p" constant="true"/>
+        </listOfParameters>
+    </model>
+</sbml>
+
diff --git a/src/sbml/packages/layout/Makefile.in b/src/sbml/packages/layout/Makefile.in
index aab2e97..988d96c 100644
--- a/src/sbml/packages/layout/Makefile.in
+++ b/src/sbml/packages/layout/Makefile.in
@@ -11,7 +11,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/common/LayoutExtensionTypes.h b/src/sbml/packages/layout/common/LayoutExtensionTypes.h
index 7406241..c552606 100644
--- a/src/sbml/packages/layout/common/LayoutExtensionTypes.h
+++ b/src/sbml/packages/layout/common/LayoutExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/common/layoutfwd.h b/src/sbml/packages/layout/common/layoutfwd.h
index 7cf9f8b..bfd2e7a 100644
--- a/src/sbml/packages/layout/common/layoutfwd.h
+++ b/src/sbml/packages/layout/common/layoutfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/LayoutExtension.cpp b/src/sbml/packages/layout/extension/LayoutExtension.cpp
index 185cc3b..1490b58 100644
--- a/src/sbml/packages/layout/extension/LayoutExtension.cpp
+++ b/src/sbml/packages/layout/extension/LayoutExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/LayoutExtension.h b/src/sbml/packages/layout/extension/LayoutExtension.h
index ce51946..f9cd3f3 100644
--- a/src/sbml/packages/layout/extension/LayoutExtension.h
+++ b/src/sbml/packages/layout/extension/LayoutExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/LayoutModelPlugin.cpp b/src/sbml/packages/layout/extension/LayoutModelPlugin.cpp
index d3eaf1d..53a7651 100644
--- a/src/sbml/packages/layout/extension/LayoutModelPlugin.cpp
+++ b/src/sbml/packages/layout/extension/LayoutModelPlugin.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/LayoutModelPlugin.h b/src/sbml/packages/layout/extension/LayoutModelPlugin.h
index c5e4355..28b7799 100644
--- a/src/sbml/packages/layout/extension/LayoutModelPlugin.h
+++ b/src/sbml/packages/layout/extension/LayoutModelPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.cpp b/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.cpp
index 86eb90d..dace697 100644
--- a/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   LayoutSBMLDocumentPlugin.cpp
- * @brief:  Implementation of the LayoutSBMLDocumentPlugin class
- * @author: Generated by autocreate code
+ * @file   LayoutSBMLDocumentPlugin.cpp
+ * @brief  Implementation of the LayoutSBMLDocumentPlugin class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.h b/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.h
index 8f6bf8f..c888480 100644
--- a/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.h
+++ b/src/sbml/packages/layout/extension/LayoutSBMLDocumentPlugin.h
@@ -1,13 +1,13 @@
 /**
- * @file:   LayoutSBMLDocumentPlugin.h
- * @brief:  Implementation of the LayoutSBMLDocumentPlugin class
- * @author: Generated by autocreate code
+ * @file   LayoutSBMLDocumentPlugin.h
+ * @brief  Implementation of the LayoutSBMLDocumentPlugin class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -34,8 +34,8 @@
  * @sbmlbrief{layout} Extension of SBMLDocument.
  *
  * The LayoutSBMLDocumentPlugin class inherits from the SBMLDocumentPlugin
- * class, and codifies the extentions to the SBMLDocument class defined in
- * the SBML Level 3 @ref layout "Layout" package ('layout').
+ * class, and codifies the extensions to the SBMLDocument class defined in
+ * the SBML Level 3 @ref layout (“layout”) package.
  *
  * The LayoutSBMLDocumentPlugin defines a
  * required flag named <code>required</code>, which indicates whether the
diff --git a/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.cpp b/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.cpp
index e1a5343..3ac8615 100644
--- a/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.cpp
+++ b/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.h b/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.h
index 3263ba5..c8ab1ce 100644
--- a/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.h
+++ b/src/sbml/packages/layout/extension/LayoutSpeciesReferencePlugin.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/extension/Makefile.in b/src/sbml/packages/layout/extension/Makefile.in
index e6e7877..62c7519 100644
--- a/src/sbml/packages/layout/extension/Makefile.in
+++ b/src/sbml/packages/layout/extension/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/BoundingBox.cpp b/src/sbml/packages/layout/sbml/BoundingBox.cpp
index e725d8f..c3f0bb1 100644
--- a/src/sbml/packages/layout/sbml/BoundingBox.cpp
+++ b/src/sbml/packages/layout/sbml/BoundingBox.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/BoundingBox.h b/src/sbml/packages/layout/sbml/BoundingBox.h
index be1edc0..21dc1b8 100644
--- a/src/sbml/packages/layout/sbml/BoundingBox.h
+++ b/src/sbml/packages/layout/sbml/BoundingBox.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/CompartmentGlyph.cpp b/src/sbml/packages/layout/sbml/CompartmentGlyph.cpp
index 950052e..753c00c 100644
--- a/src/sbml/packages/layout/sbml/CompartmentGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/CompartmentGlyph.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/CompartmentGlyph.h b/src/sbml/packages/layout/sbml/CompartmentGlyph.h
index 2bb18ff..35ce649 100644
--- a/src/sbml/packages/layout/sbml/CompartmentGlyph.h
+++ b/src/sbml/packages/layout/sbml/CompartmentGlyph.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/CubicBezier.cpp b/src/sbml/packages/layout/sbml/CubicBezier.cpp
index d401157..6f908d6 100644
--- a/src/sbml/packages/layout/sbml/CubicBezier.cpp
+++ b/src/sbml/packages/layout/sbml/CubicBezier.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/CubicBezier.h b/src/sbml/packages/layout/sbml/CubicBezier.h
index 07b4b4d..8a3049f 100644
--- a/src/sbml/packages/layout/sbml/CubicBezier.h
+++ b/src/sbml/packages/layout/sbml/CubicBezier.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Curve.cpp b/src/sbml/packages/layout/sbml/Curve.cpp
index 5f1d17d..b545386 100644
--- a/src/sbml/packages/layout/sbml/Curve.cpp
+++ b/src/sbml/packages/layout/sbml/Curve.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Curve.h b/src/sbml/packages/layout/sbml/Curve.h
index 635d88a..e99e9fe 100644
--- a/src/sbml/packages/layout/sbml/Curve.h
+++ b/src/sbml/packages/layout/sbml/Curve.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Dimensions.cpp b/src/sbml/packages/layout/sbml/Dimensions.cpp
index 07c13ae..6089451 100644
--- a/src/sbml/packages/layout/sbml/Dimensions.cpp
+++ b/src/sbml/packages/layout/sbml/Dimensions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Dimensions.h b/src/sbml/packages/layout/sbml/Dimensions.h
index e277bd1..e69ed85 100644
--- a/src/sbml/packages/layout/sbml/Dimensions.h
+++ b/src/sbml/packages/layout/sbml/Dimensions.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/GeneralGlyph.cpp b/src/sbml/packages/layout/sbml/GeneralGlyph.cpp
index 4b26c29..2c90cc5 100644
--- a/src/sbml/packages/layout/sbml/GeneralGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/GeneralGlyph.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/GeneralGlyph.h b/src/sbml/packages/layout/sbml/GeneralGlyph.h
index 3612129..f96769a 100644
--- a/src/sbml/packages/layout/sbml/GeneralGlyph.h
+++ b/src/sbml/packages/layout/sbml/GeneralGlyph.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/GraphicalObject.cpp b/src/sbml/packages/layout/sbml/GraphicalObject.cpp
index d7cf6b3..21ab46f 100644
--- a/src/sbml/packages/layout/sbml/GraphicalObject.cpp
+++ b/src/sbml/packages/layout/sbml/GraphicalObject.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/GraphicalObject.h b/src/sbml/packages/layout/sbml/GraphicalObject.h
index c5c2092..d6df1f0 100644
--- a/src/sbml/packages/layout/sbml/GraphicalObject.h
+++ b/src/sbml/packages/layout/sbml/GraphicalObject.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Layout.cpp b/src/sbml/packages/layout/sbml/Layout.cpp
index dbc9d0e..0041285 100644
--- a/src/sbml/packages/layout/sbml/Layout.cpp
+++ b/src/sbml/packages/layout/sbml/Layout.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1634,7 +1634,7 @@ Layout::writeAttributes (XMLOutputStream& stream) const
 
   if (isSetName())
   {
-    stream.writeAttribute("name", getPrefix(), mId);
+    stream.writeAttribute("name", getPrefix(), mName);
   }
 
   //
diff --git a/src/sbml/packages/layout/sbml/Layout.h b/src/sbml/packages/layout/sbml/Layout.h
index 7e148d9..a51357d 100644
--- a/src/sbml/packages/layout/sbml/Layout.h
+++ b/src/sbml/packages/layout/sbml/Layout.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/LineSegment.cpp b/src/sbml/packages/layout/sbml/LineSegment.cpp
index a1a6e98..8d219ee 100644
--- a/src/sbml/packages/layout/sbml/LineSegment.cpp
+++ b/src/sbml/packages/layout/sbml/LineSegment.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/LineSegment.h b/src/sbml/packages/layout/sbml/LineSegment.h
index e46b9bf..226974e 100644
--- a/src/sbml/packages/layout/sbml/LineSegment.h
+++ b/src/sbml/packages/layout/sbml/LineSegment.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Makefile.in b/src/sbml/packages/layout/sbml/Makefile.in
index 14f951f..f7ac2e6 100644
--- a/src/sbml/packages/layout/sbml/Makefile.in
+++ b/src/sbml/packages/layout/sbml/Makefile.in
@@ -11,7 +11,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Point.cpp b/src/sbml/packages/layout/sbml/Point.cpp
index 2f25b31..376d137 100644
--- a/src/sbml/packages/layout/sbml/Point.cpp
+++ b/src/sbml/packages/layout/sbml/Point.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/Point.h b/src/sbml/packages/layout/sbml/Point.h
index b4b894c..691e4a8 100644
--- a/src/sbml/packages/layout/sbml/Point.h
+++ b/src/sbml/packages/layout/sbml/Point.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/ReactionGlyph.cpp b/src/sbml/packages/layout/sbml/ReactionGlyph.cpp
index cc56d0d..0c14680 100644
--- a/src/sbml/packages/layout/sbml/ReactionGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/ReactionGlyph.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/ReactionGlyph.h b/src/sbml/packages/layout/sbml/ReactionGlyph.h
index 18d4cbf..a7724be 100644
--- a/src/sbml/packages/layout/sbml/ReactionGlyph.h
+++ b/src/sbml/packages/layout/sbml/ReactionGlyph.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/ReferenceGlyph.cpp b/src/sbml/packages/layout/sbml/ReferenceGlyph.cpp
index 625ef81..2777451 100644
--- a/src/sbml/packages/layout/sbml/ReferenceGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/ReferenceGlyph.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/ReferenceGlyph.h b/src/sbml/packages/layout/sbml/ReferenceGlyph.h
index ffaf521..abf700e 100644
--- a/src/sbml/packages/layout/sbml/ReferenceGlyph.h
+++ b/src/sbml/packages/layout/sbml/ReferenceGlyph.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/SpeciesGlyph.cpp b/src/sbml/packages/layout/sbml/SpeciesGlyph.cpp
index 978a42c..d0ddd28 100644
--- a/src/sbml/packages/layout/sbml/SpeciesGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/SpeciesGlyph.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/SpeciesGlyph.h b/src/sbml/packages/layout/sbml/SpeciesGlyph.h
index a121921..9b1fd05 100644
--- a/src/sbml/packages/layout/sbml/SpeciesGlyph.h
+++ b/src/sbml/packages/layout/sbml/SpeciesGlyph.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.cpp b/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.cpp
index ae664cf..8c921c9 100644
--- a/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.h b/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.h
index d0e4725..f6be336 100644
--- a/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.h
+++ b/src/sbml/packages/layout/sbml/SpeciesReferenceGlyph.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/SpeciesReferenceRole.h b/src/sbml/packages/layout/sbml/SpeciesReferenceRole.h
index e2c2e28..d2d7fe7 100644
--- a/src/sbml/packages/layout/sbml/SpeciesReferenceRole.h
+++ b/src/sbml/packages/layout/sbml/SpeciesReferenceRole.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/TextGlyph.cpp b/src/sbml/packages/layout/sbml/TextGlyph.cpp
index 0ac2e29..6c49c0c 100644
--- a/src/sbml/packages/layout/sbml/TextGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/TextGlyph.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/TextGlyph.h b/src/sbml/packages/layout/sbml/TextGlyph.h
index 3403d5e..2236953 100644
--- a/src/sbml/packages/layout/sbml/TextGlyph.h
+++ b/src/sbml/packages/layout/sbml/TextGlyph.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/CMakeLists.txt b/src/sbml/packages/layout/sbml/test/CMakeLists.txt
index 62b8ad5..ab0871f 100644
--- a/src/sbml/packages/layout/sbml/test/CMakeLists.txt
+++ b/src/sbml/packages/layout/sbml/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/Makefile.in b/src/sbml/packages/layout/sbml/test/Makefile.in
index 84bef5e..1f6158a 100644
--- a/src/sbml/packages/layout/sbml/test/Makefile.in
+++ b/src/sbml/packages/layout/sbml/test/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestBoundingBox.cpp b/src/sbml/packages/layout/sbml/test/TestBoundingBox.cpp
index c8ad1fc..1fddb82 100644
--- a/src/sbml/packages/layout/sbml/test/TestBoundingBox.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestBoundingBox.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestCompartmentGlyph.cpp b/src/sbml/packages/layout/sbml/test/TestCompartmentGlyph.cpp
index 19127fd..1984630 100644
--- a/src/sbml/packages/layout/sbml/test/TestCompartmentGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestCompartmentGlyph.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestCubicBezier.cpp b/src/sbml/packages/layout/sbml/test/TestCubicBezier.cpp
index e68177d..179fd55 100644
--- a/src/sbml/packages/layout/sbml/test/TestCubicBezier.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestCubicBezier.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestCurve.cpp b/src/sbml/packages/layout/sbml/test/TestCurve.cpp
index dffe405..13195ba 100644
--- a/src/sbml/packages/layout/sbml/test/TestCurve.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestCurve.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestDimensions.cpp b/src/sbml/packages/layout/sbml/test/TestDimensions.cpp
index 2dd7932..c95bc16 100644
--- a/src/sbml/packages/layout/sbml/test/TestDimensions.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestDimensions.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestGeneralGlyph.cpp b/src/sbml/packages/layout/sbml/test/TestGeneralGlyph.cpp
index 3bba28f..654da0e 100644
--- a/src/sbml/packages/layout/sbml/test/TestGeneralGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestGeneralGlyph.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestGraphicalObject.cpp b/src/sbml/packages/layout/sbml/test/TestGraphicalObject.cpp
index c466360..106fbb7 100644
--- a/src/sbml/packages/layout/sbml/test/TestGraphicalObject.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestGraphicalObject.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestLayout.cpp b/src/sbml/packages/layout/sbml/test/TestLayout.cpp
index 40a7f5c..2c445d8 100644
--- a/src/sbml/packages/layout/sbml/test/TestLayout.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestLayout.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestLayoutCreation.cpp b/src/sbml/packages/layout/sbml/test/TestLayoutCreation.cpp
index 198addb..f7b4390 100644
--- a/src/sbml/packages/layout/sbml/test/TestLayoutCreation.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestLayoutCreation.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestLayoutFormatter.cpp b/src/sbml/packages/layout/sbml/test/TestLayoutFormatter.cpp
index d1a47ba..ba68f13 100644
--- a/src/sbml/packages/layout/sbml/test/TestLayoutFormatter.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestLayoutFormatter.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestLayoutWriting.cpp b/src/sbml/packages/layout/sbml/test/TestLayoutWriting.cpp
index 8f686ec..a2d8c92 100644
--- a/src/sbml/packages/layout/sbml/test/TestLayoutWriting.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestLayoutWriting.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestLineSegment.cpp b/src/sbml/packages/layout/sbml/test/TestLineSegment.cpp
index 8e61b43..02e317c 100644
--- a/src/sbml/packages/layout/sbml/test/TestLineSegment.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestLineSegment.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestPoint.cpp b/src/sbml/packages/layout/sbml/test/TestPoint.cpp
index 4875ba4..699bcf9 100644
--- a/src/sbml/packages/layout/sbml/test/TestPoint.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestPoint.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestReactionGlyph.cpp b/src/sbml/packages/layout/sbml/test/TestReactionGlyph.cpp
index d99998e..812cdc9 100644
--- a/src/sbml/packages/layout/sbml/test/TestReactionGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestReactionGlyph.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestReferenceGlyph.cpp b/src/sbml/packages/layout/sbml/test/TestReferenceGlyph.cpp
index 0624226..94c0f76 100644
--- a/src/sbml/packages/layout/sbml/test/TestReferenceGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestReferenceGlyph.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestRunner.c b/src/sbml/packages/layout/sbml/test/TestRunner.c
index 4390d3b..0b4db77 100644
--- a/src/sbml/packages/layout/sbml/test/TestRunner.c
+++ b/src/sbml/packages/layout/sbml/test/TestRunner.c
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestSBMLHandler.cpp b/src/sbml/packages/layout/sbml/test/TestSBMLHandler.cpp
index b9aabdd..6648937 100644
--- a/src/sbml/packages/layout/sbml/test/TestSBMLHandler.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestSBMLHandler.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestSpeciesGlyph.cpp b/src/sbml/packages/layout/sbml/test/TestSpeciesGlyph.cpp
index 61ec99c..ca2492e 100644
--- a/src/sbml/packages/layout/sbml/test/TestSpeciesGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestSpeciesGlyph.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestSpeciesReferenceGlyph.cpp b/src/sbml/packages/layout/sbml/test/TestSpeciesReferenceGlyph.cpp
index a212093..a9ed4ef 100644
--- a/src/sbml/packages/layout/sbml/test/TestSpeciesReferenceGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestSpeciesReferenceGlyph.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/sbml/test/TestTextGlyph.cpp b/src/sbml/packages/layout/sbml/test/TestTextGlyph.cpp
index 50c84f4..40a437d 100644
--- a/src/sbml/packages/layout/sbml/test/TestTextGlyph.cpp
+++ b/src/sbml/packages/layout/sbml/test/TestTextGlyph.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/util/LayoutAnnotation.cpp b/src/sbml/packages/layout/util/LayoutAnnotation.cpp
index 1cf817f..0a8ade6 100644
--- a/src/sbml/packages/layout/util/LayoutAnnotation.cpp
+++ b/src/sbml/packages/layout/util/LayoutAnnotation.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/util/LayoutAnnotation.h b/src/sbml/packages/layout/util/LayoutAnnotation.h
index 4857918..57c1cbe 100644
--- a/src/sbml/packages/layout/util/LayoutAnnotation.h
+++ b/src/sbml/packages/layout/util/LayoutAnnotation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/util/LayoutUtilities.cpp b/src/sbml/packages/layout/util/LayoutUtilities.cpp
index 35ad4d7..de3b6ce 100644
--- a/src/sbml/packages/layout/util/LayoutUtilities.cpp
+++ b/src/sbml/packages/layout/util/LayoutUtilities.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/util/LayoutUtilities.h b/src/sbml/packages/layout/util/LayoutUtilities.h
index 275a3b6..1dcfcd4 100644
--- a/src/sbml/packages/layout/util/LayoutUtilities.h
+++ b/src/sbml/packages/layout/util/LayoutUtilities.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/util/Makefile.in b/src/sbml/packages/layout/util/Makefile.in
index 779c9a3..f286954 100644
--- a/src/sbml/packages/layout/util/Makefile.in
+++ b/src/sbml/packages/layout/util/Makefile.in
@@ -11,7 +11,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutConsistencyValidator.cpp b/src/sbml/packages/layout/validator/LayoutConsistencyValidator.cpp
index 1d86e66..241c163 100644
--- a/src/sbml/packages/layout/validator/LayoutConsistencyValidator.cpp
+++ b/src/sbml/packages/layout/validator/LayoutConsistencyValidator.cpp
@@ -1,14 +1,14 @@
 /** @cond doxygenLibsbmlInternal */
 /**
- * @file:   LayoutConsistencyValidator.cpp
- * @brief:  Implementation of the LayoutConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file   LayoutConsistencyValidator.cpp
+ * @brief  Implementation of the LayoutConsistencyValidator class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutConsistencyValidator.h b/src/sbml/packages/layout/validator/LayoutConsistencyValidator.h
index ee88079..dd2fb15 100644
--- a/src/sbml/packages/layout/validator/LayoutConsistencyValidator.h
+++ b/src/sbml/packages/layout/validator/LayoutConsistencyValidator.h
@@ -1,15 +1,15 @@
 /**
  * @cond doxygenLibsbmlInternal
  *
- * @file:   LayoutConsistencyValidator.h
- * @brief:  Implementation of the LayoutConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file   LayoutConsistencyValidator.h
+ * @brief  Implementation of the LayoutConsistencyValidator class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.cpp b/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.cpp
index 6dad6c7..9479fb1 100644
--- a/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.cpp
@@ -1,14 +1,14 @@
 /** @cond doxygenLibsbmlInternal */
 /**
- * @file:   LayoutIdentifierConsistencyValidator.cpp
- * @brief:  Implementation of the LayoutIdentifierConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file   LayoutIdentifierConsistencyValidator.cpp
+ * @brief  Implementation of the LayoutIdentifierConsistencyValidator class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.h b/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.h
index d940e4a..5ea0b36 100644
--- a/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/layout/validator/LayoutIdentifierConsistencyValidator.h
@@ -1,15 +1,15 @@
 /**
  * @cond doxygenLibsbmlInternal
  *
- * @file:   LayoutIdentifierConsistencyValidator.h
- * @brief:  Implementation of the LayoutIdentifierConsistencyValidator class
- * @author: Generated by autocreate code
+ * @file   LayoutIdentifierConsistencyValidator.h
+ * @brief  Implementation of the LayoutIdentifierConsistencyValidator class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutSBMLError.h b/src/sbml/packages/layout/validator/LayoutSBMLError.h
index 36b964b..3c978bb 100644
--- a/src/sbml/packages/layout/validator/LayoutSBMLError.h
+++ b/src/sbml/packages/layout/validator/LayoutSBMLError.h
@@ -1,13 +1,13 @@
 /**
- * @file:   LayoutSBMLError.h
- * @brief:  Implementation of the LayoutSBMLError class
- * @author: Generated by autocreate code
+ * @file   LayoutSBMLError.h
+ * @brief  Implementation of the LayoutSBMLError class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutSBMLErrorTable.h b/src/sbml/packages/layout/validator/LayoutSBMLErrorTable.h
index 62f3a86..e5e04a6 100644
--- a/src/sbml/packages/layout/validator/LayoutSBMLErrorTable.h
+++ b/src/sbml/packages/layout/validator/LayoutSBMLErrorTable.h
@@ -1,15 +1,15 @@
 /**
  * @cond doxygenLibsbmlInternal
  *
- * @file:   LayoutSBMLErrorTable.h
- * @brief:  Implementation of the LayoutSBMLErrorTable class
- * @author: Generated by autocreate code
+ * @file   LayoutSBMLErrorTable.h
+ * @brief  Implementation of the LayoutSBMLErrorTable class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutValidator.cpp b/src/sbml/packages/layout/validator/LayoutValidator.cpp
index 26d0ddc..351f877 100644
--- a/src/sbml/packages/layout/validator/LayoutValidator.cpp
+++ b/src/sbml/packages/layout/validator/LayoutValidator.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   LayoutValidator.cpp
- * @brief:  Implementation of the LayoutValidator class
- * @author: Generated by autocreate code
+ * @file   LayoutValidator.cpp
+ * @brief  Implementation of the LayoutValidator class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/LayoutValidator.h b/src/sbml/packages/layout/validator/LayoutValidator.h
index daacef3..5423c0b 100644
--- a/src/sbml/packages/layout/validator/LayoutValidator.h
+++ b/src/sbml/packages/layout/validator/LayoutValidator.h
@@ -1,13 +1,13 @@
 /**
- * @file:   LayoutValidator.h
- * @brief:  Implementation of the LayoutValidator class
- * @author: Generated by autocreate code
+ * @file   LayoutValidator.h
+ * @brief  Implementation of the LayoutValidator class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/Makefile.in b/src/sbml/packages/layout/validator/Makefile.in
index 8b4d5f5..0f4a52b 100644
--- a/src/sbml/packages/layout/validator/Makefile.in
+++ b/src/sbml/packages/layout/validator/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraints.cpp b/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraints.cpp
index 4532501..e5efdc1 100644
--- a/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraints.cpp
+++ b/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraints.cpp
@@ -1,14 +1,14 @@
 /** @cond doxygenLibsbmlInternal */
 /**
- * @file:   LayoutConsistencyConstraints.cpp
- * @brief:  Implementation of the LayoutConsistencyConstraints class
- * @author: Generated by autocreate code
+ * @file   LayoutConsistencyConstraints.cpp
+ * @brief  Implementation of the LayoutConsistencyConstraints class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraintsDeclared.cxx b/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraintsDeclared.cxx
index d179b6a..96f497d 100644
--- a/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/layout/validator/constraints/LayoutConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraints.cpp b/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraints.cpp
index ac4dbe6..a737023 100644
--- a/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraints.cpp
@@ -1,14 +1,14 @@
 /** @cond doxygenLibsbmlInternal */
 /**
- * @file:   LayoutIdentifierConsistencyConstraints.cpp
- * @brief:  Implementation of the LayoutIdentifierConsistencyConstraints class
- * @author: Generated by autocreate code
+ * @file   LayoutIdentifierConsistencyConstraints.cpp
+ * @brief  Implementation of the LayoutIdentifierConsistencyConstraints class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraintsDeclared.cxx b/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraintsDeclared.cxx
index 09601dd..866c536 100644
--- a/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/layout/validator/constraints/LayoutIdentifierConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/constraints/Makefile.in b/src/sbml/packages/layout/validator/constraints/Makefile.in
index 502b7b3..fa64a5c 100644
--- a/src/sbml/packages/layout/validator/constraints/Makefile.in
+++ b/src/sbml/packages/layout/validator/constraints/Makefile.in
@@ -8,12 +8,12 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
 ## 
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.cpp b/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.cpp
index 5bb3f10..e585f25 100644
--- a/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.cpp
+++ b/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.h b/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.h
index ca206ff..c10bf12 100644
--- a/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.h
+++ b/src/sbml/packages/layout/validator/constraints/UniqueIdsLayout.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/CMakeLists.txt b/src/sbml/packages/layout/validator/test/CMakeLists.txt
index af1df0a..e801030 100644
--- a/src/sbml/packages/layout/validator/test/CMakeLists.txt
+++ b/src/sbml/packages/layout/validator/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/Makefile.in b/src/sbml/packages/layout/validator/test/Makefile.in
index b018d23..4422a21 100644
--- a/src/sbml/packages/layout/validator/test/Makefile.in
+++ b/src/sbml/packages/layout/validator/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/TestFile.cpp b/src/sbml/packages/layout/validator/test/TestFile.cpp
index 57c5bff..c056db8 100644
--- a/src/sbml/packages/layout/validator/test/TestFile.cpp
+++ b/src/sbml/packages/layout/validator/test/TestFile.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/TestFile.h b/src/sbml/packages/layout/validator/test/TestFile.h
index 666c75f..f5b70e8 100644
--- a/src/sbml/packages/layout/validator/test/TestFile.h
+++ b/src/sbml/packages/layout/validator/test/TestFile.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/TestLayoutConsistencyValidator.cpp b/src/sbml/packages/layout/validator/test/TestLayoutConsistencyValidator.cpp
index 4f60062..b896848 100644
--- a/src/sbml/packages/layout/validator/test/TestLayoutConsistencyValidator.cpp
+++ b/src/sbml/packages/layout/validator/test/TestLayoutConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/TestValidator.cpp b/src/sbml/packages/layout/validator/test/TestValidator.cpp
index 1924a12..401177d 100644
--- a/src/sbml/packages/layout/validator/test/TestValidator.cpp
+++ b/src/sbml/packages/layout/validator/test/TestValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/TestValidator.h b/src/sbml/packages/layout/validator/test/TestValidator.h
index aac30ad..d5dc8ad 100644
--- a/src/sbml/packages/layout/validator/test/TestValidator.h
+++ b/src/sbml/packages/layout/validator/test/TestValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/layout/validator/test/test-data/Makefile.in b/src/sbml/packages/layout/validator/test/test-data/Makefile.in
index eb2d316..548910b 100644
--- a/src/sbml/packages/layout/validator/test/test-data/Makefile.in
+++ b/src/sbml/packages/layout/validator/test/test-data/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi-register.cxx b/src/sbml/packages/multi-register.cxx
index ed4c402..28d622a 100644
--- a/src/sbml/packages/multi-register.cxx
+++ b/src/sbml/packages/multi-register.cxx
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi-register.h b/src/sbml/packages/multi-register.h
index af4088b..804076f 100644
--- a/src/sbml/packages/multi-register.h
+++ b/src/sbml/packages/multi-register.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/common/MultiExtensionTypes.h b/src/sbml/packages/multi/common/MultiExtensionTypes.h
index eb3126c..e6ae549 100644
--- a/src/sbml/packages/multi/common/MultiExtensionTypes.h
+++ b/src/sbml/packages/multi/common/MultiExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -47,13 +47,13 @@
 
 #include <sbml/packages/multi/sbml/BindingSiteSpeciesType.h>
 #include <sbml/packages/multi/sbml/CompartmentReference.h>
-#include <sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h>
 #include <sbml/packages/multi/sbml/InSpeciesTypeBond.h>
 #include <sbml/packages/multi/sbml/IntraSpeciesReaction.h>
 #include <sbml/packages/multi/sbml/MultiSpeciesType.h>
 #include <sbml/packages/multi/sbml/OutwardBindingSite.h>
 #include <sbml/packages/multi/sbml/PossibleSpeciesFeatureValue.h>
 #include <sbml/packages/multi/sbml/SpeciesFeature.h>
+#include <sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h>
 #include <sbml/packages/multi/sbml/SpeciesFeatureChange.h>
 #include <sbml/packages/multi/sbml/SpeciesFeatureType.h>
 #include <sbml/packages/multi/sbml/SpeciesFeatureValue.h>
@@ -61,5 +61,6 @@
 #include <sbml/packages/multi/sbml/SpeciesTypeComponentMapInProduct.h>
 #include <sbml/packages/multi/sbml/SpeciesTypeInstance.h>
 
+
 #endif  /* MultiExtensionTypes_H */
 
diff --git a/src/sbml/packages/multi/common/multifwd.h b/src/sbml/packages/multi/common/multifwd.h
index f74e84f..97d9ddc 100644
--- a/src/sbml/packages/multi/common/multifwd.h
+++ b/src/sbml/packages/multi/common/multifwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -55,7 +55,6 @@ typedef CLASS_OR_STRUCT SpeciesFeatureValue    SpeciesFeatureValue_t;
 typedef CLASS_OR_STRUCT CompartmentReference    CompartmentReference_t;
 typedef CLASS_OR_STRUCT SpeciesTypeInstance    SpeciesTypeInstance_t;
 typedef CLASS_OR_STRUCT InSpeciesTypeBond    InSpeciesTypeBond_t;
-typedef CLASS_OR_STRUCT DenotedSpeciesTypeComponentIndex    DenotedSpeciesTypeComponentIndex_t;
 typedef CLASS_OR_STRUCT OutwardBindingSite    OutwardBindingSite_t;
 typedef CLASS_OR_STRUCT SpeciesFeatureChange    SpeciesFeatureChange_t;
 typedef CLASS_OR_STRUCT SpeciesFeatureType    SpeciesFeatureType_t;
diff --git a/src/sbml/packages/multi/extension/MultiASTPlugin.cpp b/src/sbml/packages/multi/extension/MultiASTPlugin.cpp
index f3b52f6..08cd077 100644
--- a/src/sbml/packages/multi/extension/MultiASTPlugin.cpp
+++ b/src/sbml/packages/multi/extension/MultiASTPlugin.cpp
@@ -122,7 +122,8 @@ MultiASTPlugin::createObject(XMLInputStream& stream)
 }
 
 bool
-MultiASTPlugin::read(XMLInputStream& stream, const std::string& reqd_prefix)
+MultiASTPlugin::read(XMLInputStream& stream, const std::string& reqd_prefix,
+                                            const XMLToken& currentElement)
 {
   bool read = false;
   //const XMLToken element = stream.peek();
@@ -429,7 +430,7 @@ MultiASTPlugin::hasAttributesSet() const
       if (ast != NULL)
       {
         MultiASTPlugin* mp = 
-                        static_cast<MultiASTPlugin*>(ast->getPlugin("multi"));
+                        dynamic_cast<MultiASTPlugin*>(ast->getPlugin("multi"));
         if (mp != NULL)
         {
           hasAttributes = mp->hasAttributesSet();
diff --git a/src/sbml/packages/multi/extension/MultiASTPlugin.h b/src/sbml/packages/multi/extension/MultiASTPlugin.h
index 9eccdba..3bdf1f1 100644
--- a/src/sbml/packages/multi/extension/MultiASTPlugin.h
+++ b/src/sbml/packages/multi/extension/MultiASTPlugin.h
@@ -177,7 +177,8 @@ public:
 
 //  using ASTBasePlugin::read;
 
-  virtual bool read(XMLInputStream& stream, const std::string& reqd_prefix="");
+  virtual bool read(XMLInputStream& stream, const std::string& reqd_prefix,
+                                            const XMLToken& currentElement);
 
   virtual void addExpectedAttributes(ExpectedAttributes& attributes, 
                                      XMLInputStream& stream, int type);
diff --git a/src/sbml/packages/multi/extension/MultiExtension.h b/src/sbml/packages/multi/extension/MultiExtension.h
index 410ff9a..d8e4d3e 100644
--- a/src/sbml/packages/multi/extension/MultiExtension.h
+++ b/src/sbml/packages/multi/extension/MultiExtension.h
@@ -306,7 +306,6 @@ typedef enum
   , SBML_MULTI_COMPARTMENT_REFERENCE = 1402
   , SBML_MULTI_SPECIES_TYPE_INSTANCE = 1403
   , SBML_MULTI_IN_SPECIES_TYPE_BOND = 1404
-  , SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX = 1405
   , SBML_MULTI_OUTWARD_BINDING_SITE = 1406
   , SBML_MULTI_SPECIES_FEATURE_CHANGE = 1407
   , SBML_MULTI_SPECIES_FEATURE_TYPE = 1408
diff --git a/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.cpp b/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.cpp
index cf98eb1..5af134e 100644
--- a/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.cpp
+++ b/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.cpp
@@ -95,10 +95,12 @@ MultiListOfReactionsPlugin::clone () const
 bool
 MultiListOfReactionsPlugin::accept(SBMLVisitor& v) const
 {
-  const Model * model = static_cast<const Model * >(this->getParentSBMLObject());
+  // here we dont need to do this as the constraints to the model
+  // have already been applied via the multimodelplugin
+  //const Model * model = static_cast<const Model * >(this->getParentSBMLObject());
 
-  v.visit(*model);
-  v.leave(*model);
+  //v.visit(*model);
+  //v.leave(*model);
 
   return true;
 }
@@ -110,6 +112,44 @@ MultiListOfReactionsPlugin::isValidTypeForList(SBase* item) const
       item->getTypeCode() == SBML_MULTI_INTRA_SPECIES_REACTION;
 }
 
+SBase*
+MultiListOfReactionsPlugin::createObject (XMLInputStream& stream)
+{
+  const string& name   = stream.peek().getName();
+  SBase*        object = NULL;
+
+
+  if (name == "intraSpeciesReaction")
+  {
+    try
+    {
+       MULTI_CREATE_NS(multins, getSBMLNamespaces());
+       object = new IntraSpeciesReaction(multins);
+       delete multins;
+    }
+    catch (SBMLConstructorException*)
+    {
+      object = new IntraSpeciesReaction(SBMLDocument::getDefaultLevel(),
+        SBMLDocument::getDefaultVersion());
+    }
+    catch ( ... )
+    {
+      object = new IntraSpeciesReaction(SBMLDocument::getDefaultLevel(),
+        SBMLDocument::getDefaultVersion());
+    }
+
+    if (object != NULL)
+    {
+      ListOf * lo = dynamic_cast<ListOf*>(getParentSBMLObject());
+      if (lo != NULL)
+        lo->appendAndOwn(object);
+    }
+  }
+
+  return object;
+}
+
+
 
 LIBSBML_CPP_NAMESPACE_END
 
diff --git a/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.h b/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.h
index 005390e..8dcb2c4 100644
--- a/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.h
+++ b/src/sbml/packages/multi/extension/MultiListOfReactionsPlugin.h
@@ -39,6 +39,7 @@
 
 #include <sbml/extension/SBasePlugin.h>
 #include <sbml/packages/multi/extension/MultiExtension.h>
+#include <sbml/packages/multi/sbml/IntraSpeciesReaction.h>
 
 
 LIBSBML_CPP_NAMESPACE_BEGIN
@@ -94,6 +95,8 @@ public:
   //
   //---------------------------------------------------------------
 
+  SBase* createObject (XMLInputStream& stream);
+
 
   /** @cond doxygenLibsbmlInternal */
 
diff --git a/src/sbml/packages/multi/extension/MultiSpeciesPlugin.cpp b/src/sbml/packages/multi/extension/MultiSpeciesPlugin.cpp
index bedeaa9..df43d68 100644
--- a/src/sbml/packages/multi/extension/MultiSpeciesPlugin.cpp
+++ b/src/sbml/packages/multi/extension/MultiSpeciesPlugin.cpp
@@ -54,6 +54,7 @@ MultiSpeciesPlugin::MultiSpeciesPlugin(const std::string& uri,
   , mSpeciesFeatures (multins)
    ,mSpeciesType ("")
 {
+  connectToChild();
 }
 
 
@@ -163,7 +164,7 @@ MultiSpeciesPlugin::writeElements (XMLOutputStream& stream) const
   { 
     mOutwardBindingSites.write(stream);
   } 
-  if (getNumSpeciesFeatures() > 0) 
+  if (getNumSpeciesFeatures() > 0 || getNumSubListOfSpeciesFeatures() > 0)
   { 
     mSpeciesFeatures.write(stream);
   } 
@@ -640,19 +641,94 @@ MultiSpeciesPlugin::createSpeciesFeature ()
   return sf;
 }
 
+/*
+ * Returns the SubListOfSpeciesFeatures object that belongs to the given index.
+ */
+const SubListOfSpeciesFeatures*
+MultiSpeciesPlugin::getSubListOfSpeciesFeatures(unsigned int n) const
+{
+  return static_cast<const SubListOfSpeciesFeatures*>(mSpeciesFeatures.getSubListOfSpeciesFeatures(n));
+}
+
+
+/*
+ * Returns the SubListOfSpeciesFeatures object that belongs to the given index.
+ */
+SubListOfSpeciesFeatures*
+MultiSpeciesPlugin::getSubListOfSpeciesFeatures(unsigned int n)
+{
+  return static_cast<SubListOfSpeciesFeatures*>(mSpeciesFeatures.getSubListOfSpeciesFeatures(n));
+}
+
+
+/*
+ * Returns the SubListOfSpeciesFeatures object based on its identifier.
+ */
+const SubListOfSpeciesFeatures*
+MultiSpeciesPlugin::getSubListOfSpeciesFeatures(const std::string& sid) const
+{
+  return static_cast<const SubListOfSpeciesFeatures*>(mSpeciesFeatures.getSubListOfSpeciesFeatures(sid));
+}
+
+
+/*
+ * Returns the SubListOfSpeciesFeatures object based on its identifier.
+ */
+SubListOfSpeciesFeatures*
+MultiSpeciesPlugin::getSubListOfSpeciesFeatures(const std::string& sid)
+{
+  return static_cast<SubListOfSpeciesFeatures*>(mSpeciesFeatures.getSubListOfSpeciesFeatures(sid));
+}
+
+
+/*
+ * Adds a copy of the given SubListOfSpeciesFeatures to the ListOfSpeciesFeatures in this plugin object.
+ */
+int
+MultiSpeciesPlugin::addSubListOfSpeciesFeatures (SubListOfSpeciesFeatures* subListOfSpeciesFeatures)
+{
+  if (subListOfSpeciesFeatures == NULL)
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
+  else if (subListOfSpeciesFeatures->hasRequiredElements() == false)
+  {
+    return LIBSBML_INVALID_OBJECT;
+  }
+  else if (getLevel() != subListOfSpeciesFeatures->getLevel())
+  {
+    return LIBSBML_LEVEL_MISMATCH;
+  }
+  else if (getVersion() != subListOfSpeciesFeatures->getVersion())
+  {
+    return LIBSBML_VERSION_MISMATCH;
+  }
+  else if (getPackageVersion() != subListOfSpeciesFeatures->getPackageVersion())
+  {
+    return LIBSBML_PKG_VERSION_MISMATCH;
+  }
+  else
+  {
+    mSpeciesFeatures.addSubListOfSpeciesFeatures(subListOfSpeciesFeatures);
+  }
+
+  return LIBSBML_OPERATION_SUCCESS;
+
+}
+
 
 /*
  * Creates a new SpeciesFeature object and adds it to the ListOfSpeciesFeatures in this plugin object.
  */
-ListOfSpeciesFeatures* 
+SubListOfSpeciesFeatures*
 MultiSpeciesPlugin::createSubListOfSpeciesFeatures ()
 {
-   ListOfSpeciesFeatures* losf = NULL;
+   SubListOfSpeciesFeatures* losf = NULL;
 
   try
   {
     MULTI_CREATE_NS(multins, getSBMLNamespaces());
-    losf = new ListOfSpeciesFeatures(multins);
+    losf = new SubListOfSpeciesFeatures(multins);
     delete multins;
   }
   catch(...)
@@ -662,8 +738,6 @@ MultiSpeciesPlugin::createSubListOfSpeciesFeatures ()
   if (losf != NULL)
   {
     mSpeciesFeatures.addSubListOfSpeciesFeatures(losf);
-    //static_cast<ListOfSpeciesFeatures*>(losf)->setIsSubList();
-    //mSpeciesFeaturesmSubListOfSpeciesFeatures->add(losf);
   }
 
   return losf;
@@ -696,7 +770,16 @@ MultiSpeciesPlugin::removeSpeciesFeature(const std::string& sid)
 unsigned int 
 MultiSpeciesPlugin::getNumSpeciesFeatures () const
 {
-  return mSpeciesFeatures.size();
+  return mSpeciesFeatures.getNumSpeciesFeatures();
+}
+
+/*
+ * Returns the number of SubListOfSpeciesFeatures objects in this plugin object.
+ */
+unsigned int
+MultiSpeciesPlugin::getNumSubListOfSpeciesFeatures () const
+{
+  return mSpeciesFeatures.getNumSubListOfSpeciesFeatures();
 }
 
 
@@ -740,6 +823,20 @@ MultiSpeciesPlugin::enablePackageInternal(const std::string& pkgURI,
   mSpeciesFeatures.enablePackageInternal(pkgURI, pkgPrefix, flag);
 }
 
+/** @cond doxygenLibsbmlInternal */
+
+/*
+ * Connects to child elements
+ */
+void
+MultiSpeciesPlugin::connectToChild()
+{
+  connectToParent(getParentSBMLObject());
+}
+
+/** @endcond */
+
+
 
 /*
  * Accept the SBMLVisitor.
@@ -760,6 +857,11 @@ MultiSpeciesPlugin::accept(SBMLVisitor& v) const
     getSpeciesFeature(i)->accept(v);
   }
 
+  for(unsigned int i = 0; i < getNumSubListOfSpeciesFeatures(); i++)
+  {
+    getSubListOfSpeciesFeatures(i)->accept(v);
+  }
+
   return true;
 }
 
diff --git a/src/sbml/packages/multi/extension/MultiSpeciesPlugin.h b/src/sbml/packages/multi/extension/MultiSpeciesPlugin.h
index c9f7fae..f70c0d7 100644
--- a/src/sbml/packages/multi/extension/MultiSpeciesPlugin.h
+++ b/src/sbml/packages/multi/extension/MultiSpeciesPlugin.h
@@ -42,6 +42,7 @@
 #include <sbml/extension/SBasePlugin.h>
 #include <sbml/packages/multi/sbml/OutwardBindingSite.h>
 #include <sbml/packages/multi/sbml/SpeciesFeature.h>
+#include <sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h>
 
 
 LIBSBML_CPP_NAMESPACE_BEGIN
@@ -416,12 +417,76 @@ public:
 
 
   /**
-   * Creates a new ListOfSpeciesFeatures object and 
-   * adds it to the ListOfSpeciesFeatures in this plugin object.
+   * Returns the SubListOfSpeciesFeatures object that belongs to the given index. If the
+   * index is invalid, NULL is returned.
+   *
+   * @param n the index number of the SubListOfSpeciesFeatures to get
    *
-   * @return the newly created ListOfSpeciesFeatures object.
+   * @return the nth SubListOfSpeciesFeatures in the ListOfSpeciesFeatures
    */
-  ListOfSpeciesFeatures* createSubListOfSpeciesFeatures ();
+  const SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(unsigned int n) const;
+
+
+  /**
+   * Returns the SubListOfSpeciesFeatures object that belongs to the given index. If the
+   * index is invalid, NULL is returned.
+   *
+   * @param n the index number of the SubListOfSpeciesFeatures to get
+   *
+   * @return the nth SubListOfSpeciesFeatures in the ListOfSpeciesFeatures
+   */
+  SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(unsigned int n);
+
+
+  /**
+   * Returns the SubListOfSpeciesFeatures object based on its identifier.
+   *
+   * @param sid a string representing the id of the SubListOfSpeciesFeatures to get
+   *
+   * @return SubListOfSpeciesFeatures in the ListOfSpeciesFeatures with the given id
+   * or NULL if no such SubListOfSpeciesFeatures exists.
+   *
+   * @see get(unsigned int n)
+   * @see size()
+   */
+  const SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(const std::string& sid) const;
+
+
+  /**
+   * Returns the SubListOfSpeciesFeatures object based on its identifier.
+   *
+   * @param sid a string representing the id of the SubListOfSpeciesFeatures to get
+   *
+   * @return SubListOfSpeciesFeatures in the ListOfSpeciesFeatures with the given id
+   * or NULL if no such SubListOfSpeciesFeatures exists.
+   *
+   * @see get(unsigned int n)
+   * @see size()
+   */
+  SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(const std::string& sid);
+
+
+  /**
+   * Adds a copy of the given SubListOfSpeciesFeatures to the ListOfSpeciesFeatures in this plugin object.
+   *
+   * @param SubListOfSpeciesFeatures the SubListOfSpeciesFeatures to be added.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li LIBSBML_OPERATION_SUCCESS
+   */
+  int addSubListOfSpeciesFeatures (SubListOfSpeciesFeatures* subListOfSpeciesFeatures);
+
+
+  /**
+   * Creates a new SubListOfSpeciesFeatures object and
+   * adds it to the SubListOfSpeciesFeatures in this plugin object.
+   *
+   * @return the newly created SubListOfSpeciesFeatures object.
+   */
+  SubListOfSpeciesFeatures* createSubListOfSpeciesFeatures ();
 
 
   /**
@@ -461,6 +526,13 @@ public:
    */
   unsigned int getNumSpeciesFeatures () const;
 
+  /**
+   * Returns the number of SubListOfSpeciesFeatures objects in this plugin object.
+   *
+   * @return the number of SubListOfSpeciesFeatures objects in this plugin object.
+   */
+  unsigned int getNumSubListOfSpeciesFeatures () const;
+
 
   /** @cond doxygenLibsbmlInternal */
 
@@ -477,6 +549,8 @@ public:
 
   virtual void connectToParent (SBase* sbase);
 
+  virtual void connectToChild();
+
 
   /** @endcond doxygenLibsbmlInternal */
 
@@ -542,7 +616,6 @@ protected:
 
   /** @endcond doxygenLibsbmlInternal */
 
-
 };
 
 
diff --git a/src/sbml/packages/multi/extension/test/CMakeLists.txt b/src/sbml/packages/multi/extension/test/CMakeLists.txt
index c77213b..0d70ff1 100644
--- a/src/sbml/packages/multi/extension/test/CMakeLists.txt
+++ b/src/sbml/packages/multi/extension/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ## 
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/extension/test/TestCheckConsistency.cpp b/src/sbml/packages/multi/extension/test/TestCheckConsistency.cpp
index 463e31e..7b5187b 100644
--- a/src/sbml/packages/multi/extension/test/TestCheckConsistency.cpp
+++ b/src/sbml/packages/multi/extension/test/TestCheckConsistency.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/extension/test/TestMultiAST.cpp b/src/sbml/packages/multi/extension/test/TestMultiAST.cpp
index 50c0a5d..4865238 100644
--- a/src/sbml/packages/multi/extension/test/TestMultiAST.cpp
+++ b/src/sbml/packages/multi/extension/test/TestMultiAST.cpp
@@ -201,6 +201,7 @@ START_TEST (test_multi_create_ci)
   math->addChild(ci1);
 
   kl->setMath(math);
+  delete math;
 
   std::string newModel = writeSBMLToStdString(document);
 
diff --git a/src/sbml/packages/multi/extension/test/TestMultiExtension.cpp b/src/sbml/packages/multi/extension/test/TestMultiExtension.cpp
index c1913b5..44d9e8d 100644
--- a/src/sbml/packages/multi/extension/test/TestMultiExtension.cpp
+++ b/src/sbml/packages/multi/extension/test/TestMultiExtension.cpp
@@ -16,6 +16,7 @@
 #include <sbml/extension/SBMLExtensionRegistry.h>
 #include <sbml/SBMLTypeCodes.h>
 #include <sbml/SBMLReader.h>
+#include <sbml/Model.h>
 #include <string>
 
 /** @cond doxygenIgnored */
@@ -258,7 +259,6 @@ START_TEST(test_MultiExtension_typecode)
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_MULTI_COMPARTMENT_REFERENCE), "CompartmentReference") == 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_MULTI_SPECIES_TYPE_INSTANCE), "SpeciesTypeInstance") == 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_MULTI_IN_SPECIES_TYPE_BOND), "InSpeciesTypeBond") == 0);
-  fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX), "DenotedSpeciesTypeComponentIndex") == 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_MULTI_OUTWARD_BINDING_SITE), "OutwardBindingSite") == 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_MULTI_SPECIES_FEATURE_CHANGE), "SpeciesFeatureChange") == 0);
   fail_unless(strcmp(sbext->getStringFromTypeCode(SBML_MULTI_SPECIES_FEATURE_TYPE), "SpeciesFeatureType") == 0);
@@ -277,23 +277,40 @@ END_TEST
 
 START_TEST(test_MultiExtension_SBMLtypecode)
 {	
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_POSSIBLE_SPECIES_FEATURE_VALUE     ,"multi"), "PossibleSpeciesFeatureValue") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE_VALUE,"multi"), "SpeciesFeatureValue") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_COMPARTMENT_REFERENCE,"multi"), "CompartmentReference") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE_INSTANCE,"multi"), "SpeciesTypeInstance") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_IN_SPECIES_TYPE_BOND,"multi"), "InSpeciesTypeBond") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX   ,"multi"), "DenotedSpeciesTypeComponentIndex") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_OUTWARD_BINDING_SITE   ,"multi"), "OutwardBindingSite") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE_CHANGE   ,"multi"), "SpeciesFeatureChange") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE_TYPE   ,"multi"), "SpeciesFeatureType") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE_COMPONENT_INDEX    ,"multi"), "SpeciesTypeComponentIndex") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE    ,"multi"), "SpeciesFeature") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE_COMPONENT_MAP_IN_PRODUCT    ,"multi"), "SpeciesTypeComponentMapInProduct") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE   ,"multi"), "MultiSpeciesType") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_BINDING_SITE_SPECIES_TYPE    ,"multi"), "BindingSiteSpeciesType") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_INTRA_SPECIES_REACTION   ,"multi"), "IntraSpeciesReaction") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_POSSIBLE_SPECIES_FEATURE_VALUE - 1   ,"multi"), "(Unknown SBML Multi Type)") == 0);
-	fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_INTRA_SPECIES_REACTION + 1  ,"multi"), "(Unknown SBML Multi Type)") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_POSSIBLE_SPECIES_FEATURE_VALUE     ,"multi"), "PossibleSpeciesFeatureValue") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE_VALUE,"multi"), "SpeciesFeatureValue") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_COMPARTMENT_REFERENCE,"multi"), "CompartmentReference") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE_INSTANCE,"multi"), "SpeciesTypeInstance") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_IN_SPECIES_TYPE_BOND,"multi"), "InSpeciesTypeBond") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_OUTWARD_BINDING_SITE   ,"multi"), "OutwardBindingSite") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE_CHANGE   ,"multi"), "SpeciesFeatureChange") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE_TYPE   ,"multi"), "SpeciesFeatureType") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE_COMPONENT_INDEX    ,"multi"), "SpeciesTypeComponentIndex") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_FEATURE    ,"multi"), "SpeciesFeature") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE_COMPONENT_MAP_IN_PRODUCT    ,"multi"), "SpeciesTypeComponentMapInProduct") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_SPECIES_TYPE   ,"multi"), "MultiSpeciesType") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_BINDING_SITE_SPECIES_TYPE    ,"multi"), "BindingSiteSpeciesType") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_INTRA_SPECIES_REACTION   ,"multi"), "IntraSpeciesReaction") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_POSSIBLE_SPECIES_FEATURE_VALUE - 1   ,"multi"), "(Unknown SBML Multi Type)") == 0);
+  fail_unless(strcmp(SBMLTypeCode_toString(SBML_MULTI_INTRA_SPECIES_REACTION + 1  ,"multi"), "(Unknown SBML Multi Type)") == 0);
+}
+END_TEST
+
+START_TEST(test_MultiExtension_read)
+{
+  char *filename = safe_strcat(TestDataDirectory, "/simmune_Ecad.xml");
+
+  SBMLDocument *doc = readSBMLFromFile(filename);
+  
+  fail_unless(doc != NULL);
+
+  fail_unless(doc->getModel() != NULL);
+  fail_unless(doc->getModel()->getListOfReactions() != NULL);  
+  SBasePlugin* plugin = doc->getModel()->getListOfReactions()->getPlugin("multi");
+  fail_unless(plugin != NULL);
+  
+  delete doc;
+  safe_free(filename);
 }
 END_TEST
 
@@ -316,6 +333,7 @@ create_suite_MultiExtension(void)
   tcase_add_test(tcase, test_MultiExtension_registry);
   tcase_add_test(tcase, test_MultiExtension_typecode);
   tcase_add_test(tcase, test_MultiExtension_SBMLtypecode);
+  tcase_add_test(tcase, test_MultiExtension_read);
 
   suite_add_tcase(suite, tcase);
 
diff --git a/src/sbml/packages/multi/extension/test/test-data/multi_ci_extension.xml b/src/sbml/packages/multi/extension/test/test-data/multi_ci_extension.xml
index 39ee504..5378bad 100644
--- a/src/sbml/packages/multi/extension/test/test-data/multi_ci_extension.xml
+++ b/src/sbml/packages/multi/extension/test/test-data/multi_ci_extension.xml
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
-  <model>
-    <listOfCompartments>
-      <compartment id="membrane" constant="true" multi:isType="true"/>
-    </listOfCompartments>
-    <listOfSpecies>
-      <species id="s1" compartment="membrane" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
-    </listOfSpecies>
-    <listOfReactions>
-      <reaction id="r1" reversible="false" fast="false">
-        <listOfReactants>
-          <speciesReference id="sr1" species="s1" constant="false"/>
-        </listOfReactants>
-        <kineticLaw>
-          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
+  <model>
+    <listOfCompartments>
+      <compartment id="membrane" constant="true" multi:isType="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="s1" compartment="membrane" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="r1" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference id="sr1" species="s1" constant="false"/>
+        </listOfReactants>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
             <apply>
-              <times/>
-              <ci multi:speciesReference="r1"> s1 </ci>
-              <ci multi:representationType="sum"> s1 </ci>
-            </apply>
-          </math>
-        </kineticLaw>
-      </reaction>
-    </listOfReactions>
-  </model>
-</sbml>
+              <times/>
+              <ci multi:speciesReference="r1"> s1 </ci>
+              <ci multi:representationType="sum"> s1 </ci>
+            </apply>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/multi/extension/test/test-data/simmune_Ecad.xml b/src/sbml/packages/multi/extension/test/test-data/simmune_Ecad.xml
new file mode 100644
index 0000000..793f84e
--- /dev/null
+++ b/src/sbml/packages/multi/extension/test/test-data/simmune_Ecad.xml
@@ -0,0 +1,501 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1"
+   xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" multi:required="true">
+   <model name="E-cadherin_mediated_adhesion">
+
+      <!-- Definitions -->
+      <listOfUnitDefinitions>
+         <unitDefinition id="litre_per_mole_per_sec">
+            <listOfUnits>
+               <unit kind="litre" exponent="1" scale="0" multiplier="1" />
+               <unit kind="mole" exponent="-1" scale="0" multiplier="1" />
+               <unit kind="second" exponent="-1" scale="0" multiplier="1" />
+            </listOfUnits>
+         </unitDefinition>
+         <unitDefinition id="micron_square_per_sec">
+            <listOfUnits>
+               <unit kind="metre" exponent="2" scale="-6" multiplier="1" />
+               <unit kind="second" exponent="-1" scale="0" multiplier="1" />
+            </listOfUnits>
+         </unitDefinition>
+         <unitDefinition id="micrometre_per_sec">
+            <listOfUnits>
+               <unit kind="metre" exponent="1" scale="-6" multiplier="1" />
+               <unit kind="second" exponent="-1" scale="0" multiplier="1" />
+            </listOfUnits>
+         </unitDefinition>
+         <unitDefinition id="per_sec">
+            <listOfUnits>
+               <unit kind="second" exponent="-1" scale="0" multiplier="1" />
+            </listOfUnits>
+         </unitDefinition>
+      </listOfUnitDefinitions>
+
+      <!-- Compartments -->
+      <listOfCompartments>
+         <compartment id="membrane" constant="true" multi:isType="true" />
+         <compartment id="inter_membrane" constant="true" multi:isType="true">
+            <multi:listOfCompartmentReferences>
+               <multi:compartmentReference multi:id="m1" multi:compartment="membrane" />
+               <multi:compartmentReference multi:id="m2" multi:compartment="membrane" />
+            </multi:listOfCompartmentReferences>
+         </compartment>
+      </listOfCompartments>
+
+      <!-- SpeciesTypes -->
+      <multi:listOfSpeciesTypes>
+
+         <!-- Ecad with cis-binding site and trans-binding site: -->
+         <multi:bindingSiteSpeciesType multi:id="st_Cis_Interface" />
+         <multi:bindingSiteSpeciesType multi:id="st_Trans_Interface" />
+         <multi:speciesType multi:id="st_Ecad" multi:compartment="membrane">
+            <multi:listOfSpeciesTypeInstances>
+               <multi:speciesTypeInstance multi:id="cis" multi:speciesType="st_Cis_Interface" />
+               <multi:speciesTypeInstance multi:id="trans" multi:speciesType="st_Trans_Interface" />
+            </multi:listOfSpeciesTypeInstances>
+         </multi:speciesType>
+
+         <!-- cis dimer: -->
+         <multi:speciesType multi:id="st_Ecad_cis_dimer" multi:compartment="membrane">
+            <multi:listOfSpeciesTypeInstances>
+               <multi:speciesTypeInstance multi:id="Ecad1" multi:speciesType="st_Ecad" />
+               <multi:speciesTypeInstance multi:id="Ecad_2" multi:speciesType="st_Ecad" />
+            </multi:listOfSpeciesTypeInstances>
+            <multi:listOfSpeciesTypeComponentIndexes>
+               <multi:speciesTypeComponentIndex multi:id="Ecad1cis"
+                  multi:component="cis" multi:identifyingParent="Ecad1" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad2cis"
+                  multi:component="cis" multi:identifyingParent="Ecad2" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad1trans"
+                  multi:component="trans" multi:identifyingParent="Ecad1" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad2trans"
+                  multi:component="trans" multi:identifyingParent="Ecad2" />
+            </multi:listOfSpeciesTypeComponentIndexes>
+            <multi:listOfInSpeciesTypeBonds>
+               <multi:inSpeciesTypeBond multi:bindingSite1="Ecad1cis"
+                  multi:bindingSite2="Ecad2cis" />
+            </multi:listOfInSpeciesTypeBonds>
+         </multi:speciesType>
+
+         <!-- trans dimer: -->
+         <multi:speciesType multi:id="st_Ecad_trans_dimer" multi:compartment="inter_membrane">
+            <multi:listOfSpeciesTypeInstances>
+               <multi:speciesTypeInstance multi:id="Ecad1" multi:speciesType="st_Ecad"
+                  multi:compartmentReference="m1" />
+               <multi:speciesTypeInstance multi:id="Ecad2" multi:speciesType="st_Ecad"
+                  multi:compartmentReference="m2" />
+            </multi:listOfSpeciesTypeInstances>
+            <multi:listOfSpeciesTypeComponentIndexes>
+               <multi:speciesTypeComponentIndex multi:id="Ecad1trans"
+                  multi:component="trans" multi:identifyingParent="Ecad1" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad2trans"
+                  multi:component="trans" multi:identifyingParent="Ecad2" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad1cis"
+                  multi:component="cis" multi:identifyingParent="Ecad1" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad2cis"
+                  multi:component="cis" multi:identifyingParent="Ecad2" />
+            </multi:listOfSpeciesTypeComponentIndexes>
+            <multi:listOfInSpeciesTypeBonds>
+               <multi:inSpeciesTypeBond multi:bindingSite1="Ecad1trans"
+                  multi:bindingSite2="Ecad2trans" />
+            </multi:listOfInSpeciesTypeBonds>
+         </multi:speciesType>
+
+         <!-- trimer: -->
+         <multi:speciesType multi:id="st_Ecad_trimer" multi:compartment="inter_membrane">
+            <multi:listOfSpeciesTypeInstances>
+               <multi:speciesTypeInstance multi:id="Ecad1" multi:speciesType="st_Ecad"
+                  multi:compartmentReference="m1" />
+               <multi:speciesTypeInstance multi:id="Ecad2" multi:speciesType="st_Ecad"
+                  multi:compartmentReference="m1" />
+               <multi:speciesTypeInstance multi:id="Ecad3" multi:speciesType="st_Ecad"
+                  multi:compartmentReference="m2" />
+            </multi:listOfSpeciesTypeInstances>
+            <multi:listOfSpeciesTypeComponentIndexes>
+               <multi:speciesTypeComponentIndex multi:id="Ecad1cis"
+                  multi:component="cis" multi:identifyingParent="Ecad1" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad1trans"
+                  multi:component="trans" multi:identifyingParent="Ecad1" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad2cis"
+                  multi:component="cis" multi:identifyingParent="Ecad2" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad2trans"
+                  multi:component="trans" multi:identifyingParent="Ecad2" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad3cis"
+                  multi:component="cis" multi:identifyingParent="Ecad3" />
+               <multi:speciesTypeComponentIndex multi:id="Ecad3trans"
+                  multi:component="trans" multi:identifyingParent="Ecad3" />
+            </multi:listOfSpeciesTypeComponentIndexes>
+            <multi:listOfInSpeciesTypeBonds>
+               <multi:inSpeciesTypeBond multi:bindingSite1="Ecad1cis"
+                  multi:bindingSite2="Ecad2cis" />
+               <multi:inSpeciesTypeBond multi:bindingSite1="Ecad1trans"
+                  multi:bindingSite2="Ecad3trans" />
+            </multi:listOfInSpeciesTypeBonds>
+         </multi:speciesType>
+      </multi:listOfSpeciesTypes>
+
+      <!-- Species -->
+      <listOfSpecies>
+
+         <!-- free Ecad -->
+         <species id="sp_Ecad_unbound" name="Ecad_unbound" compartment="membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="cis"
+                  multi:bindingStatus="unbound" />
+               <multi:outwardBindingSite multi:component="trans"
+                  multi:bindingStatus="unbound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad trans unbnd -->
+         <species id="sp_Ecad_trans_unbnd" name="Ecad_trans_unbnd" compartment="membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="trans"
+                  multi:bindingStatus="unbound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad trans bnd -->
+         <species id="sp_Ecad_trans_bnd" name="Ecad_trans_bnd" compartment="membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="trans"
+                  multi:bindingStatus="bound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad all -->
+         <species id="sp_Ecad_all" name="Ecad_all" compartment="membrane" 
+            hasOnlySubstanceUnits="false"
+            boundaryCondition="false" constant="false" multi:speciesType="st_Ecad" />
+
+         <!-- Pattern species: Ecad cis unbnd -->
+         <species id="sp_Ecad_cis_unbnd" name="Ecad_cis_unbnd" compartment="membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="cis"
+                  multi:bindingStatus="unbound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad cis unbnd, trans bnd -->
+         <species id="sp_Ecad_6" name="Ecad_6" compartment="membrane" hasOnlySubstanceUnits="false"
+            boundaryCondition="false" constant="false" multi:speciesType="st_Ecad">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="cis"
+                  multi:bindingStatus="unbound" />
+               <multi:outwardBindingSite multi:component="trans"
+                  multi:bindingStatus="bound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad cis bnd, trans unbnd -->
+         <species id="sp_Ecad_7" name="Ecad_7" compartment="membrane" hasOnlySubstanceUnits="false"
+            boundaryCondition="false" constant="false" multi:speciesType="st_Ecad">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="cis"
+                  multi:bindingStatus="bound" />
+               <multi:outwardBindingSite multi:component="trans"
+                  multi:bindingStatus="unbound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad cis dimer -->
+         <species id="sp_Ecad_cis_dimer" name="Ecad_cis_dimer" compartment="membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad_cis_dimer" />
+
+         <!-- Pattern species: Ecad cis dimer: all trans bnd -->
+         <species id="sp_EcadEcad_2" name="Ecad.Ecad_2" compartment="membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad_cis_dimer">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="Ecad1trans"
+                  multi:bindingStatus="bound" />
+               <multi:outwardBindingSite multi:component="Ecad2trans"
+                  multi:bindingStatus="bound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad trans dimer -->
+         <species id="sp_EcadEcad_1" name="Ecad.Ecad_1" compartment="inter_membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad_trans_dimer" />
+
+         <!-- Pattern species: Ecad trans dimer: all cis bnd -->
+         <species id="sp_Ecad_trans_dimer_2" name="Ecad_trans_dimer_2" compartment="inter_membrane"
+            hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" 
+            multi:speciesType="st_Ecad_trans_dimer">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="Ecad1cis"
+                  multi:bindingStatus="bound" />
+               <multi:outwardBindingSite multi:component="Ecad2cis"
+                  multi:bindingStatus="bound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad True Trimer -->
+         <species id="sp_Ecad_True_Trimer" compartment="inter_membrane" hasOnlySubstanceUnits="false"
+            boundaryCondition="false" constant="false" multi:speciesType="st_Ecad_trimer">
+            <multi:listOfOutwardBindingSites>
+               <multi:outwardBindingSite multi:component="Ecad2trans"
+                  multi:bindingStatus="unbound" />
+               <multi:outwardBindingSite multi:component="Ecad3cis"
+                  multi:bindingStatus="unbound" />
+            </multi:listOfOutwardBindingSites>
+         </species>
+
+         <!-- Pattern species: Ecad All Trimer -->
+         <species id="sp_Ecad_All_Trimer" compartment="inter_membrane" hasOnlySubstanceUnits="false"
+            boundaryCondition="false" constant="false" multi:speciesType="st_Ecad_trimer" />
+      </listOfSpecies>
+
+      <!-- Reactions -->
+      <listOfReactions>
+
+         <!-- cis association: -->
+         <reaction id="rc_Cis_Association" name="Cis_Association" reversible="false" fast="false"
+            compartment="membrane">
+            <listOfReactants>
+               <speciesReference id="Cis_Association_r1" species="sp_Ecad_6"
+                  stoichiometry="1" constant="false" />
+               <speciesReference id="Cis_Association_r2" species="sp_Ecad_6"
+                  stoichiometry="1" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference species="sp_EcadEcad_2" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> kon </ci>
+                     <ci multi:speciesReference="Cis_Association_r1"> sp_Ecad_6 </ci>
+                     <ci multi:speciesReference="Cis_Association_r2"> sp_Ecad_6 </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="kon" value="9000" units="litre_per_mole_per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </reaction>
+
+         <!-- In species cis association: Here the model requires that the two interacting molecules 
+            are part of one connected complex already prior to the association. Since the necessary 
+            connectivity can only be mediated by the trans binding sites here, these sites must be 
+            bound to the subcomplex (not shown) linking the two interacting molecules. 
+            -->
+         <multi:intraSpeciesReaction id="rc_Intra_Complex_Cis_Association" 
+	        name="Intra-Complex_Cis_Association"
+            reversible="false" fast="false" compartment="membrane">
+            <listOfReactants>
+               <speciesReference id="Intra_Complex_Cis_Association_r1" species="sp_Ecad_6"
+                  stoichiometry="1" constant="false" />
+               <speciesReference id="Intra_Complex_Cis_Association_r2" species="sp_Ecad_6"
+                  stoichiometry="1" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference species="sp_EcadEcad_2" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> kon </ci>
+                     <ci multi:speciesReference="Intra_Complex_Cis_Association_r1"> sp_Ecad_6 </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="kon" value="100" units="per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </multi:intraSpeciesReaction>
+
+         <!-- trans association: -->
+         <reaction id="rc_Trans_Association" name="Trans_Association" reversible="false" fast="false"
+            compartment="inter_membrane">
+            <listOfReactants>
+               <speciesReference id="Trans_Association_r1" species="sp_Ecad_trans_unbnd"
+                  multi:compartmentReference="m1" constant="false" />
+               <speciesReference id="Trans_Association_r2" species="sp_Ecad_trans_unbnd"
+                  multi:compartmentReference="m2" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference species="sp_EcadEcad_1" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> kon </ci>
+                     <ci multi:speciesReference="Trans_Association_r1"> sp_Ecad_trans_unbnd </ci>
+                     <ci multi:speciesReference="Trans_Association_r2"> sp_Ecad_trans_unbnd </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="kon" value="90000" units="litre_per_mole_per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </reaction>
+
+         <!-- In complex trans association: Here the model requires that the two interacting molecules 
+            are part of one connected complex already prior to the association. Since the necessary 
+            connectivity can only be mediated by the cis binding sites here, these sites must be bound 
+            to the subcomplex (not shown) linking the two interacting molecules. 
+            -->
+         <multi:intraSpeciesReaction id="rc_Intra_Complex_Trans_Association" 
+	        name="Intra-Complex_Trans_Association"
+            reversible="false" fast="false" compartment="inter_membrane" >
+            <listOfReactants>
+               <speciesReference id="Intra_Complex_Trans_Association_r1" species="sp_Ecad_7"
+                  multi:compartmentReference="m1" constant="false" />
+               <speciesReference id="Intra_Complex_Trans_Association_r2" species="sp_Ecad_7"
+                  multi:compartmentReference="m2" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference species="sp_Ecad_trans_dimer_2" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> kon </ci>
+                     <ci multi:speciesReference="Intra_Complex_Trans_Association_r1"> sp_Ecad_7 </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="kon" value="100" units="per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </multi:intraSpeciesReaction>
+
+         <!-- cis dissociation: -->
+         <reaction id="rc_Cis_dissociation" name="Cis_dissociation" reversible="false" fast="false"
+            compartment="membrane">
+            <listOfReactants>
+               <speciesReference species="sp_Ecad_cis_dimer" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference id="Cis_dissociation_p1" species="sp_Ecad_cis_unbnd"
+                  stoichiometry="1" constant="false" />
+               <speciesReference id="Cis_dissociation_p2" species="sp_Ecad_cis_unbnd"
+                  stoichiometry="1" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> koff </ci>
+                     <ci> sp_Ecad_cis_unbnd </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="koff" value="1" units="per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </reaction>
+
+         <!-- In-species cis dissociation: By specifying that this reaction breaks only an inner bond, 
+            the model limits the application of this reaction to dissociations that result in only one 
+            reaction product. The complex is still connected through a subcomplex that is not shown 
+            here but that links the two molecules involved in the reaction at their trans binding 
+            sites. Note that the modeler application has to ensure the correct application of this 
+            rule and its consistent definition. For instance, specifying the one or both of the trans 
+            binding sites to be unbound would lead to a rule that could never be applied because the 
+            trans bindings are required for the connectivity of the result complex. 
+            -->
+         <multi:intraSpeciesReaction id="rc_Intra_Complex_Cis_dissociation" 
+	        name="Intra-Complex_Cis_dissociation"
+            reversible="false" fast="false" compartment="membrane" >
+            <listOfReactants>
+               <speciesReference species="sp_EcadEcad_2" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference id="Intra_Complex_Cis_dissociation_p1" species="sp_Ecad_6"
+                  stoichiometry="2" constant="false" />
+               <speciesReference id="Intra_Complex_Cis_dissociation_p2" species="sp_Ecad_6"
+                  stoichiometry="2" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> koff </ci>
+                     <ci> sp_Ecad_6 </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="koff" value="0.01" units="per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </multi:intraSpeciesReaction>
+
+         <!-- trans dissociation: -->
+         <reaction id="rc_Trans_dissociation" name="Trans_dissociation" reversible="false" 
+            fast="false" compartment="inter_membrane">
+            <listOfReactants>
+               <speciesReference species="sp_EcadEcad_1" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference id="Trans_dissociation_p1" species="sp_Ecad_trans_unbnd"
+                  multi:compartmentReference="m1" constant="false" />
+               <speciesReference id="Trans_dissociation_p2" species="sp_Ecad_trans_unbnd"
+                  multi:compartmentReference="m2" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> koff </ci>
+                     <ci> sp_Ecad_trans_unbnd </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="koff" value="1" units="per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </reaction>
+
+         <!-- In species trans dissociation: By specifying that this reaction breaks only an inner 
+            bond, the model limits the application of this reaction to dissociations that result in 
+            only one reaction product. The complex is still connected through a subcomplex that is 
+            not shown here but that links the two molecules involved in the reaction at their cis 
+            binding sites. Note that the modeler application has to ensure the correct application 
+            of this rule and its consistent definition. For instance, specifying the one or both of 
+            the cis binding sites to be unbound would lead to a rule that could never be applied 
+            because the cis bindings are required for the connectivity of the result complex. 
+            -->
+         <multi:intraSpeciesReaction id="rc_Intra_Complex_Trans_dissociation" 
+	        name="Intra-Complex_Trans_dissociation"
+            reversible="false" fast="false" compartment="inter_membrane" >
+            <listOfReactants>
+               <speciesReference species="sp_Ecad_trans_dimer_2" constant="false" />
+            </listOfReactants>
+            <listOfProducts>
+               <speciesReference id="Intra_Complex_Trans_dissociation_p1" species="sp_Ecad_7"
+                  multi:compartmentReference="m1" constant="false" />
+               <speciesReference id="Intra_Complex_Trans_dissociation_p2" species="sp_Ecad_7"
+                  multi:compartmentReference="m2" constant="false" />
+            </listOfProducts>
+            <kineticLaw>
+               <math xmlns="http://www.w3.org/1998/Math/MathML">
+                  <apply>
+                     <times />
+                     <ci> koff </ci>
+                     <ci> sp_Ecad_7 </ci>
+                  </apply>
+               </math>
+               <listOfLocalParameters>
+                  <localParameter id="koff" value="0.01" units="per_sec" />
+               </listOfLocalParameters>
+            </kineticLaw>
+         </multi:intraSpeciesReaction>
+      </listOfReactions>
+   </model>
+</sbml>
\ No newline at end of file
diff --git a/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.cpp b/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.cpp
index 3ce8bed..0563e56 100644
--- a/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.cpp
+++ b/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.h b/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.h
index 03b1395..87ab057 100644
--- a/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.h
+++ b/src/sbml/packages/multi/sbml/BindingSiteSpeciesType.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.cpp b/src/sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.cpp
deleted file mode 100644
index 1e229ce..0000000
--- a/src/sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.cpp
+++ /dev/null
@@ -1,758 +0,0 @@
-/**
- * @file:   DenotedSpeciesTypeComponentIndex.cpp
- * @brief:  Implementation of the DenotedSpeciesTypeComponentIndex class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- */
-
-
-#include <sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h>
-#include <sbml/packages/multi/validator/MultiSBMLError.h>
-
-
-using namespace std;
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-/*
- * Creates a new DenotedSpeciesTypeComponentIndex with the given level, version, and package version.
- */
-DenotedSpeciesTypeComponentIndex::DenotedSpeciesTypeComponentIndex (unsigned int level, unsigned int version, unsigned int pkgVersion)
-  : SBase(level, version)
-   ,mSpeciesTypeComponentIndex ("")
-{
-  // set an SBMLNamespaces derived object of this package
-  setSBMLNamespacesAndOwn(new MultiPkgNamespaces(level, version, pkgVersion));
-}
-
-
-/*
- * Creates a new DenotedSpeciesTypeComponentIndex with the given MultiPkgNamespaces object.
- */
-DenotedSpeciesTypeComponentIndex::DenotedSpeciesTypeComponentIndex (MultiPkgNamespaces* multins)
-  : SBase(multins)
-   ,mSpeciesTypeComponentIndex ("")
-{
-  // set the element namespace of this object
-  setElementNamespace(multins->getURI());
-
-  // load package extensions bound with this object (if any) 
-  loadPlugins(multins);
-}
-
-
-/*
- * Copy constructor for DenotedSpeciesTypeComponentIndex.
- */
-DenotedSpeciesTypeComponentIndex::DenotedSpeciesTypeComponentIndex (const DenotedSpeciesTypeComponentIndex& orig)
-  : SBase(orig)
-  , mSpeciesTypeComponentIndex  ( orig.mSpeciesTypeComponentIndex)
-{
-}
-
-
-/*
- * Assignment for DenotedSpeciesTypeComponentIndex.
- */
-DenotedSpeciesTypeComponentIndex&
-DenotedSpeciesTypeComponentIndex::operator=(const DenotedSpeciesTypeComponentIndex& rhs)
-{
-  if (&rhs != this)
-  {
-    SBase::operator=(rhs);
-    mSpeciesTypeComponentIndex  = rhs.mSpeciesTypeComponentIndex;
-  }
-  return *this;
-}
-
-
-/*
- * Clone for DenotedSpeciesTypeComponentIndex.
- */
-DenotedSpeciesTypeComponentIndex*
-DenotedSpeciesTypeComponentIndex::clone () const
-{
-  return new DenotedSpeciesTypeComponentIndex(*this);
-}
-
-
-/*
- * Destructor for DenotedSpeciesTypeComponentIndex.
- */
-DenotedSpeciesTypeComponentIndex::~DenotedSpeciesTypeComponentIndex ()
-{
-}
-
-
-/*
- * Returns the value of the "speciesTypeComponentIndex" attribute of this DenotedSpeciesTypeComponentIndex.
- */
-const std::string&
-DenotedSpeciesTypeComponentIndex::getSpeciesTypeComponentIndex() const
-{
-  return mSpeciesTypeComponentIndex;
-}
-
-
-/*
- * Returns true/false if speciesTypeComponentIndex is set.
- */
-bool
-DenotedSpeciesTypeComponentIndex::isSetSpeciesTypeComponentIndex() const
-{
-  return (mSpeciesTypeComponentIndex.empty() == false);
-}
-
-
-/*
- * Sets speciesTypeComponentIndex and returns value indicating success.
- */
-int
-DenotedSpeciesTypeComponentIndex::setSpeciesTypeComponentIndex(const std::string& speciesTypeComponentIndex)
-{
-  if (!(SyntaxChecker::isValidInternalSId(speciesTypeComponentIndex)))
-  {
-    return LIBSBML_INVALID_ATTRIBUTE_VALUE;
-  }
-  else
-  {
-    mSpeciesTypeComponentIndex = speciesTypeComponentIndex;
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-}
-
-
-/*
- * Unsets speciesTypeComponentIndex and returns value indicating success.
- */
-int
-DenotedSpeciesTypeComponentIndex::unsetSpeciesTypeComponentIndex()
-{
-  mSpeciesTypeComponentIndex.erase();
-
-  if (mSpeciesTypeComponentIndex.empty() == true)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
- * rename attributes that are SIdRefs or instances in math
- */
-void
-DenotedSpeciesTypeComponentIndex::renameSIdRefs(const std::string& oldid, const std::string& newid)
-{
-  SBase::renameSIdRefs(oldid, newid);
-  if (isSetSpeciesTypeComponentIndex() == true && mSpeciesTypeComponentIndex == oldid)
-  {
-    setSpeciesTypeComponentIndex(newid);
-  }
-
-}
-
-
-/*
- * Returns the XML element name of this object
- */
-const std::string&
-DenotedSpeciesTypeComponentIndex::getElementName () const
-{
-  static const string name = "denotedSpeciesTypeComponentIndex";
-  return name;
-}
-
-
-/*
- * Returns the libSBML type code for this SBML object.
- */
-int
-DenotedSpeciesTypeComponentIndex::getTypeCode () const
-{
-  return SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX;
-}
-
-
-/*
- * check if all the required attributes are set
- */
-bool
-DenotedSpeciesTypeComponentIndex::hasRequiredAttributes () const
-{
-  bool allPresent = true;
-
-  if (isSetSpeciesTypeComponentIndex() == false)
-    allPresent = false;
-
-  return allPresent;
-}
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * write contained elements
- */
-void
-DenotedSpeciesTypeComponentIndex::writeElements (XMLOutputStream& stream) const
-{
-  SBase::writeElements(stream);
-
-  SBase::writeExtensionElements(stream);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Accepts the given SBMLVisitor.
- */
-bool
-DenotedSpeciesTypeComponentIndex::accept (SBMLVisitor& v) const
-{
-  return v.visit(*this);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Sets the parent SBMLDocument.
- */
-void
-DenotedSpeciesTypeComponentIndex::setSBMLDocument (SBMLDocument* d)
-{
-  SBase::setSBMLDocument(d);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Enables/Disables the given package with this element.
- */
-void
-DenotedSpeciesTypeComponentIndex::enablePackageInternal(const std::string& pkgURI,
-             const std::string& pkgPrefix, bool flag)
-{
-  SBase::enablePackageInternal(pkgURI, pkgPrefix, flag);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Get the list of expected attributes for this element.
- */
-void
-DenotedSpeciesTypeComponentIndex::addExpectedAttributes(ExpectedAttributes& attributes)
-{
-  SBase::addExpectedAttributes(attributes);
-
-  attributes.add("speciesTypeComponentIndex");
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Read values from the given XMLAttributes set into their specific fields.
- */
-void
-DenotedSpeciesTypeComponentIndex::readAttributes (const XMLAttributes& attributes,
-                             const ExpectedAttributes& expectedAttributes)
-{
-  const unsigned int sbmlLevel   = getLevel  ();
-  const unsigned int sbmlVersion = getVersion();
-
-  unsigned int numErrs;
-
-  /* look to see whether an unknown attribute error was logged
-   * during the read of the listOfDenotedSpeciesTypeComponentIndexes - which will have
-   * happened immediately prior to this read
-  */
-
-  ListOfDenotedSpeciesTypeComponentIndexes * parentListOf =
-      static_cast<ListOfDenotedSpeciesTypeComponentIndexes*>(getParentSBMLObject());
-
-  if (getErrorLog() != NULL && parentListOf->size() < 2)
-  {
-    numErrs = getErrorLog()->getNumErrors();
-    for (int n = numErrs-1; n >= 0; n--)
-    {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
-      {
-        const std::string details =
-              getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("multi", MultiLofDenSptCpoInds_AllowedAtts,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details,
-                  parentListOf->getLine(), parentListOf->getColumn());
-      }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
-      {
-        const std::string details =
-                   getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("multi", MultiLofDenSptCpoInds_AllowedAtts,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, details,
-                  parentListOf->getLine(), parentListOf->getColumn());
-      }
-    }
-  }
-
-  SBase::readAttributes(attributes, expectedAttributes);
-
-  // look to see whether an unknown attribute error was logged
-  if (getErrorLog() != NULL)
-  {
-    numErrs = getErrorLog()->getNumErrors();
-    for (int n = numErrs-1; n >= 0; n--)
-    {
-      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("multi", MultiDenSptCpoInd_AllowedMultiAtts,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details,
-                       getLine(), getColumn());
-      }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
-      {
-        const std::string details =
-                          getErrorLog()->getError(n)->getMessage();
-        getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("multi", MultiDenSptCpoInd_AllowedCoreAtts,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, details,
-                       getLine(), getColumn());
-      }
-    }
-  }
-
-  bool assigned = false;
-
-  //
-  // speciesTypeComponentIndex SIdRef   ( use = "required" )
-  //
-  assigned = attributes.readInto("speciesTypeComponentIndex", mSpeciesTypeComponentIndex);
-
-  if (assigned == true)
-  {
-    // check string is not empty and correct syntax
-
-    if (mSpeciesTypeComponentIndex.empty() == true)
-    {
-      logEmptyString(mSpeciesTypeComponentIndex, getLevel(), getVersion(), "<DenotedSpeciesTypeComponentIndex>");
-    }
-    else if (SyntaxChecker::isValidSBMLSId(mSpeciesTypeComponentIndex) == false && getErrorLog() != NULL)
-    {
-      std::string details = "The syntax of the attribute speciesTypeComponentIndex='" + mSpeciesTypeComponentIndex + "' does not conform.";
-      getErrorLog()->logPackageError("multi", MultiInvSIdSyn,
-                 getPackageVersion(), sbmlLevel, sbmlVersion, details,
-                 getLine(), getColumn());
-
-    }
-  }
-  else
-  {
-    std::string message = "Multi attribute 'speciesTypeComponentIndex' is missing.";
-    getErrorLog()->logPackageError("multi", MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref,
-                   getPackageVersion(), sbmlLevel, sbmlVersion, message,
-                   getLine(), getColumn());
-  }
-
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Write values of XMLAttributes to the output stream.
- */
-  void
-DenotedSpeciesTypeComponentIndex::writeAttributes (XMLOutputStream& stream) const
-{
-  SBase::writeAttributes(stream);
-
-  if (isSetSpeciesTypeComponentIndex() == true)
-    stream.writeAttribute("speciesTypeComponentIndex", getPrefix(), mSpeciesTypeComponentIndex);
-
-  SBase::writeExtensionAttributes(stream);
-
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-/*
- * Constructor 
- */
-ListOfDenotedSpeciesTypeComponentIndexes::ListOfDenotedSpeciesTypeComponentIndexes(unsigned int level, 
-                                          unsigned int version, 
-                                          unsigned int pkgVersion)
- : ListOf(level, version)
-{
-  setSBMLNamespacesAndOwn(new MultiPkgNamespaces(level, version, pkgVersion)); 
-}
-
-
-/*
- * Constructor 
- */
-ListOfDenotedSpeciesTypeComponentIndexes::ListOfDenotedSpeciesTypeComponentIndexes(MultiPkgNamespaces* multins)
-  : ListOf(multins)
-{
-  setElementNamespace(multins->getURI());
-}
-
-
-/*
- * Returns a deep copy of this ListOfDenotedSpeciesTypeComponentIndexes 
- */
-ListOfDenotedSpeciesTypeComponentIndexes* 
-ListOfDenotedSpeciesTypeComponentIndexes::clone () const
- {
-  return new ListOfDenotedSpeciesTypeComponentIndexes(*this);
-}
-
-
-/*
- * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes by index.
-*/
-DenotedSpeciesTypeComponentIndex*
-ListOfDenotedSpeciesTypeComponentIndexes::get(unsigned int n)
-{
-  return static_cast<DenotedSpeciesTypeComponentIndex*>(ListOf::get(n));
-}
-
-
-/*
- * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes by index.
- */
-const DenotedSpeciesTypeComponentIndex*
-ListOfDenotedSpeciesTypeComponentIndexes::get(unsigned int n) const
-{
-  return static_cast<const DenotedSpeciesTypeComponentIndex*>(ListOf::get(n));
-}
-
-
-/*
- * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes by id.
- */
-DenotedSpeciesTypeComponentIndex*
-ListOfDenotedSpeciesTypeComponentIndexes::get(const std::string& sid)
-{
-  return const_cast<DenotedSpeciesTypeComponentIndex*>(
-    static_cast<const ListOfDenotedSpeciesTypeComponentIndexes&>(*this).get(sid));
-}
-
-
-/*
- * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes by id.
- */
-const DenotedSpeciesTypeComponentIndex*
-ListOfDenotedSpeciesTypeComponentIndexes::get(const std::string& sid) const
-{
-  vector<SBase*>::const_iterator result;
-
-  result = find_if( mItems.begin(), mItems.end(), IdEq<DenotedSpeciesTypeComponentIndex>(sid) );
-  return (result == mItems.end()) ? 0 : static_cast <DenotedSpeciesTypeComponentIndex*> (*result);
-}
-
-
-/*
- * Removes the nth DenotedSpeciesTypeComponentIndex from this ListOfDenotedSpeciesTypeComponentIndexes
- */
-DenotedSpeciesTypeComponentIndex*
-ListOfDenotedSpeciesTypeComponentIndexes::remove(unsigned int n)
-{
-  return static_cast<DenotedSpeciesTypeComponentIndex*>(ListOf::remove(n));
-}
-
-
-/*
- * Removes the DenotedSpeciesTypeComponentIndex from this ListOfDenotedSpeciesTypeComponentIndexes with the given identifier
- */
-DenotedSpeciesTypeComponentIndex*
-ListOfDenotedSpeciesTypeComponentIndexes::remove(const std::string& sid)
-{
-  SBase* item = NULL;
-  vector<SBase*>::iterator result;
-
-  result = find_if( mItems.begin(), mItems.end(), IdEq<DenotedSpeciesTypeComponentIndex>(sid) );
-
-  if (result != mItems.end())
-  {
-    item = *result;
-    mItems.erase(result);
-  }
-
-  return static_cast <DenotedSpeciesTypeComponentIndex*> (item);
-}
-
-
-/*
- * Returns the XML element name of this object
- */
-const std::string&
-ListOfDenotedSpeciesTypeComponentIndexes::getElementName () const
-{
-  static const string name = "listOfDenotedSpeciesTypeComponentIndexes";
-  return name;
-}
-
-
-/*
- * Returns the libSBML type code for this SBML object.
- */
-int
-ListOfDenotedSpeciesTypeComponentIndexes::getTypeCode () const
-{
-  return SBML_LIST_OF;
-}
-
-
-/*
- * Returns the libSBML type code for the objects in this LIST_OF.
- */
-int
-ListOfDenotedSpeciesTypeComponentIndexes::getItemTypeCode () const
-{
-  return SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX;
-}
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Creates a new DenotedSpeciesTypeComponentIndex in this ListOfDenotedSpeciesTypeComponentIndexes
- */
-SBase*
-ListOfDenotedSpeciesTypeComponentIndexes::createObject(XMLInputStream& stream)
-{
-  const std::string& name   = stream.peek().getName();
-  SBase* object = NULL;
-
-  if (name == "denotedSpeciesTypeComponentIndex")
-  {
-    MULTI_CREATE_NS(multins, getSBMLNamespaces());
-    object = new DenotedSpeciesTypeComponentIndex(multins);
-    appendAndOwn(object);
-    delete multins;
-  }
-
-  return object;
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
- * Write the namespace for the Multi package.
- */
-void
-ListOfDenotedSpeciesTypeComponentIndexes::writeXMLNS(XMLOutputStream& stream) const
-{
-  XMLNamespaces xmlns;
-
-  std::string prefix = getPrefix();
-
-  if (prefix.empty())
-  {
-    XMLNamespaces* thisxmlns = getNamespaces();
-    if (thisxmlns && thisxmlns->hasURI(MultiExtension::getXmlnsL3V1V1()))
-    {
-      xmlns.add(MultiExtension::getXmlnsL3V1V1(),prefix);
-    }
-  }
-
-  stream << xmlns;
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-/*
- * 
- */
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-DenotedSpeciesTypeComponentIndex_create(unsigned int level, unsigned int version,
-                                        unsigned int pkgVersion)
-{
-  return new DenotedSpeciesTypeComponentIndex(level, version, pkgVersion);
-}
-
-
-/*
- * 
- */
-LIBSBML_EXTERN
-void
-DenotedSpeciesTypeComponentIndex_free(DenotedSpeciesTypeComponentIndex_t * dstci)
-{
-  if (dstci != NULL)
-    delete dstci;
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-DenotedSpeciesTypeComponentIndex_clone(DenotedSpeciesTypeComponentIndex_t * dstci)
-{
-  if (dstci != NULL)
-  {
-    return static_cast<DenotedSpeciesTypeComponentIndex_t*>(dstci->clone());
-  }
-  else
-  {
-    return NULL;
-  }
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-char *
-DenotedSpeciesTypeComponentIndex_getSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci)
-{
-  if (dstci == NULL)
-    return NULL;
-
-  return dstci->getSpeciesTypeComponentIndex().empty() ? NULL : safe_strdup(dstci->getSpeciesTypeComponentIndex().c_str());
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_isSetSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci)
-{
-  return (dstci != NULL) ? static_cast<int>(dstci->isSetSpeciesTypeComponentIndex()) : 0;
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_setSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci, const char * speciesTypeComponentIndex)
-{
-  return (dstci != NULL) ? dstci->setSpeciesTypeComponentIndex(speciesTypeComponentIndex) : LIBSBML_INVALID_OBJECT;
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_unsetSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci)
-{
-  return (dstci != NULL) ? dstci->unsetSpeciesTypeComponentIndex() : LIBSBML_INVALID_OBJECT;
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_hasRequiredAttributes(DenotedSpeciesTypeComponentIndex_t * dstci)
-{
-  return (dstci != NULL) ? static_cast<int>(dstci->hasRequiredAttributes()) : 0;
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-ListOfDenotedSpeciesTypeComponentIndexes_getById(ListOf_t * lo, const char * sid)
-{
-  if (lo == NULL)
-    return NULL;
-
-  return (sid != NULL) ? static_cast <ListOfDenotedSpeciesTypeComponentIndexes *>(lo)->get(sid) : NULL;
-}
-
-
-/*
- *
- */
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-ListOfDenotedSpeciesTypeComponentIndexes_removeById(ListOf_t * lo, const char * sid)
-{
-  if (lo == NULL)
-    return NULL;
-
-  return (sid != NULL) ? static_cast <ListOfDenotedSpeciesTypeComponentIndexes *>(lo)->remove(sid) : NULL;
-}
-
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-
diff --git a/src/sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h b/src/sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h
deleted file mode 100644
index 5b4f85b..0000000
--- a/src/sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h
+++ /dev/null
@@ -1,616 +0,0 @@
-/**
- * @file:   DenotedSpeciesTypeComponentIndex.h
- * @brief:  Implementation of the DenotedSpeciesTypeComponentIndex class
- * @author: SBMLTeam
- *
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2009-2013 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *
- * Copyright (C) 2002-2005 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ------------------------------------------------------------------------ -->
- *
- * @class DenotedSpeciesTypeComponentIndex
- *
- */
-
-
-#ifndef DenotedSpeciesTypeComponentIndex_H__
-#define DenotedSpeciesTypeComponentIndex_H__
-
-
-#include <sbml/common/extern.h>
-#include <sbml/common/sbmlfwd.h>
-#include <sbml/packages/multi/common/multifwd.h>
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-
-
-#include <sbml/SBase.h>
-#include <sbml/ListOf.h>
-#include <sbml/packages/multi/extension/MultiExtension.h>
-
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-
-class LIBSBML_EXTERN DenotedSpeciesTypeComponentIndex : public SBase
-{
-
-protected:
-
-  std::string   mSpeciesTypeComponentIndex;
-
-
-public:
-
-  /**
-   * Creates a new DenotedSpeciesTypeComponentIndex with the given level, version, and package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this DenotedSpeciesTypeComponentIndex
-   *
-   * @param version an unsigned int, the SBML Version to assign to this DenotedSpeciesTypeComponentIndex
-   *
-   * @param pkgVersion an unsigned int, the SBML Multi Version to assign to this DenotedSpeciesTypeComponentIndex
-   */
-  DenotedSpeciesTypeComponentIndex(unsigned int level      = MultiExtension::getDefaultLevel(),
-                                   unsigned int version    = MultiExtension::getDefaultVersion(),
-                                   unsigned int pkgVersion = MultiExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new DenotedSpeciesTypeComponentIndex with the given MultiPkgNamespaces object.
-   *
-   * @param multins the MultiPkgNamespaces object
-   */
-  DenotedSpeciesTypeComponentIndex(MultiPkgNamespaces* multins);
-
-
-   /**
-   * Copy constructor for DenotedSpeciesTypeComponentIndex.
-   *
-   * @param orig; the DenotedSpeciesTypeComponentIndex instance to copy.
-   */
-  DenotedSpeciesTypeComponentIndex(const DenotedSpeciesTypeComponentIndex& orig);
-
-
-   /**
-   * Assignment operator for DenotedSpeciesTypeComponentIndex.
-   *
-   * @param rhs; the object whose values are used as the basis
-   * of the assignment
-   */
-  DenotedSpeciesTypeComponentIndex& operator=(const DenotedSpeciesTypeComponentIndex& rhs);
-
-
-   /**
-   * Creates and returns a deep copy of this DenotedSpeciesTypeComponentIndex object.
-   *
-   * @return a (deep) copy of this DenotedSpeciesTypeComponentIndex object.
-   */
-  virtual DenotedSpeciesTypeComponentIndex* clone () const;
-
-
-   /**
-   * Destructor for DenotedSpeciesTypeComponentIndex.
-   */
-  virtual ~DenotedSpeciesTypeComponentIndex();
-
-
-   /**
-   * Returns the value of the "speciesTypeComponentIndex" attribute of this DenotedSpeciesTypeComponentIndex.
-   *
-   * @return the value of the "speciesTypeComponentIndex" attribute of this DenotedSpeciesTypeComponentIndex as a string.
-   */
-  virtual const std::string& getSpeciesTypeComponentIndex() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * DenotedSpeciesTypeComponentIndex's "speciesTypeComponentIndex" attribute has been set.
-   *
-   * @return @c true if this DenotedSpeciesTypeComponentIndex's "speciesTypeComponentIndex" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetSpeciesTypeComponentIndex() const;
-
-
-  /**
-   * Sets the value of the "speciesTypeComponentIndex" attribute of this DenotedSpeciesTypeComponentIndex.
-   *
-   * @param speciesTypeComponentIndex; const std::string& value of the "speciesTypeComponentIndex" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setSpeciesTypeComponentIndex(const std::string& speciesTypeComponentIndex);
-
-
-  /**
-   * Unsets the value of the "speciesTypeComponentIndex" attribute of this DenotedSpeciesTypeComponentIndex.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetSpeciesTypeComponentIndex();
-
-
-  /**
-   * Renames all the @c SIdRef attributes on this element, including any
-   * found in MathML content (if such exists).
-   *
-   * This method works by looking at all attributes and (if appropriate)
-   * mathematical formulas, comparing the identifiers to the value of @p
-   * oldid.  If any matches are found, the matching identifiers are replaced
-   * with @p newid.  The method does @em not descend into child elements.
-   *
-   * @param oldid the old identifier
-   * @param newid the new identifier
-   */
-   virtual void renameSIdRefs(const std::string& oldid, const std::string& newid);
-
-
-  /**
-   * Returns the XML element name of this object, which for DenotedSpeciesTypeComponentIndex, is
-   * always @c "denotedSpeciesTypeComponentIndex".
-   *
-   * @return the name of this element, i.e. @c "denotedSpeciesTypeComponentIndex".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for this object, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes
-   * for this DenotedSpeciesTypeComponentIndex object have been set.
-   *
-   * @note The required attributes for a DenotedSpeciesTypeComponentIndex object are:
-   * @li "speciesTypeComponentIndex"
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Subclasses should override this method to write out their contained
-   * SBML objects as XML elements.  Be sure to call your parents
-   * implementation of this method as well.
-   */
-  virtual void writeElements (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Accepts the given SBMLVisitor.
-   */
-  virtual bool accept (SBMLVisitor& v) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Sets the parent SBMLDocument.
-   */
-  virtual void setSBMLDocument (SBMLDocument* d);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Enables/Disables the given package with this element.
-   */
-  virtual void enablePackageInternal(const std::string& pkgURI,
-               const std::string& pkgPrefix, bool flag);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Get the list of expected attributes for this element.
-   */
-  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Read values from the given XMLAttributes set into their specific fields.
-   */
-  virtual void readAttributes (const XMLAttributes& attributes,
-                               const ExpectedAttributes& expectedAttributes);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write values of XMLAttributes to the output stream.
-   */
-  virtual void writeAttributes (XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-class LIBSBML_EXTERN ListOfDenotedSpeciesTypeComponentIndexes : public ListOf
-{
-
-public:
-
-  /**
-   * Creates a new ListOfDenotedSpeciesTypeComponentIndexes with the given level, version, and package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this ListOfDenotedSpeciesTypeComponentIndexes
-   *
-   * @param version an unsigned int, the SBML Version to assign to this ListOfDenotedSpeciesTypeComponentIndexes
-   *
-   * @param pkgVersion an unsigned int, the SBML Multi Version to assign to this ListOfDenotedSpeciesTypeComponentIndexes
-   */
-  ListOfDenotedSpeciesTypeComponentIndexes(unsigned int level      = MultiExtension::getDefaultLevel(),
-                                          unsigned int version    = MultiExtension::getDefaultVersion(),
-                                          unsigned int pkgVersion = MultiExtension::getDefaultPackageVersion());
-
-
-  /**
-   * Creates a new ListOfDenotedSpeciesTypeComponentIndexes with the given MultiPkgNamespaces object.
-   *
-   * @param multins the MultiPkgNamespaces object
-   */
-  ListOfDenotedSpeciesTypeComponentIndexes(MultiPkgNamespaces* multins);
-
-
-   /**
-   * Creates and returns a deep copy of this ListOfDenotedSpeciesTypeComponentIndexes object.
-   *
-   * @return a (deep) copy of this ListOfDenotedSpeciesTypeComponentIndexes object.
-   */
-  virtual ListOfDenotedSpeciesTypeComponentIndexes* clone () const;
-
-
-   /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes.
-   *
-   * @param n the index number of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return the nth DenotedSpeciesTypeComponentIndex in this ListOfDenotedSpeciesTypeComponentIndexes.
-   *
-   * @see size()
-   */
-  virtual DenotedSpeciesTypeComponentIndex* get(unsigned int n);
-
-
-  /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes.
-   *
-   * @param n the index number of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return the nth DenotedSpeciesTypeComponentIndex in this ListOfDenotedSpeciesTypeComponentIndexes.
-   *
-   * @see size()
-   */
-  virtual const DenotedSpeciesTypeComponentIndex* get(unsigned int n) const;
-
-
-  /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return DenotedSpeciesTypeComponentIndex in this ListOfDenotedSpeciesTypeComponentIndexes
-   * with the given id or NULL if no such
-   * DenotedSpeciesTypeComponentIndex exists.
-   *
-   * @see get(unsigned int n)   *
-   * @see size()
-   */
-  virtual DenotedSpeciesTypeComponentIndex* get(const std::string& sid);
-
-
-  /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return DenotedSpeciesTypeComponentIndex in this ListOfDenotedSpeciesTypeComponentIndexes
-   * with the given id or NULL if no such
-   * DenotedSpeciesTypeComponentIndex exists.
-   *
-   * @see get(unsigned int n)   *
-   * @see size()
-   */
-  virtual const DenotedSpeciesTypeComponentIndex* get(const std::string& sid) const;
-
-
-  /**
-   * Removes the nth DenotedSpeciesTypeComponentIndex from this ListOfDenotedSpeciesTypeComponentIndexes
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the DenotedSpeciesTypeComponentIndex to remove.
-   *
-   * @see size()
-   */
-  virtual DenotedSpeciesTypeComponentIndex* remove(unsigned int n);
-
-
-  /**
-   * Removes the DenotedSpeciesTypeComponentIndex from this ListOfDenotedSpeciesTypeComponentIndexes with the given identifier
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
-   *
-   * @param sid the identifier of the DenotedSpeciesTypeComponentIndex to remove.
-   *
-   * @return the DenotedSpeciesTypeComponentIndex removed. As mentioned above, the caller owns the
-   * returned item.
-   */
-  virtual DenotedSpeciesTypeComponentIndex* remove(const std::string& sid);
-
-
-  /**
-   * Returns the XML element name of this object, which for ListOfDenotedSpeciesTypeComponentIndexes, is
-   * always @c "listOfDenotedSpeciesTypeComponentIndexes".
-   *
-   * @return the name of this element, i.e. @c "listOfDenotedSpeciesTypeComponentIndexes".
-   */
-  virtual const std::string& getElementName () const;
-
-
-  /**
-   * Returns the libSBML type code for this SBML object.
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for this object, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getTypeCode () const;
-
-
-  /**
-   * Returns the libSBML type code for the SBML objects
-   * contained in this ListOf object
-   * 
-   * @if clike LibSBML attaches an identifying code to every kind of SBML
-   * object.  These are known as <em>SBML type codes</em>.  The set of
-   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
-   * The names of the type codes all begin with the characters @c
-   * SBML_. @endif at if java LibSBML attaches an identifying code to every
-   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
-   * other languages, the set of type codes is stored in an enumeration; in
-   * the Java language interface for libSBML, the type codes are defined as
-   * static integer constants in the interface class {@link
-   * libsbmlConstants}.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the Python language interface for libSBML, the type
-   * codes are defined as static integer constants in the interface class
-   * @link libsbml at endlink.  The names of the type codes all begin with the
-   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
-   * code to every kind of SBML object.  These are known as <em>SBML type
-   * codes</em>.  In the C# language interface for libSBML, the type codes
-   * are defined as static integer constants in the interface class @link
-   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
-   * the characters @c SBML_. @endif
-   *
-   * @return the SBML type code for the objects in this ListOf instance, or
-   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
-   *
-   * @see getElementName()
-   */
-  virtual int getItemTypeCode () const;
-
-
-protected:
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Creates a new DenotedSpeciesTypeComponentIndex in this ListOfDenotedSpeciesTypeComponentIndexes
-   */
-  virtual SBase* createObject(XMLInputStream& stream);
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
-   * Write the namespace for the Multi package.
-   */
-  virtual void writeXMLNS(XMLOutputStream& stream) const;
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-
-};
-
-
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  __cplusplus  */
-
-#ifndef SWIG
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-BEGIN_C_DECLS
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-DenotedSpeciesTypeComponentIndex_create(unsigned int level, unsigned int version,
-                                        unsigned int pkgVersion);
-
-
-LIBSBML_EXTERN
-void
-DenotedSpeciesTypeComponentIndex_free(DenotedSpeciesTypeComponentIndex_t * dstci);
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-DenotedSpeciesTypeComponentIndex_clone(DenotedSpeciesTypeComponentIndex_t * dstci);
-
-
-LIBSBML_EXTERN
-char *
-DenotedSpeciesTypeComponentIndex_getSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci);
-
-
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_isSetSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci);
-
-
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_setSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci, const char * speciesTypeComponentIndex);
-
-
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_unsetSpeciesTypeComponentIndex(DenotedSpeciesTypeComponentIndex_t * dstci);
-
-
-LIBSBML_EXTERN
-int
-DenotedSpeciesTypeComponentIndex_hasRequiredAttributes(DenotedSpeciesTypeComponentIndex_t * dstci);
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-ListOfDenotedSpeciesTypeComponentIndexes_getById(ListOf_t * lo, const char * sid);
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-ListOfDenotedSpeciesTypeComponentIndexes_removeById(ListOf_t * lo, const char * sid);
-
-
-
-
-END_C_DECLS
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /*  !SWIG  */
-
-#endif /*  DenotedSpeciesTypeComponentIndex_H__  */
-
diff --git a/src/sbml/packages/multi/sbml/IntraSpeciesReaction.cpp b/src/sbml/packages/multi/sbml/IntraSpeciesReaction.cpp
index 967e45d..0fb3c8b 100644
--- a/src/sbml/packages/multi/sbml/IntraSpeciesReaction.cpp
+++ b/src/sbml/packages/multi/sbml/IntraSpeciesReaction.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/sbml/IntraSpeciesReaction.h b/src/sbml/packages/multi/sbml/IntraSpeciesReaction.h
index 81cb428..41169ec 100644
--- a/src/sbml/packages/multi/sbml/IntraSpeciesReaction.h
+++ b/src/sbml/packages/multi/sbml/IntraSpeciesReaction.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/sbml/MultiSpeciesType.cpp b/src/sbml/packages/multi/sbml/MultiSpeciesType.cpp
index e5f43ee..5ee7199 100644
--- a/src/sbml/packages/multi/sbml/MultiSpeciesType.cpp
+++ b/src/sbml/packages/multi/sbml/MultiSpeciesType.cpp
@@ -1391,7 +1391,7 @@ MultiSpeciesType::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'id' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSpt_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
diff --git a/src/sbml/packages/multi/sbml/OutwardBindingSite.cpp b/src/sbml/packages/multi/sbml/OutwardBindingSite.cpp
index 6d25fe1..5182f9e 100644
--- a/src/sbml/packages/multi/sbml/OutwardBindingSite.cpp
+++ b/src/sbml/packages/multi/sbml/OutwardBindingSite.cpp
@@ -456,7 +456,7 @@ OutwardBindingSite::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'component' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiOutBst_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message,
                    getLine(), getColumn());
   }
diff --git a/src/sbml/packages/multi/sbml/PossibleSpeciesFeatureValue.cpp b/src/sbml/packages/multi/sbml/PossibleSpeciesFeatureValue.cpp
index a612f5c..83dc753 100644
--- a/src/sbml/packages/multi/sbml/PossibleSpeciesFeatureValue.cpp
+++ b/src/sbml/packages/multi/sbml/PossibleSpeciesFeatureValue.cpp
@@ -507,7 +507,7 @@ PossibleSpeciesFeatureValue::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'id' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiPsbSpeFtrVal_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
diff --git a/src/sbml/packages/multi/sbml/SpeciesFeature.cpp b/src/sbml/packages/multi/sbml/SpeciesFeature.cpp
index 5a91162..45a63f1 100644
--- a/src/sbml/packages/multi/sbml/SpeciesFeature.cpp
+++ b/src/sbml/packages/multi/sbml/SpeciesFeature.cpp
@@ -28,6 +28,7 @@
 
 
 #include <sbml/packages/multi/sbml/SpeciesFeature.h>
+#include <sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h>
 #include <sbml/packages/multi/validator/MultiSBMLError.h>
 
 #include <sbml/util/ElementFilter.h>
@@ -756,9 +757,9 @@ SpeciesFeature::readAttributes (const XMLAttributes& attributes,
   */
 
   ListOfSpeciesFeatures * parentListOf =
-      static_cast<ListOfSpeciesFeatures*>(getParentSBMLObject());
+      dynamic_cast<ListOfSpeciesFeatures*>(getParentSBMLObject());
 
-  if (getErrorLog() != NULL && parentListOf->size() < 2)
+  if (getErrorLog() != NULL && parentListOf != NULL && parentListOf->size() < 2)
   {
     numErrs = getErrorLog()->getNumErrors();
     for (int n = numErrs-1; n >= 0; n--)
@@ -768,7 +769,7 @@ SpeciesFeature::readAttributes (const XMLAttributes& attributes,
         const std::string details =
               getErrorLog()->getError(n)->getMessage();
         getErrorLog()->remove(UnknownPackageAttribute);
-        getErrorLog()->logPackageError("multi", MultiLofSpeFtrs_AllowedMultiAtts,
+        getErrorLog()->logPackageError("multi", MultiLofSpeFtrs_AllowedAtts,
                   getPackageVersion(), sbmlLevel, sbmlVersion, details,
                   parentListOf->getLine(), parentListOf->getColumn());
       }
@@ -777,7 +778,7 @@ SpeciesFeature::readAttributes (const XMLAttributes& attributes,
         const std::string details =
                    getErrorLog()->getError(n)->getMessage();
         getErrorLog()->remove(UnknownCoreAttribute);
-        getErrorLog()->logPackageError("multi", MultiLofSpeFtrs_AllowedCoreAtts,
+        getErrorLog()->logPackageError("multi", MultiLofSpeFtrs_AllowedAtts,
                   getPackageVersion(), sbmlLevel, sbmlVersion, details,
                   parentListOf->getLine(), parentListOf->getColumn());
       }
@@ -801,7 +802,8 @@ SpeciesFeature::readAttributes (const XMLAttributes& attributes,
                        getPackageVersion(), sbmlLevel, sbmlVersion, details,
                        getLine(), getColumn());
       }
-      else if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
+      else
+      if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
       {
         const std::string details =
                           getErrorLog()->getError(n)->getMessage();
@@ -861,7 +863,7 @@ SpeciesFeature::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'speciesFeatureType' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSpeFtr_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
@@ -885,7 +887,7 @@ SpeciesFeature::readAttributes (const XMLAttributes& attributes,
       else
       {
         std::string message = "Multi attribute 'occur' is missing.";
-        getErrorLog()->logPackageError("multi", MultiUnknownError,
+        getErrorLog()->logPackageError("multi", MultiSpeFtr_AllowedMultiAtts,
                        getPackageVersion(), sbmlLevel, sbmlVersion, message);
       }
     }
@@ -956,9 +958,6 @@ ListOfSpeciesFeatures::ListOfSpeciesFeatures(unsigned int level,
                         unsigned int version, 
                         unsigned int pkgVersion)
  : ListOf(level, version)
- , mSubListOfSpeciesFeatures (NULL)
- , mRelation (MULTI_RELATION_UNKNOWN)
- , mIsSubList ( false)
 {
   mSubListOfSpeciesFeatures = new List();
 
@@ -973,15 +972,44 @@ ListOfSpeciesFeatures::ListOfSpeciesFeatures(unsigned int level,
  */
 ListOfSpeciesFeatures::ListOfSpeciesFeatures(MultiPkgNamespaces* multins)
   : ListOf(multins)
-  , mSubListOfSpeciesFeatures (NULL)
-  , mRelation (MULTI_RELATION_UNKNOWN )
-  , mIsSubList (false )
 {
   mSubListOfSpeciesFeatures = new List();
   setElementNamespace(multins->getURI());
   connectToChild();
 }
 
+/*
+ * Copy constructor for ListOfSpeciesFeatures.
+ */
+ListOfSpeciesFeatures::ListOfSpeciesFeatures (const ListOfSpeciesFeatures & orig)
+  : ListOf(orig)
+{
+  mSubListOfSpeciesFeatures = new List();
+  setElementNamespace(orig.getURI());
+  for (unsigned int i = 0; i < orig.getNumSubListOfSpeciesFeatures(); i++) {
+      SubListOfSpeciesFeatures * sub = orig.getSubListOfSpeciesFeatures(i)->clone();
+      addSubListOfSpeciesFeatures(sub);
+  }
+  connectToChild();
+}
+
+/*
+ * Destructor 
+ */
+ListOfSpeciesFeatures::~ListOfSpeciesFeatures()
+{
+  if (mSubListOfSpeciesFeatures != NULL)
+  {
+    unsigned int size = mSubListOfSpeciesFeatures->getSize();
+    while (size > 0) 
+    {
+      delete static_cast<SubListOfSpeciesFeatures*>( mSubListOfSpeciesFeatures->remove(0) );
+      size--;
+    }
+    delete mSubListOfSpeciesFeatures;
+  }
+}
+
 
 /*
  * Returns a deep copy of this ListOfSpeciesFeatures 
@@ -1067,86 +1095,157 @@ ListOfSpeciesFeatures::remove(const std::string& sid)
   return static_cast <SpeciesFeature*> (item);
 }
 
-int
-ListOfSpeciesFeatures::addSubListOfSpeciesFeatures(ListOfSpeciesFeatures* losf)
+unsigned int
+ListOfSpeciesFeatures::getNumSpeciesFeatures() const
 {
-  if (losf == NULL)
-  {
-    return LIBSBML_INVALID_OBJECT;
-  }
-  else
-  {
-    unsigned int num = getNumSubListOfSpeciesFeatures();
-    static_cast<ListOfSpeciesFeatures*>(losf)->setIsSubList();
-    mSubListOfSpeciesFeatures->add(losf);
-    connectToChild();
-    if (getNumSubListOfSpeciesFeatures() == num + 1)
-    {
-      return LIBSBML_OPERATION_SUCCESS;
-    }
-    else
-    {
-      return LIBSBML_OPERATION_FAILED;
-    }
-  }
+  return mItems.size();
+}
+
+unsigned int
+ListOfSpeciesFeatures::size() const
+{
+  return getNumSpeciesFeatures() + getNumSubListOfSpeciesFeatures();
+}
 
+/*
+ * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures by index.
+*/
+SubListOfSpeciesFeatures*
+ListOfSpeciesFeatures::getSubListOfSpeciesFeatures(unsigned int n)
+{
+  return static_cast<SubListOfSpeciesFeatures*>(mSubListOfSpeciesFeatures->get(n));
 }
 
 
-unsigned int 
-ListOfSpeciesFeatures::getNumSubListOfSpeciesFeatures() const
+/*
+ * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures by index.
+ */
+const SubListOfSpeciesFeatures*
+ListOfSpeciesFeatures::getSubListOfSpeciesFeatures(unsigned int n) const
 {
-  return mSubListOfSpeciesFeatures->getSize();
+  return static_cast<const SubListOfSpeciesFeatures*>(mSubListOfSpeciesFeatures->get(n));
 }
 
- /*
- * Returns the value of the "relation" attribute of this ListOfSpeciesFeatures.
+
+/*
+ * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures by id.
  */
-Relation_t 
-ListOfSpeciesFeatures::getRelation() const
+SubListOfSpeciesFeatures*
+ListOfSpeciesFeatures::getSubListOfSpeciesFeatures(const std::string& sid)
 {
-  return mRelation;
+  return const_cast<SubListOfSpeciesFeatures*>(
+    static_cast<const ListOfSpeciesFeatures&>(*this).getSubListOfSpeciesFeatures(sid));
 }
 
 
 /*
- * Predicate returning @c true or @c false depending on whether this
- * ListOfSpeciesFeatures's "relation" attribute has been set.
+ * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures by id.
  */
-bool 
-ListOfSpeciesFeatures::isSetRelation() const
+const SubListOfSpeciesFeatures*
+ListOfSpeciesFeatures::getSubListOfSpeciesFeatures(const std::string& sid) const
 {
-  return (mRelation != MULTI_RELATION_UNKNOWN);
+//  vector<SubListOfSpeciesFeatures*>::const_iterator result;
+
+//  result = find_if( mSubListOfSpeciesFeatures->begin(), mSubListOfSpeciesFeatures->end(), IdEq<SubListOfSpeciesFeatures>(sid) );
+//  return (result == mSubListOfSpeciesFeatures->end()) ? 0 : static_cast <SubListOfSpeciesFeatures*> (*result);
+
+  const SubListOfSpeciesFeatures * result = NULL;
+
+
+  if (!sid.empty() && mSubListOfSpeciesFeatures != NULL) {
+      for (unsigned int i = 0; result != NULL  && i < mSubListOfSpeciesFeatures->getSize(); i++) {
+	const SubListOfSpeciesFeatures * item = static_cast <SubListOfSpeciesFeatures*> (mSubListOfSpeciesFeatures->get(i));
+	if (item->getId() == sid) {
+	    result = item;
+	}
+      }
+  }
+
+  return result;
 }
 
 
 /*
- * Sets the value of the "relation" attribute of this ListOfSpeciesFeatures.
+ * Removes the nth SubListOfSpeciesFeatures from this ListOfSpeciesFeatures
  */
-int 
-ListOfSpeciesFeatures::setRelation(Relation_t relation)
+SubListOfSpeciesFeatures*
+ListOfSpeciesFeatures::removeSubListOfSpeciesFeatures(unsigned int n)
 {
-  if (SpeciesFeature_isValidRelation(relation) == 0)
+  if (!mSubListOfSpeciesFeatures) {
+      return NULL;
+  }
+
+  return static_cast<SubListOfSpeciesFeatures*>(mSubListOfSpeciesFeatures->remove(n));
+}
+
+
+/*
+ * Removes the SubListOfSpeciesFeatures from this ListOfSpeciesFeatures with the given identifier
+ */
+SubListOfSpeciesFeatures*
+ListOfSpeciesFeatures::removeSubListOfSpeciesFeatures(const std::string& sid)
+{
+//  SBase* item = NULL;
+//  vector<SBase*>::iterator result;
+//
+//  result = find_if((*mSubListOfSpeciesFeatures).begin(), mItems.end(), IdEq<SpeciesFeature>(sid) );
+//
+//  if (result != mItems.end())
+//  {
+//    item = *result;
+//    mItems.erase(result);
+//  }
+
+  SubListOfSpeciesFeatures * result = NULL;
+
+
+  if (!sid.empty() && mSubListOfSpeciesFeatures != NULL) {
+      unsigned int i;
+      for (i = 0; result != NULL && i < mSubListOfSpeciesFeatures->getSize(); i++) {
+	SubListOfSpeciesFeatures * item = static_cast <SubListOfSpeciesFeatures*> (mSubListOfSpeciesFeatures->get(i));
+	if (item->getId() == sid) {
+	    result = item;
+	}
+      }
+
+      if (result != NULL) {
+	  mSubListOfSpeciesFeatures->remove(i);
+      }
+  }
+
+  return result;
+}
+
+int
+ListOfSpeciesFeatures::addSubListOfSpeciesFeatures(SubListOfSpeciesFeatures* losf)
+{
+  if (losf == NULL)
   {
-    mRelation = MULTI_RELATION_UNKNOWN;
-    return LIBSBML_INVALID_ATTRIBUTE_VALUE;
+    return LIBSBML_INVALID_OBJECT;
   }
   else
   {
-    mRelation = relation;
-    return LIBSBML_OPERATION_SUCCESS;
+    unsigned int num = getNumSubListOfSpeciesFeatures();
+//    static_cast<SubListOfSpeciesFeatures*>(losf)->setIsSubList();
+    mSubListOfSpeciesFeatures->add(losf);
+    connectToChild();
+    if (getNumSubListOfSpeciesFeatures() == num + 1)
+    {
+      return LIBSBML_OPERATION_SUCCESS;
+    }
+    else
+    {
+      return LIBSBML_OPERATION_FAILED;
+    }
   }
+
 }
 
 
-/*
- * Unsets the value of the "relation" attribute of this ListOfSpeciesFeatures.
- */
-int 
-ListOfSpeciesFeatures::unsetRelation()
+unsigned int 
+ListOfSpeciesFeatures::getNumSubListOfSpeciesFeatures() const
 {
-  mRelation = MULTI_RELATION_UNKNOWN;
-  return LIBSBML_OPERATION_SUCCESS;
+  return mSubListOfSpeciesFeatures->getSize();
 }
 
 
@@ -1157,15 +1256,7 @@ const std::string&
 ListOfSpeciesFeatures::getElementName () const
 {
   static const string name = "listOfSpeciesFeatures";
-  static const string name1 = "subListOfSpeciesFeatures";
-  if (getIsSubList() == false)
-  {
-    return name;
-  }
-  else
-  {
-    return name1;
-  }
+  return name;
 }
 
 
@@ -1210,8 +1301,7 @@ ListOfSpeciesFeatures::createObject(XMLInputStream& stream)
   else if ( name == "subListOfSpeciesFeatures")
   {
     MULTI_CREATE_NS(multins, getSBMLNamespaces());
-    object = new ListOfSpeciesFeatures(multins);
-    static_cast<ListOfSpeciesFeatures*>(object)->setIsSubList();
+    object = new SubListOfSpeciesFeatures(multins);
     mSubListOfSpeciesFeatures->add(object);
     delete multins;
   }
@@ -1255,9 +1345,6 @@ void
 ListOfSpeciesFeatures::addExpectedAttributes(ExpectedAttributes& attributes)
 {
   SBase::addExpectedAttributes(attributes);
-
-  attributes.add("relation");
-
 }
 /** @endcond */
 
@@ -1267,34 +1354,6 @@ ListOfSpeciesFeatures::readAttributes (const XMLAttributes& attributes,
                                   const ExpectedAttributes& expectedAttributes)
 {
   SBase::readAttributes(attributes, expectedAttributes);
-  
-  //
-  // bindingStatus string   ( use = "optional" )
-  //
-  std::string relation;
-  bool assigned = attributes.readInto("relation", relation, 
-                                   getErrorLog(), false);
-
-  if (assigned == true)
-  {
-    // check string is not empty
-
-    if (relation.empty() == true)
-    {
-      logEmptyString(relation, getLevel(), getVersion(),
-                                    "<ListOfSpeciesFeatures>");
-    }
-    else 
-    {
-       mRelation = Relation_fromString( relation.c_str() );
-       if (SpeciesFeature_isValidRelation(mRelation) == 0)
-       {
-          getErrorLog()->logPackageError("multi", MultiLofSpeFtrs_RelationAtt_Ref,
-                       getPackageVersion(), getLevel(), getVersion(), "",
-                       getLine(), getColumn());
-       }
-    }
-  }
 }
 /** @endcond */
 
@@ -1302,8 +1361,7 @@ ListOfSpeciesFeatures::readAttributes (const XMLAttributes& attributes,
 void 
 ListOfSpeciesFeatures::writeAttributes (XMLOutputStream& stream) const
 {
-  if (isSetRelation() == true)
-    stream.writeAttribute("relation", getPrefix(), Relation_toString(mRelation));
+
 }
 /** @endcond */
 
@@ -1318,8 +1376,7 @@ ListOfSpeciesFeatures::writeElements (XMLOutputStream& stream) const
 
   for (unsigned int i = 0; i < mSubListOfSpeciesFeatures->getSize(); i++)
   {
-    static_cast<ListOfSpeciesFeatures*>(mSubListOfSpeciesFeatures->get(i))->
-      SBase::write(stream);
+    static_cast<SubListOfSpeciesFeatures*>(mSubListOfSpeciesFeatures->get(i))->write(stream);
   }
 
 }
@@ -1328,9 +1385,11 @@ ListOfSpeciesFeatures::writeElements (XMLOutputStream& stream) const
 void
 ListOfSpeciesFeatures::connectToChild()
 {
+  ListOf::connectToChild();
+
   for (unsigned int i = 0; i < mSubListOfSpeciesFeatures->getSize(); i++)
   {
-    static_cast<SBase*>(mSubListOfSpeciesFeatures->get(i))
+    static_cast<SubListOfSpeciesFeatures*>(mSubListOfSpeciesFeatures->get(i))
       ->connectToParent(this);
   }
 }
@@ -1601,80 +1660,6 @@ ListOfSpeciesFeatures_removeById(ListOf_t * lo, const char * sid)
   return (sid != NULL) ? static_cast <ListOfSpeciesFeatures *>(lo)->remove(sid) : NULL;
 }
 
-static
-const char* RELATION_STRINGS[] =
-{
-    "and"
-  , "or"
-  , "not"
-  , "unknown"
-};
-
-
-LIBSBML_EXTERN
-int 
-SpeciesFeature_isValidRelation(Relation_t relation)
-{
-  int max = MULTI_RELATION_UNKNOWN;
-
-  if (relation < MULTI_RELATION_AND || relation >= max)
-  {
-    return 0;
-  }
-  else
-  {
-    return 1;
-  }
-}
-
-LIBSBML_EXTERN
-int 
-SpeciesFeature_isValidRelationString(const char* s)
-{
-  return SpeciesFeature_isValidRelation(Relation_fromString(s));
-}
-
-
-
-
-LIBSBML_EXTERN
-const char* 
-Relation_toString(Relation_t relation)
-{
-  int max = MULTI_RELATION_UNKNOWN;
-
-  if (relation < MULTI_RELATION_AND || relation >= max)
-  {
-    return NULL;
-  }
-
-  return RELATION_STRINGS[relation];
-}
-
-
-LIBSBML_EXTERN
-Relation_t 
-Relation_fromString(const char* s)
-{
-  if (s == NULL) 
-  {
-    return MULTI_RELATION_UNKNOWN;
-  }
-
-  int max = MULTI_RELATION_UNKNOWN;
-  for (int i = 0; i < max; i++)
-  {
-    if (strcmp(RELATION_STRINGS[i], s) == 0)
-    {
-      return (Relation_t)i;
-    }
-  }
-  return MULTI_RELATION_UNKNOWN;
-}
-
-
-
-
 
 LIBSBML_CPP_NAMESPACE_END
 
diff --git a/src/sbml/packages/multi/sbml/SpeciesFeature.h b/src/sbml/packages/multi/sbml/SpeciesFeature.h
index feb15ff..8602701 100644
--- a/src/sbml/packages/multi/sbml/SpeciesFeature.h
+++ b/src/sbml/packages/multi/sbml/SpeciesFeature.h
@@ -35,15 +35,6 @@
 #include <sbml/common/sbmlfwd.h>
 #include <sbml/packages/multi/common/multifwd.h>
 
-typedef enum
-{
-    MULTI_RELATION_AND
-  , MULTI_RELATION_OR
-  , MULTI_RELATION_NOT
-  , MULTI_RELATION_UNKNOWN
-} Relation_t;
-
-
 
 #ifdef __cplusplus
 
@@ -60,6 +51,8 @@ typedef enum
 LIBSBML_CPP_NAMESPACE_BEGIN
 
 
+class SubListOfSpeciesFeatures;
+
 class LIBSBML_EXTERN SpeciesFeature : public SBase
 {
 
@@ -656,174 +649,232 @@ class LIBSBML_EXTERN ListOfSpeciesFeatures : public ListOf
 
 public:
 
-  /**
-   * Creates a new ListOfSpeciesFeatures with the given level, version, and package version.
-   *
-   * @param level an unsigned int, the SBML Level to assign to this ListOfSpeciesFeatures
-   *
-   * @param version an unsigned int, the SBML Version to assign to this ListOfSpeciesFeatures
-   *
-   * @param pkgVersion an unsigned int, the SBML Multi Version to assign to this ListOfSpeciesFeatures
-   */
-  ListOfSpeciesFeatures(unsigned int level      = MultiExtension::getDefaultLevel(),
-                        unsigned int version    = MultiExtension::getDefaultVersion(),
-                        unsigned int pkgVersion = MultiExtension::getDefaultPackageVersion());
+    /**
+     * Creates a new ListOfSpeciesFeatures with the given level, version, and package version.
+     *
+     * @param level an unsigned int, the SBML Level to assign to this ListOfSpeciesFeatures
+     *
+     * @param version an unsigned int, the SBML Version to assign to this ListOfSpeciesFeatures
+     *
+     * @param pkgVersion an unsigned int, the SBML Multi Version to assign to this ListOfSpeciesFeatures
+     */
+    ListOfSpeciesFeatures(unsigned int level      = MultiExtension::getDefaultLevel(),
+			  unsigned int version    = MultiExtension::getDefaultVersion(),
+			  unsigned int pkgVersion = MultiExtension::getDefaultPackageVersion());
+
+
+    /**
+     * Creates a new ListOfSpeciesFeatures with the given MultiPkgNamespaces object.
+     *
+     * @param multins the MultiPkgNamespaces object
+     */
+    ListOfSpeciesFeatures(MultiPkgNamespaces* multins);
+
+
+    /**
+     * Creates and returns a deep copy of this ListOfSpeciesFeatures object
+     *
+     * @param multins the MultiPkgNamespaces object
+     */
+    ListOfSpeciesFeatures(const ListOfSpeciesFeatures& orig);
+
+
+     /**
+     * Creates and returns a deep copy of this ListOfSpeciesFeatures object.
+     *
+     * @return a (deep) copy of this ListOfSpeciesFeatures object.
+     */
+    virtual ListOfSpeciesFeatures* clone () const;
+
+
+     /**
+     * Destroys this ListOfSpeciesFeatures object.
+     */
+    virtual ~ListOfSpeciesFeatures();
+
+
+    /**
+    * Get a SpeciesFeature from the ListOfSpeciesFeatures.
+    *
+    * @param n the index number of the SpeciesFeature to get.
+    *
+    * @return the nth SpeciesFeature in this ListOfSpeciesFeatures.
+    *
+    * @see size()
+    */
+   virtual SpeciesFeature* get(unsigned int n);
 
 
-  /**
-   * Creates a new ListOfSpeciesFeatures with the given MultiPkgNamespaces object.
-   *
-   * @param multins the MultiPkgNamespaces object
-   */
-  ListOfSpeciesFeatures(MultiPkgNamespaces* multins);
+   /**
+    * Get a SpeciesFeature from the ListOfSpeciesFeatures.
+    *
+    * @param n the index number of the SpeciesFeature to get.
+    *
+    * @return the nth SpeciesFeature in this ListOfSpeciesFeatures.
+    *
+    * @see size()
+    */
+   virtual const SpeciesFeature* get(unsigned int n) const;
 
 
    /**
-   * Creates and returns a deep copy of this ListOfSpeciesFeatures object.
-   *
-   * @return a (deep) copy of this ListOfSpeciesFeatures object.
-   */
-  virtual ListOfSpeciesFeatures* clone () const;
+    * Get a SpeciesFeature from the ListOfSpeciesFeatures
+    * based on its identifier.
+    *
+    * @param sid a string representing the identifier
+    * of the SpeciesFeature to get.
+    *
+    * @return SpeciesFeature in this ListOfSpeciesFeatures
+    * with the given id or NULL if no such
+    * SpeciesFeature exists.
+    *
+    * @see get(unsigned int n)   *
+    * @see size()
+    */
+   virtual SpeciesFeature* get(const std::string& sid);
 
 
    /**
-   * Get a SpeciesFeature from the ListOfSpeciesFeatures.
+    * Get a SpeciesFeature from the ListOfSpeciesFeatures
+    * based on its identifier.
+    *
+    * @param sid a string representing the identifier
+    * of the SpeciesFeature to get.
+    *
+    * @return SpeciesFeature in this ListOfSpeciesFeatures
+    * with the given id or NULL if no such
+    * SpeciesFeature exists.
+    *
+    * @see get(unsigned int n)   *
+    * @see size()
+    */
+   virtual const SpeciesFeature* get(const std::string& sid) const;
+
+
+   /**
+    * Removes the nth SpeciesFeature from this ListOfSpeciesFeatures
+    * and returns a pointer to it.
+    *
+    * The caller owns the returned item and is responsible for deleting it.
+    *
+    * @param n the index of the SpeciesFeature to remove.
+    *
+    * @see size()
+    */
+   virtual SpeciesFeature* remove(unsigned int n);
+
+
+   /**
+    * Removes the SpeciesFeature from this ListOfSpeciesFeatures with the given identifier
+    * and returns a pointer to it.
+    *
+    * The caller owns the returned item and is responsible for deleting it.
+    * If none of the items in this list have the identifier @p sid, then
+    * @c NULL is returned.
+    *
+    * @param sid the identifier of the SpeciesFeature to remove.
+    *
+    * @return the SpeciesFeature removed. As mentioned above, the caller owns the
+    * returned item.
+    */
+   virtual SpeciesFeature* remove(const std::string& sid);
+
+   unsigned int getNumSpeciesFeatures() const;
+
+   unsigned int size() const;
+
+   /**
+   * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures.
    *
-   * @param n the index number of the SpeciesFeature to get.
+   * @param n the index number of the SubListOfSpeciesFeatures to get.
    *
-   * @return the nth SpeciesFeature in this ListOfSpeciesFeatures.
+   * @return the nth SubListOfSpeciesFeatures in this ListOfSpeciesFeatures.
    *
    * @see size()
    */
-  virtual SpeciesFeature* get(unsigned int n);
+  virtual SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(unsigned int n);
 
 
   /**
-   * Get a SpeciesFeature from the ListOfSpeciesFeatures.
+   * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures.
    *
-   * @param n the index number of the SpeciesFeature to get.
+   * @param n the index number of the SubListOfSpeciesFeatures to get.
    *
-   * @return the nth SpeciesFeature in this ListOfSpeciesFeatures.
+   * @return the nth SubListOfSpeciesFeatures in this ListOfSpeciesFeatures.
    *
    * @see size()
    */
-  virtual const SpeciesFeature* get(unsigned int n) const;
+  virtual const SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(unsigned int n) const;
 
 
   /**
-   * Get a SpeciesFeature from the ListOfSpeciesFeatures
+   * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures
    * based on its identifier.
    *
    * @param sid a string representing the identifier
-   * of the SpeciesFeature to get.
+   * of the SubListOfSpeciesFeatures to get.
    *
-   * @return SpeciesFeature in this ListOfSpeciesFeatures
+   * @return SubListOfSpeciesFeatures in this ListOfSpeciesFeatures
    * with the given id or NULL if no such
-   * SpeciesFeature exists.
+   * SubListOfSpeciesFeatures exists.
    *
    * @see get(unsigned int n)   *
    * @see size()
    */
-  virtual SpeciesFeature* get(const std::string& sid);
+  virtual SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(const std::string& sid);
 
 
   /**
-   * Get a SpeciesFeature from the ListOfSpeciesFeatures
+   * Get a SubListOfSpeciesFeatures from the ListOfSpeciesFeatures
    * based on its identifier.
    *
    * @param sid a string representing the identifier
-   * of the SpeciesFeature to get.
+   * of the SubListOfSpeciesFeatures to get.
    *
-   * @return SpeciesFeature in this ListOfSpeciesFeatures
+   * @return SubListOfSpeciesFeatures in this ListOfSpeciesFeatures
    * with the given id or NULL if no such
-   * SpeciesFeature exists.
+   * SubListOfSpeciesFeatures exists.
    *
    * @see get(unsigned int n)   *
    * @see size()
    */
-  virtual const SpeciesFeature* get(const std::string& sid) const;
+  virtual const SubListOfSpeciesFeatures* getSubListOfSpeciesFeatures(const std::string& sid) const;
 
 
   /**
-   * Removes the nth SpeciesFeature from this ListOfSpeciesFeatures
+   * Removes the nth SubListOfSpeciesFeatures from this ListOfSpeciesFeatures
    * and returns a pointer to it.
    *
    * The caller owns the returned item and is responsible for deleting it.
    *
-   * @param n the index of the SpeciesFeature to remove.
+   * @param n the index of the SubListOfSpeciesFeatures to remove.
    *
    * @see size()
    */
-  virtual SpeciesFeature* remove(unsigned int n);
+  virtual SubListOfSpeciesFeatures* removeSubListOfSpeciesFeatures(unsigned int n);
 
 
   /**
-   * Removes the SpeciesFeature from this ListOfSpeciesFeatures with the given identifier
+   * Removes the SubListOfSpeciesFeatures from this ListOfSpeciesFeatures with the given identifier
    * and returns a pointer to it.
    *
    * The caller owns the returned item and is responsible for deleting it.
    * If none of the items in this list have the identifier @p sid, then
    * @c NULL is returned.
    *
-   * @param sid the identifier of the SpeciesFeature to remove.
+   * @param sid the identifier of the SubListOfSpeciesFeatures to remove.
    *
-   * @return the SpeciesFeature removed. As mentioned above, the caller owns the
+   * @return the SubListOfSpeciesFeatures removed. As mentioned above, the caller owns the
    * returned item.
    */
-  virtual SpeciesFeature* remove(const std::string& sid);
+  virtual SubListOfSpeciesFeatures* removeSubListOfSpeciesFeatures(const std::string& sid);
 
 
-  int addSubListOfSpeciesFeatures(ListOfSpeciesFeatures* losf);
+  int addSubListOfSpeciesFeatures(SubListOfSpeciesFeatures* losf);
 
   unsigned int getNumSubListOfSpeciesFeatures() const;
 
 
-   /**
-   * Returns the value of the "relation" attribute of this ListOfSpeciesFeatures.
-   *
-   * @return the value of the "relation" attribute of this ListOfSpeciesFeatures as a FIX ME.
-   */
-  Relation_t getRelation() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * ListOfSpeciesFeatures's "relation" attribute has been set.
-   *
-   * @return @c true if this ListOfSpeciesFeatures's "relation" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetRelation() const;
-
-
-  /**
-   * Sets the value of the "relation" attribute of this ListOfSpeciesFeatures.
-   *
-   * @param relation; FIX ME value of the "relation" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setRelation(Relation_t relation);
-
-
-  /**
-   * Unsets the value of the "relation" attribute of this ListOfSpeciesFeatures.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetRelation();
-
-
   /**
    * Returns the XML element name of this object, which for ListOfSpeciesFeatures, is
    * always @c "listOfSpeciesFeatures".
@@ -910,7 +961,6 @@ public:
   /** @endcond doxygenLibsbmlInternal */
 
 
-
 protected:
 
   /** @cond doxygenLibsbmlInternal */
@@ -967,23 +1017,16 @@ protected:
    */
   virtual void writeElements (XMLOutputStream& stream) const;  
   
-  void setIsSubList() { mIsSubList = true; };
-  bool getIsSubList() const { return mIsSubList; };
 
   /** @endcond */
 
-    /** @cond doxygenLibsbmlInternal */
-
-  List * mSubListOfSpeciesFeatures;
 
-  Relation_t mRelation;
-
-  bool mIsSubList;
+  /** @cond doxygenLibsbmlInternal */
 
+  List * mSubListOfSpeciesFeatures;
 
   /** @endcond */
 
-
 };
 
 
@@ -1155,24 +1198,7 @@ ListOfSpeciesFeatures_removeById(ListOf_t * lo, const char * sid);
 
 LIBSBML_EXTERN
 int 
-SpeciesFeature_isValidRelation(Relation_t relation);
-
-
-LIBSBML_EXTERN
-int 
-SpeciesFeature_isValidRelationString(const char* s);
-
-
-LIBSBML_EXTERN
-const char* 
-Relation_toString(Relation_t relation);
-
-
-LIBSBML_EXTERN
-Relation_t 
-Relation_fromString(const char* s);
-
-
+SubListOfSpeciesFeatures_isValidRelationString(const char* s);
 
 
 END_C_DECLS
diff --git a/src/sbml/packages/multi/sbml/SpeciesFeatureChange.cpp b/src/sbml/packages/multi/sbml/SpeciesFeatureChange.cpp
index 7f38f98..13a2104 100644
--- a/src/sbml/packages/multi/sbml/SpeciesFeatureChange.cpp
+++ b/src/sbml/packages/multi/sbml/SpeciesFeatureChange.cpp
@@ -544,7 +544,7 @@ SpeciesFeatureChange::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'reactantSpeciesFeature' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSpeFtrChg_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
@@ -572,7 +572,7 @@ SpeciesFeatureChange::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'productSpeciesFeature' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSpeFtrChg_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
diff --git a/src/sbml/packages/multi/sbml/SpeciesFeatureType.cpp b/src/sbml/packages/multi/sbml/SpeciesFeatureType.cpp
index 23e388d..5b4a0ba 100644
--- a/src/sbml/packages/multi/sbml/SpeciesFeatureType.cpp
+++ b/src/sbml/packages/multi/sbml/SpeciesFeatureType.cpp
@@ -751,7 +751,7 @@ SpeciesFeatureType::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'id' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSpeFtrTyp_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message,
                    getLine(), getColumn());
   }
@@ -793,7 +793,7 @@ SpeciesFeatureType::readAttributes (const XMLAttributes& attributes,
       else
       {
         std::string message = "Multi attribute 'occur' is missing.";
-        getErrorLog()->logPackageError("multi", MultiUnknownError,
+        getErrorLog()->logPackageError("multi", MultiSpeFtrTyp_AllowedMultiAtts,
                        getPackageVersion(), sbmlLevel, sbmlVersion, message,
                        getLine(), getColumn());
       }
diff --git a/src/sbml/packages/multi/sbml/SpeciesFeatureValue.cpp b/src/sbml/packages/multi/sbml/SpeciesFeatureValue.cpp
index 2e055c4..2b38fe1 100644
--- a/src/sbml/packages/multi/sbml/SpeciesFeatureValue.cpp
+++ b/src/sbml/packages/multi/sbml/SpeciesFeatureValue.cpp
@@ -399,7 +399,7 @@ SpeciesFeatureValue::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'value' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSpeFtrVal_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
diff --git a/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.cpp b/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.cpp
index b3f9df4..0baeb1e 100644
--- a/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.cpp
+++ b/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.cpp
@@ -45,16 +45,10 @@ SpeciesTypeComponentIndex::SpeciesTypeComponentIndex (unsigned int level, unsign
   : SBase(level, version)
    ,mId ("")
    ,mComponent ("")
-   ,mOccur (SBML_INT_MAX)
-   ,mIsSetOccur (false)
    ,mIdentifyingParent ("")
-   ,mDenotedSpeciesTypeComponentIndexes (level, version, pkgVersion)
 {
   // set an SBMLNamespaces derived object of this package
   setSBMLNamespacesAndOwn(new MultiPkgNamespaces(level, version, pkgVersion));
-
-  // connect to child objects
-  connectToChild();
 }
 
 
@@ -65,17 +59,11 @@ SpeciesTypeComponentIndex::SpeciesTypeComponentIndex (MultiPkgNamespaces* multin
   : SBase(multins)
    ,mId ("")
    ,mComponent ("")
-   ,mOccur (SBML_INT_MAX)
-   ,mIsSetOccur (false)
    ,mIdentifyingParent ("")
-   ,mDenotedSpeciesTypeComponentIndexes (multins)
 {
   // set the element namespace of this object
   setElementNamespace(multins->getURI());
 
-  // connect to child objects
-  connectToChild();
-
   // load package extensions bound with this object (if any) 
   loadPlugins(multins);
 }
@@ -88,13 +76,8 @@ SpeciesTypeComponentIndex::SpeciesTypeComponentIndex (const SpeciesTypeComponent
   : SBase(orig)
   , mId  ( orig.mId)
   , mComponent  ( orig.mComponent)
-  , mOccur  ( orig.mOccur)
-  , mIsSetOccur  ( orig.mIsSetOccur)
   , mIdentifyingParent  ( orig.mIdentifyingParent)
-  , mDenotedSpeciesTypeComponentIndexes  ( orig.mDenotedSpeciesTypeComponentIndexes)
 {
-  // connect to child objects
-  connectToChild();
 }
 
 
@@ -109,13 +92,7 @@ SpeciesTypeComponentIndex::operator=(const SpeciesTypeComponentIndex& rhs)
     SBase::operator=(rhs);
     mId  = rhs.mId;
     mComponent  = rhs.mComponent;
-    mOccur  = rhs.mOccur;
-    mIsSetOccur  = rhs.mIsSetOccur;
     mIdentifyingParent  = rhs.mIdentifyingParent;
-    mDenotedSpeciesTypeComponentIndexes  = rhs.mDenotedSpeciesTypeComponentIndexes;
-
-    // connect to child objects
-    connectToChild();
   }
   return *this;
 }
@@ -160,16 +137,6 @@ SpeciesTypeComponentIndex::getComponent() const
 
 
 /*
- * Returns the value of the "occur" attribute of this SpeciesTypeComponentIndex.
- */
-unsigned int
-SpeciesTypeComponentIndex::getOccur() const
-{
-  return mOccur;
-}
-
-
-/*
  * Returns the value of the "identifyingParent" attribute of this SpeciesTypeComponentIndex.
  */
 const std::string&
@@ -200,16 +167,6 @@ SpeciesTypeComponentIndex::isSetComponent() const
 
 
 /*
- * Returns true/false if occur is set.
- */
-bool
-SpeciesTypeComponentIndex::isSetOccur() const
-{
-  return mIsSetOccur;
-}
-
-
-/*
  * Returns true/false if identifyingParent is set.
  */
 bool
@@ -248,18 +205,6 @@ SpeciesTypeComponentIndex::setComponent(const std::string& component)
 
 
 /*
- * Sets occur and returns value indicating success.
- */
-int
-SpeciesTypeComponentIndex::setOccur(unsigned int occur)
-{
-  mOccur = occur;
-  mIsSetOccur = true;
-  return LIBSBML_OPERATION_SUCCESS;
-}
-
-
-/*
  * Sets identifyingParent and returns value indicating success.
  */
 int
@@ -316,26 +261,6 @@ SpeciesTypeComponentIndex::unsetComponent()
 
 
 /*
- * Unsets occur and returns value indicating success.
- */
-int
-SpeciesTypeComponentIndex::unsetOccur()
-{
-  mOccur = SBML_INT_MAX;
-  mIsSetOccur = false;
-
-  if (isSetOccur() == false)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
  * Unsets identifyingParent and returns value indicating success.
  */
 int
@@ -355,163 +280,6 @@ SpeciesTypeComponentIndex::unsetIdentifyingParent()
 
 
 /*
- * Returns the  "ListOfDenotedSpeciesTypeComponentIndexes" in this SpeciesTypeComponentIndex object.
- */
-const ListOfDenotedSpeciesTypeComponentIndexes*
-SpeciesTypeComponentIndex::getListOfDenotedSpeciesTypeComponentIndexes() const
-{
-  return &mDenotedSpeciesTypeComponentIndexes;
-}
-
-
-/*
- * Returns the  "ListOfDenotedSpeciesTypeComponentIndexes" in this SpeciesTypeComponentIndex object.
- */
-ListOfDenotedSpeciesTypeComponentIndexes*
-SpeciesTypeComponentIndex::getListOfDenotedSpeciesTypeComponentIndexes()
-{
-  return &mDenotedSpeciesTypeComponentIndexes;
-}
-
-
-/*
- * Removes the nth DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes.
- */
-DenotedSpeciesTypeComponentIndex*
-SpeciesTypeComponentIndex::removeDenotedSpeciesTypeComponentIndex(unsigned int n)
-{
-  return mDenotedSpeciesTypeComponentIndexes.remove(n);
-}
-
-
-/*
- * Removes the a DenotedSpeciesTypeComponentIndex with given id from the ListOfDenotedSpeciesTypeComponentIndexes.
- */
-DenotedSpeciesTypeComponentIndex*
-SpeciesTypeComponentIndex::removeDenotedSpeciesTypeComponentIndex(const std::string& sid)
-{
-  return mDenotedSpeciesTypeComponentIndexes.remove(sid);
-}
-
-
-/*
- * Return the nth DenotedSpeciesTypeComponentIndex in the ListOfDenotedSpeciesTypeComponentIndexes within this SpeciesTypeComponentIndex.
- */
-DenotedSpeciesTypeComponentIndex*
-SpeciesTypeComponentIndex::getDenotedSpeciesTypeComponentIndex(unsigned int n)
-{
-  return mDenotedSpeciesTypeComponentIndexes.get(n);
-}
-
-
-/*
- * Return the nth DenotedSpeciesTypeComponentIndex in the ListOfDenotedSpeciesTypeComponentIndexes within this SpeciesTypeComponentIndex.
- */
-const DenotedSpeciesTypeComponentIndex*
-SpeciesTypeComponentIndex::getDenotedSpeciesTypeComponentIndex(unsigned int n) const
-{
-  return mDenotedSpeciesTypeComponentIndexes.get(n);
-}
-
-
-/*
- * Return a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes by id.
- */
-DenotedSpeciesTypeComponentIndex*
-SpeciesTypeComponentIndex::getDenotedSpeciesTypeComponentIndex(const std::string& sid)
-{
-  return mDenotedSpeciesTypeComponentIndexes.get(sid);
-}
-
-
-/*
- * Return a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes by id.
- */
-const DenotedSpeciesTypeComponentIndex*
-SpeciesTypeComponentIndex::getDenotedSpeciesTypeComponentIndex(const std::string& sid) const
-{
-  return mDenotedSpeciesTypeComponentIndexes.get(sid);
-}
-
-
-/*
- * Adds a copy the given "DenotedSpeciesTypeComponentIndex" to this SpeciesTypeComponentIndex.
- */
-int
-SpeciesTypeComponentIndex::addDenotedSpeciesTypeComponentIndex(const DenotedSpeciesTypeComponentIndex* dstci)
-{
-  if (dstci == NULL)
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-  else if (dstci->hasRequiredAttributes() == false)
-  {
-    return LIBSBML_INVALID_OBJECT;
-  }
-  else if (getLevel() != dstci->getLevel())
-  {
-    return LIBSBML_LEVEL_MISMATCH;
-  }
-  else if (getVersion() != dstci->getVersion())
-  {
-    return LIBSBML_VERSION_MISMATCH;
-  }
-  else if (matchesRequiredSBMLNamespacesForAddition(static_cast<const SBase *>(dstci)) == false)
-  {
-    return LIBSBML_NAMESPACES_MISMATCH;
-  }
-  else
-  {
-    mDenotedSpeciesTypeComponentIndexes.append(dstci);
-
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-}
-
-
-/*
- * Get the number of DenotedSpeciesTypeComponentIndex objects in this SpeciesTypeComponentIndex.
- */
-unsigned int
-SpeciesTypeComponentIndex::getNumDenotedSpeciesTypeComponentIndexes() const
-{
-  return mDenotedSpeciesTypeComponentIndexes.size();
-}
-
-
-/*
- * Creates a new DenotedSpeciesTypeComponentIndex object, adds it to this SpeciesTypeComponentIndexes
- */
-DenotedSpeciesTypeComponentIndex*
-SpeciesTypeComponentIndex::createDenotedSpeciesTypeComponentIndex()
-{
-  DenotedSpeciesTypeComponentIndex* dstci = NULL;
-
-  try
-  {
-    MULTI_CREATE_NS(multins, getSBMLNamespaces());
-    dstci = new DenotedSpeciesTypeComponentIndex(multins);
-    delete multins;
-  }
-  catch (...)
-  {
-    /* here we do not create a default object as the level/version must
-     * match the parent object
-     *
-     * do nothing
-     */
-  }
-
-  if(dstci != NULL)
-  {
-    mDenotedSpeciesTypeComponentIndexes.appendAndOwn(dstci);
-  }
-
-  return dstci;
-}
-
-
-/*
  * rename attributes that are SIdRefs or instances in math
  */
 void
@@ -531,20 +299,6 @@ SpeciesTypeComponentIndex::renameSIdRefs(const std::string& oldid, const std::st
 }
 
 
-List*
-SpeciesTypeComponentIndex::getAllElements(ElementFilter* filter)
-{
-  List* ret = new List();
-  List* sublist = NULL;
-
-  ADD_FILTERED_LIST(ret, sublist, mDenotedSpeciesTypeComponentIndexes, filter);
-
-  ADD_FILTERED_FROM_PLUGIN(ret, sublist, filter);
-
-  return ret;
-}
-
-
 /*
  * Returns the XML element name of this object
  */
@@ -580,21 +334,6 @@ SpeciesTypeComponentIndex::hasRequiredAttributes () const
   if (isSetComponent() == false)
     allPresent = false;
 
-  if (isSetOccur() == false)
-    allPresent = false;
-
-  return allPresent;
-}
-
-
-/*
- * check if all the required elements are set
- */
-bool
-SpeciesTypeComponentIndex::hasRequiredElements () const
-{
-  bool allPresent = true;
-
   return allPresent;
 }
 
@@ -609,11 +348,6 @@ SpeciesTypeComponentIndex::writeElements (XMLOutputStream& stream) const
 {
   SBase::writeElements(stream);
 
-  if (getNumDenotedSpeciesTypeComponentIndexes() > 0)
-  {
-    mDenotedSpeciesTypeComponentIndexes.write(stream);
-  }
-
   SBase::writeExtensionElements(stream);
 }
 
@@ -631,12 +365,6 @@ SpeciesTypeComponentIndex::accept (SBMLVisitor& v) const
 {
   v.visit(*this);
 
-  // DenotedSpeciesTypeComponentIndex
-  for(unsigned int i = 0; i < getNumDenotedSpeciesTypeComponentIndexes(); i++)
-  {
-    getDenotedSpeciesTypeComponentIndex(i)->accept(v);
-  }
-
   return true;
 }
 
@@ -653,22 +381,6 @@ void
 SpeciesTypeComponentIndex::setSBMLDocument (SBMLDocument* d)
 {
   SBase::setSBMLDocument(d);
-  mDenotedSpeciesTypeComponentIndexes.setSBMLDocument(d);
-}
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-/*
-   * Connects to child elements.
- */
-void
-SpeciesTypeComponentIndex::connectToChild()
-{
-  mDenotedSpeciesTypeComponentIndexes.connectToParent(this);
 }
 
 
@@ -685,7 +397,6 @@ SpeciesTypeComponentIndex::enablePackageInternal(const std::string& pkgURI,
              const std::string& pkgPrefix, bool flag)
 {
   SBase::enablePackageInternal(pkgURI, pkgPrefix, flag);
-  mDenotedSpeciesTypeComponentIndexes.enablePackageInternal(pkgURI, pkgPrefix, flag);
 }
 
 
@@ -700,18 +411,14 @@ SpeciesTypeComponentIndex::enablePackageInternal(const std::string& pkgURI,
 SBase*
 SpeciesTypeComponentIndex::createObject(XMLInputStream& stream)
 {
-  const string& name = stream.peek().getName();
-  SBase* object = NULL;
+  return NULL;
+  //const string& name = stream.peek().getName();
+  //SBase* object = NULL;
 
-  MULTI_CREATE_NS(multins, getSBMLNamespaces());
+  //MULTI_CREATE_NS(multins, getSBMLNamespaces());
 
-  if (name == "listOfDenotedSpeciesTypeComponentIndexes")
-  {
-    object = &mDenotedSpeciesTypeComponentIndexes;
-  }
-
-  delete multins;
-  return object;
+  //delete multins;
+  //return object;
 }
 
 
@@ -730,7 +437,6 @@ SpeciesTypeComponentIndex::addExpectedAttributes(ExpectedAttributes& attributes)
 
   attributes.add("id");
   attributes.add("component");
-  attributes.add("occur");
   attributes.add("identifyingParent");
 }
 
@@ -842,7 +548,7 @@ SpeciesTypeComponentIndex::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'id' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSptCpoInd_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message,
                    getLine(), getColumn());
   }
@@ -871,41 +577,12 @@ SpeciesTypeComponentIndex::readAttributes (const XMLAttributes& attributes,
   else
   {
     std::string message = "Multi attribute 'component' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSptCpoInd_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message,
                    getLine(), getColumn());
   }
 
   //
-  // occur unsigned int   ( use = "required" )
-  //
-  numErrs = getErrorLog()->getNumErrors();
-  mIsSetOccur = attributes.readInto("occur", mOccur);
-
-  if (mIsSetOccur == false)
-  {
-    if (getErrorLog() != NULL)
-    {
-      if (getErrorLog()->getNumErrors() == numErrs + 1 &&
-              getErrorLog()->contains(XMLAttributeTypeMismatch))
-      {
-        std::string message = getErrorLog()->getError(numErrs)->getMessage();
-        getErrorLog()->remove(XMLAttributeTypeMismatch);
-        getErrorLog()->logPackageError("multi", MultiSptCpoInd_OccAtt_Ref,
-                     getPackageVersion(), sbmlLevel, sbmlVersion, message,
-                     getLine(), getColumn());
-      }
-      else
-      {
-        std::string message = "Multi attribute 'occur' is missing.";
-        getErrorLog()->logPackageError("multi", MultiUnknownError,
-                       getPackageVersion(), sbmlLevel, sbmlVersion, message,
-                       getLine(), getColumn());
-      }
-    }
-  }
-
-  //
   // identifyingParent SIdRef   ( use = "optional" )
   //
   assigned = attributes.readInto("identifyingParent", mIdentifyingParent);
@@ -949,9 +626,6 @@ SpeciesTypeComponentIndex::writeAttributes (XMLOutputStream& stream) const
   if (isSetComponent() == true)
     stream.writeAttribute("component", getPrefix(), mComponent);
 
-  if (isSetOccur() == true)
-    stream.writeAttribute("occur", getPrefix(), mOccur);
-
   if (isSetIdentifyingParent() == true)
     stream.writeAttribute("identifyingParent", getPrefix(), mIdentifyingParent);
 
@@ -1229,17 +903,6 @@ SpeciesTypeComponentIndex_getComponent(SpeciesTypeComponentIndex_t * stci)
  * 
  */
 LIBSBML_EXTERN
-unsigned int
-SpeciesTypeComponentIndex_getOccur(SpeciesTypeComponentIndex_t * stci)
-{
-  return (stci != NULL) ? stci->getOccur() : SBML_INT_MAX;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
 char *
 SpeciesTypeComponentIndex_getIdentifyingParent(SpeciesTypeComponentIndex_t * stci)
 {
@@ -1277,17 +940,6 @@ SpeciesTypeComponentIndex_isSetComponent(SpeciesTypeComponentIndex_t * stci)
  */
 LIBSBML_EXTERN
 int
-SpeciesTypeComponentIndex_isSetOccur(SpeciesTypeComponentIndex_t * stci)
-{
-  return (stci != NULL) ? static_cast<int>(stci->isSetOccur()) : 0;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
-int
 SpeciesTypeComponentIndex_isSetIdentifyingParent(SpeciesTypeComponentIndex_t * stci)
 {
   return (stci != NULL) ? static_cast<int>(stci->isSetIdentifyingParent()) : 0;
@@ -1321,17 +973,6 @@ SpeciesTypeComponentIndex_setComponent(SpeciesTypeComponentIndex_t * stci, const
  */
 LIBSBML_EXTERN
 int
-SpeciesTypeComponentIndex_setOccur(SpeciesTypeComponentIndex_t * stci, unsigned int occur)
-{
-  return (stci != NULL) ? stci->setOccur(occur) : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
-int
 SpeciesTypeComponentIndex_setIdentifyingParent(SpeciesTypeComponentIndex_t * stci, const char * identifyingParent)
 {
   return (stci != NULL) ? stci->setIdentifyingParent(identifyingParent) : LIBSBML_INVALID_OBJECT;
@@ -1365,17 +1006,6 @@ SpeciesTypeComponentIndex_unsetComponent(SpeciesTypeComponentIndex_t * stci)
  */
 LIBSBML_EXTERN
 int
-SpeciesTypeComponentIndex_unsetOccur(SpeciesTypeComponentIndex_t * stci)
-{
-  return (stci != NULL) ? stci->unsetOccur() : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
-int
 SpeciesTypeComponentIndex_unsetIdentifyingParent(SpeciesTypeComponentIndex_t * stci)
 {
   return (stci != NULL) ? stci->unsetIdentifyingParent() : LIBSBML_INVALID_OBJECT;
diff --git a/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.h b/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.h
index 781cc69..fb70c78 100644
--- a/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.h
+++ b/src/sbml/packages/multi/sbml/SpeciesTypeComponentIndex.h
@@ -46,7 +46,6 @@
 #include <sbml/ListOf.h>
 #include <sbml/packages/multi/extension/MultiExtension.h>
 
-#include <sbml/packages/multi/sbml/DenotedSpeciesTypeComponentIndex.h>
 
 LIBSBML_CPP_NAMESPACE_BEGIN
 
@@ -58,10 +57,7 @@ protected:
 
   std::string   mId;
   std::string   mComponent;
-  unsigned int  mOccur;
-  bool          mIsSetOccur;
   std::string   mIdentifyingParent;
-  ListOfDenotedSpeciesTypeComponentIndexes   mDenotedSpeciesTypeComponentIndexes;
 
 
 public:
@@ -212,52 +208,6 @@ public:
 
 
   /**
-   * Returns the value of the "occur" attribute of this SpeciesTypeComponentIndex.
-   *
-   * @return the value of the "occur" attribute of this SpeciesTypeComponentIndex as a unsigned integer.
-   */
-  virtual unsigned int getOccur() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * SpeciesTypeComponentIndex's "occur" attribute has been set.
-   *
-   * @return @c true if this SpeciesTypeComponentIndex's "occur" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetOccur() const;
-
-
-  /**
-   * Sets the value of the "occur" attribute of this SpeciesTypeComponentIndex.
-   *
-   * @param occur; unsigned int value of the "occur" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setOccur(unsigned int occur);
-
-
-  /**
-   * Unsets the value of the "occur" attribute of this SpeciesTypeComponentIndex.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetOccur();
-
-
-  /**
    * Returns the value of the "identifyingParent" attribute of this SpeciesTypeComponentIndex.
    *
    * @return the value of the "identifyingParent" attribute of this SpeciesTypeComponentIndex as a string.
@@ -304,145 +254,6 @@ public:
 
 
   /**
-   * Returns the  "ListOfDenotedSpeciesTypeComponentIndexes" in this SpeciesTypeComponentIndex object.
-   *
-   * @return the "ListOfDenotedSpeciesTypeComponentIndexes" attribute of this SpeciesTypeComponentIndex.
-   */
-  const ListOfDenotedSpeciesTypeComponentIndexes* getListOfDenotedSpeciesTypeComponentIndexes() const;
-
-
-  /**
-   * Returns the  "ListOfDenotedSpeciesTypeComponentIndexes" in this SpeciesTypeComponentIndex object.
-   *
-   * @return the "ListOfDenotedSpeciesTypeComponentIndexes" attribute of this SpeciesTypeComponentIndex.
-   */
-  ListOfDenotedSpeciesTypeComponentIndexes* getListOfDenotedSpeciesTypeComponentIndexes();
-
-
-  /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes.
-   *
-   * @param n the index number of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return the nth DenotedSpeciesTypeComponentIndex in the ListOfDenotedSpeciesTypeComponentIndexes within this SpeciesTypeComponentIndex.
-   *
-   * @see getNumDenotedSpeciesTypeComponentIndexes()
-   */
-  DenotedSpeciesTypeComponentIndex* getDenotedSpeciesTypeComponentIndex(unsigned int n);
-
-
-  /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes.
-   *
-   * @param n the index number of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return the nth DenotedSpeciesTypeComponentIndex in the ListOfDenotedSpeciesTypeComponentIndexes within this SpeciesTypeComponentIndex.
-   *
-   * @see getNumDenotedSpeciesTypeComponentIndexes()
-   */
-  const DenotedSpeciesTypeComponentIndex* getDenotedSpeciesTypeComponentIndex(unsigned int n) const;
-
-
-  /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return the DenotedSpeciesTypeComponentIndex in the ListOfDenotedSpeciesTypeComponentIndexes
-   * with the given id or NULL if no such
-   * DenotedSpeciesTypeComponentIndex exists.
-   *
-   * @see getDenotedSpeciesTypeComponentIndex(unsigned int n)
-   *
-   * @see getNumDenotedSpeciesTypeComponentIndexes()
-   */
-  DenotedSpeciesTypeComponentIndex* getDenotedSpeciesTypeComponentIndex(const std::string& sid);
-
-
-  /**
-   * Get a DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes
-   * based on its identifier.
-   *
-   * @param sid a string representing the identifier
-   * of the DenotedSpeciesTypeComponentIndex to get.
-   *
-   * @return the DenotedSpeciesTypeComponentIndex in the ListOfDenotedSpeciesTypeComponentIndexes
-   * with the given id or NULL if no such
-   * DenotedSpeciesTypeComponentIndex exists.
-   *
-   * @see getDenotedSpeciesTypeComponentIndex(unsigned int n)
-   *
-   * @see getNumDenotedSpeciesTypeComponentIndexes()
-   */
-  const DenotedSpeciesTypeComponentIndex* getDenotedSpeciesTypeComponentIndex(const std::string& sid) const;
-
-
-  /**
-   * Adds a copy the given "DenotedSpeciesTypeComponentIndex" to this SpeciesTypeComponentIndex.
-   *
-   * @param dstci; the DenotedSpeciesTypeComponentIndex object to add
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  int addDenotedSpeciesTypeComponentIndex(const DenotedSpeciesTypeComponentIndex* dstci);
-
-
-  /**
-   * Get the number of DenotedSpeciesTypeComponentIndex objects in this SpeciesTypeComponentIndex.
-   *
-   * @return the number of DenotedSpeciesTypeComponentIndex objects in this SpeciesTypeComponentIndex
-   */
-  unsigned int getNumDenotedSpeciesTypeComponentIndexes() const;
-
-
-  /**
-   * Creates a new DenotedSpeciesTypeComponentIndex object, adds it to this SpeciesTypeComponentIndexes
-   * ListOfDenotedSpeciesTypeComponentIndexes and returns the DenotedSpeciesTypeComponentIndex object created. 
-   *
-   * @return a new DenotedSpeciesTypeComponentIndex object instance
-   *
-   * @see addDenotedSpeciesTypeComponentIndex(const DenotedSpeciesTypeComponentIndex* dstci)
-   */
-  DenotedSpeciesTypeComponentIndex* createDenotedSpeciesTypeComponentIndex();
-
-
-  /**
-   * Removes the nth DenotedSpeciesTypeComponentIndex from the ListOfDenotedSpeciesTypeComponentIndexes within this SpeciesTypeComponentIndex.
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   *
-   * @param n the index of the DenotedSpeciesTypeComponentIndex to remove.
-   *
-   * @see getNumDenotedSpeciesTypeComponentIndexes()
-   */
-  DenotedSpeciesTypeComponentIndex* removeDenotedSpeciesTypeComponentIndex(unsigned int n);
-
-
-  /**
-   * Removes the DenotedSpeciesTypeComponentIndex with the given identifier from the ListOfDenotedSpeciesTypeComponentIndexes within this SpeciesTypeComponentIndex
-   * and returns a pointer to it.
-   *
-   * The caller owns the returned item and is responsible for deleting it.
-   * If none of the items in this list have the identifier @p sid, then
-   * @c NULL is returned.
-   *
-   * @param sid the identifier of the DenotedSpeciesTypeComponentIndex to remove.
-   *
-   * @return the DenotedSpeciesTypeComponentIndex removed. As mentioned above, the caller owns the
-   * returned item.
-   */
-  DenotedSpeciesTypeComponentIndex* removeDenotedSpeciesTypeComponentIndex(const std::string& sid);
-
-
-  /**
    * Renames all the @c SIdRef attributes on this element, including any
    * found in MathML content (if such exists).
    *
@@ -458,15 +269,6 @@ public:
 
 
   /**
-   * Returns a List of all child SBase objects, including those nested to an
-   * arbitary depth.
-   *
-   * @return a List* of pointers to all child objects.
-   */
-   virtual List* getAllElements(ElementFilter * filter = NULL);
-
-
-  /**
    * Returns the XML element name of this object, which for SpeciesTypeComponentIndex, is
    * always @c "speciesTypeComponentIndex".
    *
@@ -523,18 +325,6 @@ public:
   virtual bool hasRequiredAttributes() const;
 
 
-  /**
-   * Predicate returning @c true if all the required elements
-   * for this SpeciesTypeComponentIndex object have been set.
-   *
-   * @note The required elements for a SpeciesTypeComponentIndex object are:
-   *
-   * @return a boolean value indicating whether all the required
-   * elements for this object have been defined.
-   */
-  virtual bool hasRequiredElements() const;
-
-
   /** @cond doxygenLibsbmlInternal */
 
   /**
@@ -573,17 +363,6 @@ public:
   /** @cond doxygenLibsbmlInternal */
 
   /**
-   * Connects to child elements.
-   */
-  virtual void connectToChild ();
-
-
-  /** @endcond doxygenLibsbmlInternal */
-
-
-  /** @cond doxygenLibsbmlInternal */
-
-  /**
    * Enables/Disables the given package with this element.
    */
   virtual void enablePackageInternal(const std::string& pkgURI,
@@ -977,46 +756,6 @@ SpeciesTypeComponentIndex_unsetIdentifyingParent(SpeciesTypeComponentIndex_t * s
 
 LIBSBML_EXTERN
 int
-SpeciesTypeComponentIndex_addDenotedSpeciesTypeComponentIndex(SpeciesTypeComponentIndex_t * stci, DenotedSpeciesTypeComponentIndex_t * dstci);
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-SpeciesTypeComponentIndex_createDenotedSpeciesTypeComponentIndex(SpeciesTypeComponentIndex_t * stci);
-
-
-LIBSBML_EXTERN
-ListOf_t *
-SpeciesTypeComponentIndex_getListOfDenotedSpeciesTypeComponentIndexes(SpeciesTypeComponentIndex_t * stci) ;
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-SpeciesTypeComponentIndex_getDenotedSpeciesTypeComponentIndex(SpeciesTypeComponentIndex_t * stci, unsigned int n);
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-SpeciesTypeComponentIndex_getDenotedSpeciesTypeComponentIndexById(SpeciesTypeComponentIndex_t * stci, const char * sid);
-
-
-LIBSBML_EXTERN
-unsigned int
-SpeciesTypeComponentIndex_getNumDenotedSpeciesTypeComponentIndexes(SpeciesTypeComponentIndex_t * stci);
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-SpeciesTypeComponentIndex_removeDenotedSpeciesTypeComponentIndex(SpeciesTypeComponentIndex_t * stci, unsigned int n);
-
-
-LIBSBML_EXTERN
-DenotedSpeciesTypeComponentIndex_t *
-SpeciesTypeComponentIndex_removeDenotedSpeciesTypeComponentIndexById(SpeciesTypeComponentIndex_t * stci, const char * sid);
-
-
-LIBSBML_EXTERN
-int
 SpeciesTypeComponentIndex_hasRequiredAttributes(SpeciesTypeComponentIndex_t * stci);
 
 
diff --git a/src/sbml/packages/multi/sbml/SpeciesTypeComponentMapInProduct.cpp b/src/sbml/packages/multi/sbml/SpeciesTypeComponentMapInProduct.cpp
index a5cbd43..4e142e8 100644
--- a/src/sbml/packages/multi/sbml/SpeciesTypeComponentMapInProduct.cpp
+++ b/src/sbml/packages/multi/sbml/SpeciesTypeComponentMapInProduct.cpp
@@ -796,7 +796,7 @@ SpeciesTypeComponentMapInProduct::readAttributes (const XMLAttributes& attribute
   else
   {
     std::string message = "Multi attribute 'reactant' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSptCpoMapInPro_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
@@ -825,7 +825,7 @@ SpeciesTypeComponentMapInProduct::readAttributes (const XMLAttributes& attribute
   else
   {
     std::string message = "Multi attribute 'reactantComponent' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSptCpoMapInPro_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
@@ -853,7 +853,7 @@ SpeciesTypeComponentMapInProduct::readAttributes (const XMLAttributes& attribute
   else
   {
     std::string message = "Multi attribute 'productComponent' is missing.";
-    getErrorLog()->logPackageError("multi", MultiUnknownError,
+    getErrorLog()->logPackageError("multi", MultiSptCpoMapInPro_AllowedMultiAtts,
                    getPackageVersion(), sbmlLevel, sbmlVersion, message);
   }
 
diff --git a/src/sbml/packages/multi/sbml/SpeciesTypeInstance.cpp b/src/sbml/packages/multi/sbml/SpeciesTypeInstance.cpp
index 047c596..a2089e5 100644
--- a/src/sbml/packages/multi/sbml/SpeciesTypeInstance.cpp
+++ b/src/sbml/packages/multi/sbml/SpeciesTypeInstance.cpp
@@ -46,8 +46,6 @@ SpeciesTypeInstance::SpeciesTypeInstance (unsigned int level, unsigned int versi
    ,mName ("")
    ,mSpeciesType ("")
    ,mCompartmentReference ("")
-   ,mOccur (SBML_INT_MAX)
-   ,mIsSetOccur (false)
 {
   // set an SBMLNamespaces derived object of this package
   setSBMLNamespacesAndOwn(new MultiPkgNamespaces(level, version, pkgVersion));
@@ -63,8 +61,6 @@ SpeciesTypeInstance::SpeciesTypeInstance (MultiPkgNamespaces* multins)
    ,mName ("")
    ,mSpeciesType ("")
    ,mCompartmentReference ("")
-   ,mOccur (SBML_INT_MAX)
-   ,mIsSetOccur (false)
 {
   // set the element namespace of this object
   setElementNamespace(multins->getURI());
@@ -83,8 +79,6 @@ SpeciesTypeInstance::SpeciesTypeInstance (const SpeciesTypeInstance& orig)
   , mName  ( orig.mName)
   , mSpeciesType  ( orig.mSpeciesType)
   , mCompartmentReference  ( orig.mCompartmentReference)
-  , mOccur  ( orig.mOccur)
-  , mIsSetOccur  ( orig.mIsSetOccur)
 {
 }
 
@@ -102,8 +96,6 @@ SpeciesTypeInstance::operator=(const SpeciesTypeInstance& rhs)
     mName  = rhs.mName;
     mSpeciesType  = rhs.mSpeciesType;
     mCompartmentReference  = rhs.mCompartmentReference;
-    mOccur  = rhs.mOccur;
-    mIsSetOccur  = rhs.mIsSetOccur;
   }
   return *this;
 }
@@ -168,16 +160,6 @@ SpeciesTypeInstance::getCompartmentReference() const
 
 
 /*
- * Returns the value of the "occur" attribute of this SpeciesTypeInstance.
- */
-unsigned int
-SpeciesTypeInstance::getOccur() const
-{
-  return mOccur;
-}
-
-
-/*
  * Returns true/false if id is set.
  */
 bool
@@ -218,16 +200,6 @@ SpeciesTypeInstance::isSetCompartmentReference() const
 
 
 /*
- * Returns true/false if occur is set.
- */
-bool
-SpeciesTypeInstance::isSetOccur() const
-{
-  return mIsSetOccur;
-}
-
-
-/*
  * Sets id and returns value indicating success.
  */
 int
@@ -285,18 +257,6 @@ SpeciesTypeInstance::setCompartmentReference(const std::string& compartmentRefer
 
 
 /*
- * Sets occur and returns value indicating success.
- */
-int
-SpeciesTypeInstance::setOccur(unsigned int occur)
-{
-  mOccur = occur;
-  mIsSetOccur = true;
-  return LIBSBML_OPERATION_SUCCESS;
-}
-
-
-/*
  * Unsets id and returns value indicating success.
  */
 int
@@ -373,26 +333,6 @@ SpeciesTypeInstance::unsetCompartmentReference()
 
 
 /*
- * Unsets occur and returns value indicating success.
- */
-int
-SpeciesTypeInstance::unsetOccur()
-{
-  mOccur = SBML_INT_MAX;
-  mIsSetOccur = false;
-
-  if (isSetOccur() == false)
-  {
-    return LIBSBML_OPERATION_SUCCESS;
-  }
-  else
-  {
-    return LIBSBML_OPERATION_FAILED;
-  }
-}
-
-
-/*
  * rename attributes that are SIdRefs or instances in math
  */
 void
@@ -447,9 +387,6 @@ SpeciesTypeInstance::hasRequiredAttributes () const
   if (isSetSpeciesType() == false)
     allPresent = false;
 
-  if (isSetOccur() == false)
-    allPresent = false;
-
   return allPresent;
 }
 
@@ -531,7 +468,6 @@ SpeciesTypeInstance::addExpectedAttributes(ExpectedAttributes& attributes)
   attributes.add("name");
   attributes.add("speciesType");
   attributes.add("compartmentReference");
-  attributes.add("occur");
 }
 
 
@@ -649,7 +585,7 @@ SpeciesTypeInstance::readAttributes(const XMLAttributes& attributes,
   else
     {
       std::string message = "Multi attribute 'id' is missing.";
-      getErrorLog()->logPackageError("multi", MultiUnknownError,
+      getErrorLog()->logPackageError("multi", MultiSptIns_AllowedMultiAtts,
           getPackageVersion(), sbmlLevel, sbmlVersion, message,
           getLine(), getColumn());
     }
@@ -696,7 +632,7 @@ SpeciesTypeInstance::readAttributes(const XMLAttributes& attributes,
   else
     {
       std::string message = "Multi attribute 'speciesType' is missing.";
-      getErrorLog()->logPackageError("multi", MultiUnknownError,
+      getErrorLog()->logPackageError("multi", MultiSptIns_AllowedMultiAtts,
           getPackageVersion(), sbmlLevel, sbmlVersion, message,
           getLine(), getColumn());
     }
@@ -726,35 +662,6 @@ SpeciesTypeInstance::readAttributes(const XMLAttributes& attributes,
         }
     }
 
-  //
-  // occur unsigned int   ( use = "required" )
-  //
-  numErrs = getErrorLog()->getNumErrors();
-  mIsSetOccur = attributes.readInto("occur", mOccur);
-
-  if (mIsSetOccur == false)
-    {
-      if (getErrorLog() != NULL)
-        {
-          if (getErrorLog()->getNumErrors() == numErrs + 1
-              && getErrorLog()->contains(numErrs))
-            {
-              std::string message = getErrorLog()->getError(
-                  XMLAttributeTypeMismatch)->getMessage();
-              getErrorLog()->remove(XMLAttributeTypeMismatch);
-              getErrorLog()->logPackageError("multi", MultiSptIns_OccAtt_Ref,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, message,
-                  getLine(), getColumn());
-            }
-          else
-            {
-              std::string message = "Multi attribute 'occur' is missing.";
-              getErrorLog()->logPackageError("multi", MultiUnknownError,
-                  getPackageVersion(), sbmlLevel, sbmlVersion, message,
-                  getLine(), getColumn());
-            }
-        }
-    }
 }
 
 
@@ -783,9 +690,6 @@ SpeciesTypeInstance::writeAttributes (XMLOutputStream& stream) const
   if (isSetCompartmentReference() == true)
     stream.writeAttribute("compartmentReference", getPrefix(), mCompartmentReference);
 
-  if (isSetOccur() == true)
-    stream.writeAttribute("occur", getPrefix(), mOccur);
-
   SBase::writeExtensionAttributes(stream);
 
 }
@@ -1088,17 +992,6 @@ SpeciesTypeInstance_getCompartmentReference(SpeciesTypeInstance_t * sti)
  * 
  */
 LIBSBML_EXTERN
-unsigned int
-SpeciesTypeInstance_getOccur(SpeciesTypeInstance_t * sti)
-{
-  return (sti != NULL) ? sti->getOccur() : SBML_INT_MAX;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
 int
 SpeciesTypeInstance_isSetId(SpeciesTypeInstance_t * sti)
 {
@@ -1144,17 +1037,6 @@ SpeciesTypeInstance_isSetCompartmentReference(SpeciesTypeInstance_t * sti)
  */
 LIBSBML_EXTERN
 int
-SpeciesTypeInstance_isSetOccur(SpeciesTypeInstance_t * sti)
-{
-  return (sti != NULL) ? static_cast<int>(sti->isSetOccur()) : 0;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
-int
 SpeciesTypeInstance_setId(SpeciesTypeInstance_t * sti, const char * id)
 {
   return (sti != NULL) ? sti->setId(id) : LIBSBML_INVALID_OBJECT;
@@ -1199,17 +1081,6 @@ SpeciesTypeInstance_setCompartmentReference(SpeciesTypeInstance_t * sti, const c
  */
 LIBSBML_EXTERN
 int
-SpeciesTypeInstance_setOccur(SpeciesTypeInstance_t * sti, unsigned int occur)
-{
-  return (sti != NULL) ? sti->setOccur(occur) : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
-int
 SpeciesTypeInstance_unsetId(SpeciesTypeInstance_t * sti)
 {
   return (sti != NULL) ? sti->unsetId() : LIBSBML_INVALID_OBJECT;
@@ -1254,17 +1125,6 @@ SpeciesTypeInstance_unsetCompartmentReference(SpeciesTypeInstance_t * sti)
  */
 LIBSBML_EXTERN
 int
-SpeciesTypeInstance_unsetOccur(SpeciesTypeInstance_t * sti)
-{
-  return (sti != NULL) ? sti->unsetOccur() : LIBSBML_INVALID_OBJECT;
-}
-
-
-/**
- * 
- */
-LIBSBML_EXTERN
-int
 SpeciesTypeInstance_hasRequiredAttributes(SpeciesTypeInstance_t * sti)
 {
   return (sti != NULL) ? static_cast<int>(sti->hasRequiredAttributes()) : 0;
diff --git a/src/sbml/packages/multi/sbml/SpeciesTypeInstance.h b/src/sbml/packages/multi/sbml/SpeciesTypeInstance.h
index 4ecee26..0226d1a 100644
--- a/src/sbml/packages/multi/sbml/SpeciesTypeInstance.h
+++ b/src/sbml/packages/multi/sbml/SpeciesTypeInstance.h
@@ -59,8 +59,6 @@ protected:
   std::string   mName;
   std::string   mSpeciesType;
   std::string   mCompartmentReference;
-  unsigned int  mOccur;
-  bool          mIsSetOccur;
 
 
 public:
@@ -303,52 +301,6 @@ public:
 
 
   /**
-   * Returns the value of the "occur" attribute of this SpeciesTypeInstance.
-   *
-   * @return the value of the "occur" attribute of this SpeciesTypeInstance as a unsigned integer.
-   */
-  virtual unsigned int getOccur() const;
-
-
-  /**
-   * Predicate returning @c true or @c false depending on whether this
-   * SpeciesTypeInstance's "occur" attribute has been set.
-   *
-   * @return @c true if this SpeciesTypeInstance's "occur" attribute has been set,
-   * otherwise @c false is returned.
-   */
-  virtual bool isSetOccur() const;
-
-
-  /**
-   * Sets the value of the "occur" attribute of this SpeciesTypeInstance.
-   *
-   * @param occur; unsigned int value of the "occur" attribute to be set
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
-   */
-  virtual int setOccur(unsigned int occur);
-
-
-  /**
-   * Unsets the value of the "occur" attribute of this SpeciesTypeInstance.
-   *
-   * @return integer value indicating success/failure of the
-   * function.  @if clike The value is drawn from the
-   * enumeration #OperationReturnValues_t. @endif The possible values
-   * returned by this function are:
-   * @li LIBSBML_OPERATION_SUCCESS
-   * @li LIBSBML_OPERATION_FAILED
-   */
-  virtual int unsetOccur();
-
-
-  /**
    * Renames all the @c SIdRef attributes on this element, including any
    * found in MathML content (if such exists).
    *
@@ -779,11 +731,6 @@ SpeciesTypeInstance_getCompartmentReference(SpeciesTypeInstance_t * sti);
 
 
 LIBSBML_EXTERN
-unsigned int
-SpeciesTypeInstance_getOccur(SpeciesTypeInstance_t * sti);
-
-
-LIBSBML_EXTERN
 int
 SpeciesTypeInstance_isSetId(SpeciesTypeInstance_t * sti);
 
@@ -805,11 +752,6 @@ SpeciesTypeInstance_isSetCompartmentReference(SpeciesTypeInstance_t * sti);
 
 LIBSBML_EXTERN
 int
-SpeciesTypeInstance_isSetOccur(SpeciesTypeInstance_t * sti);
-
-
-LIBSBML_EXTERN
-int
 SpeciesTypeInstance_setId(SpeciesTypeInstance_t * sti, const char * id);
 
 
@@ -830,11 +772,6 @@ SpeciesTypeInstance_setCompartmentReference(SpeciesTypeInstance_t * sti, const c
 
 LIBSBML_EXTERN
 int
-SpeciesTypeInstance_setOccur(SpeciesTypeInstance_t * sti, unsigned int occur);
-
-
-LIBSBML_EXTERN
-int
 SpeciesTypeInstance_unsetId(SpeciesTypeInstance_t * sti);
 
 
@@ -855,11 +792,6 @@ SpeciesTypeInstance_unsetCompartmentReference(SpeciesTypeInstance_t * sti);
 
 LIBSBML_EXTERN
 int
-SpeciesTypeInstance_unsetOccur(SpeciesTypeInstance_t * sti);
-
-
-LIBSBML_EXTERN
-int
 SpeciesTypeInstance_hasRequiredAttributes(SpeciesTypeInstance_t * sti);
 
 
diff --git a/src/sbml/packages/multi/sbml/SubListOfSpeciesFeatures.cpp b/src/sbml/packages/multi/sbml/SubListOfSpeciesFeatures.cpp
new file mode 100644
index 0000000..a447091
--- /dev/null
+++ b/src/sbml/packages/multi/sbml/SubListOfSpeciesFeatures.cpp
@@ -0,0 +1,681 @@
+/**
+ * @file:   SpeciesFeature.cpp
+ * @brief:  Implementation of the SpeciesFeature class
+ * @author: SBMLTeam
+ *
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA
+ *
+ * Copyright (C) 2002-2005 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ------------------------------------------------------------------------ -->
+ */
+
+
+#include <sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h>
+#include <sbml/packages/multi/sbml/SpeciesFeature.h>
+#include <sbml/packages/multi/validator/MultiSBMLError.h>
+
+#include <sbml/util/ElementFilter.h>
+#include <sbml/SBase.h>
+
+
+using namespace std;
+
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+/*
+ * Constructor
+ */
+SubListOfSpeciesFeatures::SubListOfSpeciesFeatures(unsigned int level,
+                        unsigned int version,
+                        unsigned int pkgVersion)
+ : ListOf(level, version)
+  ,mId("")
+  ,mRelation (MULTI_RELATION_UNKNOWN)
+  ,mComponent("")
+{
+  setSBMLNamespacesAndOwn(new MultiPkgNamespaces(level, version, pkgVersion));
+
+  connectToChild();
+}
+
+
+/*
+ * Constructor
+ */
+SubListOfSpeciesFeatures::SubListOfSpeciesFeatures(MultiPkgNamespaces* multins)
+  : ListOf(multins)
+  ,mId("")
+  ,mRelation (MULTI_RELATION_UNKNOWN )
+  ,mComponent("")
+{
+  setElementNamespace(multins->getURI());
+  connectToChild();
+}
+
+/*
+ * Copy constructor for SubListOfSpeciesFeatures.
+ */
+SubListOfSpeciesFeatures::SubListOfSpeciesFeatures (const SubListOfSpeciesFeatures & orig)
+  : ListOf(orig)
+  ,mId(orig.mId)
+  ,mRelation(orig.mRelation)
+  ,mComponent(orig.mComponent)
+{
+  setElementNamespace(orig.getURI());
+  connectToChild();
+}
+
+
+
+/*
+ * Destructor
+ */
+SubListOfSpeciesFeatures::~SubListOfSpeciesFeatures()
+{
+
+}
+
+
+/*
+ * Returns a deep copy of this SubListOfSpeciesFeatures
+ */
+SubListOfSpeciesFeatures*
+SubListOfSpeciesFeatures::clone () const
+ {
+  return new SubListOfSpeciesFeatures(*this);
+}
+
+/*
+ * Returns the value of the "id" attribute of this SubListOfSpeciesFeatures.
+ */
+const std::string&
+SubListOfSpeciesFeatures::getId() const
+{
+  return mId;
+}
+
+
+/*
+ * Returns true/false if id is set.
+ */
+bool
+SubListOfSpeciesFeatures::isSetId() const
+{
+  return (mId.empty() == false);
+}
+
+/*
+ * Sets id and returns value indicating success.
+ */
+int
+SubListOfSpeciesFeatures::setId(const std::string& id)
+{
+  return SyntaxChecker::checkAndSetSId(id, mId);
+}
+
+/*
+ * Unsets id and returns value indicating success.
+ */
+int
+SubListOfSpeciesFeatures::unsetId()
+{
+  mId.erase();
+
+  if (mId.empty() == true)
+  {
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+  else
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
+}
+
+/*
+ * Returns the value of the "component" attribute of this SubListOfSpeciesFeatures.
+ */
+const std::string&
+SubListOfSpeciesFeatures::getComponent() const
+{
+  return mComponent;
+}
+
+/*
+ * Returns true/false if component is set.
+ */
+bool
+SubListOfSpeciesFeatures::isSetComponent() const
+{
+  return (mComponent.empty() == false);
+}
+
+/*
+ * Sets component and returns value indicating success.
+ */
+int
+SubListOfSpeciesFeatures::setComponent(const std::string& component)
+{
+  if (!(SyntaxChecker::isValidInternalSId(component)))
+  {
+    return LIBSBML_INVALID_ATTRIBUTE_VALUE;
+  }
+  else
+  {
+    mComponent = component;
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+}
+
+/*
+ * Unsets component and returns value indicating success.
+ */
+int
+SubListOfSpeciesFeatures::unsetComponent()
+{
+  mComponent.erase();
+
+  if (mComponent.empty() == true)
+  {
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+  else
+  {
+    return LIBSBML_OPERATION_FAILED;
+  }
+}
+
+/*
+ * Creates a new SpeciesFeature object and adds it to this SubListOfSpeciesFeatures object.
+ */
+SpeciesFeature*
+SubListOfSpeciesFeatures::createSpeciesFeature ()
+{
+   SpeciesFeature* sf = NULL;
+
+  try
+  {
+    MULTI_CREATE_NS(multins, getSBMLNamespaces());
+    sf = new SpeciesFeature(multins);
+    delete multins;
+  }
+  catch(...)
+  {
+  }
+
+  if (sf != NULL)
+  {
+    this->appendAndOwn(sf);
+  }
+
+  return sf;
+}
+
+/*
+ * Get a SpeciesFeature from the SubListOfSpeciesFeatures by index.
+*/
+SpeciesFeature*
+SubListOfSpeciesFeatures::get(unsigned int n)
+{
+  return static_cast<SpeciesFeature*>(ListOf::get(n));
+}
+
+
+/*
+ * Get a SpeciesFeature from the SubListOfSpeciesFeatures by index.
+ */
+const SpeciesFeature*
+SubListOfSpeciesFeatures::get(unsigned int n) const
+{
+  return static_cast<const SpeciesFeature*>(ListOf::get(n));
+}
+
+
+/*
+ * Get a SpeciesFeature from the SubListOfSpeciesFeatures by id.
+ */
+SpeciesFeature*
+SubListOfSpeciesFeatures::get(const std::string& sid)
+{
+  return const_cast<SpeciesFeature*>(
+    static_cast<const SubListOfSpeciesFeatures&>(*this).get(sid));
+}
+
+
+/*
+ * Get a SpeciesFeature from the SubListOfSpeciesFeatures by id.
+ */
+const SpeciesFeature*
+SubListOfSpeciesFeatures::get(const std::string& sid) const
+{
+  vector<SBase*>::const_iterator result;
+
+  result = find_if( mItems.begin(), mItems.end(), IdEq<SpeciesFeature>(sid) );
+  return (result == mItems.end()) ? 0 : static_cast <SpeciesFeature*> (*result);
+}
+
+
+/*
+ * Removes the nth SpeciesFeature from this SubListOfSpeciesFeatures
+ */
+SpeciesFeature*
+SubListOfSpeciesFeatures::remove(unsigned int n)
+{
+  return static_cast<SpeciesFeature*>(ListOf::remove(n));
+}
+
+
+/*
+ * Removes the SpeciesFeature from this SubListOfSpeciesFeatures with the given identifier
+ */
+SpeciesFeature*
+SubListOfSpeciesFeatures::remove(const std::string& sid)
+{
+  SBase* item = NULL;
+  vector<SBase*>::iterator result;
+
+  result = find_if( mItems.begin(), mItems.end(), IdEq<SpeciesFeature>(sid) );
+
+  if (result != mItems.end())
+  {
+    item = *result;
+    mItems.erase(result);
+  }
+
+  return static_cast <SpeciesFeature*> (item);
+}
+
+
+ /*
+ * Returns the value of the "relation" attribute of this SubListOfSpeciesFeatures.
+ */
+Relation_t
+SubListOfSpeciesFeatures::getRelation() const
+{
+  return mRelation;
+}
+
+
+/*
+ * Predicate returning @c true or @c false depending on whether this
+ * SubListOfSpeciesFeatures's "relation" attribute has been set.
+ */
+bool
+SubListOfSpeciesFeatures::isSetRelation() const
+{
+  return (mRelation != MULTI_RELATION_UNKNOWN);
+}
+
+
+/*
+ * Sets the value of the "relation" attribute of this SubListOfSpeciesFeatures.
+ */
+int
+SubListOfSpeciesFeatures::setRelation(Relation_t relation)
+{
+  if (SubListOfSpeciesFeatures_isValidRelation(relation) == 0)
+  {
+    mRelation = MULTI_RELATION_UNKNOWN;
+    return LIBSBML_INVALID_ATTRIBUTE_VALUE;
+  }
+  else
+  {
+    mRelation = relation;
+    return LIBSBML_OPERATION_SUCCESS;
+  }
+}
+
+
+/*
+ * Unsets the value of the "relation" attribute of this SubListOfSpeciesFeatures.
+ */
+int
+SubListOfSpeciesFeatures::unsetRelation()
+{
+  mRelation = MULTI_RELATION_UNKNOWN;
+  return LIBSBML_OPERATION_SUCCESS;
+}
+
+
+/*
+ * Returns the XML element name of this object
+ */
+const std::string&
+SubListOfSpeciesFeatures::getElementName () const
+{
+  static const string name = "subListOfSpeciesFeatures";
+  return name;
+}
+
+
+/*
+ * Returns the libSBML type code for this SBML object.
+ */
+int
+SubListOfSpeciesFeatures::getTypeCode () const
+{
+  return SBML_LIST_OF;
+}
+
+
+/*
+ * Returns the libSBML type code for the objects in this LIST_OF.
+ */
+int
+SubListOfSpeciesFeatures::getItemTypeCode () const
+{
+  return SBML_MULTI_SPECIES_FEATURE;
+}
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+/*
+ * Creates a new SpeciesFeature in this SubListOfSpeciesFeatures
+ */
+SBase*
+SubListOfSpeciesFeatures::createObject(XMLInputStream& stream)
+{
+  const std::string& name   = stream.peek().getName();
+  SBase* object = NULL;
+
+  if (name == "speciesFeature")
+  {
+    MULTI_CREATE_NS(multins, getSBMLNamespaces());
+    object = new SpeciesFeature(multins);
+    appendAndOwn(object);
+    delete multins;
+  }
+
+  return object;
+}
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+/*
+ * Write the namespace for the Multi package.
+ */
+void
+SubListOfSpeciesFeatures::writeXMLNS(XMLOutputStream& stream) const
+{
+  XMLNamespaces xmlns;
+
+  std::string prefix = getPrefix();
+
+  if (prefix.empty())
+  {
+    XMLNamespaces* thisxmlns = getNamespaces();
+    if (thisxmlns && thisxmlns->hasURI(MultiExtension::getXmlnsL3V1V1()))
+    {
+      xmlns.add(MultiExtension::getXmlnsL3V1V1(),prefix);
+    }
+  }
+
+  stream << xmlns;
+}
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+/** @cond doxygenLibsbmlInternal */
+void
+SubListOfSpeciesFeatures::addExpectedAttributes(ExpectedAttributes& attributes)
+{
+  SBase::addExpectedAttributes(attributes);
+
+  attributes.add("id");
+  attributes.add("relation");
+  attributes.add("component");
+
+}
+/** @endcond */
+
+/** @cond doxygenLibsbmlInternal */
+void
+SubListOfSpeciesFeatures::readAttributes (const XMLAttributes& attributes,
+                                  const ExpectedAttributes& expectedAttributes)
+{
+  const unsigned int sbmlLevel   = getLevel  ();
+  const unsigned int sbmlVersion = getVersion();
+
+  SBase::readAttributes(attributes, expectedAttributes);
+
+  if (getErrorLog() != NULL)
+  {
+      unsigned int numErrs = getErrorLog()->getNumErrors();
+    for (int n = numErrs-1; n >= 0; n--)
+    {
+      if (getErrorLog()->getError(n)->getErrorId() == UnknownPackageAttribute)
+      {
+        const std::string details =
+                          getErrorLog()->getError(n)->getMessage();
+        getErrorLog()->remove(UnknownPackageAttribute);
+        getErrorLog()->logPackageError("multi", MultiSubLofSpeFtrs_AllowedMultiAtts,
+                       getPackageVersion(), sbmlLevel, sbmlVersion, details,
+                       getLine(), getColumn());
+      }
+      else
+      if (getErrorLog()->getError(n)->getErrorId() == UnknownCoreAttribute)
+      {
+        const std::string details =
+                          getErrorLog()->getError(n)->getMessage();
+        getErrorLog()->remove(UnknownCoreAttribute);
+        getErrorLog()->logPackageError("multi", MultiSubLofSpeFtrs_AllowedCoreAtts,
+                       getPackageVersion(), sbmlLevel, sbmlVersion, details,
+                       getLine(), getColumn());
+      }
+    }
+  }
+
+
+  bool assigned = false;
+
+  //
+  // id SId  ( use = "optional" )
+  //
+  assigned = attributes.readInto("id", mId, getErrorLog(), false);
+
+   if (assigned == true)
+  {
+    // check string is not empty and correct syntax
+
+    if (mId.empty() == true)
+    {
+      logEmptyString(mId, getLevel(), getVersion(), "<SubListOfSpeciesFeatures>");
+    }
+    else if (SyntaxChecker::isValidSBMLSId(mId) == false && getErrorLog() != NULL)
+    {
+        std::string details = "The syntax of the attribute id='" + mId + "' does not conform.";
+        getErrorLog()->logPackageError("multi", MultiInvSIdSyn,
+                   getPackageVersion(), sbmlLevel, sbmlVersion, details,
+                   getLine(), getColumn());
+    }
+  }
+
+
+  //
+  // relation string   ( use = "optional" )
+  //
+  std::string relation;
+  assigned = attributes.readInto("relation", relation,
+                                   getErrorLog(), false);
+
+  if (assigned == true)
+  {
+    // check string is not empty
+
+    if (relation.empty() == true)
+    {
+      logEmptyString(relation, getLevel(), getVersion(),
+                                    "<SubListOfSpeciesFeatures>");
+    }
+    else
+    {
+       mRelation = Relation_fromString( relation.c_str() );
+       if (SubListOfSpeciesFeatures_isValidRelation(mRelation) == 0)
+       {
+          getErrorLog()->logPackageError("multi", MultiSubLofSpeFtrs_RelationAtt_Ref,
+                       getPackageVersion(), getLevel(), getVersion(), "",
+                       getLine(), getColumn());
+       }
+    }
+  }
+
+  assigned = attributes.readInto("component", mComponent);
+
+  if (assigned == true)
+  {
+    // check string is not empty and correct syntax
+
+    if (mComponent.empty() == true)
+    {
+      logEmptyString(mComponent, getLevel(), getVersion(), "<SubListOfSpeciesFeatures>");
+    }
+    else if (SyntaxChecker::isValidSBMLSId(mComponent) == false && getErrorLog() != NULL)
+    {
+        std::string details = "The syntax of the attribute component='" + mComponent + "' does not conform.";
+        getErrorLog()->logPackageError("multi", MultiInvSIdSyn,
+                   getPackageVersion(), sbmlLevel, sbmlVersion, details,
+                   getLine(), getColumn());
+    }
+  }
+
+}
+/** @endcond */
+
+/** @cond doxygenLibsbmlInternal */
+void
+SubListOfSpeciesFeatures::writeAttributes (XMLOutputStream& stream) const
+{
+  if (isSetId() == true)
+    stream.writeAttribute("id", getPrefix(), mId);
+
+  if (isSetRelation() == true)
+    stream.writeAttribute("relation", getPrefix(), Relation_toString(mRelation));
+
+  if (isSetComponent() == true)
+    stream.writeAttribute("component", getPrefix(), mComponent);
+
+  SBase::writeExtensionAttributes(stream);
+}
+/** @endcond */
+
+
+/*
+ * write elements
+ */
+void
+SubListOfSpeciesFeatures::writeElements (XMLOutputStream& stream) const
+{
+  ListOf::writeElements(stream);
+}
+
+
+void
+SubListOfSpeciesFeatures::connectToChild()
+{
+
+}
+
+unsigned int
+SubListOfSpeciesFeatures::getNumSpeciesFeatures() const
+{
+  return mItems.size();
+}
+
+
+static
+const char* RELATION_STRINGS[] =
+{
+    "and"
+  , "or"
+  , "not"
+  , "unknown"
+};
+
+
+LIBSBML_EXTERN
+int
+SubListOfSpeciesFeatures_isValidRelation(Relation_t relation)
+{
+  int max = MULTI_RELATION_UNKNOWN;
+
+  if (relation < MULTI_RELATION_AND || relation >= max)
+  {
+    return 0;
+  }
+  else
+  {
+    return 1;
+  }
+}
+
+LIBSBML_EXTERN
+int
+SubListOfSpeciesFeatures_isValidRelationString(const char* s)
+{
+  return SubListOfSpeciesFeatures_isValidRelation(Relation_fromString(s));
+}
+
+
+
+
+LIBSBML_EXTERN
+const char*
+Relation_toString(Relation_t relation)
+{
+  int max = MULTI_RELATION_UNKNOWN;
+
+  if (relation < MULTI_RELATION_AND || relation >= max)
+  {
+    return NULL;
+  }
+
+  return RELATION_STRINGS[relation];
+}
+
+
+LIBSBML_EXTERN
+Relation_t
+Relation_fromString(const char* s)
+{
+  if (s == NULL)
+  {
+    return MULTI_RELATION_UNKNOWN;
+  }
+
+  int max = MULTI_RELATION_UNKNOWN;
+  for (int i = 0; i < max; i++)
+  {
+    if (strcmp(RELATION_STRINGS[i], s) == 0)
+    {
+      return (Relation_t)i;
+    }
+  }
+  return MULTI_RELATION_UNKNOWN;
+}
+
+
+LIBSBML_CPP_NAMESPACE_END
+
diff --git a/src/sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h b/src/sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h
new file mode 100644
index 0000000..7b49ad8
--- /dev/null
+++ b/src/sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h
@@ -0,0 +1,492 @@
+/*
+ * SubListOfSpeciesFeatures.h
+ *
+ *  Created on: Apr 1, 2016
+ *      Author: Fengkai Zhang
+ */
+
+#ifndef SubListOfSpeciesFeatures_H__
+#define SubListOfSpeciesFeatures_H__
+
+#include <sbml/common/extern.h>
+#include <sbml/common/sbmlfwd.h>
+#include <sbml/packages/multi/common/multifwd.h>
+
+typedef enum
+{
+    MULTI_RELATION_AND
+  , MULTI_RELATION_OR
+  , MULTI_RELATION_NOT
+  , MULTI_RELATION_UNKNOWN
+} Relation_t;
+
+
+
+#ifdef __cplusplus
+
+#include <string>
+
+#include <sbml/SBase.h>
+#include <sbml/ListOf.h>
+
+#include <sbml/packages/multi/extension/MultiExtension.h>
+#include <sbml/packages/multi/sbml/SpeciesFeature.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class LIBSBML_EXTERN SubListOfSpeciesFeatures : public ListOf
+{
+
+protected:
+
+  std::string   mId;
+  Relation_t mRelation;
+  std::string   mComponent;
+
+public:
+
+  /**
+   * Creates a new SubListOfSpeciesFeatures with the given level, version, and package version.
+   *
+   * @param level an unsigned int, the SBML Level to assign to this SubListOfSpeciesFeatures
+   *
+   * @param version an unsigned int, the SBML Version to assign to this SubListOfSpeciesFeatures
+   *
+   * @param pkgVersion an unsigned int, the SBML Multi Version to assign to this SubListOfSpeciesFeatures
+   */
+  SubListOfSpeciesFeatures(unsigned int level      = MultiExtension::getDefaultLevel(),
+                        unsigned int version    = MultiExtension::getDefaultVersion(),
+                        unsigned int pkgVersion = MultiExtension::getDefaultPackageVersion());
+
+
+  /**
+   * Creates a new SubListOfSpeciesFeatures with the given MultiPkgNamespaces object.
+   *
+   * @param multins the MultiPkgNamespaces object
+   */
+  SubListOfSpeciesFeatures(MultiPkgNamespaces* multins);
+
+
+  /**
+   * Creates and return a copy of SubListOfSpeciesFeatures.
+   *
+   * @param subListOfSpeciesFeatures this SubListOfSpeciesFeatures object
+   */
+  SubListOfSpeciesFeatures(const SubListOfSpeciesFeatures & multins);
+
+
+   /**
+   * Creates and returns a deep copy of this SubListOfSpeciesFeatures object.
+   *
+   * @return a (deep) copy of this SubListOfSpeciesFeatures object.
+   */
+  virtual SubListOfSpeciesFeatures* clone () const;
+
+
+   /**
+   * Destroys this SubListOfSpeciesFeatures object.
+   */
+  virtual ~SubListOfSpeciesFeatures();
+
+  /**
+  * Returns the value of the "id" attribute of this SubListOfSpeciesFeatures.
+  *
+  * @return the value of the "id" attribute of this SubListOfSpeciesFeatures as a string.
+  */
+ virtual const std::string& getId() const;
+
+
+ /**
+  * Predicate returning @c true or @c false depending on whether this
+  * SubListOfSpeciesFeatures's "id" attribute has been set.
+  *
+  * @return @c true if this SubListOfSpeciesFeatures's "id" attribute has been set,
+  * otherwise @c false is returned.
+  */
+ virtual bool isSetId() const;
+
+
+ /**
+  * Sets the value of the "id" attribute of this SubListOfSpeciesFeatures.
+  *
+  * @param id; const std::string& value of the "id" attribute to be set
+  *
+  * @return integer value indicating success/failure of the
+  * function.  @if clike The value is drawn from the
+  * enumeration #OperationReturnValues_t. @endif The possible values
+  * returned by this function are:
+  * @li LIBSBML_OPERATION_SUCCESS
+  * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+  */
+ virtual int setId(const std::string& id);
+
+
+ /**
+  * Unsets the value of the "id" attribute of this SubListOfSpeciesFeatures.
+  *
+  * @return integer value indicating success/failure of the
+  * function.  @if clike The value is drawn from the
+  * enumeration #OperationReturnValues_t. @endif The possible values
+  * returned by this function are:
+  * @li LIBSBML_OPERATION_SUCCESS
+  * @li LIBSBML_OPERATION_FAILED
+  */
+ virtual int unsetId();
+
+ /**
+  * Returns the value of the "component" attribute of this SubListOfSpeciesFeatures.
+  *
+  * @return the value of the "component" attribute of this SubListOfSpeciesFeatures as a string.
+  */
+ virtual const std::string& getComponent() const;
+
+
+ /**
+  * Predicate returning @c true or @c false depending on whether this
+  * SubListOfSpeciesFeatures's "component" attribute has been set.
+  *
+  * @return @c true if this SubListOfSpeciesFeatures's "component" attribute has been set,
+  * otherwise @c false is returned.
+  */
+ virtual bool isSetComponent() const;
+
+
+ /**
+  * Sets the value of the "component" attribute of this SubListOfSpeciesFeatures.
+  *
+  * @param component; const std::string& value of the "component" attribute to be set
+  *
+  * @return integer value indicating success/failure of the
+  * function.  @if clike The value is drawn from the
+  * enumeration #OperationReturnValues_t. @endif The possible values
+  * returned by this function are:
+  * @li LIBSBML_OPERATION_SUCCESS
+  * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+  */
+ virtual int setComponent(const std::string& component);
+
+
+ /**
+  * Unsets the value of the "component" attribute of this SubListOfSpeciesFeatures.
+  *
+  * @return integer value indicating success/failure of the
+  * function.  @if clike The value is drawn from the
+  * enumeration #OperationReturnValues_t. @endif The possible values
+  * returned by this function are:
+  * @li LIBSBML_OPERATION_SUCCESS
+  * @li LIBSBML_OPERATION_FAILED
+  */
+ virtual int unsetComponent();
+
+ /**
+  * Creates a new SpeciesFeature object and adds it to this SubListOfSpeciesFeatures object.
+  *
+  * @return the newly created SpeciesFeature object.
+  */
+ SpeciesFeature* createSpeciesFeature ();
+
+
+   /**
+   * Get a SpeciesFeature from the SubListOfSpeciesFeatures.
+   *
+   * @param n the index number of the SpeciesFeature to get.
+   *
+   * @return the nth SpeciesFeature in this SubListOfSpeciesFeatures.
+   *
+   * @see size()
+   */
+  virtual SpeciesFeature* get(unsigned int n);
+
+
+  /**
+   * Get a SpeciesFeature from the SubListOfSpeciesFeatures.
+   *
+   * @param n the index number of the SpeciesFeature to get.
+   *
+   * @return the nth SpeciesFeature in this SubListOfSpeciesFeatures.
+   *
+   * @see size()
+   */
+  virtual const SpeciesFeature* get(unsigned int n) const;
+
+
+  /**
+   * Get a SpeciesFeature from the SubListOfSpeciesFeatures
+   * based on its identifier.
+   *
+   * @param sid a string representing the identifier
+   * of the SpeciesFeature to get.
+   *
+   * @return SpeciesFeature in this SubListOfSpeciesFeatures
+   * with the given id or NULL if no such
+   * SpeciesFeature exists.
+   *
+   * @see get(unsigned int n)   *
+   * @see size()
+   */
+  virtual SpeciesFeature* get(const std::string& sid);
+
+
+  /**
+   * Get a SpeciesFeature from the SubListOfSpeciesFeatures
+   * based on its identifier.
+   *
+   * @param sid a string representing the identifier
+   * of the SpeciesFeature to get.
+   *
+   * @return SpeciesFeature in this SubListOfSpeciesFeatures
+   * with the given id or NULL if no such
+   * SpeciesFeature exists.
+   *
+   * @see get(unsigned int n)   *
+   * @see size()
+   */
+  virtual const SpeciesFeature* get(const std::string& sid) const;
+
+
+  /**
+   * Removes the nth SpeciesFeature from this SubListOfSpeciesFeatures
+   * and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   *
+   * @param n the index of the SpeciesFeature to remove.
+   *
+   * @see size()
+   */
+  virtual SpeciesFeature* remove(unsigned int n);
+
+
+  /**
+   * Removes the SpeciesFeature from this SubListOfSpeciesFeatures with the given identifier
+   * and returns a pointer to it.
+   *
+   * The caller owns the returned item and is responsible for deleting it.
+   * If none of the items in this list have the identifier @p sid, then
+   * @c NULL is returned.
+   *
+   * @param sid the identifier of the SpeciesFeature to remove.
+   *
+   * @return the SpeciesFeature removed. As mentioned above, the caller owns the
+   * returned item.
+   */
+  virtual SpeciesFeature* remove(const std::string& sid);
+
+
+   /**
+   * Returns the value of the "relation" attribute of this SubListOfSpeciesFeatures.
+   *
+   * @return the value of the "relation" attribute of this SubListOfSpeciesFeatures as a FIX ME.
+   */
+  Relation_t getRelation() const;
+
+
+  /**
+   * Predicate returning @c true or @c false depending on whether this
+   * SubListOfSpeciesFeatures's "relation" attribute has been set.
+   *
+   * @return @c true if this SubListOfSpeciesFeatures's "relation" attribute has been set,
+   * otherwise @c false is returned.
+   */
+  virtual bool isSetRelation() const;
+
+
+  /**
+   * Sets the value of the "relation" attribute of this SubListOfSpeciesFeatures.
+   *
+   * @param relation; FIX ME value of the "relation" attribute to be set
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li LIBSBML_OPERATION_SUCCESS
+   * @li LIBSBML_INVALID_ATTRIBUTE_VALUE
+   */
+  virtual int setRelation(Relation_t relation);
+
+
+  /**
+   * Unsets the value of the "relation" attribute of this SubListOfSpeciesFeatures.
+   *
+   * @return integer value indicating success/failure of the
+   * function.  @if clike The value is drawn from the
+   * enumeration #OperationReturnValues_t. @endif The possible values
+   * returned by this function are:
+   * @li LIBSBML_OPERATION_SUCCESS
+   * @li LIBSBML_OPERATION_FAILED
+   */
+  virtual int unsetRelation();
+
+
+  /**
+   * Returns the XML element name of this object, which for SubListOfSpeciesFeatures, is
+   * always @c "subListOfSpeciesFeatures".
+   *
+   * @return the name of this element, i.e. @c "subListOfSpeciesFeatures".
+   */
+  virtual const std::string& getElementName () const;
+
+
+  /**
+   * Returns the libSBML type code for this SBML object.
+   *
+   * @if clike LibSBML attaches an identifying code to every kind of SBML
+   * object.  These are known as <em>SBML type codes</em>.  The set of
+   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
+   * The names of the type codes all begin with the characters @c
+   * SBML_. @endif at if java LibSBML attaches an identifying code to every
+   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
+   * other languages, the set of type codes is stored in an enumeration; in
+   * the Java language interface for libSBML, the type codes are defined as
+   * static integer constants in the interface class {@link
+   * libsbmlConstants}.  The names of the type codes all begin with the
+   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
+   * code to every kind of SBML object.  These are known as <em>SBML type
+   * codes</em>.  In the Python language interface for libSBML, the type
+   * codes are defined as static integer constants in the interface class
+   * @link libsbml at endlink.  The names of the type codes all begin with the
+   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
+   * code to every kind of SBML object.  These are known as <em>SBML type
+   * codes</em>.  In the C# language interface for libSBML, the type codes
+   * are defined as static integer constants in the interface class @link
+   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
+   * the characters @c SBML_. @endif
+   *
+   * @return the SBML type code for this object, or
+   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
+   *
+   * @see getElementName()
+   */
+  virtual int getTypeCode () const;
+
+
+  /**
+   * Returns the libSBML type code for the SBML objects
+   * contained in this ListOf object
+   *
+   * @if clike LibSBML attaches an identifying code to every kind of SBML
+   * object.  These are known as <em>SBML type codes</em>.  The set of
+   * possible type codes is defined in the enumeration #SBMLTypeCode_t.
+   * The names of the type codes all begin with the characters @c
+   * SBML_. @endif at if java LibSBML attaches an identifying code to every
+   * kind of SBML object.  These are known as <em>SBML type codes</em>.  In
+   * other languages, the set of type codes is stored in an enumeration; in
+   * the Java language interface for libSBML, the type codes are defined as
+   * static integer constants in the interface class {@link
+   * libsbmlConstants}.  The names of the type codes all begin with the
+   * characters @c SBML_. @endif at if python LibSBML attaches an identifying
+   * code to every kind of SBML object.  These are known as <em>SBML type
+   * codes</em>.  In the Python language interface for libSBML, the type
+   * codes are defined as static integer constants in the interface class
+   * @link libsbml at endlink.  The names of the type codes all begin with the
+   * characters @c SBML_. @endif at if csharp LibSBML attaches an identifying
+   * code to every kind of SBML object.  These are known as <em>SBML type
+   * codes</em>.  In the C# language interface for libSBML, the type codes
+   * are defined as static integer constants in the interface class @link
+   * libsbmlcs.libsbml at endlink.  The names of the type codes all begin with
+   * the characters @c SBML_. @endif
+   *
+   * @return the SBML type code for the objects in this ListOf instance, or
+   * @link SBMLTypeCode_t#SBML_UNKNOWN SBML_UNKNOWN at endlink (default).
+   *
+   * @see getElementName()
+   */
+  virtual int getItemTypeCode () const;
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Connects to child elements.
+   */
+  virtual void connectToChild ();
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  unsigned int getNumSpeciesFeatures() const;
+
+
+
+protected:
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Creates a new SpeciesFeature in this ListOfSpeciesFeatures
+   */
+  virtual SBase* createObject(XMLInputStream& stream);
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+
+  /** @cond doxygenLibsbmlInternal */
+
+  /**
+   * Write the namespace for the Multi package.
+   */
+  virtual void writeXMLNS(XMLOutputStream& stream) const;
+
+
+  /** @endcond doxygenLibsbmlInternal */
+
+  /** @cond doxygenLibsbmlInternal */
+  /**
+   * Subclasses should override this method to get the list of
+   * expected attributes.
+   * This function is invoked from corresponding readAttributes()
+   * function.
+   */
+  virtual void addExpectedAttributes(ExpectedAttributes& attributes);
+  /** @endcond */
+
+
+  /** @cond doxygenLibsbmlInternal */
+  /**
+   * Reads the attributes of corresponding package in SBMLDocument element.
+   */
+  virtual void readAttributes (const XMLAttributes& attributes,
+                               const ExpectedAttributes& expectedAttributes);
+  /** @endcond */
+
+
+  /** @cond doxygenLibsbmlInternal */
+  /**
+   * Writes the attributes of corresponding package in SBMLDocument element.
+   */
+  virtual void writeAttributes (XMLOutputStream& stream) const;
+
+  /** @endcond */
+
+  /** @cond doxygenLibsbmlInternal */
+  /**
+   */
+  virtual void writeElements (XMLOutputStream& stream) const;
+
+};
+
+LIBSBML_EXTERN
+int
+SubListOfSpeciesFeatures_isValidRelation(Relation_t relation);
+
+
+LIBSBML_EXTERN
+int
+SubListOfSpeciesFeatures_isValidRelationString(const char* s);
+
+
+LIBSBML_EXTERN
+const char*
+Relation_toString(Relation_t relation);
+
+
+LIBSBML_EXTERN
+Relation_t
+Relation_fromString(const char* s);
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /*  __cplusplus  */
+
+#endif /* SubListOfSpeciesFeatures_H__ */
diff --git a/src/sbml/packages/multi/sbml/test/CMakeLists.txt b/src/sbml/packages/multi/sbml/test/CMakeLists.txt
index 4175142..4002d8d 100644
--- a/src/sbml/packages/multi/sbml/test/CMakeLists.txt
+++ b/src/sbml/packages/multi/sbml/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/sbml/test/Makefile.in b/src/sbml/packages/multi/sbml/test/Makefile.in
index dc7d1b4..90ad631 100644
--- a/src/sbml/packages/multi/sbml/test/Makefile.in
+++ b/src/sbml/packages/multi/sbml/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/sbml/test/TestRunner.c b/src/sbml/packages/multi/sbml/test/TestRunner.c
index 643f2ca..b708f05 100644
--- a/src/sbml/packages/multi/sbml/test/TestRunner.c
+++ b/src/sbml/packages/multi/sbml/test/TestRunner.c
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/MultiSBMLError.h b/src/sbml/packages/multi/validator/MultiSBMLError.h
index 668f20d..be6922f 100644
--- a/src/sbml/packages/multi/validator/MultiSBMLError.h
+++ b/src/sbml/packages/multi/validator/MultiSBMLError.h
@@ -59,7 +59,7 @@ typedef enum
 , MultiUnqId_SptCpoInd       		= 7010402 /*!< SpeciesTypeComponentIndex must have unique ids within the parent speciesType */
 , MultiUnqId_InSptBnd               	= 7010403 /*!< InSpeciesTypeBond must have unique ids within the parent speciesType */
 , MultiUnqId_Sft                        = 7010404 /*!< SpeciesFeatureType must have unique ids within the parent speciesType */
-, MultiUnqId_PblSpecFtrVal              = 7010405 /*!< PossibleSpeciesFeatureValue must have unique ids within the parent speciesFeatureType */
+, MultiUnqId_SubListOfSfs               = 7010405 /*!< SubListOfSpeciesFeatures must have unique ids within a species */
 , MultiUnqId_SpeFtr                  	= 7010406 /*!< SpeciesFeature must have unique ids within a species */
 , MultiUnqId_SpeFtrChg            	= 7010407 /*!< SpeciesFeatureChange must have unique ids within a speciesTypeComponentMapInProduct */
 , MultiUnqId_CpaRef           		= 7010408 /*!< CompartmentReference must have unique ids within a compartment */
@@ -71,7 +71,7 @@ typedef enum
 , MultiInvSIdRefSyn_SptIns_CpaRefAtt	= 7010504 /*!< Invalid SIdRef syntax: 'compartmentReference' attribute of SpeciesTypeInstance */
 , MultiInvSIdRefSyn_SptCpoInd_CpoAtt	= 7010505 /*!< Invalid SIdRef syntax: 'component' attribute of SpeciesTypeComponentIndex */
 , MultiInvSIdRefSyn_SptCpoInd_ParAtt 	= 7010506 /*!< Invalid SIdRef syntax: 'identifyingParent' attribute of SpeciesTypeComponentIndex */
-, MultiInvSIdRefSyn_DenSptCpoInd_IndAtt	= 7010507 /*!< Invalid SIdRef syntax: 'speciesTypeComponentIndex' attribute of DenotedSpeciesTypeComponentIndex */
+//, MultiInvSIdRefSyn_DenSptCpoInd_IndAtt	= 7010507 /*!< Invalid SIdRef syntax: 'speciesTypeComponentIndex' attribute of DenotedSpeciesTypeComponentIndex */
 , MultiInvSIdRefSyn_InSptBnd_Bst1Att	= 7010508 /*!< Invalid SIdRef syntax: 'bindingSite1' attribute of InSpeciesTypeBond */
 , MultiInvSIdRefSyn_InSptBnd_Bst2Att	= 7010509 /*!< Invalid SIdRef syntax: 'bindingSite2' attribute of InSpeciesTypeBond */
 
@@ -163,7 +163,7 @@ typedef enum
 , MultiSptIns_AllowedCoreAtts  		= 7020801 /*!< SpeciesTypeInstance: Allowed SBML core attributes */
 , MultiSptIns_AllowedCoreElts  		= 7020802 /*!< SpeciesTypeInstance: Allowed SBML core elements */
 , MultiSptIns_AllowedMultiAtts  	= 7020803 /*!< SpeciesTypeInstance: Allowed Multi attributes */
-, MultiSptIns_OccAtt_Ref  		= 7020804 /*!< SpeciesTypeInstance: 'occur' must be a positiveInteger */
+//, MultiSptIns_OccAtt_Ref  		= 7020804 /*!< SpeciesTypeInstance: 'occur' must be a positiveInteger */
 , MultiSptIns_SptAtt_Ref		= 7020805 /*!< SpeciesTypeInstance: 'speciesType' must be the 'id' of a speciesType */
 , MultiSptIns_CpaRefAtt_Ref		= 7020806 /*!< SpeciesTypeInstance: 'compartmentReference' must be the 'id' of a compartmentReference */
 
@@ -172,19 +172,19 @@ typedef enum
 , MultiSptCpoInd_AllowedCoreElts	= 7020902 /*!< SpeciesTypeComponentIndex: Allowed SBML core elements */
 , MultiSptCpoInd_AllowedMultiAtts  	= 7020903 /*!< SpeciesTypeComponentIndex: Allowed Multi attributes */
 , MultiSptCpoInd_CpoAtt_Ref		= 7020904 /*!< SpeciesTypeComponentIndex: 'component' must be the 'id' of a component */
-, MultiSptCpoInd_RestrictElts		= 7020905 /*!< SpeciesTypeComponentIndex: Can not have a listOfDenotedSpeciesTypeComponentIndexes if component references an index  */
-, MultiSptCpoInd_SameOccurAsRefIndex	= 7020906 /*!< SpeciesTypeComponentIndex: 'occur' attribute must have the same value as that of the referenced index */
+//, MultiSptCpoInd_RestrictElts		= 7020905 /*!< SpeciesTypeComponentIndex: Can not have a listOfDenotedSpeciesTypeComponentIndexes if component references an index  */
+//, MultiSptCpoInd_SameOccurAsRefIndex	= 7020906 /*!< SpeciesTypeComponentIndex: 'occur' attribute must have the same value as that of the referenced index */
 , MultiSptCpoInd_IdParAtt_Ref		= 7020907 /*!< SpeciesTypeComponentIndex: 'identifyingParent' must be the 'id' of a component */
-, MultiSptCpoInd_OccAtt_Ref		= 7020908 /*!< SpeciesTypeComponentIndex: 'occur' must be a positiveInteger */
-, MultiLofDenSptCpoInds_NoEmpty  	= 7020909 /*!< ListOfDenotedSpeciesTypeComponentIndexes: Must not be empty */
-, MultiLofDenSptCpoInds_AllowedAtts	= 7020910 /*!< ListOfDenotedSpeciesTypeComponentIndexes: Allowed attributes */
-, MultiLofDenSptCpoInds_Elts  		= 7020911 /*!< ListOfDenotedSpeciesTypeComponentIndexes: Only allow denotedSpeciesTypeComponentIndex elements */
+//, MultiSptCpoInd_OccAtt_Ref		= 7020908 /*!< SpeciesTypeComponentIndex: 'occur' must be a positiveInteger */
+//, MultiLofDenSptCpoInds_NoEmpty  	= 7020909 /*!< ListOfDenotedSpeciesTypeComponentIndexes: Must not be empty */
+//, MultiLofDenSptCpoInds_AllowedAtts	= 7020910 /*!< ListOfDenotedSpeciesTypeComponentIndexes: Allowed attributes */
+//, MultiLofDenSptCpoInds_Elts  		= 7020911 /*!< ListOfDenotedSpeciesTypeComponentIndexes: Only allow denotedSpeciesTypeComponentIndex elements */
 
-// Rules for DenotedSpeciesTypeComponentIndex objects
-, MultiDenSptCpoInd_AllowedCoreAtts	= 7021001 /*!< DenotedSpeciesTypeComponentIndex: Allowed SBML core attributes */
-, MultiDenSptCpoInd_AllowedCoreElts	= 7021002 /*!< DenotedSpeciesTypeComponentIndex: Allowed SBML core elements */
-, MultiDenSptCpoInd_AllowedMultiAtts 	= 7021003 /*!< DenotedSpeciesTypeComponentIndex: Allowed Multi attributes */
-, MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref = 7021004 /*!< DenotedSpeciesTypeComponentIndex: 'speciesTypeComponentIndex' must the 'id' of a speciesTypeComponentIndex */
+//// Rules for DenotedSpeciesTypeComponentIndex objects
+//, MultiDenSptCpoInd_AllowedCoreAtts	= 7021001 /*!< DenotedSpeciesTypeComponentIndex: Allowed SBML core attributes */
+//, MultiDenSptCpoInd_AllowedCoreElts	= 7021002 /*!< DenotedSpeciesTypeComponentIndex: Allowed SBML core elements */
+//, MultiDenSptCpoInd_AllowedMultiAtts 	= 7021003 /*!< DenotedSpeciesTypeComponentIndex: Allowed Multi attributes */
+//, MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref = 7021004 /*!< DenotedSpeciesTypeComponentIndex: 'speciesTypeComponentIndex' must the 'id' of a speciesTypeComponentIndex */
 
 // Rules for InSpeciesTypeBond objects
 , MultiInSptBnd_AllowedCoreAtts  	= 7021101 /*!< InSpeciesTypeBond: Allowed SBML core attributes */
@@ -200,10 +200,14 @@ typedef enum
 , MultiExSpe_NoEmptyListOfDefs 		= 7021203 /*!< Extended Species: ListOf- subobjects must not be empty */
 , MultiLofOutBsts_AllowedAtts     	= 7021204 /*!< ListOfOutwardBindingSites: Allowed attributes */
 , MultiLofOutBsts_AllowedElts 		= 7021205 /*!< ListOfOutwardBindingSites: Allowed elements */
-, MultiLofSpeFtrs_AllowedCoreAtts     	= 7021206 /*!< ListOfSpeciesFeatures: Allowed SBML core attributes */
-, MultiLofSpeFtrs_AllowedMultiAtts 	= 7021207 /*!< ListOfSpeciesFeatures: Allowed Multi attributes */
-, MultiLofSpeFtrs_RelationAtt_Ref	= 7021208 /*!< ListOfSpeciesFeatures: 'relation' must be a value of 'Relation' */
+, MultiLofSpeFtrs_AllowedAtts     	= 7021206 /*!< ListOfSpeciesFeatures: Allowed SBML attributes */
+, MultiSubLofSpeFtrs_AllowedMultiAtts 	= 7021207 /*!< SubListOfSpeciesFeatures: Allowed Multi attributes */
+, MultiSubLofSpeFtrs_RelationAtt_Ref	= 7021208 /*!< ListOfSpeciesFeatures: 'relation' must be a value of 'Relation' */
 , MultiLofSpeFtrs_AllowedElts 	        = 7021209 /*!< ListOfSpeciesFeatures: Allowed elements */
+, MultiSubLofSpeFtrs_AllowedCoreAtts 	= 7021210 /*!< SubListOfSpeciesFeatures: Allowed SBML core attributes */
+, MultiSubLofSpeFtrs_AllowedElts 	= 7021211 /*!< SubListOfSpeciesFeatures: Allowed elements */
+, MultiSubLofSpeFtrs_CpoAtt_Ref		= 7021212 /*!< SubListOfSpeciesFeatures: 'component' must be the 'id' of a 'SpeciesType' component */
+
 
 // Rules for OutwardBindingSite objects
 , MultiOutBst_AllowedCoreAtts  		= 7021301 /*!< OutwardBindingSite: Allowed SBML core attributes */
@@ -264,7 +268,7 @@ typedef enum
 
 // Rules for extended ci elements in Math objects
 , MultiMathCi_AllowedMultiAtts  	= 7022101 /*!< Math ci element: Allowed Multi attributes */
-, MultiMathCi_SpeRefAtt_Ref		= 7022102 /*!< Math ci element: 'speciesReference' must be the 'id' of a speciesReference */
+, MultiMathCi_SpeRefAtt_Ref		= 7022102 /*!< Math ci element: 'speciesReference' must be the 'id' of a speciesReference within the same reaction */
 , MultiMathCi_RepTypAtt_Ref	        = 7022103 /*!< Math ci element: 'representationType' must be a value of the Multi data type 'RepresentationType' */
 
 }  MultiSBMLErrorCode_t;
diff --git a/src/sbml/packages/multi/validator/MultiSBMLErrorTable.h b/src/sbml/packages/multi/validator/MultiSBMLErrorTable.h
index 88bdcaf..69af684 100644
--- a/src/sbml/packages/multi/validator/MultiSBMLErrorTable.h
+++ b/src/sbml/packages/multi/validator/MultiSBMLErrorTable.h
@@ -46,7 +46,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "Unknown error from multi",
-    { "L3V1 Multi V1.0.4"
+    { "L3V1 Multi V1.0.6"
     }
   },
 
@@ -59,7 +59,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "package specification for SBML Level 3, an "
     "SBML document must declare the use of the following XML Namespace: "
     "'http://www.sbml.org/sbml/level3/version1/multi/version1'",
-    { "L3V1 Multi V1.0.4 Section 3.1"
+    { "L3V1 Multi V1.0.6 Section 3.1"
     }
   },
 
@@ -72,7 +72,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "elements and attributes from the Multi "
     "package must be declared either implicitly or explicitly to be in the "
     "XML namespace 'http://www.sbml.org/sbml/level3/version1/comp/version1'",
-    { "L3V1 Multi V1.0.4 Section 3.1"
+    { "L3V1 Multi V1.0.6 Section 3.1"
     }
   },
 
@@ -123,11 +123,11 @@ static const packageErrorTableEntry multiErrorTable[] =
     "and multi:id attribute values of all such objects in a model: the "
     "model itself, plus all contained <functionDefinition>, <compartment>,"
     "<species>, <reaction>, <speciesReference>, <modifierSpeciesReference>, "
-    "<event>, and <parameter> objects, plus the <SpeciesType> "
-    "objects defined by the Multi package, plus "
+    "<event>, and <parameter> objects, plus the <SpeciesType> and "
+    "<PossibleSpeciesFeatureValue> objects defined by the Multi package, and "
     "any objects defined by any other package with 'package:id' "
     "attributes defined as falling in the 'SId' namespace.",
-    { "L3V1 Multi V1.0.4 Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.28"
     }
   },
 
@@ -162,7 +162,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of a multi:id attribute on SpeciesTypeInstance objects must be unique across "
     "the set of all multi:id attribute values of all the SpeciesTypeInstance objects under the "
     "direct parent SpeciesType object in which it is located. ",
-    { "L3V1 Multi V1.0.4 Section 3.11.1 and Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.11.1 and Section 3.27"
     }
   },
 
@@ -174,7 +174,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of a multi:id attribute on SpeciesTypeComponentIndex objects must be unique across "
     "the set of all multi:id attribute values of all the SpeciesTypeComponentIndex objects under the "
     "direct parent SpeciesType object in which it is located. ",
-    { "L3V1 Multi V1.0.4 Section 3.11.1 and Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.12.1 and Section 3.27"
     }
   },
 
@@ -186,7 +186,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of a multi:id attribute on InSpeciesTypeBond objects must be unique across the "
     "set of all multi:id attribute values of all the InSpeciesTypeBond objects under the direct "
     "parent SpeciesType object in which it is it is located. ",
-    { "L3V1 Multi V1.0.4 Section 3.14.1 and Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.13.1 and Section 3.27"
     }
   },
 
@@ -198,20 +198,18 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of a multi:id attribute on SpeciesFeatureType objects must be unique "
     "across the set of all multi:id attribute values of all the SpeciesFeature objects under "
     "the direct parent SpeciesType object in which it is located. ",
-    { "L3V1 Multi V1.0.4 Section 3.9.1 and Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.9.1 and Section 3.27"
     }
   },
 
-  // 7010405
-  { MultiUnqId_PblSpecFtrVal,
-    "PossibleSpeciesFeatureValue must have unique ids within the parent speciesFeatureType",
+  // 7010405 // add at v1.0.6
+  { MultiUnqId_SubListOfSfs,
+    "SubListOfSpeciesFeatures must have unique ids within a species",
     LIBSBML_CAT_IDENTIFIER_CONSISTENCY,
     LIBSBML_SEV_ERROR,
-    "The value of a multi:id attribute on PossibleSpeciesFeatureValue objects must be unique "
-    "across the set of all multi:id attribute values of all PossibleSpeciesFeatureValue objects under "
-    "the direct parent SpeciesFeatureType object in which "
-    "it is located. ",
-    { "L3V1 Multi V1.0.4 Section 3.10.1 and Section 3.28"
+    "The value of a multi:id attribute on SubListOfSpeciesFeatures objects must be unique across the set of"
+    "all id and multi:id attribute values of all objects in the Species object in which it is located.",
+    { "L3V1 Multi V1.0.6 Section 3.17.1 and Section 3.28"
     }
   },
 
@@ -222,7 +220,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:id attribute on SpeciesFeature objects must be unique across the set of"
     "all id and multi:id attribute values of all objects in the Species object in which it is located.",
-    { "L3V1 Multi V1.0.4 Section 3.18.1 and Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.18.1 and Section 3.27"
     }
   },
 
@@ -234,7 +232,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of a multi:id attribute on SpeciesFeatureChange objects must be unique across "
     "the set of all multi:id attribute values of all objects in the SpeciesTypeComponentMapInProduct "
     "object in which it is located. ",
-    { "L3V1 Multi V1.0.4 Section 3.25.1 and Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.25.1 and Section 3.27"
     }
   },
 
@@ -246,7 +244,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of a multi:id attribute on CompartmentReference objects must be unique across "
     "the set of all id and multi:id attribute values of all objects in the Compartment object in "
     "which it is located.",
-    { "L3V1 Multi V1.0.4 Section 3.6.1 and Section 3.28"
+    { "L3V1 Multi V1.0.6 Section 3.6.1 and Section 3.27"
     }
   },
 
@@ -257,7 +255,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:compartment attribute on SpeciesType objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.8.2"
+    { "L3V1 Multi V1.0.6 Section 3.8.2"
     }
   },
 
@@ -268,7 +266,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:numericValue attribute on PossibleSpeciesFeatureValue objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.10.2"
+    { "L3V1 Multi V1.0.6 Section 3.10.2"
     }
   },
 
@@ -279,7 +277,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:speciesType attribute on SpeciesTypeInstance objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.11.2"
+    { "L3V1 Multi V1.0.6 Section 3.11.2"
     }
   },
 
@@ -290,7 +288,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:compartmentReference attribute on SpeciesTypeInstance objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.11.3"
+    { "L3V1 Multi V1.0.6 Section 3.11.3"
     }
   },
 
@@ -301,7 +299,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:component attribute on SpeciesTypeComponentIndex objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.12.2"
+    { "L3V1 Multi V1.0.6 Section 3.12.2"
     }
   },
 
@@ -312,20 +310,20 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:identifyingParent attribute on SpeciesTypeComponentIndex objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.12.3"
+    { "L3V1 Multi V1.0.6 Section 3.12.3"
     }
   },
 
-  // 7010507
-  { MultiInvSIdRefSyn_DenSptCpoInd_IndAtt,
-    "Invalid SIdRef syntax: 'speciesTypeComponentIndex' attribute of DenotedSpeciesTypeComponentIndex",
-    LIBSBML_CAT_IDENTIFIER_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "The value of a multi:speciesTypeComponentIndex attribute on DenotedSpeciesTypeComponentIndex objects must conform to the "
-    "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.13.1"
-    }
-  },
+//  // 7010507
+//  { MultiInvSIdRefSyn_DenSptCpoInd_IndAtt,
+//    "Invalid SIdRef syntax: 'speciesTypeComponentIndex' attribute of DenotedSpeciesTypeComponentIndex",
+//    LIBSBML_CAT_IDENTIFIER_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "The value of a multi:speciesTypeComponentIndex attribute on DenotedSpeciesTypeComponentIndex objects must conform to the "
+//    "syntax of the SBML data type SIdRef. ",
+//    { "L3V1 Multi V1.0.6 Section 3.13.1"
+//    }
+//  },
 
   // 7010508
   { MultiInvSIdRefSyn_InSptBnd_Bst1Att,
@@ -334,7 +332,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:bindingSite1 attribute on InSpeciesTypeBond objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.14.2"
+    { "L3V1 Multi V1.0.6 Section 3.13.2"
     }
   },
 
@@ -345,7 +343,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:bindingSite2 attribute on InSpeciesTypeBond objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.14.2"
+    { "L3V1 Multi V1.0.6 Section 3.13.2"
     }
   },
 
@@ -356,7 +354,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:speciesType attribute on extended Species objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.16.1"
+    { "L3V1 Multi V1.0.6 Section 3.15.1"
     }
   },
 
@@ -367,7 +365,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:component attribute on OutwardBindingSite objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.17.2"
+    { "L3V1 Multi V1.0.6 Section 3.16.2"
     }
   },
 
@@ -378,7 +376,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:speciesFeatureType attribute on SpeciesFeature objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.18.2"
+    { "L3V1 Multi V1.0.6 Section 3.18.2"
     }
   },
 
@@ -389,7 +387,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:component attribute on SpeciesFeature objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.18.4"
+    { "L3V1 Multi V1.0.6 Section 3.18.4"
     }
   },
 
@@ -400,7 +398,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:value attribute on SpeciesFeatureValue objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.18.6"
+    { "L3V1 Multi V1.0.6 Section 3.18.6"
     }
   },
 
@@ -411,7 +409,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:compartmentReference attribute on extended SimpleSpeciesReference objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.22"
+    { "L3V1 Multi V1.0.6 Section 3.22"
     }
   },
 
@@ -422,7 +420,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:reactant attribute on SpeciesTypeComponentMapInProduct objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.24.1"
+    { "L3V1 Multi V1.0.6 Section 3.24.1"
     }
   },
 
@@ -433,7 +431,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:reactantComponent attribute on SpeciesTypeComponentMapInProduct objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.24.2"
+    { "L3V1 Multi V1.0.6 Section 3.24.2"
     }
   },
 
@@ -444,7 +442,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:productComponent attribute on SpeciesTypeComponentMapInProduct objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.24.3"
+    { "L3V1 Multi V1.0.6 Section 3.24.3"
     }
   },
 
@@ -455,7 +453,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:reactantSpeciesFeature attribute on SpeciesTypeComponentMapInProduct objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.25.2"
+    { "L3V1 Multi V1.0.6 Section 3.25.2"
     }
   },
 
@@ -466,7 +464,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:productSpeciesFeature attribute on SpeciesTypeComponentMapInProduct objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.25.3"
+    { "L3V1 Multi V1.0.6 Section 3.25.3"
     }
   },
 
@@ -477,7 +475,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:compartmentType attribute on extended Compartment objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.5.2"
+    { "L3V1 Multi V1.0.6 Section 3.5.2"
     }
   },
 
@@ -488,7 +486,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a multi:compartment attribute on CompartmentReference objects must conform to the "
     "syntax of the SBML data type SIdRef. ",
-    { "L3V1 Multi V1.0.4 Section 3.6.2"
+    { "L3V1 Multi V1.0.6 Section 3.6.2"
     }
   },
 
@@ -499,7 +497,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "There may be at most one instance of ListOfSpeciesTypes "
     "within an extended Model object that uses the SBML Level 3 Multi package.",
-    { "L3V1 Multi V1.0.4 Section 3.4"
+    { "L3V1 Multi V1.0.6 Section 3.4"
     }
   },
 
@@ -509,7 +507,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "A ListOfSpeciesTypes object within an ExModel object is optional, but if present, must not be empty.",
-    { "L3V1 Multi V1.0.4 Section 3.4.1"
+    { "L3V1 Multi V1.0.6 Section 3.4"
     }
   },
 
@@ -521,7 +519,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfSpeciesTypes object may have the optional SBML core attributes 'metaid' and 'sboTerm'.  "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted "
     "on a ListOfSpeciesTypes object.",
-    { "L3V1 Multi V1.0.4 Section 3.4.1"
+    { "L3V1 Multi V1.0.6 Section 3.4.1"
     }
   },
 
@@ -532,7 +530,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, "
     "a ListOfSpeciesTypes container object may only contain SpeciesType objects.",
-    { "L3V1 Multi V1.0.4 Section 3.4.1"
+    { "L3V1 Multi V1.0.6 Section 3.4.1"
     }
   },
 
@@ -544,7 +542,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "An extended Compartment object must have the required attribute 'multi:isType', and may also "
     "have the optional attribute 'multi:compartmentType'. No other attributes from the Multi "
     "namespace are permitted on an extended Compartment object.",
-    { "L3V1 Multi V1.0.4 Section 3.5"
+    { "L3V1 Multi V1.0.6 Section 3.5"
     }
   },
 
@@ -555,7 +553,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a 'multi:isType' attribute on an extended Compartment object must always confirm "
     "to the syntax of the SBML data type 'boolean'.",
-    { "L3V1 Multi V1.0.4 Section 3.5.1"
+    { "L3V1 Multi V1.0.6 Section 3.5.1"
     }
   },
 
@@ -565,7 +563,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "Extended Compartment: 'isType' attribute is required. ",
-    { "L3V1 Multi V1.0.4 Section 3.5.1"
+    { "L3V1 Multi V1.0.6 Section 3.5.1"
     }
   },
 
@@ -577,7 +575,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'multi:isType' attribute of the Compartment object referenced by a CompartmentReference "
     "object must be the same as that of the 'multi:isType' attribute of the parent Compartment object of the "
     "ListOfCompartmentReferences object which contains the CompartmentReference object.",
-    { "L3V1 Multi V1.0.4 Section 3.7"
+    { "L3V1 Multi V1.0.6 Section 3.7"
     }
   },
 
@@ -588,7 +586,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The 'multi:compartmentType' attribute on a Compartment object must not be defined if the value of "
     "the 'multi:isType' is 'true'.",
-    { "L3V1 Multi V1.0.4 Section 3.5.2"
+    { "L3V1 Multi V1.0.6 Section 3.5.2"
     }
   },
 
@@ -598,7 +596,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "There may be at most one ListOfCompartmentReferences container object within a Compartment object.",
-    { "L3V1 Multi V1.0.4 Section 3.5.3"
+    { "L3V1 Multi V1.0.6 Section 3.5.3"
     }
   },
 
@@ -608,7 +606,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "A ListOfCompartmentReferences object within a Compartment object is optional, but if present, must not be empty.",
-    { "L3V1 Multi V1.0.4 Section 3.5.3"
+    { "L3V1 Multi V1.0.6 Section 3.5.3"
     }
   },
 
@@ -620,7 +618,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfCompartmentReferences object may have the optional SBML core attributes 'metaid' and 'sboTerm'.  "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfCompartmentReferences object. ",
-    { "L3V1 Multi V1.0.4 Section 3.5.3"
+    { "L3V1 Multi V1.0.6 Section 3.5.3"
     }
   },
 
@@ -631,7 +629,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfCompartmentReferences container object may only contain CompartmentReference objects.",
-    { "L3V1 Multi V1.0.4 Section 3.5.3"
+    { "L3V1 Multi V1.0.6 Section 3.5.3"
     }
   },
 
@@ -643,7 +641,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A CompartmentReference object may have the optional SBML Level~3 Core attributes 'metaid' and "
     "'sboTerm'.  No other attributes from the SBML Level~3 Core namespace are permitted on a "
     "'CompartmentReference object.",
-    { "L3V1 Multi V1.0.4 Section 3.6"
+    { "L3V1 Multi V1.0.6 Section 3.6"
     }
   },
 
@@ -655,7 +653,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A CompartmentReference object may have the optional SBML Level~3 Core subobjects for 'notes' and "
     "'annotation'.  No other elements from the SBML Level~3 Core namespace are permitted on a "
     "CompartmentReference object.",
-    { "L3V1 Multi V1.0.4 Section 3.6"
+    { "L3V1 Multi V1.0.6 Section 3.6"
     }
   },
 
@@ -667,7 +665,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A CompartmentReference object must have the required attribute 'multi:compartment', and may have "
     "the optional attributes 'multi:id' and 'multi:name'. No other attributes from the Multi namespace "
     "are permitted on a CompartmentReference object.",
-    { "L3V1 Multi V1.0.4 Section 3.6"
+    { "L3V1 Multi V1.0.6 Section 3.6"
     }
   },
 
@@ -678,7 +676,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:compartment' attribute must be the value of an 'id' attribute on an existing "
     "Compartment object in the 'SId' namespace of the parent model.",
-    { "L3V1 Multi V1.0.4 Section 3.6"
+    { "L3V1 Multi V1.0.6 Section 3.6"
     }
   },
 
@@ -690,7 +688,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "If some or all compartmentReferences within a ListOfCompartmentReferences object reference the same "
     "compartment, those compartmentReferences are required to have its 'multi:id' attribute defined to "
     "distinguish different compartmentReferences.",
-    { "L3V1 Multi V1.0.4 Section 3.6.1"
+    { "L3V1 Multi V1.0.6 Section 3.6.1"
     }
   },
 
@@ -701,7 +699,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesType object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'.  No "
     "other attributes from the SBML Level~3 Core namespace are permitted on a SpeciesType object. ",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -712,7 +710,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesType object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a SpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -724,7 +722,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A SpeciesType object must have the required attribute 'multi:id', and may have the optional attributes "
     "'multi:name' and 'multi:compartment'. No other attributes from the Multi namespace are permitted on a "
     "SpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -735,7 +733,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:compartment' attribute, if set on a given SpeciesType object, must be the value "
     "of an 'id' attribute on an existing Compartment object in the 'SId' namespace of the parent Model object.",
-    { "L3V1 Multi V1.0.4 Section 3.8.2"
+    { "L3V1 Multi V1.0.6 Section 3.8.2"
     }
   },
 
@@ -748,7 +746,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "objects must not be empty. Specifically, if any of the following classes of objects are present on a "
     "SpeciesType object, it must not be empty: ListOfSpeciesFeatureTypes, ListOfSpeciesTypeInstances, "
     "ListOfSpeciesTypeComponentIndexes and ListOfInSpeciesTypeBonds.",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -758,7 +756,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "There may be at most one ListOfSpeciesFeatureTypes container object within a SpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -769,7 +767,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfSpeciesFeatureTypes container object may only contain SpeciesFeatureType objects.",
-    { "L3V1 Multi V1.0.4 Section 3.8.3"
+    { "L3V1 Multi V1.0.6 Section 3.8.3"
     }
   },
 
@@ -781,7 +779,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfSpeciesFeatureTypes object may have the optional SBML core attributes 'metaid' and 'sboTerm'.  "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfSpeciesFeatureTypes object.",
-    { "L3V1 Multi V1.0.4 Section 3.8.3"
+    { "L3V1 Multi V1.0.6 Section 3.8.3"
     }
   },
 
@@ -791,7 +789,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "There may be at most one ListOfSpeciesTypeInstances container object within a SpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -802,7 +800,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfSpeciesTypeInstances container object may only contain SpeciesTypeInstance objects.",
-    { "L3V1 Multi V1.0.4 Section 3.8.4"
+    { "L3V1 Multi V1.0.6 Section 3.8.4"
     }
   },
 
@@ -814,7 +812,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfSpeciesTypeInstances object may have the optional SBML core attributes 'metaid' and 'sboTerm'.  "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfSpeciesTypeInstances.",
-    { "L3V1 Multi V1.0.4 Section 3.8.4"
+    { "L3V1 Multi V1.0.6 Section 3.8.4"
     }
   },
 
@@ -824,7 +822,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "There may be at most one ListOfSpeciesTypeComponentIndexes container object within a SpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -835,7 +833,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfSpeciesTypeComponentIndexes container object may only contain SpeciesTypeComponentIndex objects.",
-    { "L3V1 Multi V1.0.4 Section 3.8.6"
+    { "L3V1 Multi V1.0.6 Section 3.8.6"
     }
   },
 
@@ -847,7 +845,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfSpeciesTypeComponentIndexes object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfSpeciesTypeComponentIndexes object.",
-    { "L3V1 Multi V1.0.4 Section 3.8.6"
+    { "L3V1 Multi V1.0.6 Section 3.8.6"
     }
   },
 
@@ -857,7 +855,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "There may be at most one ListOfInSpeciesTypeBonds container object within a SpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.8"
+    { "L3V1 Multi V1.0.6 Section 3.8"
     }
   },
 
@@ -868,7 +866,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfInSpeciesTypeBonds container object may only contain InSpeciesTypeBond objects.",
-    { "L3V1 Multi V1.0.4 Section 3.8.5"
+    { "L3V1 Multi V1.0.6 Section 3.8.5"
     }
   },
 
@@ -880,7 +878,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfInSpeciesTypeBonds object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfInSpeciesTypeBonds object.",
-    { "L3V1 Multi V1.0.4 Section 3.8.5"
+    { "L3V1 Multi V1.0.6 Section 3.8.5"
     }
   },
 
@@ -890,7 +888,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "A BindingSiteSpeciesType object is not permitted to have any ListOfSpeciesTypeInstances subobject.",
-    { "L3V1 Multi V1.0.4 Section 3.8.7"
+    { "L3V1 Multi V1.0.6 Section 3.8.7"
     }
   },
 
@@ -901,7 +899,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureType object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace are permitted on a SpeciesFeatureType object.",
-    { "L3V1 Multi V1.0.4 Section 3.9"
+    { "L3V1 Multi V1.0.6 Section 3.9"
     }
   },
 
@@ -912,7 +910,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureType object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a SpeciesFeatureType object.",
-    { "L3V1 Multi V1.0.4 Section 3.9"
+    { "L3V1 Multi V1.0.6 Section 3.9"
     }
   },
 
@@ -924,7 +922,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A SpeciesFeatureType object must have the required attributes 'multi:id' and 'multi:occur', and may have "
     "the optional attribute 'multi:name'. No other attributes from the Multi namespace are permitted on a "
     "SpeciesFeatureType object.",
-    { "L3V1 Multi V1.0.4 Section 3.9"
+    { "L3V1 Multi V1.0.6 Section 3.9"
     }
   },
 
@@ -935,7 +933,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:occur' attribute on a given SpeciesFeatureType object must conform to the syntax "
     "of the SBML data type 'positiveInteger'.",
-    { "L3V1 Multi V1.0.4 Section 3.9.2"
+    { "L3V1 Multi V1.0.6 Section 3.9.2"
     }
   },
 
@@ -945,7 +943,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "One ListOfPossibleSpeciesFeatureValues subobject in a SpeciesFeatureType object is required. ",
-    { "L3V1 Multi V1.0.4 Section 3.9.3"
+    { "L3V1 Multi V1.0.6 Section 3.9.3"
     }
   },
 
@@ -957,7 +955,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfPossibleSpeciesFeatureValues object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfPossibleSpeciesFeatureValues object. ",
-    { "L3V1 Multi V1.0.4 Section 3.9.3"
+    { "L3V1 Multi V1.0.6 Section 3.9.3"
     }
   },
 
@@ -968,7 +966,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfPossibleSpeciesFeatureValues container object may only contain PossibleSpeciesFeatureValue objects. ",
-    { "L3V1 Multi V1.0.4 Section 3.9.3"
+    { "L3V1 Multi V1.0.6 Section 3.9.3"
     }
   },
 
@@ -978,7 +976,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "A ListOfPossibleSpeciesFeatureValues object must not be empty. ",
-    { "L3V1 Multi V1.0.4 Section 3.9.3"
+    { "L3V1 Multi V1.0.6 Section 3.9.3"
     }
   },
 
@@ -989,7 +987,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A PossibleSpeciesFeatureValue object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace are permitted on a PossibleSpeciesFeatureValue object. ",
-    { "L3V1 Multi V1.0.4 Section 3.10"
+    { "L3V1 Multi V1.0.6 Section 3.10"
     }
   },
 
@@ -1000,7 +998,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A PossibleSpeciesFeatureValue object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a PossibleSpeciesFeatureValue object. ",
-    { "L3V1 Multi V1.0.4 Section 3.10"
+    { "L3V1 Multi V1.0.6 Section 3.10"
     }
   },
 
@@ -1012,7 +1010,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A PossibleSpeciesFeatureValue object must have the required attribute 'multi:id', and may have the optional attributes "
     "'multi:name' and 'multi:numericValue'. No other attributes from the Multi namespace are permitted on a "
     "PossibleSpeciesFeatureValue object. ",
-    { "L3V1 Multi V1.0.4 Section 3.10"
+    { "L3V1 Multi V1.0.6 Section 3.10"
     }
   },
 
@@ -1023,7 +1021,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:numericValue' attribute on a given PossibleSpeciesFeatureValue object must be the identifier of "
     "a Parameter object defined in the same Model object. ",
-    { "L3V1 Multi V1.0.4 Section 3.10.2"
+    { "L3V1 Multi V1.0.6 Section 3.10.2"
     }
   },
 
@@ -1034,7 +1032,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesTypeInstance object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'.  "
     "No other attributes from the SBML Level~3 Core namespace are permitted on a SpeciesTypeInstance object. ",
-    { "L3V1 Multi V1.0.4 Section 3.11"
+    { "L3V1 Multi V1.0.6 Section 3.11"
     }
   },
 
@@ -1045,7 +1043,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesTypeInstance object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a SpeciesTypeInstance object. ",
-    { "L3V1 Multi V1.0.4 Section 3.11"
+    { "L3V1 Multi V1.0.6 Section 3.11"
     }
   },
 
@@ -1057,20 +1055,20 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A SpeciesTypeInstance object must have the required attributes 'multi:id', 'multi:speciesType' and 'multi:occur', "
     "and may have the optional attributes 'multi:name' and 'mulit:compartmentReference'. No other attributes from "
     "the Multi namespace are permitted on a SpeciesTypeInstance object. ",
-    { "L3V1 Multi V1.0.4 Section 3.11"
+    { "L3V1 Multi V1.0.6 Section 3.11"
     }
   },
 
-  // 7020804
-  { MultiSptIns_OccAtt_Ref,
-    "SpeciesTypeInstance: 'occur' must be a positiveInteger ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "The value of the 'multi:occur' attribute on a given SpeciesTypeInstance object must conform to the syntax of "
-    "the SBML data type 'positiveInteger'. ",
-    { "L3V1 Multi V1.0.4 Section 3.11.4"
-    }
-  },
+//  // 7020804
+//  { MultiSptIns_OccAtt_Ref,
+//    "SpeciesTypeInstance: 'occur' must be a positiveInteger ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "The value of the 'multi:occur' attribute on a given SpeciesTypeInstance object must conform to the syntax of "
+//    "the SBML data type 'positiveInteger'. ",
+//    { "L3V1 Multi V1.0.6 Section 3.11.4"
+//    }
+//  },
 
   // 7020805
   { MultiSptIns_SptAtt_Ref,
@@ -1079,7 +1077,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:speciesType' attribute on a given SpeciesTypeInstance object must be the identifier "
     "of a SpeciesType object defined in the same Model object. ",
-    { "L3V1 Multi V1.0.4 Section 3.11.2"
+    { "L3V1 Multi V1.0.6 Section 3.11.2"
     }
   },
 
@@ -1090,7 +1088,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:compartmentReference' attribute, if present on a given SpeciesTypeInstance object, "
     "must be the identifier of a CompartmentReference object defined in the same Model object. ",
-    { "L3V1 Multi V1.0.4 Section 3.11.3"
+    { "L3V1 Multi V1.0.6 Section 3.11.3"
     }
   },
 
@@ -1101,7 +1099,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesTypeComponentIndex object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace are permitted on a SpeciesTypeComponentIndex object.",
-    { "L3V1 Multi V1.0.4 Section 3.12"
+    { "L3V1 Multi V1.0.6 Section 3.12"
     }
   },
 
@@ -1112,7 +1110,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesTypeComponentIndex object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a SpeciesTypeComponentIndex object.",
-    { "L3V1 Multi V1.0.4 Section 3.12"
+    { "L3V1 Multi V1.0.6 Section 3.12"
     }
   },
 
@@ -1121,10 +1119,10 @@ static const packageErrorTableEntry multiErrorTable[] =
     "SpeciesTypeComponentIndex: Allowed Multi attributes ",
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
-    "A SpeciesTypeComponentIndex object must have the required attributes 'multi:id', 'multi:compartmentAtt' and "
-    "'multi:occur', and may have the optional attribute 'mulit:identifyingParent'. No other attributes from the "
+    "A SpeciesTypeComponentIndex object must have the required attributes 'multi:id' and 'multi:compartment' "
+    ", and may have the optional attribute 'mulit:identifyingParent'. No other attributes from the "
     "Multi namespace are permitted on a SpeciesTypeComponentIndex object.",
-    { "L3V1 Multi V1.0.4 Section 3.12"
+    { "L3V1 Multi V1.0.6 Section 3.12"
     }
   },
 
@@ -1136,33 +1134,33 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'mulit:component' attribute on a given SpeciesTypeComponentIndex object must be the identifier "
     "of a SpeciesTypeInstance object, or a SpeciesTypeComponentIndex object under the SpeciesType object that this "
     "SpeciesTypeComponentIndex object belongs to, or the SpeciesType object itself.",
-    { "L3V1 Multi V1.0.4 Section 3.12.2"
-    }
-  },
-
-  // 7020905
-  { MultiSptCpoInd_RestrictElts,
-    "SpeciesTypeComponentIndex: Can not have a listOfDenotedSpeciesTypeComponentIndexes if component references an index ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "If the value of the 'multi:component' attribute on a given SpeciesTypeComponentIndex object is the identifier of "
-    "a SpeciesTypeComponentIndex object, the SpeciesTypeComponentIndex object can not have any "
-    "ListOfDenotedSpeciesTypeComponentIndexes object.",
-    { "L3V1 Multi V1.0.4 Section 3.12.2"
-    }
-  },
-
-  // 7020906
-  { MultiSptCpoInd_SameOccurAsRefIndex,
-    "SpeciesTypeComponentIndex: 'occur' attribute must have the same value as that of the referenced index ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "If the value of the 'multi:component' attribute on a given SpeciesTypeComponentIndex object is the identifier of "
-    "another SpeciesTypeComponentIndex object, the 'multi:occur' attribute must have the same value as that of the "
-    "'multi:occur' attribute of the referenced SpeciesTypeComponentIndex object.",
-    { "L3V1 Multi V1.0.4 Section 3.12.2"
-    }
-  },
+    { "L3V1 Multi V1.0.6 Section 3.12.2"
+    }
+  },
+
+//  // 7020905
+//  { MultiSptCpoInd_RestrictElts,
+//    "SpeciesTypeComponentIndex: Can not have a listOfDenotedSpeciesTypeComponentIndexes if component references an index ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "If the value of the 'multi:component' attribute on a given SpeciesTypeComponentIndex object is the identifier of "
+//    "a SpeciesTypeComponentIndex object, the SpeciesTypeComponentIndex object can not have any "
+//    "ListOfDenotedSpeciesTypeComponentIndexes object.",
+//    { "L3V1 Multi V1.0.6 Section 3.12.2"
+//    }
+//  },
+
+//  // 7020906
+//  { MultiSptCpoInd_SameOccurAsRefIndex,
+//    "SpeciesTypeComponentIndex: 'occur' attribute must have the same value as that of the referenced index ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "If the value of the 'multi:component' attribute on a given SpeciesTypeComponentIndex object is the identifier of "
+//    "another SpeciesTypeComponentIndex object, the 'multi:occur' attribute must have the same value as that of the "
+//    "'multi:occur' attribute of the referenced SpeciesTypeComponentIndex object.",
+//    { "L3V1 Multi V1.0.6 Section 3.12.2"
+//    }
+//  },
 
   // 7020907
   { MultiSptCpoInd_IdParAtt_Ref,
@@ -1172,98 +1170,98 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'multi:identifyingParent' attribute on a given SpeciesTypeComponentIndex object must be the identifier "
     "of a component object under the SpeciesType object that this SpeciesTypeComponentIndex object belongs to. A component "
     "object can be an object of SpeciesTypeInstance, SpeciesTypeComponentIndex or SpeciesType.",
-    { "L3V1 Multi V1.0.4 Section 3.12.3"
-    }
-  },
-
-  // 7020908
-  { MultiSptCpoInd_OccAtt_Ref,
-    "SpeciesTypeComponentIndex: 'occur' must be a positiveInteger ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "The value of the 'multi:occur' attribute on a given SpeciesTypeComponentIndex object must conform to the syntax of "
-    "the SBML data type 'positiveInteger'.",
-    { "L3V1 Multi V1.0.4 Section 3.12.4"
-    }
-  },
-
-  // 7020909
-  { MultiLofDenSptCpoInds_NoEmpty,
-    "ListOfDenotedSpeciesTypeComponentIndexes: Must not be empty ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "A ListOfDenotedSpeciesTypeComponentIndexes object in a SpeciesTypeComponentIndex object is optional, but if present, "
-    "must not be empty.",
-    { "L3V1 Multi V1.0.4 Section 3.12.5"
-    }
-  },
-
-  // 7020910
-  { MultiLofDenSptCpoInds_AllowedAtts,
-    "ListOfDenotedSpeciesTypeComponentIndexes: Allowed attributes ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "A ListOfDenotedSpeciesTypeComponentIndexes object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
-    "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
-    "ListOfDenotedSpeciesTypeComponentIndexes object.",
-    { "L3V1 Multi V1.0.4 Section 3.12.5"
-    }
-  },
-
-  // 7020911
-  { MultiLofDenSptCpoInds_Elts,
-    "ListOfDenotedSpeciesTypeComponentIndexes: Only allow denotedSpeciesTypeComponentIndex elements ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a ListOfDenotedSpeciesTypeComponentIndexes "
-    "container object may only contain DenotedSpeciesTypeComponentIndex objects.",
-    { "L3V1 Multi V1.0.4 Section 3.12.5"
-    }
-  },
-
-  // 7021001
-  { MultiDenSptCpoInd_AllowedCoreAtts,
-    "DenotedSpeciesTypeComponentIndex: Allowed SBML core attributes ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "A DenotedSpeciesTypeComponentIndex object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
-    "No other attributes from the SBML Level~3 Core namespace are permitted on a DenotedSpeciesTypeComponentIndex object.",
-    { "L3V1 Multi V1.0.4 Section 3.13"
-    }
-  },
-
-  // 7021002
-  { MultiDenSptCpoInd_AllowedCoreElts,
-    "DenotedSpeciesTypeComponentIndex: Allowed SBML core elements ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "A DenotedSpeciesTypeComponentIndex object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
-    "No other elements from the SBML Level~3 Core namespace are permitted on a DenotedSpeciesTypeComponentIndex object.",
-    { "L3V1 Multi V1.0.4 Section 3.13"
-    }
-  },
-
-  // 7021003
-  { MultiDenSptCpoInd_AllowedMultiAtts,
-    "DenotedSpeciesTypeComponentIndex: Allowed Multi attributes ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "A DenotedSpeciesTypeComponentIndex object must have the required attribute 'multi:speciesTypeComponentIndex'. "
-    "No other attributes from the Multi namespace are permitted on a DenotedSpeciesTypeComponentIndex object.",
-    { "L3V1 Multi V1.0.4 Section 3.13.1"
-    }
-  },
-
-  // 7021004
-  { MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref,
-    "DenotedSpeciesTypeComponentIndex: 'speciesTypeComponentIndex' must the 'id' of a speciesTypeComponentIndex ",
-    LIBSBML_CAT_GENERAL_CONSISTENCY,
-    LIBSBML_SEV_ERROR,
-    "The value of the 'mulit:speciesTypeComponentIndex' attribute on a given DenotedSpeciesTypeComponentIndex object "
-    "must be the identifier of a SpeciesTypeComponentIndex object defined in the same Model object.",
-    { "L3V1 Multi V1.0.4 Section 3.13.1"
-    }
-  },
+    { "L3V1 Multi V1.0.6 Section 3.12.3"
+    }
+  },
+
+//  // 7020908
+//  { MultiSptCpoInd_OccAtt_Ref,
+//    "SpeciesTypeComponentIndex: 'occur' must be a positiveInteger ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "The value of the 'multi:occur' attribute on a given SpeciesTypeComponentIndex object must conform to the syntax of "
+//    "the SBML data type 'positiveInteger'.",
+//    { "L3V1 Multi V1.0.6 Section 3.12.4"
+//    }
+//  },
+//
+//  // 7020909
+//  { MultiLofDenSptCpoInds_NoEmpty,
+//    "ListOfDenotedSpeciesTypeComponentIndexes: Must not be empty ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "A ListOfDenotedSpeciesTypeComponentIndexes object in a SpeciesTypeComponentIndex object is optional, but if present, "
+//    "must not be empty.",
+//    { "L3V1 Multi V1.0.6 Section 3.12.5"
+//    }
+//  },
+//
+//  // 7020910
+//  { MultiLofDenSptCpoInds_AllowedAtts,
+//    "ListOfDenotedSpeciesTypeComponentIndexes: Allowed attributes ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "A ListOfDenotedSpeciesTypeComponentIndexes object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
+//    "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
+//    "ListOfDenotedSpeciesTypeComponentIndexes object.",
+//    { "L3V1 Multi V1.0.6 Section 3.12.5"
+//    }
+//  },
+//
+//  // 7020911
+//  { MultiLofDenSptCpoInds_Elts,
+//    "ListOfDenotedSpeciesTypeComponentIndexes: Only allow denotedSpeciesTypeComponentIndex elements ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a ListOfDenotedSpeciesTypeComponentIndexes "
+//    "container object may only contain DenotedSpeciesTypeComponentIndex objects.",
+//    { "L3V1 Multi V1.0.6 Section 3.12.5"
+//    }
+//  },
+//
+//  // 7021001
+//  { MultiDenSptCpoInd_AllowedCoreAtts,
+//    "DenotedSpeciesTypeComponentIndex: Allowed SBML core attributes ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "A DenotedSpeciesTypeComponentIndex object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
+//    "No other attributes from the SBML Level~3 Core namespace are permitted on a DenotedSpeciesTypeComponentIndex object.",
+//    { "L3V1 Multi V1.0.6 Section 3.13"
+//    }
+//  },
+//
+//  // 7021002
+//  { MultiDenSptCpoInd_AllowedCoreElts,
+//    "DenotedSpeciesTypeComponentIndex: Allowed SBML core elements ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "A DenotedSpeciesTypeComponentIndex object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
+//    "No other elements from the SBML Level~3 Core namespace are permitted on a DenotedSpeciesTypeComponentIndex object.",
+//    { "L3V1 Multi V1.0.6 Section 3.13"
+//    }
+//  },
+//
+//  // 7021003
+//  { MultiDenSptCpoInd_AllowedMultiAtts,
+//    "DenotedSpeciesTypeComponentIndex: Allowed Multi attributes ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "A DenotedSpeciesTypeComponentIndex object must have the required attribute 'multi:speciesTypeComponentIndex'. "
+//    "No other attributes from the Multi namespace are permitted on a DenotedSpeciesTypeComponentIndex object.",
+//    { "L3V1 Multi V1.0.6 Section 3.13.1"
+//    }
+//  },
+//
+//  // 7021004
+//  { MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref,
+//    "DenotedSpeciesTypeComponentIndex: 'speciesTypeComponentIndex' must the 'id' of a speciesTypeComponentIndex ",
+//    LIBSBML_CAT_GENERAL_CONSISTENCY,
+//    LIBSBML_SEV_ERROR,
+//    "The value of the 'mulit:speciesTypeComponentIndex' attribute on a given DenotedSpeciesTypeComponentIndex object "
+//    "must be the identifier of a SpeciesTypeComponentIndex object defined in the same Model object.",
+//    { "L3V1 Multi V1.0.6 Section 3.13.1"
+//    }
+//  },
 
   // 7021101
   { MultiInSptBnd_AllowedCoreAtts,
@@ -1272,7 +1270,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An InSpeciesTypeBond object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace are permitted on an InSpeciesTypeBond object.",
-    { "L3V1 Multi V1.0.4 Section 3.14"
+    { "L3V1 Multi V1.0.6 Section 3.13"
     }
   },
 
@@ -1283,7 +1281,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An InSpeciesTypeBond object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on an InSpeciesTypeBond object.",
-    { "L3V1 Multi V1.0.4 Section 3.14"
+    { "L3V1 Multi V1.0.6 Section 3.13"
     }
   },
 
@@ -1295,7 +1293,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "An InSpeciesTypeBond object must have the required attributes, 'multi:bindingSite1' and 'multi:BindingSite2', "
     "and may have the optional attributes, 'multi:id' and 'multi:name'. No other attributes from the Multi "
     "namespace are permitted on an InSpeciesTypeBond object.",
-    { "L3V1 Multi V1.0.4 Section 3.14"
+    { "L3V1 Multi V1.0.6 Section 3.13"
     }
   },
 
@@ -1307,7 +1305,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'multi:bindingSite1' attribute on a given InSpeciesTypeBond object must be the identifier "
     "of a SpeciesTypeInstance object or SpeciesTypeComponentIndex which ultimately reference a object of "
     "BindingSiteSpeciesType.",
-    { "L3V1 Multi V1.0.4 Section 3.14.2"
+    { "L3V1 Multi V1.0.6 Section 3.13.2"
     }
   },
 
@@ -1319,7 +1317,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'multi:bindingSite2' attribute on a given InSpeciesTypeBond object must be the identifier "
     "of a SpeciesTypeInstance object or SpeciesTypeComponentIndex which ultimately reference a object of "
     "BindingSiteSpeciesType.",
-    { "L3V1 Multi V1.0.4 Section 3.14.2"
+    { "L3V1 Multi V1.0.6 Section 3.13.2"
     }
   },
 
@@ -1329,7 +1327,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "The 'multi:bindingSite1' and 'multi:bindingSite2' attributes must not reference the same BindingSiteSpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.14.2"
+    { "L3V1 Multi V1.0.6 Section 3.13.2"
     }
   },
 
@@ -1340,7 +1338,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A Species object may have the optional attribute, 'multi:speciesType'. No other attributes from the Multi "
     "namespace are permitted on a Species object.",
-    { "L3V1 Multi V1.0.4 Section 3.16"
+    { "L3V1 Multi V1.0.6 Section 3.15"
     }
   },
 
@@ -1351,7 +1349,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of a 'multi:speciesTypeAtt' attribute, if present on a Species object, must be the identifier of a "
     "SpeciesType object.",
-    { "L3V1 Multi V1.0.4 Section 3.16.1"
+    { "L3V1 Multi V1.0.6 Section 3.15.1"
     }
   },
 
@@ -1363,7 +1361,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "Two 'ListOf' subobjects with a Species object are optional, but if present, these container object must not be empty. "
     "Specifically, if any of the following two classes of objects are present on the Species object, it must not be empty: "
     "ListOfOutwardBindingSites and ListOfSpeciesFeatures.",
-    { "L3V1 Multi V1.0.4 Section 3.16"
+    { "L3V1 Multi V1.0.6 Section 3.15"
     }
   },
 
@@ -1375,7 +1373,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfOutwardBindingSites object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfOutwardBindingSites object.",
-    { "L3V1 Multi V1.0.4 Section 3.16.2"
+    { "L3V1 Multi V1.0.6 Section 3.15.2"
     }
   },
 
@@ -1386,40 +1384,41 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a ListOfOutwardBindingSites "
     "container object may only contain OutwardBindingSite objects.",
-    { "L3V1 Multi V1.0.4 Section 3.16.2"
+    { "L3V1 Multi V1.0.6 Section 3.15.2"
     }
   },
 
   // 7021206
-  { MultiLofSpeFtrs_AllowedCoreAtts,
-    "ListOfSpeciesFeatures: Allowed SBML core attributes ",
+  { MultiLofSpeFtrs_AllowedAtts,
+    "ListOfSpeciesFeatures: Allowed SBML attributes ",
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "A ListOfSpeciesFeatures object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
-    "No other attributes from the SBML Level~3 Core namespace are permitted on a ListOfSpeciesFeatures object.",
-    { "L3V1 Multi V1.0.4 Section 3.16.3"
+    "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a ListOfSpeciesFeatures object.",
+    { "L3V1 Multi V1.0.6 Section 3.15.3"
     }
   },
 
   // 7021207
-  { MultiLofSpeFtrs_AllowedMultiAtts,
-    "ListOfSpeciesFeatures: Allowed Multi attributes ",
+  { MultiSubLofSpeFtrs_AllowedMultiAtts,
+    "SubListOfSpeciesFeatures: Allowed Multi attributes ",
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
-    "A ListOfSpeciesFeatures object may have the optional attribute 'mulit:relation'. No other attributes from "
-    "the Multi namespace are permitted on a ListOfSpeciesFeatures object.",
-    { "L3V1 Multi V1.0.4 Section 3.16.3"
+    "A SubListOfSpeciesFeatures object may have the optional attributes multi:id, multi:relation "
+    "and multi:component. No other attributes from the Multi namespace are permitted on a "
+    "SubListOfSpeciesFeatures object. ",
+    { "L3V1 Multi V1.0.6 Section 3.17"
     }
   },
 
   // 7021208
-  { MultiLofSpeFtrs_RelationAtt_Ref,
-    "ListOfSpeciesFeatures: 'relation' must be a value of 'Relation' ",
+  { MultiSubLofSpeFtrs_RelationAtt_Ref,
+    "SubListOfSpeciesFeatures: 'relation' must be a value of 'Relation' ",
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
-    "The value of the 'multi:relation' attribute, if presented on a ListOfSpeciesFeatures object, must conform "
+    "The value of the 'multi:relation' attribute, if presented on a SubListOfSpeciesFeatures object, must conform "
     "to the syntax of the Multi data type 'Relation'.",
-    { "L3V1 Multi V1.0.4 Section 3.16.3"
+    { "L3V1 Multi V1.0.6 Section 3.17.2"
     }
   },
 
@@ -1429,9 +1428,43 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
-    "ListOfSpeciesFeatures container object may only contain SpeciesFeature and/or other ListOfSpeciesFeatures "
+    "ListOfSpeciesFeatures container object may only contain SpeciesFeature and/or SubListOfSpeciesFeatures "
     "objects.",
-    { "L3V1 Multi V1.0.4 Section 3.16.3"
+    { "L3V1 Multi V1.0.6 Section 3.15.3"
+    }
+  },
+
+  // 7021210
+  { MultiSubLofSpeFtrs_AllowedCoreAtts,
+    "SubListOfSpeciesFeatures: Allowed SBML Core attributes ",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "A SubListOfSpeciesFeatures object may have the optional SBML core attributes 'metaid' and 'sboTerm'.  "
+    "No other attributes from the SBML Level~3 Core namespace are permitted on a SubListOfSpeciesFeatures object.  ",
+    { "L3V1 Multi V1.0.6 Section 3.17"
+    }
+  },
+
+  // 7021211
+  { MultiSubLofSpeFtrs_AllowedElts,
+    "SubListOfSpeciesFeatures: Allowed elements ",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
+    "SubListOfSpeciesFeatures container object may only contain SpeciesFeature objects.",
+    { "L3V1 Multi V1.0.6 Section 3.17"
+    }
+  },
+
+  // 7021212
+  { MultiSubLofSpeFtrs_CpoAtt_Ref,
+    "SubListOfSpeciesFeatures: 'component' must be the 'id' of a 'SpeciesType' component ",
+    LIBSBML_CAT_GENERAL_CONSISTENCY,
+    LIBSBML_SEV_ERROR,
+    "The value of the 'multi:component' attribute on a given SubListOfSpeciesFeatures object must be the identifier of an "
+    "object of SpeciesTypeInstance, SpeciesTypeComponentIndex or SpeciesType which contains the SpeciesFeature objects in "
+    "this subListOfSpeciesFeatures.",
+    { "L3V1 Multi V1.0.6 Section 3.17.3"
     }
   },
 
@@ -1442,7 +1475,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An OutwardBindingSite object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm.  "
     "No other attributes from the SBML Level~3 Core namespace are permitted on an OutwardBindingSite object.",
-    { "L3V1 Multi V1.0.4 Section 3.17"
+    { "L3V1 Multi V1.0.6 Section 3.16"
     }
   },
 
@@ -1453,7 +1486,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An OutwardBindingSite object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation.  "
     "No other elements from the SBML Level~3 Core namespace are permitted on an OutwardBindingSite object.",
-    { "L3V1 Multi V1.0.4 Section 3.17"
+    { "L3V1 Multi V1.0.6 Section 3.16"
     }
   },
 
@@ -1464,7 +1497,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An OutwardBindingSite object must have the required attributes, 'multi:bindingStatus' and 'mulit:component'. "
     "No other attributes from the Multi namespace are permitted on an OutwardBindingSite object.",
-    { "L3V1 Multi V1.0.4 Section 3.17"
+    { "L3V1 Multi V1.0.6 Section 3.16"
     }
   },
 
@@ -1475,7 +1508,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:bindingStatus' attribute on a given OutwardBindingSite object must confirm to the "
     "syntax of the Multi data type 'BindingStatus'.",
-    { "L3V1 Multi V1.0.4 Section 3.17.1"
+    { "L3V1 Multi V1.0.6 Section 3.16.1"
     }
   },
 
@@ -1487,7 +1520,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'multi:component' attribute on a given OutwardBindingSite object must be the identifier of an "
     "object of SpeciesTypeInstance, SpeciesTypeComponentIndex or SpeciesType which ultimately reference an object of "
     "BindingSiteSpeciesType.",
-    { "L3V1 Multi V1.0.4 Section 3.17.2"
+    { "L3V1 Multi V1.0.6 Section 3.16.2"
     }
   },
 
@@ -1498,7 +1531,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeature object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace are permitted on a SpeciesFeature object.",
-    { "L3V1 Multi V1.0.4 Section 3.18"
+    { "L3V1 Multi V1.0.6 Section 3.16"
     }
   },
 
@@ -1509,7 +1542,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeature object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a SpeciesFeature object.",
-    { "L3V1 Multi V1.0.4 Section 3.18"
+    { "L3V1 Multi V1.0.6 Section 3.18"
     }
   },
 
@@ -1518,10 +1551,10 @@ static const packageErrorTableEntry multiErrorTable[] =
     "SpeciesFeature: Allowed Multi attributes ",
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
-    "A SpeciesFeature object must have the required attributes, 'multi:speciesFeatureTypeAtt' and 'mulit:occur', "
-    "and may have the optional attributs, 'multi:id' and 'multi:component'. No other attributes from the Multi "
+    "A SpeciesFeature object must have the required attributes, 'multi:speciesFeatureType' and 'mulit:occur', "
+    "and may have the optional attribute, 'multi:id' and 'multi:component'. No other attributes from the Multi "
     "namespace are permitted on a SpeciesFeature object.",
-    { "L3V1 Multi V1.0.4 Section 3.18"
+    { "L3V1 Multi V1.0.6 Section 3.18"
     }
   },
 
@@ -1533,7 +1566,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'multi:speciesFeatureType' attribute on a given SpeciesFeature object must be the identifier "
     "of a SpeciesFeatureType object which is in the SpeciesType object referenced by the Species object containing "
     "this SpeciesFeature object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.2"
+    { "L3V1 Multi V1.0.6 Section 3.18.2"
     }
   },
 
@@ -1545,7 +1578,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'mulit:occur' attribute on a given SpeciesFeature object must conform to the syntax of the SBML "
     "data type 'positiveInteger'. The value of the 'multi:occur' attribute must not be larger than that of the 'multi:occur' "
     "attribute of the SpeciesFeatureType object referenced by this SpeciesFeature object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.3"
+    { "L3V1 Multi V1.0.6 Section 3.18.3"
     }
   },
 
@@ -1556,7 +1589,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:component' attribute on a given SpeciesFeature object must be the identifier of an object of "
     "SpeciesTypeInstance, SpeciesTypeComponentIndex or SpeciesType which contains this SpeciesFeature object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.4"
+    { "L3V1 Multi V1.0.6 Section 3.18.4"
     }
   },
 
@@ -1566,7 +1599,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "One ListOfSpeciesFeatureValues subobject within a SpeciesFeature object is required.",
-    { "L3V1 Multi V1.0.4 Section 3.18.5"
+    { "L3V1 Multi V1.0.6 Section 3.18.5"
     }
   },
 
@@ -1576,7 +1609,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
     "A ListOfSpeciesFeatureValues object must not be empty.",
-    { "L3V1 Multi V1.0.4 Section 3.18.5"
+    { "L3V1 Multi V1.0.6 Section 3.18.5"
     }
   },
 
@@ -1588,7 +1621,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfSpeciesFeatureValues object may have the optional SBML core attributes 'metaid' and 'sboTerm'.  "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfSpeciesFeatureValues object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.5"
+    { "L3V1 Multi V1.0.6 Section 3.18.5"
     }
   },
 
@@ -1599,7 +1632,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfSpeciesFeatureValues container object may only contain SpeciesFeatureValue objects.",
-    { "L3V1 Multi V1.0.4 Section 3.18.5"
+    { "L3V1 Multi V1.0.6 Section 3.18.5"
     }
   },
 
@@ -1610,7 +1643,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureValue object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace are permitted on a SpeciesFeatureValue object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.6"
+    { "L3V1 Multi V1.0.6 Section 3.18.6"
     }
   },
 
@@ -1621,7 +1654,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureValue object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a SpeciesFeatureValue object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.6"
+    { "L3V1 Multi V1.0.6 Section 3.18.6"
     }
   },
 
@@ -1632,7 +1665,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureValue object must have the required attribute 'multi:value'. No other attributes from the "
     "Multi namespace are permitted on a SpeciesFeatureValue object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.6"
+    { "L3V1 Multi V1.0.6 Section 3.18.6"
     }
   },
 
@@ -1644,7 +1677,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "The value of the 'multi:value' attribute on a given SpeciesFeatureValue object must be the identifier of a "
     "PossibleSpeciesFeatureValue object defined in the SpeciesFeatureType object referenced by the SpeciesFeature "
     "object containing this SpeciesFeatureValue object.",
-    { "L3V1 Multi V1.0.4 Section 3.18.6"
+    { "L3V1 Multi V1.0.6 Section 3.18.6"
     }
   },
 
@@ -1656,7 +1689,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "An IntraSpeciesReaction object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace and the Multi namespace are permitted on an "
     "IntraSpeciesReaction object.",
-    { "L3V1 Multi V1.0.4 Section 3.21"
+    { "L3V1 Multi V1.0.6 Section 3.21"
     }
   },
 
@@ -1667,7 +1700,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An IntraSpeciesReaction object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on an IntraSpeciesReaction object.",
-    { "L3V1 Multi V1.0.4 Section 3.21"
+    { "L3V1 Multi V1.0.6 Section 3.21"
     }
   },
 
@@ -1678,7 +1711,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An extended SimpleSpeciesReference object may have the optional attribute, 'multi:compartmentReference'. "
     "No other attributes from the Multi namespace are permitted on a SimpleSpeciesReference object.",
-    { "L3V1 Multi V1.0.4 Section 3.22"
+    { "L3V1 Multi V1.0.6 Section 3.22"
     }
   },
 
@@ -1689,7 +1722,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "An extended SimpleSpeciesReference object may have the optional attribute, 'multi:compartmentReference'. "
     "No other attributes from the Multi namespace are permitted on a SimpleSpeciesReference object.",
-    { "L3V1 Multi V1.0.4 Section 3.22"
+    { "L3V1 Multi V1.0.6 Section 3.22"
     }
   },
 
@@ -1700,7 +1733,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A ListOfSpeciesTypeComponentMapsInProduct object within an extended SpeciesReference object is optional, "
     "but if present, must not be empty.",
-    { "L3V1 Multi V1.0.4 Section 3.23.1"
+    { "L3V1 Multi V1.0.6 Section 3.23.1"
     }
   },
 
@@ -1712,7 +1745,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A ListOfSpeciesTypeComponentMapsInProduct object may have the optional SBML core attributes 'metaid' and 'sboTerm'. "
     "No other attributes from the SBML Level~3 Core namespace or the Multi namespace are permitted on a "
     "ListOfSpeciesTypeComponentMapsInProduct object.",
-    { "L3V1 Multi V1.0.4 Section 3.23.1"
+    { "L3V1 Multi V1.0.6 Section 3.23.1"
     }
   },
 
@@ -1723,7 +1756,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a "
     "ListOfSpeciesTypeComponentMapsInProduct container object may only contain SpeciesTypeComponentMapInProduct objects.",
-    { "L3V1 Multi V1.0.4 Section 3.23.1"
+    { "L3V1 Multi V1.0.6 Section 3.23.1"
     }
   },
 
@@ -1734,7 +1767,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesTypeComponentMapInProduct object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'.  "
     "No other attributes from the SBML Level~3 Core namespace are permitted on a SpeciesTypeComponentMapInProduct object.",
-    { "L3V1 Multi V1.0.4 Section 3.24"
+    { "L3V1 Multi V1.0.6 Section 3.24"
     }
   },
 
@@ -1745,7 +1778,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesTypeComponentMapInProduct object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'. "
     "No other elements from the SBML Level~3 Core namespace are permitted on a SpeciesTypeComponentMapInProduct object.",
-    { "L3V1 Multi V1.0.4 Section 3.24"
+    { "L3V1 Multi V1.0.6 Section 3.24"
     }
   },
 
@@ -1757,7 +1790,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     "A SpeciesTypeComponentMapInProduct object must have the required attributes 'multi:reactant', 'multi:reactantComponent', "
     "and 'multi:productComponent'. No other attributes from the Multi namespace are permitted on a "
     "SpeciesTypeComponentMapInProduct object.",
-    { "L3V1 Multi V1.0.4 Section 3.24"
+    { "L3V1 Multi V1.0.6 Section 3.24"
     }
   },
 
@@ -1768,7 +1801,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:reactant' attribute on a given SpeciesTypeComponentMapInProduct object must be the identifier "
     "of a reactant SpeciesReference object within a reaction.",
-    { "L3V1 Multi V1.0.4 Section 3.24.1"
+    { "L3V1 Multi V1.0.6 Section 3.24.1"
     }
   },
 
@@ -1779,7 +1812,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:reactantComponent' attribute on a given SpeciesTypeComponentMapInProduct object must be the identifier "
     "of an object of SpeciesTypeInstance, SpeciesTypeComponentIndex or SpeciesType.",
-    { "L3V1 Multi V1.0.4 Section 3.24.2"
+    { "L3V1 Multi V1.0.6 Section 3.24.2"
     }
   },
 
@@ -1790,7 +1823,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:productComponent' attribute on a given SpeciesTypeComponentMapInProduct object must be the identifier "
     "of an object of SpeciesTypeInstance, SpeciesTypeComponentIndex or SpeciesType.",
-    { "L3V1 Multi V1.0.4 Section 3.24.3"
+    { "L3V1 Multi V1.0.6 Section 3.24.3"
     }
   },
 
@@ -1801,7 +1834,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A ListOfSpeciesFeatureChanges object within a SpeciesTypeComponentMapInProduct object is optional, but if present, must not be "
     "empty. ",
-    { "L3V1 Multi V1.0.4 Section 3.24.4"
+    { "L3V1 Multi V1.0.6 Section 3.24.4"
     }
   },
 
@@ -1812,7 +1845,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A ListOfSpeciesFeatureChanges object may have the optional SBML core attributes 'metaid' and 'sboTerm'.  No other attributes "
     "from the SBML Level~3 Core namespace or the Multi namespace are permitted on a ListOfSpeciesFeatureChanges object. ",
-    { "L3V1 Multi V1.0.4 Section 3.24.4"
+    { "L3V1 Multi V1.0.6 Section 3.24.4"
     }
   },
 
@@ -1823,7 +1856,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "Apart from the general 'notes' and 'annotation' subobjects permitted on all SBML objects, a ListOfSpeciesFeatureChanges container "
     "object may only contain SpeciesFeatureChange objects. ",
-    { "L3V1 Multi V1.0.4 Section 3.24.4"
+    { "L3V1 Multi V1.0.6 Section 3.24.4"
     }
   },
 
@@ -1834,7 +1867,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureChange object may have the optional SBML Level~3 Core attributes 'metaid' and 'sboTerm'.  No other attributes "
     "from the SBML Level~3 Core namespace are permitted on a SpeciesFeatureChange object. ",
-    { "L3V1 Multi V1.0.4 Section 3.25"
+    { "L3V1 Multi V1.0.6 Section 3.25"
     }
   },
 
@@ -1845,7 +1878,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureChange object may have the optional SBML Level~3 Core subobjects for 'notes' and 'annotation'.  No other "
     "elements from the SBML Level~3 Core namespace are permitted on a SpeciesFeatureChange object. ",
-    { "L3V1 Multi V1.0.4 Section 3.25"
+    { "L3V1 Multi V1.0.6 Section 3.25"
     }
   },
 
@@ -1856,7 +1889,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A SpeciesFeatureChange object must have the required attributes 'multi:reactantSpeciesFeature' and 'multi:productSpeciesFeature'. "
     "No other attributes from the Multi namespace are permitted on a SpeciesFeatureChange object. ",
-    { "L3V1 Multi V1.0.4 Section 3.25"
+    { "L3V1 Multi V1.0.6 Section 3.25"
     }
   },
 
@@ -1867,7 +1900,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:reactantSpeciesFeature' attribute on a given SpeciesFeatureChange object must be the identifier of a "
     "SpeciesFeature object. ",
-    { "L3V1 Multi V1.0.4 Section 3.25.2"
+    { "L3V1 Multi V1.0.6 Section 3.25.2"
     }
   },
 
@@ -1878,7 +1911,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:productSpeciesFeature' attribute on a given SpeciesFeatureChange object must be the identifier of a "
     "SpeciesFeature object. ",
-    { "L3V1 Multi V1.0.4 Section 3.25.3"
+    { "L3V1 Multi V1.0.6 Section 3.25.3"
     }
   },
 
@@ -1889,7 +1922,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "A 'ci' element in a Math object may have the optional attributes 'multi:speciesReference' and 'multi:representationType'. "
     "No other attributes from the Multi namespace are permitted on a 'ci' element. ",
-    { "L3V1 Multi V1.0.4 Section 3.27"
+    { "L3V1 Multi V1.0.6 Section 3.27"
     }
   },
 
@@ -1898,8 +1931,9 @@ static const packageErrorTableEntry multiErrorTable[] =
     "Math ci element: 'speciesReference' must be the 'id' of a speciesReference ",
     LIBSBML_CAT_GENERAL_CONSISTENCY,
     LIBSBML_SEV_ERROR,
-    "The value of the 'multi:speciesReference' attribute on a given 'ci' element must be the identifier of a SpeciesReference object. ",
-    { "L3V1 Multi V1.0.4 Section 3.27.1"
+    "The value of the 'multi:speciesReference' attribute on a given 'ci' element must be the identifier of a SpeciesReference "
+    "object within the same reaction. ",
+    { "L3V1 Multi V1.0.6 Section 3.27.1"
     }
   },
 
@@ -1910,7 +1944,7 @@ static const packageErrorTableEntry multiErrorTable[] =
     LIBSBML_SEV_ERROR,
     "The value of the 'multi:representationType' attribute on a given 'ci' element must conform to the syntax of the Multi data "
     "type 'RepresentationType'. ",
-    { "L3V1 Multi V1.0.4 Section 3.27.2"
+    { "L3V1 Multi V1.0.6 Section 3.27.2"
     }
   },
 
diff --git a/src/sbml/packages/multi/validator/MultiValidator.cpp b/src/sbml/packages/multi/validator/MultiValidator.cpp
index 6d9251c..962e4a2 100644
--- a/src/sbml/packages/multi/validator/MultiValidator.cpp
+++ b/src/sbml/packages/multi/validator/MultiValidator.cpp
@@ -13,7 +13,7 @@
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *
  * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
+ *     Pasadena, CA, USA
  *
  * Copyright (C) 2002-2005 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
@@ -35,11 +35,11 @@
 #include <sbml/ModifierSpeciesReference.h>
 
 
-  /** @cond doxygenLibsbmlInternal */
+/** @cond doxygenLibsbmlInternal */
 
 using namespace std;
 
-  /** @endcond doxygenLibsbmlInternal */
+/** @endcond doxygenLibsbmlInternal */
 
 
 LIBSBML_CPP_NAMESPACE_BEGIN
@@ -61,10 +61,10 @@ LIBSBML_CPP_NAMESPACE_BEGIN
 /*
  * Applies a Constraint<T> to an SBML object of type T.
  */
-template <typename T>
+ template <typename T>
 struct Apply : public unary_function<TConstraint<T>*, void>
 {
-  Apply (const Model& m, const T& o) : model(m), object(o) { }
+  Apply(const Model& m, const T& o) : model(m), object(o) { }
 
 
   void operator() (TConstraint<T>* constraint)
@@ -83,14 +83,14 @@ class ConstraintSet
 {
 public:
 
-   ConstraintSet () { }
-  ~ConstraintSet () { }
+  ConstraintSet() { }
+  ~ConstraintSet() { }
 
 
   /*
    * Adds a Constraint to this ConstraintSet.
    */
-  void add (TConstraint<T>* c)
+  void add(TConstraint<T>* c)
   {
     constraints.push_back(c);
   }
@@ -99,7 +99,7 @@ public:
    * Applies all Constraints in this ConstraintSet to the given SBML object
    * of type T.  Constraint violations are logged to Validator.
    */
-  void applyTo (const Model& model, const T& object)
+  void applyTo(const Model& model, const T& object)
   {
     for_each(constraints.begin(), constraints.end(), Apply<T>(model, object));
   }
@@ -107,7 +107,7 @@ public:
   /*
    * @return true if this ConstraintSet is empty, false otherwise.
    */
-  bool empty () const
+  bool empty() const
   {
     return constraints.empty();
   }
@@ -143,7 +143,6 @@ struct MultiValidatorConstraints
   ConstraintSet<CompartmentReference>  mCompartmentReference;
   ConstraintSet<SpeciesTypeInstance>   mSpeciesTypeInstance;
   ConstraintSet<InSpeciesTypeBond>     mInSpeciesTypeBond;
-  ConstraintSet<DenotedSpeciesTypeComponentIndex>      mDenotedSpeciesTypeComponentIndex;
   ConstraintSet<OutwardBindingSite>    mOutwardBindingSite;
   ConstraintSet<SpeciesFeatureChange>  mSpeciesFeatureChange;
   ConstraintSet<SpeciesFeatureType>    mSpeciesFeatureType;
@@ -153,10 +152,10 @@ struct MultiValidatorConstraints
   ConstraintSet<MultiSpeciesType>      mMultiSpeciesType;
   ConstraintSet<Compartment>           mCompartment;
   ConstraintSet<Species>           	   mSpecies;
-  map<VConstraint*,bool> ptrMap;
+  map<VConstraint*, bool> ptrMap;
 
-  ~MultiValidatorConstraints ();
-  void add (VConstraint* c);
+  ~MultiValidatorConstraints();
+  void add(VConstraint* c);
 };
 
 
@@ -169,14 +168,14 @@ struct MultiValidatorConstraints
  * ConstraintSet<ModifierSimpleSpeciesReference>), a pointer map is used for
  * avoiding segmentation fault caused by deleting the same pointer twice.
  */
-MultiValidatorConstraints::~MultiValidatorConstraints ()
+MultiValidatorConstraints::~MultiValidatorConstraints()
 {
-  map<VConstraint*,bool>::iterator it = ptrMap.begin();
+  map<VConstraint*, bool>::iterator it = ptrMap.begin();
 
-  while(it != ptrMap.end())
+  while (it != ptrMap.end())
   {
-     if(it->second) delete it->first;
-     ++it;
+    if (it->second) delete it->first;
+    ++it;
   }
 }
 
@@ -185,115 +184,104 @@ MultiValidatorConstraints::~MultiValidatorConstraints ()
  * Adds the given Contraint to the appropriate ConstraintSet.
  */
 void
-MultiValidatorConstraints::add (VConstraint* c)
+MultiValidatorConstraints::add(VConstraint* c)
 {
   if (c == NULL) return;
 
-  ptrMap.insert(pair<VConstraint*,bool>(c,true));
+  ptrMap.insert(pair<VConstraint*, bool>(c, true));
 
-  if (dynamic_cast< TConstraint<SBMLDocument>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SBMLDocument>*>(c) != NULL)
   {
-    mSBMLDocument.add( static_cast< TConstraint<SBMLDocument>* >(c) );
+    mSBMLDocument.add(static_cast<TConstraint<SBMLDocument>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<Model>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<Model>*>(c) != NULL)
   {
-    mModel.add( static_cast< TConstraint<Model>* >(c) );
+    mModel.add(static_cast<TConstraint<Model>*>(c));
     return;
   }
-  if (dynamic_cast< TConstraint<PossibleSpeciesFeatureValue>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<PossibleSpeciesFeatureValue>*>(c) != NULL)
   {
-    mPossibleSpeciesFeatureValue.add( static_cast< TConstraint<PossibleSpeciesFeatureValue>* >(c) );
+    mPossibleSpeciesFeatureValue.add(static_cast<TConstraint<PossibleSpeciesFeatureValue>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<SpeciesFeatureValue>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SpeciesFeatureValue>*>(c) != NULL)
   {
-    mSpeciesFeatureValue.add( static_cast< TConstraint<SpeciesFeatureValue>* >(c) );
+    mSpeciesFeatureValue.add(static_cast<TConstraint<SpeciesFeatureValue>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<CompartmentReference>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<CompartmentReference>*>(c) != NULL)
   {
-    mCompartmentReference.add( static_cast< TConstraint<CompartmentReference>* >(c) );
+    mCompartmentReference.add(static_cast<TConstraint<CompartmentReference>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<SpeciesTypeInstance>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SpeciesTypeInstance>*>(c) != NULL)
   {
-    mSpeciesTypeInstance.add( static_cast< TConstraint<SpeciesTypeInstance>* >(c) );
+    mSpeciesTypeInstance.add(static_cast<TConstraint<SpeciesTypeInstance>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<InSpeciesTypeBond>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<InSpeciesTypeBond>*>(c) != NULL)
   {
-    mInSpeciesTypeBond.add( static_cast< TConstraint<InSpeciesTypeBond>* >(c) );
+    mInSpeciesTypeBond.add(static_cast<TConstraint<InSpeciesTypeBond>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<DenotedSpeciesTypeComponentIndex>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<OutwardBindingSite>*>(c) != NULL)
   {
-    mDenotedSpeciesTypeComponentIndex.add( static_cast< TConstraint<DenotedSpeciesTypeComponentIndex>* >(c) );
+    mOutwardBindingSite.add(static_cast<TConstraint<OutwardBindingSite>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<OutwardBindingSite>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SpeciesFeatureChange>*>(c) != NULL)
   {
-    mOutwardBindingSite.add( static_cast< TConstraint<OutwardBindingSite>* >(c) );
+    mSpeciesFeatureChange.add(static_cast<TConstraint<SpeciesFeatureChange>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<SpeciesFeatureChange>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SpeciesFeatureType>*>(c) != NULL)
   {
-    mSpeciesFeatureChange.add( static_cast< TConstraint<SpeciesFeatureChange>* >(c) );
+    mSpeciesFeatureType.add(static_cast<TConstraint<SpeciesFeatureType>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<SpeciesFeatureType>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SpeciesTypeComponentIndex>*>(c) != NULL)
   {
-    mSpeciesFeatureType.add( static_cast< TConstraint<SpeciesFeatureType>* >(c) );
+    mSpeciesTypeComponentIndex.add(static_cast<TConstraint<SpeciesTypeComponentIndex>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<SpeciesTypeComponentIndex>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SpeciesFeature>*>(c) != NULL)
   {
-    mSpeciesTypeComponentIndex.add( static_cast< TConstraint<SpeciesTypeComponentIndex>* >(c) );
+    mSpeciesFeature.add(static_cast<TConstraint<SpeciesFeature>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<SpeciesFeature>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<SpeciesTypeComponentMapInProduct>*>(c) != NULL)
   {
-    mSpeciesFeature.add( static_cast< TConstraint<SpeciesFeature>* >(c) );
+    mSpeciesTypeComponentMapInProduct.add(static_cast<TConstraint<SpeciesTypeComponentMapInProduct>*>(c));
     return;
   }
 
-  if (dynamic_cast< TConstraint<SpeciesTypeComponentMapInProduct>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<MultiSpeciesType>*>(c) != NULL)
   {
-    mSpeciesTypeComponentMapInProduct.add( static_cast< TConstraint<SpeciesTypeComponentMapInProduct>* >(c) );
+    mMultiSpeciesType.add(static_cast<TConstraint<MultiSpeciesType>*>(c));
     return;
   }
-
-  if (dynamic_cast< TConstraint<MultiSpeciesType>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<Compartment>*>(c) != NULL)
   {
-    mMultiSpeciesType.add( static_cast< TConstraint<MultiSpeciesType>* >(c) );
+    mCompartment.add(static_cast<TConstraint<Compartment>*>(c));
     return;
   }
-  if (dynamic_cast< TConstraint<Compartment>* >(c) != NULL)
+  if (dynamic_cast<TConstraint<Species>*>(c) != NULL)
   {
-    mCompartment.add( static_cast< TConstraint<Compartment>* >(c) );
+    mSpecies.add(static_cast<TConstraint<Species>*>(c));
     return;
   }
-  if (dynamic_cast< TConstraint<Species>* >(c) != NULL)
-  {
-    mSpecies.add( static_cast< TConstraint<Species>* >(c) );
-    return;
-  }
-//  if (dynamic_cast< TConstraint<ASTNode>* >(c) != NULL)
-//  {
-//    mASTNodes.add( static_cast< TConstraint<ASTNode>* >(c) );
-//    return;
-//  }
 
 }
 
@@ -314,120 +302,114 @@ MultiValidatorConstraints::add (VConstraint* c)
  * A ValidatingVisitor overrides each visit method to validate the given
  * SBML object.
  */
-class MultiValidatingVisitor: public SBMLVisitor
+class MultiValidatingVisitor : public SBMLVisitor
 {
 public:
 
-  MultiValidatingVisitor (MultiValidator& v, const Model& m) : v(v), m(m) { }
+  MultiValidatingVisitor(MultiValidator& v, const Model& m) : v(v), m(m) { }
 
 
   using SBMLVisitor::visit;
 
   // model
-  virtual void visit (const Model &x)
+  virtual void visit(const Model &x)
   {
     v.mMultiConstraints->mModel.applyTo(m, x);
     v.mMultiConstraints->mModel.empty();
   }
 
-  bool visit (const PossibleSpeciesFeatureValue &x)
+  bool visit(const PossibleSpeciesFeatureValue &x)
   {
     v.mMultiConstraints->mPossibleSpeciesFeatureValue.applyTo(m, x);
     return !v.mMultiConstraints->mPossibleSpeciesFeatureValue.empty();
   }
 
-  bool visit (const SpeciesFeatureValue &x)
+  bool visit(const SpeciesFeatureValue &x)
   {
     v.mMultiConstraints->mSpeciesFeatureValue.applyTo(m, x);
     return !v.mMultiConstraints->mSpeciesFeatureValue.empty();
   }
 
-  bool visit (const CompartmentReference &x)
+  bool visit(const CompartmentReference &x)
   {
     v.mMultiConstraints->mCompartmentReference.applyTo(m, x);
     return !v.mMultiConstraints->mCompartmentReference.empty();
   }
 
-  bool visit (const SpeciesTypeInstance &x)
+  bool visit(const SpeciesTypeInstance &x)
   {
     v.mMultiConstraints->mSpeciesTypeInstance.applyTo(m, x);
     return !v.mMultiConstraints->mSpeciesTypeInstance.empty();
   }
 
-  bool visit (const InSpeciesTypeBond &x)
+  bool visit(const InSpeciesTypeBond &x)
   {
     v.mMultiConstraints->mInSpeciesTypeBond.applyTo(m, x);
     return !v.mMultiConstraints->mInSpeciesTypeBond.empty();
   }
 
-  bool visit (const DenotedSpeciesTypeComponentIndex &x)
-  {
-    v.mMultiConstraints->mDenotedSpeciesTypeComponentIndex.applyTo(m, x);
-    return !v.mMultiConstraints->mDenotedSpeciesTypeComponentIndex.empty();
-  }
-
-  bool visit (const OutwardBindingSite &x)
+  bool visit(const OutwardBindingSite &x)
   {
     v.mMultiConstraints->mOutwardBindingSite.applyTo(m, x);
     return !v.mMultiConstraints->mOutwardBindingSite.empty();
   }
 
-  bool visit (const SpeciesFeatureChange &x)
+  bool visit(const SpeciesFeatureChange &x)
   {
     v.mMultiConstraints->mSpeciesFeatureChange.applyTo(m, x);
     return !v.mMultiConstraints->mSpeciesFeatureChange.empty();
   }
 
-  bool visit (const SpeciesFeatureType &x)
+  bool visit(const SpeciesFeatureType &x)
   {
     v.mMultiConstraints->mSpeciesFeatureType.applyTo(m, x);
     return !v.mMultiConstraints->mSpeciesFeatureType.empty();
   }
 
-  bool visit (const SpeciesTypeComponentIndex &x)
+  bool visit(const SpeciesTypeComponentIndex &x)
   {
     v.mMultiConstraints->mSpeciesTypeComponentIndex.applyTo(m, x);
     return !v.mMultiConstraints->mSpeciesTypeComponentIndex.empty();
   }
 
-  bool visit (const SpeciesFeature &x)
+  bool visit(const SpeciesFeature &x)
   {
     v.mMultiConstraints->mSpeciesFeature.applyTo(m, x);
     return !v.mMultiConstraints->mSpeciesFeature.empty();
   }
 
-  bool visit (const SpeciesTypeComponentMapInProduct &x)
+  bool visit(const SpeciesTypeComponentMapInProduct &x)
   {
     v.mMultiConstraints->mSpeciesTypeComponentMapInProduct.applyTo(m, x);
     return !v.mMultiConstraints->mSpeciesTypeComponentMapInProduct.empty();
   }
 
-  bool visit (const MultiSpeciesType &x)
+  bool visit(const MultiSpeciesType &x)
   {
     v.mMultiConstraints->mMultiSpeciesType.applyTo(m, x);
     return !v.mMultiConstraints->mMultiSpeciesType.empty();
   }
 
-  bool visit (const Compartment &x)
+  bool visit(const Compartment &x)
   {
     v.mMultiConstraints->mCompartment.applyTo(m, x);
     return !v.mMultiConstraints->mCompartment.empty();
   }
-  bool visit (const Species &x)
+  bool visit(const Species &x)
   {
     v.mMultiConstraints->mSpecies.applyTo(m, x);
     return !v.mMultiConstraints->mSpecies.empty();
   }
-//  bool visit (const Reaction &x)
-//  {
-//    v.mMultiConstraints->mReactions.applyTo(m, x);
-//    return !v.mMultiConstraints->mReactions.empty();
-//  }
-//  bool visit (const ASTNode &x)
-//  {
-//    v.mMultiConstraints->mASTNodes.applyTo(m, x);
-//    return !v.mMultiConstraints->mASTNodes.empty();
-//  }
+  //  bool visit (const Reaction &x)
+  //  {
+  //    v.mMultiConstraints->mReactions.applyTo(m, x);
+  //    return !v.mMultiConstraints->mReactions.empty();
+  //  }
+  //  bool visit (const ASTNode &x)
+  //  {
+  //    v.mMultiConstraints->mASTNodes.applyTo(m, x);
+  //    return !v.mMultiConstraints->mASTNodes.empty();
+  //  }
   virtual bool visit(const SBase &x)
   {
     if (x.getPackageName() != "multi")
@@ -465,10 +447,6 @@ public:
       {
         return visit((const InSpeciesTypeBond&)x);
       }
-      else if (code == SBML_MULTI_DENOTED_SPECIES_TYPE_COMPONENT_INDEX)
-      {
-        return visit((const DenotedSpeciesTypeComponentIndex&)x);
-      }
       else if (code == SBML_MULTI_OUTWARD_BINDING_SITE)
       {
         return visit((const OutwardBindingSite&)x);
@@ -497,10 +475,10 @@ public:
       {
         return visit((const MultiSpeciesType&)x);
       }
-      else 
+      else
       {
         return SBMLVisitor::visit(x);
-      } 
+      }
     }
   }
 
@@ -521,14 +499,14 @@ protected:
 // ----------------------------------------------------------------------
 
 
-MultiValidator::MultiValidator (const SBMLErrorCategory_t category):
-  Validator(category)
+MultiValidator::MultiValidator(const SBMLErrorCategory_t category) :
+Validator(category)
 {
   mMultiConstraints = new MultiValidatorConstraints();
 }
 
 
-MultiValidator::~MultiValidator ()
+MultiValidator::~MultiValidator()
 {
   delete mMultiConstraints;
 }
@@ -538,7 +516,7 @@ MultiValidator::~MultiValidator ()
  * Adds the given Contraint to this validator.
  */
 void
-MultiValidator::addConstraint (VConstraint* c)
+MultiValidator::addConstraint(VConstraint* c)
 {
   mMultiConstraints->add(c);
 }
@@ -558,7 +536,7 @@ MultiValidator::addConstraint (VConstraint* c)
  * @return the number of validation errors that occurred.
  */
 unsigned int
-MultiValidator::validate (const SBMLDocument& d)
+MultiValidator::validate(const SBMLDocument& d)
 {
 
   const Model* m = d.getModel();
@@ -574,13 +552,13 @@ MultiValidator::validate (const SBMLDocument& d)
     // Compartment
     for (unsigned int i = 0; i < m->getNumCompartments(); i++)
     {
-      ACCEPT_MULTI(m->getCompartment(i),vv);
+      ACCEPT_MULTI(m->getCompartment(i), vv);
     }
 
     //  Species
     for (unsigned int i = 0; i < m->getNumSpecies(); i++)
     {
-      ACCEPT_MULTI(m->getSpecies(i),vv);
+      ACCEPT_MULTI(m->getSpecies(i), vv);
     }
 
     // ListOfReactions
@@ -593,33 +571,35 @@ MultiValidator::validate (const SBMLDocument& d)
 
       for (unsigned int j = 0; j < r->getNumReactants(); j++)
       {
-        ACCEPT_MULTI(r->getReactant(j),vv);
+        ACCEPT_MULTI(r->getReactant(j), vv);
       }
       for (unsigned int j = 0; j < r->getNumProducts(); j++)
       {
-        ACCEPT_MULTI(r->getProduct(j),vv);
+        ACCEPT_MULTI(r->getProduct(j), vv);
       }
       for (unsigned int j = 0; j < r->getNumModifiers(); j++)
       {
-        ACCEPT_MULTI(r->getModifier(j),vv);
+        ACCEPT_MULTI(r->getModifier(j), vv);
       }
 
       const KineticLaw * kineticLaw = r->getKineticLaw();
       if (kineticLaw) {
-          const ASTNode * math = kineticLaw->getMath();
-          // TODO for validation of ci elements
-			const List * listNumberNodes = math->getListOfNodes((ASTNodePredicate)ASTNode_isNumber);
-
-			for (unsigned int i = 0; i < listNumberNodes->getSize(); i++)
-			{
-				const ASTNode * node = static_cast<const ASTNode *> (listNumberNodes->get(i));
-				if (node != NULL) {
-					const MultiASTPlugin * astPlugin = static_cast<const MultiASTPlugin*>(node->getPlugin("multi"));
-					if (astPlugin != NULL) {
-//						astPlugin-
-					}
-				}
-			}
+        const ASTNode * math = kineticLaw->getMath();
+        // TODO for validation of ci elements
+        List * listNumberNodes = math->getListOfNodes((ASTNodePredicate)ASTNode_isNumber);
+
+        for (unsigned int i = 0; i < listNumberNodes->getSize(); i++)
+        {
+          const ASTNode * node = static_cast<const ASTNode *> (listNumberNodes->get(i));
+          if (node != NULL) {
+            const MultiASTPlugin * astPlugin = static_cast<const MultiASTPlugin*>(node->getPlugin("multi"));
+            if (astPlugin != NULL) {
+              //						astPlugin-
+            }
+          }
+        }
+
+        delete listNumberNodes;
 
       }
     }
@@ -627,7 +607,7 @@ MultiValidator::validate (const SBMLDocument& d)
   }
 
   /* ADD ANY OTHER OBJECTS THAT HAVE PLUGINS */
-  
+
   return (unsigned int)mFailures.size();
 }
 
@@ -639,19 +619,23 @@ MultiValidator::validate (const SBMLDocument& d)
  * @return the number of validation errors that occurred.
  */
 unsigned int
-MultiValidator::validate (const std::string& filename)
+MultiValidator::validate(const std::string& filename)
 {
 
   SBMLReader    reader;
-  SBMLDocument& d = *reader.readSBML(filename);
+  SBMLDocument *d = reader.readSBML(filename);
 
 
-  for (unsigned int n = 0; n < d.getNumErrors(); ++n)
+  for (unsigned int n = 0; n < d->getNumErrors(); ++n)
   {
-    logFailure( *d.getError(n) );
+    logFailure(*d->getError(n));
   }
 
-  return validate(d);
+  int result = validate(*d);
+
+  delete d;
+
+  return result;
 }
 
 
diff --git a/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraints.cpp b/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraints.cpp
index 2d77fc7..8c9b529 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraints.cpp
+++ b/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraints.cpp
@@ -51,7 +51,7 @@ static const SpeciesTypeComponentIndex * __getSpeciesTypeComponentIndexFromCompo
 {
 	const SpeciesTypeComponentIndex * stci = NULL;
 	const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
 	if (mPlugin != 0) {
 		for (unsigned int i = 0; stci == NULL && i < mPlugin->getNumMultiSpeciesTypes(); i++) {
           const MultiSpeciesType * speciesType = mPlugin->getMultiSpeciesType(i);
@@ -67,7 +67,7 @@ static const SpeciesTypeInstance * __getSpeciesTypeInstanceFromComponentId(const
 {
 	const SpeciesTypeInstance * sti = NULL;
 	const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
 	if (mPlugin != 0) {
 		const SpeciesTypeComponentIndex * stci = __getSpeciesTypeComponentIndexFromComponentId(model, componentId);
 		if (stci) {
@@ -92,7 +92,7 @@ static const MultiSpeciesType* __getSpeciesTypeFromComponentId(const Model & mod
 {
 	const MultiSpeciesType * st = NULL;
 	const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
 
 	if (mPlugin != 0) {
 
@@ -126,7 +126,7 @@ static const SpeciesFeatureType* __getSpeciesTypeFromComponent(const Model & mod
 	bool good = true;
 
 	const MultiModelPlugin * modelPlugin =
-			static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+			dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
 
 	if (modelPlugin == 0)
 	{
@@ -171,7 +171,7 @@ static bool __isSpeciesTypeComponent(const Model & model, const std::string & co
 {
   bool found = false;
   const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
   if (mPlugin != 0) {
 	  const MultiSpeciesType * st = mPlugin->getMultiSpeciesType(componentId);
 	  found = (st != NULL);
@@ -190,46 +190,11 @@ static bool __isSpeciesTypeComponent(const Model & model, const std::string & co
   return found;
 }
 
-static bool __isSpeciesTypeIndexComponent(const Model & model, const std::string & componentId)
-{
-  bool found = false;
-  const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
-  if (mPlugin != 0) {
-      for (unsigned int i = 0; !found && i < mPlugin->getNumMultiSpeciesTypes(); i++) {
-          const MultiSpeciesType * speciesType = mPlugin->getMultiSpeciesType(i);
-          if (speciesType) {
-
-        	  const SpeciesTypeComponentIndex * speciesTypeComponentIndex = speciesType->getSpeciesTypeComponentIndex(componentId);
-        	  found = (speciesTypeComponentIndex != NULL);
-          }
-      }
-  }
-  return found;
-}
-
-static bool __isSpeciesTypeInstanceComponent(const Model & model, const std::string & componentId)
-{
-  bool found = false;
-  const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
-  if (mPlugin != 0) {
-      for (unsigned int i = 0; !found && i < mPlugin->getNumMultiSpeciesTypes(); i++) {
-          const MultiSpeciesType * speciesType = mPlugin->getMultiSpeciesType(i);
-          if (speciesType) {
-        	  const SpeciesTypeInstance * speciesTypeInstance = speciesType->getSpeciesTypeInstance(componentId);
-        	  found = speciesTypeInstance != NULL;
-          }
-      }
-  }
-  return found;
-}
-
 static bool __isSpeciesTypeInstanceOrIndex(const Model & model, const std::string & componentId)
 {
   bool found = false;
   const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
   if (mPlugin != 0) {
       for (unsigned int i = 0; !found && i < mPlugin->getNumMultiSpeciesTypes(); i++) {
           const MultiSpeciesType * speciesType = mPlugin->getMultiSpeciesType(i);
@@ -250,7 +215,7 @@ static bool __isSpeciesTypeComponent(const Model & model, const std::string & sp
         if (speciesTypeId == componentId) return true;
 
         const MultiModelPlugin * modelPlugin =
-                        static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+                        dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
 
         if (modelPlugin == 0) {
                 good = false;
@@ -306,7 +271,7 @@ static bool __isSpeciesFeature(const Model & model, const std::string & speciesI
 
         if (good) {
             const MultiSpeciesPlugin * speciesPlugin =
-                static_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
+                dynamic_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
 
             if (speciesPlugin == 0) {
                     good = false;
@@ -318,31 +283,42 @@ static bool __isSpeciesFeature(const Model & model, const std::string & speciesI
                         isSpeciesFeature = true;
                 }
             }
+
+            for(unsigned int i = 0; good && !isSpeciesFeature && i < speciesPlugin->getNumSubListOfSpeciesFeatures(); i++) {
+                const SubListOfSpeciesFeatures * subListOfSpeciesFeatures = speciesPlugin->getSubListOfSpeciesFeatures(i);
+                for (unsigned int j = 0; good && !isSpeciesFeature && j < subListOfSpeciesFeatures->getNumSpeciesFeatures(); j++) {
+                    const SpeciesFeature * speciesFeature = subListOfSpeciesFeatures->get(j);
+                    if (speciesFeature->getId() == speciesFeatureId) {
+                         isSpeciesFeature = true;
+                    }
+                }
+            }
+
         }
 
         return isSpeciesFeature;
 }
 
-static bool __isBindingSiteSpeciesTypeComponent(const Model & model, const std::string & componentId)
-{
-  bool found = false;
-  const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
-  if (mPlugin != 0) {
-
-	  if (__isSpeciesTypeComponent(model, componentId)) {
-
-	  }
-	  else if (__isSpeciesTypeInstanceComponent(model, componentId)) {
-
-	  }
-	  else if (__isSpeciesTypeIndexComponent(model, componentId)) {
-
-	  }
-
-  }
-  return found;
-}
+//static bool __isBindingSiteSpeciesTypeComponent(const Model & model, const std::string & componentId)
+//{
+//  bool found = false;
+//  const MultiModelPlugin * mPlugin =
+//      dynamic_cast<const MultiModelPlugin*>(model.getPlugin("multi"));
+//  if (mPlugin != 0) {
+//
+//	  if (__isSpeciesTypeComponent(model, componentId)) {
+//
+//	  }
+//	  else if (__isSpeciesTypeInstanceComponent(model, componentId)) {
+//
+//	  }
+//	  else if (__isSpeciesTypeIndexComponent(model, componentId)) {
+//
+//	  }
+//
+//  }
+//  return found;
+//}
 
 
 
@@ -380,7 +356,7 @@ static bool __isBindingSiteSpeciesTypeComponent(const Model & model, const std::
 START_CONSTRAINT (MultiExCpa_IsTypeAtt_SameAsParent, Compartment, compartment)
 {
   const MultiCompartmentPlugin * compPlug =
-    static_cast<const MultiCompartmentPlugin*>(compartment.getPlugin("multi"));
+    dynamic_cast<const MultiCompartmentPlugin*>(compartment.getPlugin("multi"));
 
   pre (compPlug != 0);
 
@@ -394,7 +370,7 @@ START_CONSTRAINT (MultiExCpa_IsTypeAtt_SameAsParent, Compartment, compartment)
 
       if (referencedCompartment) {
 		  const MultiCompartmentPlugin * referencedCompPlug =
-			static_cast<const MultiCompartmentPlugin*>(referencedCompartment->getPlugin("multi"));
+			dynamic_cast<const MultiCompartmentPlugin*>(referencedCompartment->getPlugin("multi"));
 		  bool referencedCompartmentIsType = referencedCompPlug->isSetIsType() && referencedCompPlug->getIsType();
 
 		  inv(parentCompartmentIsType == referencedCompartmentIsType);
@@ -409,7 +385,7 @@ END_CONSTRAINT
 START_CONSTRAINT (MultiExCpa_CpaTypAtt_Restrict, Compartment, compartment)
 {
   const MultiCompartmentPlugin * compPlug =
-    static_cast<const MultiCompartmentPlugin*>(compartment.getPlugin("multi"));
+    dynamic_cast<const MultiCompartmentPlugin*>(compartment.getPlugin("multi"));
 
   pre (compPlug != 0);
 
@@ -448,7 +424,7 @@ END_CONSTRAINT
 START_CONSTRAINT (MultiCpaRef_IdRequiredOrOptional, Compartment, compartment)
 {
   const MultiCompartmentPlugin * compPlug =
-	    static_cast<const MultiCompartmentPlugin*>(compartment.getPlugin("multi"));
+	    dynamic_cast<const MultiCompartmentPlugin*>(compartment.getPlugin("multi"));
 
   pre (compPlug != 0);
 
@@ -573,7 +549,7 @@ START_CONSTRAINT (MultiSptIns_SptAtt_Ref, SpeciesTypeInstance, speciesTypeInstan
 {
   std::string speciesTypeId = speciesTypeInstance.getSpeciesType();
   const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
 
   pre (mPlugin != 0);
 
@@ -595,7 +571,7 @@ START_CONSTRAINT (MultiSptIns_CpaRefAtt_Ref, SpeciesTypeInstance, speciesTypeIns
       for (unsigned int i = 0; !found && i < m.getNumCompartments(); i++) {
 
         const MultiCompartmentPlugin * compartmentPlugin =
-            static_cast<const MultiCompartmentPlugin*>(m.getCompartment(i)->getPlugin("multi"));
+            dynamic_cast<const MultiCompartmentPlugin*>(m.getCompartment(i)->getPlugin("multi"));
 
         if (compartmentPlugin != 0) {
             if (compartmentPlugin->getCompartmentReference(compartmentReferenceId)) {
@@ -628,46 +604,6 @@ START_CONSTRAINT (MultiSptCpoInd_CpoAtt_Ref, SpeciesTypeComponentIndex, speciesT
 }
 END_CONSTRAINT
 
-// MultiSptCpoInd_RestrictElts           = 7020905
-/*!< SpeciesTypeComponentIndex: Can not have a listOfDenotedSpeciesTypeComponentIndexes if component references an index  */
-
-START_CONSTRAINT (MultiSptCpoInd_RestrictElts, SpeciesTypeComponentIndex, speciesTypeComponentIndex)
-{
-  const std::string componentId = speciesTypeComponentIndex.getComponent();
-  if( __isSpeciesTypeIndexComponent(m, componentId)) {
-      inv (speciesTypeComponentIndex.getNumDenotedSpeciesTypeComponentIndexes() == 0);
-  }
-}
-END_CONSTRAINT
-
-// MultiSptCpoInd_SameOccurAsRefIndex    = 7020906
-/*!< SpeciesTypeComponentIndex: 'occur' attribute must have the same value as that of the referenced index */
-
-START_CONSTRAINT (MultiSptCpoInd_SameOccurAsRefIndex, SpeciesTypeComponentIndex, speciesTypeComponentIndex)
-{
-  const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
-
-  pre (mPlugin != 0);
-
-  const std::string componentId = speciesTypeComponentIndex.getComponent();
-  unsigned int indexOccur = speciesTypeComponentIndex.getOccur();
-
-  bool found = false;
-  for (unsigned int i = 0; !found && i < mPlugin->getNumMultiSpeciesTypes(); i++) {
-      const MultiSpeciesType * multiSpeciesType = mPlugin->getMultiSpeciesType(i);
-
-      for (unsigned j = 0; !found && j < multiSpeciesType->getNumSpeciesTypeComponentIndexes(); j++) {
-          const SpeciesTypeComponentIndex * index = multiSpeciesType->getSpeciesTypeComponentIndex(j);
-          if (componentId == index->getId()) {
-              found = true;
-              inv (indexOccur == index->getOccur());
-          }
-      }
-  }
-}
-END_CONSTRAINT
-
 // MultiSptCpoInd_IdParAtt_Ref           = 7020907
 /*!< SpeciesTypeComponentIndex: 'identifyingParent' must be the 'id' of a component */
 
@@ -693,16 +629,6 @@ END_CONSTRAINT
 // MultiDenSptCpoInd_AllowedCoreElts     = 7021002 - caught at read at 'SBase::logUnknownElement()'
 // MultiDenSptCpoInd_AllowedMultiAtts    = 7021003 - caught at read at 'DenotedSpeciesTypeComponentIndex::readAttributes()'
 
-// MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref = 7021004
-/*!< DenotedSpeciesTypeComponentIndex: 'speciesTypeComponentIndex' must the 'id' of a speciesTypeComponentIndex */
-
-START_CONSTRAINT (MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref, DenotedSpeciesTypeComponentIndex, denotedSpeciesTypeComponentIndex)
-{
-  std::string speciesTypeComponentIndexId = denotedSpeciesTypeComponentIndex.getSpeciesTypeComponentIndex();
-  inv( __isSpeciesTypeIndexComponent(m, speciesTypeComponentIndexId) == true);
-}
-END_CONSTRAINT
-
 //************************************
 // Rules for InSpeciesTypeBond objects
 
@@ -752,7 +678,7 @@ END_CONSTRAINT
 START_CONSTRAINT (MultiExSpe_RestrictSpeciesTypeAtt, Species, species)
 {
   const MultiSpeciesPlugin * speciesPlugin =
-      static_cast<const MultiSpeciesPlugin*>(species.getPlugin("multi"));
+      dynamic_cast<const MultiSpeciesPlugin*>(species.getPlugin("multi"));
 
   pre (speciesPlugin != 0);
 
@@ -760,7 +686,7 @@ START_CONSTRAINT (MultiExSpe_RestrictSpeciesTypeAtt, Species, species)
       std::string speciesTypeId = speciesPlugin->getSpeciesType();
 
       const MultiModelPlugin * mPlugin =
-          static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+          dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
 
       pre (mPlugin != 0);
 
@@ -772,10 +698,30 @@ END_CONSTRAINT
 // MultiExSpe_NoEmptyListOfDefs          = 7021203 - caught at read at 'SBase::checkListOfPopulated()', TODO: need update if core is revised.
 // MultiLofOutBsts_AllowedAtts           = 7021204 - caught at read at 'OutwardBindingSite::readAttributes()'
 // MultiLofOutBsts_AllowedElts           = 7021205 - caught at read at 'SBase::logUnknownElement()'
-// MultiLofSpeFtrs_AllowedCoreAtts       = 7021206 - caught at read at 'SpeciesFeature::readAttributes()'
-// MultiLofSpeFtrs_AllowedMultiAtts      = 7021207 - caught at read at 'SpeciesFeature::readAttributes()'
-// MultiLofSpeFtrs_RelationAtt_Ref       = 7021208 - caught at read at 'ListOfSpeciesFeatures::readAttributes()'
+// MultiLofSpeFtrs_AllowedAtts           = 7021206 - caught at read at 'SpeciesFeature::readAttributes()'
+// MultiSubLofSpeFtrs_AllowedMultiAtts   = 7021207 - caught at read at 'SubListOfSpeciesFeatures::readAttributes()'
+// MultiSubLofSpeFtrs_RelationAtt_Ref    = 7021208 - caught at read at 'SubListOfSpeciesFeatures::readAttributes()'
 // MultiLofSpeFtrs_AllowedElts           = 7021209 - caught at read at 'SBase::logUnknownElement()'
+// MultiSubLofSpeFtrs_AllowedCoreAtts    = 7021210 - caught at read at 'SubListOfSpeciesFeatures::readAttributes()'
+// MultiSubLofSpeFtrs_AllowedElts        = 7021211 - caught at read at 'SBase::logUnknownElement()'
+
+// MultiSubLofSpeFtrs_CpoAtt_Ref         = 7021212
+/*!< SubListOfSpeciesFeatures: 'component' must be the 'id' of a 'SpeciesType' component */
+
+START_CONSTRAINT (MultiSubLofSpeFtrs_CpoAtt_Ref, SubListOfSpeciesFeatures, subListOfSpeciesFeatures)
+{
+  const MultiModelPlugin * mPlugin =
+      dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+
+  pre (mPlugin != 0);
+
+  std::string subLofSpeFtrsComponentId = subListOfSpeciesFeatures.getComponent();
+
+  const MultiSpeciesType * st = __getSpeciesTypeFromComponentId(m, subLofSpeFtrsComponentId);
+
+  inv(st != NULL);
+}
+END_CONSTRAINT
 
 //************************************
 // Rules for OutwardBindingSite objects
@@ -791,7 +737,7 @@ END_CONSTRAINT
 START_CONSTRAINT (MultiOutBst_CpoAtt_Ref, OutwardBindingSite, outwardBindingSite)
 {
   const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
 
   pre (mPlugin != 0);
 
@@ -799,7 +745,7 @@ START_CONSTRAINT (MultiOutBst_CpoAtt_Ref, OutwardBindingSite, outwardBindingSite
 
   const MultiSpeciesType * st = __getSpeciesTypeFromComponentId(m, bstComponentId);
   const BindingSiteSpeciesType * bst =
-		  static_cast<const BindingSiteSpeciesType*>(st);
+		  dynamic_cast<const BindingSiteSpeciesType*>(st);
 
   inv(bst != NULL);
 }
@@ -818,7 +764,7 @@ END_CONSTRAINT
 START_CONSTRAINT (MultiSpeFtr_SpeFtrTypAtt_Ref, SpeciesFeature, speciesFeature)
 {
   const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
 
   pre (mPlugin != 0);
 
@@ -846,7 +792,7 @@ END_CONSTRAINT
 START_CONSTRAINT (MultiSpeFtr_OccAtt_Ref, SpeciesFeature, speciesFeature)
 {
   const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
 
   pre (mPlugin != 0);
 
@@ -860,11 +806,14 @@ START_CONSTRAINT (MultiSpeFtr_OccAtt_Ref, SpeciesFeature, speciesFeature)
   const SBase * sbaseSpecies = sbaseListOfSpeciesFeatures->getParentSBMLObject();
   pre (sbaseSpecies != 0);
 
-  const Species * species = static_cast<const Species *> (sbaseSpecies);
+  const Species * species = dynamic_cast<const Species *> (sbaseSpecies);
+  if (species == NULL) { // possible from subListOfSpeciesFeatures?
+      species = dynamic_cast<const Species *>(sbaseSpecies->getParentSBMLObject());
+  }
   pre (species != 0);
 
   const MultiSpeciesPlugin * spPlugin =
-      static_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
+      dynamic_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
   pre (spPlugin !=0);
 
   std::string sptId = spPlugin->getSpeciesType();
@@ -928,7 +877,7 @@ END_CONSTRAINT
 START_CONSTRAINT (MultiSpeFtrVal_ValAtt_Ref, SpeciesFeatureValue, speciesFeatureValue)
 {
   const MultiModelPlugin * mPlugin =
-      static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+      dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
 
   pre (mPlugin != 0);
 
@@ -943,7 +892,7 @@ START_CONSTRAINT (MultiSpeFtrVal_ValAtt_Ref, SpeciesFeatureValue, speciesFeature
 
   // speciesFeature
   const SpeciesFeature * speciesFeature =
-		  static_cast<const SpeciesFeature *> (sbaseSpeciesFeature);
+		  dynamic_cast<const SpeciesFeature *> (sbaseSpeciesFeature);
 
   const SBase * sbaseListOfSpeciesFeatures = NULL;
   if (speciesFeature) {
@@ -959,11 +908,14 @@ START_CONSTRAINT (MultiSpeFtrVal_ValAtt_Ref, SpeciesFeatureValue, speciesFeature
   bool found = false;
 
   // species
-  const Species * species = static_cast<const Species *>(sbaseSpecies);
+  const Species * species = dynamic_cast<const Species *>(sbaseSpecies);
+  if (species == NULL) { // possible from subListOfSpeciesFeatures?
+      species = dynamic_cast<const Species *>(sbaseSpecies->getParentSBMLObject());
+  }
 
   if (species) {
     const MultiSpeciesPlugin * spPlugin =
-    		static_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
+    		dynamic_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
     if (spPlugin) {
 		std::string sptId = spPlugin->getSpeciesType();
 
@@ -998,7 +950,7 @@ START_CONSTRAINT (MultiExSplSpeRef_CpaRefAtt_Ref, SimpleSpeciesReference, simple
 {
 
   const MultiSimpleSpeciesReferencePlugin * simpleSpeciesRefPlugin =
-      static_cast<const MultiSimpleSpeciesReferencePlugin*>(m.getPlugin("multi"));
+      dynamic_cast<const MultiSimpleSpeciesReferencePlugin*>(m.getPlugin("multi"));
 
   pre (simpleSpeciesRefPlugin != 0);
 
@@ -1009,7 +961,7 @@ START_CONSTRAINT (MultiExSplSpeRef_CpaRefAtt_Ref, SimpleSpeciesReference, simple
       for (unsigned int i = 0; !found && i < m.getNumCompartments(); i++) {
           const Compartment * compartment = m.getCompartment(i);
           const MultiCompartmentPlugin * compartmentPlugin =
-              static_cast<const MultiCompartmentPlugin*>(compartment->getPlugin("multi"));
+              dynamic_cast<const MultiCompartmentPlugin*>(compartment->getPlugin("multi"));
           if (compartmentPlugin != 0) {
               for (unsigned int j = 0; !found && j < compartmentPlugin->getNumCompartmentReferences(); j++) {
                   const CompartmentReference * compartmentRef = compartmentPlugin->getCompartmentReference(j);
@@ -1056,7 +1008,7 @@ START_CONSTRAINT (MultiSptCpoMapInPro_RctAtt_Ref, SpeciesTypeComponentMapInProdu
 	pre (sbaseListOfSpeciesReferences != NULL);
 
 	const SBase * sbaseReaction = sbaseListOfSpeciesReferences->getParentSBMLObject();
-	const Reaction * reaction = static_cast<const Reaction *> (sbaseReaction);
+	const Reaction * reaction = dynamic_cast<const Reaction *> (sbaseReaction);
 	pre (reaction != NULL);
 
 	bool found = false;
@@ -1091,7 +1043,7 @@ START_CONSTRAINT (MultiSptCpoMapInPro_RctCpoAtt_Ref, SpeciesTypeComponentMapInPr
 	pre(sbaseListOfSpeciesReferences != NULL);
 
 	const SBase * sbaseReaction = sbaseListOfSpeciesReferences->getParentSBMLObject();
-	const Reaction * reaction = static_cast<const Reaction *> (sbaseReaction);
+	const Reaction * reaction = dynamic_cast<const Reaction *> (sbaseReaction);
 	pre (reaction != NULL);
 
 	// scan reactants
@@ -1110,7 +1062,7 @@ START_CONSTRAINT (MultiSptCpoMapInPro_RctCpoAtt_Ref, SpeciesTypeComponentMapInPr
 			pre (species != NULL);
 
 			const MultiSpeciesPlugin * speciesPlugin =
-						static_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
+						dynamic_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
 			pre (speciesPlugin != NULL);
 
 			std::string speciesTypeId = speciesPlugin->getSpeciesType();
@@ -1133,7 +1085,7 @@ START_CONSTRAINT (MultiSptCpoMapInPro_ProCpoAtt_Ref, SpeciesTypeComponentMapInPr
 
 	// must have model extended
 	const MultiModelPlugin * modelPlugin =
-			static_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
+			dynamic_cast<const MultiModelPlugin*>(m.getPlugin("multi"));
 	pre (modelPlugin != NULL);
 
 	// parent of map -- list
@@ -1143,7 +1095,7 @@ START_CONSTRAINT (MultiSptCpoMapInPro_ProCpoAtt_Ref, SpeciesTypeComponentMapInPr
 	// parent of map list -- speciesReference
 	const SBase * sbaseSpeciesReference = sbaseListOfSpeciesTypeComponentMapsInProduct->getParentSBMLObject();
 	const SpeciesReference * speciesReference =
-				static_cast<const SpeciesReference*> (sbaseSpeciesReference);
+				dynamic_cast<const SpeciesReference*> (sbaseSpeciesReference);
 	pre (speciesReference != NULL);
 
 	std::string speciesId = speciesReference->getSpecies();
@@ -1151,7 +1103,7 @@ START_CONSTRAINT (MultiSptCpoMapInPro_ProCpoAtt_Ref, SpeciesTypeComponentMapInPr
 	pre (species != NULL);
 
 	const MultiSpeciesPlugin * speciesPlugin =
-			static_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
+			dynamic_cast<const MultiSpeciesPlugin*>(species->getPlugin("multi"));
 	pre (speciesPlugin != NULL);
 	std::string speciesTypeId = speciesPlugin->getSpeciesType();
 	inv( __isSpeciesTypeComponent(m, speciesTypeId, productComponentId));
@@ -1184,7 +1136,7 @@ START_CONSTRAINT (MultiSpeFtrChg_RctSpeFtrAtt_Ref, SpeciesFeatureChange, species
 
     // parent of map list -- speciesReference
     const SBase * sbaseSpeciesTypeComponentMapInProduct = sbaseListOfSpeciesFeatureChanges->getParentSBMLObject();
-    const SpeciesTypeComponentMapInProduct * stcmip = static_cast<const SpeciesTypeComponentMapInProduct *> (sbaseSpeciesTypeComponentMapInProduct);
+    const SpeciesTypeComponentMapInProduct * stcmip = dynamic_cast<const SpeciesTypeComponentMapInProduct *> (sbaseSpeciesTypeComponentMapInProduct);
     pre (stcmip != NULL);
 
     std::string reactantId = stcmip->getReactant();
@@ -1200,7 +1152,7 @@ START_CONSTRAINT (MultiSpeFtrChg_RctSpeFtrAtt_Ref, SpeciesFeatureChange, species
     pre (sbaseListOfProducts != NULL);
 
     const SBase * sbaseReaction = sbaseListOfProducts->getParentSBMLObject();
-    const Reaction * reaction = static_cast<const Reaction *> (sbaseReaction);
+    const Reaction * reaction = dynamic_cast<const Reaction *> (sbaseReaction);
     pre (reaction != NULL);
 
     const SpeciesReference * reactant = reaction->getReactant(reactantId);
@@ -1235,7 +1187,7 @@ START_CONSTRAINT (MultiSpeFtrChg_ProSpeFtrAtt_Ref, SpeciesFeatureChange, species
     const SBase * sbaseSpeciesReference =
     		sbaseListSpeciesTypeComponentMapsInProduct->getParentSBMLObject();
     const SpeciesReference * product =
-                    static_cast<const SpeciesReference*>(sbaseSpeciesReference);
+                    dynamic_cast<const SpeciesReference*>(sbaseSpeciesReference);
     pre (product != NULL);
 
     std::string speciesId = product->getSpecies();
diff --git a/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraintsDeclared.cxx b/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraintsDeclared.cxx
index c0eb4a6..8c041b8 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/multi/validator/constraints/MultiConsistencyConstraintsDeclared.cxx
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -66,17 +66,17 @@ addConstraint(new VConstraintSpeciesTypeInstanceMultiSptIns_CpaRefAtt_Ref(*this)
 // MultiSptCpoInd_CpoAtt_Ref             = 7020904
 addConstraint(new VConstraintSpeciesTypeComponentIndexMultiSptCpoInd_CpoAtt_Ref(*this));
 
-// MultiSptCpoInd_RestrictElts           = 7020905
-addConstraint(new VConstraintSpeciesTypeComponentIndexMultiSptCpoInd_RestrictElts(*this));
+//// MultiSptCpoInd_RestrictElts           = 7020905
+//addConstraint(new VConstraintSpeciesTypeComponentIndexMultiSptCpoInd_RestrictElts(*this));
 
-// MultiSptCpoInd_SameOccurAsRefIndex    = 7020906
-addConstraint(new VConstraintSpeciesTypeComponentIndexMultiSptCpoInd_SameOccurAsRefIndex(*this));
+//// MultiSptCpoInd_SameOccurAsRefIndex    = 7020906
+//addConstraint(new VConstraintSpeciesTypeComponentIndexMultiSptCpoInd_SameOccurAsRefIndex(*this));
 
 // MultiSptCpoInd_IdParAtt_Ref           = 7020907
 addConstraint(new VConstraintSpeciesTypeComponentIndexMultiSptCpoInd_IdParAtt_Ref(*this));
 
-// MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref = 7021004
-addConstraint(new VConstraintDenotedSpeciesTypeComponentIndexMultiDenSptCpoInd_SpTypeCpoIndAtt_Ref(*this));
+//// MultiDenSptCpoInd_SpTypeCpoIndAtt_Ref = 7021004
+//addConstraint(new VConstraintDenotedSpeciesTypeComponentIndexMultiDenSptCpoInd_SpTypeCpoIndAtt_Ref(*this));
 
 // MultiInSptBnd_Bst1Att_Ref             = 7021104
 addConstraint(new VConstraintInSpeciesTypeBondMultiInSptBnd_Bst1Att_Ref(*this));
@@ -90,6 +90,9 @@ addConstraint(new VConstraintInSpeciesTypeBondMultiInSptBnd_TwoBstAtts_NotSame(*
 // MultiExSpe_RestrictSpeciesTypeAtt     = 7021202
 addConstraint(new VConstraintSpeciesMultiExSpe_RestrictSpeciesTypeAtt(*this));
 
+// MultiSubLofSpeFtrs_CpoAtt_Ref         = 7021212
+addConstraint(new VConstraintSubListOfSpeciesFeaturesMultiSubLofSpeFtrs_CpoAtt_Ref(*this));
+
 // MultiOutBst_CpoAtt_Ref                = 7021305
 addConstraint(new VConstraintOutwardBindingSiteMultiOutBst_CpoAtt_Ref(*this));
 
diff --git a/src/sbml/packages/multi/validator/constraints/MultiIdBase.cpp b/src/sbml/packages/multi/validator/constraints/MultiIdBase.cpp
index 530cc7a..6419aeb 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiIdBase.cpp
+++ b/src/sbml/packages/multi/validator/constraints/MultiIdBase.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -246,6 +246,12 @@ MultiIdBase::checkId (const PossibleSpeciesFeatureValue& x)
 }
 
 void
+MultiIdBase::checkId (const SubListOfSpeciesFeatures& x)
+{
+  if (x.isSetId()) doCheckId(x.getId(), x);
+}
+
+void
 MultiIdBase::checkId (const SpeciesFeature& x)
 {
   if (x.isSetId()) doCheckId(x.getId(), x);
diff --git a/src/sbml/packages/multi/validator/constraints/MultiIdBase.h b/src/sbml/packages/multi/validator/constraints/MultiIdBase.h
index c5be07e..d15986a 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiIdBase.h
+++ b/src/sbml/packages/multi/validator/constraints/MultiIdBase.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -173,6 +173,7 @@ protected:
   void checkId (const SpeciesTypeComponentIndex&  x);
   void checkId (const InSpeciesTypeBond&  x);
   void checkId (const SpeciesFeatureType&  x);
+  void checkId (const SubListOfSpeciesFeatures&  x);
   void checkId (const PossibleSpeciesFeatureValue&  x);
   void checkId (const SpeciesFeature&  x);
   void checkId (const SpeciesFeatureChange&  x);
diff --git a/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraints.cpp b/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraints.cpp
index a34371f..6190c10 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraints.cpp
@@ -37,7 +37,7 @@
 #include "UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.h"
 #include "UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.h"
 #include "UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.h"
-#include "UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.h"
+#include "UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.h"
 #include "UniqueSpeciesFeatureIdsWithinSpecies.h"
 #include "UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.h"
 #include "UniqueCompartmentReferenceIdsWithinCompartment.h"
@@ -87,9 +87,9 @@ EXTERN_CONSTRAINT( MultiUnqId_InSptBnd, UniqueInSpeciesTypeBondIdsWithinMultiSpe
 /*!< SpeciesFeatureType must have unique ids within the parent speciesType */
 EXTERN_CONSTRAINT( MultiUnqId_Sft, UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType )
 
-// MultiUnqId_PblSpecFtrVal              = 7010405
+// MultiUnqId_PblSpecFtrVal              = 7010405 // add at v1.0.6
 /*!< PossibleSpeciesFeatureValue must have unique ids within the parent speciesFeatureType */
-EXTERN_CONSTRAINT( MultiUnqId_PblSpecFtrVal, UniquePossibleSpeciesFeatureValueIdsWithinMultiSpeciesFeatureType )
+EXTERN_CONSTRAINT( MultiUnqId_SubListOfSfs, UniqueSubListOfSpeciesFeaturesIdsWithinSpecies )
 
 // MultiUnqId_SpeFtr                     = 7010406
 /*!< SpeciesFeature must have unique ids within a species */
diff --git a/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraintsDeclared.cxx b/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraintsDeclared.cxx
index c48a737..eee34f0 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/multi/validator/constraints/MultiIdentifierConsistencyConstraintsDeclared.cxx
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -43,7 +43,7 @@ addConstraint(new UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType(MultiUnqId_In
 
 addConstraint(new UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType(MultiUnqId_Sft, *this));
 
-addConstraint(new UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType(MultiUnqId_PblSpecFtrVal, *this));
+addConstraint(new UniqueSubListOfSpeciesFeaturesIdsWithinSpecies(MultiUnqId_SubListOfSfs, *this));
 
 addConstraint(new UniqueSpeciesFeatureIdsWithinSpecies(MultiUnqId_SpeFtr, *this));
 
diff --git a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.cpp b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.cpp
index ecfb104..cff1f18 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.cpp
+++ b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -112,7 +112,7 @@ MultiMathCiCheckRepresentationType::checkCiRepresentationType(const Model& m, co
 {
 	if (!node.isCiNumber()) return;
 
-	const MultiASTPlugin * astPlugin = static_cast<const MultiASTPlugin*>(node.getPlugin("multi"));
+	const MultiASTPlugin * astPlugin = dynamic_cast<const MultiASTPlugin*>(node.getPlugin("multi"));
 
 	if (astPlugin == 0 || !astPlugin->isSetRepresentationType()) return;
 
diff --git a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.h b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.h
index b46b26e..795ea75 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.h
+++ b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckRepresentationType.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.cpp b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.cpp
index 4280355..bc566fd 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.cpp
+++ b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -113,7 +113,7 @@ MultiMathCiCheckSpeciesReference::checkCiSpeciesReference(const Model& m, const
 	if (!node.isCiNumber()) return;
 
 	bool isSpeciesReference = true;
-	const MultiASTPlugin * astPlugin = static_cast<const MultiASTPlugin*>(node.getPlugin("multi"));
+	const MultiASTPlugin * astPlugin = dynamic_cast<const MultiASTPlugin*>(node.getPlugin("multi"));
 
 	if (astPlugin == 0 || !astPlugin->isSetSpeciesReference()) return;
 
@@ -125,7 +125,7 @@ MultiMathCiCheckSpeciesReference::checkCiSpeciesReference(const Model& m, const
         isSpeciesReference = false;
     }
     else {
-        const Reaction * reaction = static_cast<const Reaction*> (sbaseReaction);
+        const Reaction * reaction = dynamic_cast<const Reaction*> (sbaseReaction);
         isSpeciesReference = false;
 
         if (reaction != 0) {
diff --git a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.h b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.h
index efc72a9..8a0e94a 100644
--- a/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.h
+++ b/src/sbml/packages/multi/validator/constraints/MultiMathCiCheckSpeciesReference.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.cpp b/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.cpp
index 11518b1..f7b6179 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -67,7 +67,7 @@ UniqueCompartmentReferenceIdsWithinCompartment::doCheck (const Model& m)
     if (comp == NULL) continue;
 
     const MultiCompartmentPlugin * plug =
-      static_cast <const MultiCompartmentPlugin*>(comp->getPlugin("multi"));
+      dynamic_cast <const MultiCompartmentPlugin*>(comp->getPlugin("multi"));
     if (plug == NULL)
     {
       continue;
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.h b/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.h
index 0d4e455..46139c1 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueCompartmentReferenceIdsWithinCompartment.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.cpp b/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.cpp
index e69add2..557e3f9 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -61,7 +61,7 @@ void
 UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType::doCheck (const Model& m)
 {
   const MultiModelPlugin * plug =
-    static_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
+    dynamic_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
   if (plug == NULL)
   {
     return;
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.h b/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.h
index 572fd2f..0bc981c 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueInSpeciesTypeBondIdsWithinMultiSpeciesType.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.cpp b/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.cpp
index 0f0d264..fee323f 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -63,7 +63,7 @@ UniqueMultiComponentIds::~UniqueMultiComponentIds ()
 void
 UniqueMultiComponentIds::doCheck (const Model& m)
 {
-  unsigned int n, size, sr, sr_size;
+  unsigned int n, size, sr, sr_size, i, i_size, j, j_size;
 
   checkId( m );
 
@@ -109,7 +109,7 @@ UniqueMultiComponentIds::doCheck (const Model& m)
 
 
   const MultiModelPlugin * plug =
-    static_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
+    dynamic_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
   if (plug == NULL)
   {
     return;
@@ -118,7 +118,21 @@ UniqueMultiComponentIds::doCheck (const Model& m)
   size = plug->getNumMultiSpeciesTypes();
   for (n = 0; n < size; ++n)
   {
-    checkId( *(plug->getMultiSpeciesType(n)) );
+	const MultiSpeciesType * multiSpeciesType = plug->getMultiSpeciesType(n);
+    checkId( *(multiSpeciesType) );
+
+    i_size = multiSpeciesType->getNumSpeciesFeatureTypes();
+    for (i = 0; i < i_size; ++i)
+    {
+    	const SpeciesFeatureType * speciesFeatureType
+    		= multiSpeciesType->getSpeciesFeatureType(i);
+    	j_size = speciesFeatureType->getNumPossibleSpeciesFeatureValues();
+    	for (j = 0; j < j_size; ++j) {
+    		const PossibleSpeciesFeatureValue * possibleSpeciesFeatureValue
+    			= speciesFeatureType->getPossibleSpeciesFeatureValue(j);
+    		checkId ( *(possibleSpeciesFeatureValue) );
+    	}
+    }
   }
 
   reset();
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.h b/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.h
index 9214ab4..be01b66 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueMultiComponentIds.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.cpp b/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.cpp
index ea936fc..3c70c89 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.h b/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.h
index 0802f65..fceebe1 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueMultiIdBase.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.cpp b/src/sbml/packages/multi/validator/constraints/UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.cpp
deleted file mode 100644
index d7969a5..0000000
--- a/src/sbml/packages/multi/validator/constraints/UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @cond doxygenLibsbmlInternal
- *
- * @file    UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.cpp
- * @brief   Ensures the PossibleSpeciesFeatureValue ids within a SpeciesFeatureType are unique
- * @author  Fengkai Zhang
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- * 
- * Copyright 2011-2012 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->*/
-
-#include <sbml/Model.h>
-#include "UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.h"
-
-/** @cond doxygenIgnored */
-
-using namespace std;
-
-/** @endcond */
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-#ifdef __cplusplus
-
-/*
- * Creates a new Constraint with the given constraint id.
- */
-UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType::UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType (unsigned int id, MultiValidator& v) :
-  UniqueMultiIdBase(id, v)
-{
-}
-
-
-/*
- * Destroys this Constraint.
- */
-UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType::~UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType ()
-{
-}
-
-
-/*
- * Checks that all the PossibleSpeciesFeatureValue ids under the direct parent SpeciesFeatureType objects are unique.
- */
-void
-UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType::doCheck (const Model& m)
-{
-  const MultiModelPlugin * plug =
-    static_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
-  if (plug == NULL)
-  {
-    return;
-  }
-
-  for (unsigned int n = 0; n < plug->getNumMultiSpeciesTypes(); n++)
-  {
-    const MultiSpeciesType* spt = plug->getMultiSpeciesType(n);
-    if (spt == NULL) continue;
-
-    for (unsigned int i = 0; i < spt->getNumSpeciesFeatureTypes(); i++)
-    {
-        const SpeciesFeatureType * sft = spt->getSpeciesFeatureType(i);
-
-        if (sft == NULL) continue;
-
-        for (unsigned int j = 0; j < sft->getNumPossibleSpeciesFeatureValues(); j++) {
-
-            const PossibleSpeciesFeatureValue * psv = sft->getPossibleSpeciesFeatureValue(j);
-            checkId( *psv );
-        }
-
-        reset();
-   }
-
-  }
-
-}
-
-#endif /* __cplusplus */
-
-LIBSBML_CPP_NAMESPACE_END
-
-/** @endcond */
diff --git a/src/sbml/packages/multi/validator/constraints/UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.h b/src/sbml/packages/multi/validator/constraints/UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.h
deleted file mode 100644
index 4c0a485..0000000
--- a/src/sbml/packages/multi/validator/constraints/UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * @cond doxygenLibsbmlInternal
- *
- * @file    UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType.h
- * @brief   Ensures the PossibleSpeciesFeatureValue ids within a SpeciesFeatureType are unique
- * @author  Fengkai Zhang
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- * 
- * Copyright 2011-2012 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->*/
-
-#ifndef UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType_h
-#define UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType_h
-
-
-#ifdef __cplusplus
-
-#include <string>
-
-#include "UniqueMultiIdBase.h"
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-class UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType: public UniqueMultiIdBase
-{
-public:
-
-  /**
-   * Creates a new Constraint with the given constraint id.
-   */
-  UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType (unsigned int id, MultiValidator& v);
-
-  /**
-   * Destroys this Constraint.
-   */
-  virtual ~UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType ();
-
-
-protected:
-
-  /**
-   * Checks that all the PossibleSpeciesFeatureValue ids under the direct parent SpeciesFeatureType objects are unique.
-   */
-  virtual void doCheck (const Model& st);
-};
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-#endif  /* UniquePossibleSpeciesFeatureValueIdsWithinSpeciesFeatureType_h */
-
-/** @endcond */
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.cpp b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.cpp
index cdbc435..585b68f 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -71,7 +71,7 @@ UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct::doCheck (co
         if (sr == NULL) continue;
 
         const MultiSpeciesReferencePlugin * plug =
-          static_cast <const MultiSpeciesReferencePlugin*>(sr->getPlugin("multi"));
+          dynamic_cast <const MultiSpeciesReferencePlugin*>(sr->getPlugin("multi"));
         if (plug == NULL)
         {
           continue;
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.h b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.h
index 7c3de15..fbcb2a8 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureChangeIdsWithinSpeciesTypeComponentMapInProduct.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.cpp b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.cpp
index 1e1d393..d884ef2 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -66,7 +66,7 @@ UniqueSpeciesFeatureIdsWithinSpecies::doCheck (const Model& m)
     if (sp == NULL) continue;
 
     const MultiSpeciesPlugin * plug =
-      static_cast <const MultiSpeciesPlugin*>(sp->getPlugin("multi"));
+      dynamic_cast <const MultiSpeciesPlugin*>(sp->getPlugin("multi"));
     if (plug == NULL)
     {
       continue;
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.h b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.h
index a247860..ad99662 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureIdsWithinSpecies.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.cpp b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.cpp
index e98255e..7ab49c9 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -61,7 +61,7 @@ void
 UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType::doCheck (const Model& m)
 {
   const MultiModelPlugin * plug =
-    static_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
+    dynamic_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
   if (plug == NULL)
   {
     return;
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.h b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.h
index da76f6f..9ae81d0 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesFeatureTypeIdsWithinMultiSpeciesType.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.cpp b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.cpp
index 13630ba..a3326c5 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -61,7 +61,7 @@ void
 UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType::doCheck (const Model& m)
 {
   const MultiModelPlugin * plug =
-    static_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
+    dynamic_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
   if (plug == NULL)
   {
     return;
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.h b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.h
index deb6505..4d35b4d 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeComponentIndexIdsWithinMultiSpeciesType.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.cpp b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.cpp
index 829147a..7a91310 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.cpp
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -61,7 +61,7 @@ void
 UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType::doCheck (const Model& m)
 {
   const MultiModelPlugin * plug =
-    static_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
+    dynamic_cast <const MultiModelPlugin*>(m.getPlugin("multi"));
   if (plug == NULL)
   {
     return;
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.h b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.h
index 2c1a9ff..3755042 100644
--- a/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.h
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSpeciesTypeInstanceIdsWithinMultiSpeciesType.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.cpp b/src/sbml/packages/multi/validator/constraints/UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.cpp
new file mode 100644
index 0000000..fc416ed
--- /dev/null
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.cpp
@@ -0,0 +1,91 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.cpp
+ * @brief   Ensures the SpeciesFeature ids within a Species are unique
+ * @author  Fengkai Zhang
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright 2011-2012 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <sbml/Model.h>
+#include <sbml/packages/multi/sbml/SubListOfSpeciesFeatures.h>
+#include "UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.h"
+
+/** @cond doxygenIgnored */
+
+using namespace std;
+
+/** @endcond */
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+#ifdef __cplusplus
+
+/*
+ * Creates a new Constraint with the given constraint id.
+ */
+UniqueSubListOfSpeciesFeaturesIdsWithinSpecies::UniqueSubListOfSpeciesFeaturesIdsWithinSpecies (unsigned int id, MultiValidator& v) :
+  UniqueMultiIdBase(id, v)
+{
+}
+
+
+/*
+ * Destroys this Constraint.
+ */
+UniqueSubListOfSpeciesFeaturesIdsWithinSpecies::~UniqueSubListOfSpeciesFeaturesIdsWithinSpecies ()
+{
+}
+
+
+/*
+ * Checks that all the SpeciesFeature ids within a Species are unique.
+ */
+void
+UniqueSubListOfSpeciesFeaturesIdsWithinSpecies::doCheck (const Model& m)
+{
+  for (unsigned int n = 0; n < m.getNumSpecies(); n++)
+  {
+    const Species* sp = m.getSpecies(n);
+    if (sp == NULL) continue;
+
+    const MultiSpeciesPlugin * plug =
+      dynamic_cast <const MultiSpeciesPlugin*>(sp->getPlugin("multi"));
+    if (plug == NULL)
+    {
+      continue;
+    }
+
+    for (unsigned int i = 0; i < plug->getNumSubListOfSpeciesFeatures(); i++)
+    {
+        const SubListOfSpeciesFeatures * sf = plug->getSubListOfSpeciesFeatures(i);
+        checkId( *sf );
+    }
+
+    reset();
+  }
+
+}
+
+#endif /* __cplusplus */
+
+LIBSBML_CPP_NAMESPACE_END
+
+/** @endcond */
diff --git a/src/sbml/packages/multi/validator/constraints/UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.h b/src/sbml/packages/multi/validator/constraints/UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.h
new file mode 100644
index 0000000..942e027
--- /dev/null
+++ b/src/sbml/packages/multi/validator/constraints/UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.h
@@ -0,0 +1,68 @@
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    UniqueSubListOfSpeciesFeaturesIdsWithinSpecies.h
+ * @brief   Ensures the SpeciesFeature ids within a Species are unique
+ * @author  Fengkai Zhang
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ * 
+ * Copyright 2011-2012 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef UniqueSubListOfSpeciesFeaturesIdsWithinSpecies_h
+#define UniqueSubListOfSpeciesFeaturesIdsWithinSpecies_h
+
+
+#ifdef __cplusplus
+
+#include <string>
+
+#include "UniqueMultiIdBase.h"
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class UniqueSubListOfSpeciesFeaturesIdsWithinSpecies: public UniqueMultiIdBase
+{
+public:
+
+  /**
+   * Creates a new Constraint with the given constraint id.
+   */
+  UniqueSubListOfSpeciesFeaturesIdsWithinSpecies (unsigned int id, MultiValidator& v);
+
+  /**
+   * Destroys this Constraint.
+   */
+  virtual ~UniqueSubListOfSpeciesFeaturesIdsWithinSpecies ();
+
+
+protected:
+
+  /**
+   * Checks that all the SpeciesFeature ids within a Species are unique.
+   */
+  virtual void doCheck (const Model& st);
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* UniqueSubListOfSpeciesFeaturesIdsWithinSpecies_h */
+
+/** @endcond */
diff --git a/src/sbml/packages/multi/validator/test/CMakeLists.txt b/src/sbml/packages/multi/validator/test/CMakeLists.txt
index 61e9eff..a948146 100644
--- a/src/sbml/packages/multi/validator/test/CMakeLists.txt
+++ b/src/sbml/packages/multi/validator/test/CMakeLists.txt
@@ -7,7 +7,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/test/TestFile.cpp b/src/sbml/packages/multi/validator/test/TestFile.cpp
index 41ca548..3c1e2b3 100644
--- a/src/sbml/packages/multi/validator/test/TestFile.cpp
+++ b/src/sbml/packages/multi/validator/test/TestFile.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/test/TestFile.h b/src/sbml/packages/multi/validator/test/TestFile.h
index be749ad..c9ff1ba 100644
--- a/src/sbml/packages/multi/validator/test/TestFile.h
+++ b/src/sbml/packages/multi/validator/test/TestFile.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/test/TestMultiConsistencyValidator.cpp b/src/sbml/packages/multi/validator/test/TestMultiConsistencyValidator.cpp
index 3bae213..73711b3 100644
--- a/src/sbml/packages/multi/validator/test/TestMultiConsistencyValidator.cpp
+++ b/src/sbml/packages/multi/validator/test/TestMultiConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -37,6 +37,9 @@
 #include <sbml/packages/multi/validator/MultiConsistencyValidator.h>
 //#include <sbml/packages/multi/validator/MultiUnitConsistencyValidator.h>
 
+#ifdef LIBSBML_USE_VLD
+  #include <vld.h>
+#endif
 /** @cond doxygenIgnored */
 
 using namespace std;
@@ -100,10 +103,10 @@ runIdTest (const TestFile& file)
  */
 unsigned int
 runTests ( const string& msg,
-	   const string& directory,
-	   unsigned int  begin,
-	   unsigned int  end,
-	   bool (*tester)(const TestFile& file),
+     const string& directory,
+     unsigned int  begin,
+     unsigned int  end,
+     bool (*tester)(const TestFile& file),
      unsigned int library)
 {
   cout.precision(0);
@@ -167,11 +170,11 @@ main (int argc, char* argv[])
 
   testThisDataDir = testDataDir + "/" + "general-constraints";
   failed += runTests( "Testing General XML Consistency Constraints (20000 - 29999)",
-		      testThisDataDir, 0, 0, runMainTest, library);
+          testThisDataDir, 0, 0, runMainTest, library);
 
   testThisDataDir = testDataDir + "/" + "identifier-constraints";
   failed += runTests( "Testing Id Consistency Constraints (10300 - 10999)",
-		      testThisDataDir, 0, 0, runIdTest, library);
+          testThisDataDir, 0, 0, runIdTest, library);
 
 
   return failed;
diff --git a/src/sbml/packages/multi/validator/test/TestValidator.cpp b/src/sbml/packages/multi/validator/test/TestValidator.cpp
index 7f37b06..f297e43 100644
--- a/src/sbml/packages/multi/validator/test/TestValidator.cpp
+++ b/src/sbml/packages/multi/validator/test/TestValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/test/TestValidator.h b/src/sbml/packages/multi/validator/test/TestValidator.h
index f1c56b1..0eacb39 100644
--- a/src/sbml/packages/multi/validator/test/TestValidator.h
+++ b/src/sbml/packages/multi/validator/test/TestValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020501-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020501-fail-01-01.xml
index 37a5d5f..90a0f04 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020501-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020501-fail-01-01.xml
@@ -10,7 +10,7 @@
 			<multi:speciesType multi:id="spt1" multi:compartment="cell"/>
 			<multi:bindingSiteSpeciesType multi:id="spt2" multi:compartment="cell">
 				<multi:listOfSpeciesTypeInstances>
-					<multi:speciesTypeInstance multi:id="spi_1" multi:speciesType="spt1" multi:occur="1" />
+					<multi:speciesTypeInstance multi:id="spi_1" multi:speciesType="spt1" />
 				</multi:listOfSpeciesTypeInstances>
 			</multi:bindingSiteSpeciesType>
 		</multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-fail-01-01.xml
index 83eb921..1e143f9 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-fail-01-01.xml
@@ -8,7 +8,7 @@
       <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stY" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stN" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stN"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-pass-00-01.xml
index 8d6dbb4..103d4d2 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-pass-00-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020805-pass-00-01.xml
@@ -8,7 +8,7 @@
       <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stY" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-fail-01-01.xml
index 980c0e1..1c9c36f 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-fail-01-01.xml
@@ -14,7 +14,7 @@
       <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stY" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX" multi:compartmentReference="cell1" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX" multi:compartmentReference="cell1"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-pass-00-01.xml
index 57791e9..4fd0368 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-pass-00-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020806-pass-00-01.xml
@@ -14,7 +14,7 @@
       <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stY" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX" multi:compartmentReference="cr1" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX" multi:compartmentReference="cr1"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-fail-01-01.xml
index 846bfcf..99144e5 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-fail-01-01.xml
@@ -8,10 +8,10 @@
       <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stY" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci" multi:component="st" multi:occur="1"/>
+          <multi:speciesTypeComponentIndex multi:id="stci" multi:component="st"/>
         </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-pass-00-01.xml
index 9396439..e0f0d3c 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-pass-00-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020904-pass-00-01.xml
@@ -8,10 +8,10 @@
       <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stY" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiY_X" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci" multi:component="stiY_X" multi:occur="1"/>
+          <multi:speciesTypeComponentIndex multi:id="stci" multi:component="stiY_X"/>
         </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020905-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020905-fail-01-01.xml
deleted file mode 100644
index f0399c5..0000000
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020905-fail-01-01.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
-  <model id="testModel">
-    <listOfCompartments>
-      <compartment id="cell1" constant="true" multi:isType="true"/>
-    </listOfCompartments>
-    <multi:listOfSpeciesTypes>
-      <multi:bindingSiteSpeciesType multi:id="stB" multi:compartment="cell1"/>
-      <multi:speciesType multi:id="stX" multi:compartment="cell1">
-        <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="b" multi:speciesType="stB" multi:occur="5"/>
-        </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="b1" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b2" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b3" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b45" multi:component="b" multi:occur="2"/>
-          <multi:speciesTypeComponentIndex multi:id="bb12" multi:component="b" multi:occur="2">
-            <multi:listOfDenotedSpeciesTypeComponentIndexes>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b1"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b2"/>
-            </multi:listOfDenotedSpeciesTypeComponentIndexes>
-          </multi:speciesTypeComponentIndex>
-          <multi:speciesTypeComponentIndex multi:id="bb123" multi:component="b45" multi:occur="2">
-            <multi:listOfDenotedSpeciesTypeComponentIndexes>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b1"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b2"/>
-            </multi:listOfDenotedSpeciesTypeComponentIndexes>
-          </multi:speciesTypeComponentIndex>
-        </multi:listOfSpeciesTypeComponentIndexes>
-      </multi:speciesType>
-    </multi:listOfSpeciesTypes>
-  </model>
-</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020905-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020905-pass-00-01.xml
deleted file mode 100644
index 5c80ba6..0000000
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020905-pass-00-01.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
-  <model id="testModel">
-    <listOfCompartments>
-      <compartment id="cell1" constant="true" multi:isType="true"/>
-    </listOfCompartments>
-    <multi:listOfSpeciesTypes>
-      <multi:bindingSiteSpeciesType multi:id="stB" multi:compartment="cell1"/>
-      <multi:speciesType multi:id="stX" multi:compartment="cell1">
-        <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="b" multi:speciesType="stB" multi:occur="5"/>
-        </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="b1" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b2" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b3" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b45" multi:component="b" multi:occur="2"/>
-          <multi:speciesTypeComponentIndex multi:id="bb12" multi:component="b" multi:occur="2">
-            <multi:listOfDenotedSpeciesTypeComponentIndexes>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b1"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b2"/>
-            </multi:listOfDenotedSpeciesTypeComponentIndexes>
-          </multi:speciesTypeComponentIndex>
-          <multi:speciesTypeComponentIndex multi:id="bb123" multi:component="b" multi:occur="3">
-            <multi:listOfDenotedSpeciesTypeComponentIndexes>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b1"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b2"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b3"/>
-            </multi:listOfDenotedSpeciesTypeComponentIndexes>
-          </multi:speciesTypeComponentIndex>
-        </multi:listOfSpeciesTypeComponentIndexes>
-      </multi:speciesType>
-    </multi:listOfSpeciesTypes>
-  </model>
-</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020906-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020906-fail-01-01.xml
deleted file mode 100644
index d31af55..0000000
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020906-fail-01-01.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
-  <model id="testModel">
-    <listOfCompartments>
-      <compartment id="cell1" constant="true" multi:isType="true"/>
-    </listOfCompartments>
-    <multi:listOfSpeciesTypes>
-      <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
-      <multi:speciesType multi:id="stY" multi:compartment="cell1">
-        <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiY_X2" multi:speciesType="stX" multi:occur="1"/>
-        </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci1" multi:component="stiY_X1" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci2" multi:component="stiY_X2" multi:occur="1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
-      </multi:speciesType>
-      <multi:speciesType multi:id="stZ" multi:compartment="cell1">
-        <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiZ_Y1" multi:speciesType="stY" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiZ_Y2" multi:speciesType="stY" multi:occur="1"/>
-        </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z1" multi:component="stiZ_Y1" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z2" multi:component="stiZ_Y2" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z1X" multi:component="stci1" multi:occur="2" multi:identifyingParent="stci_Z1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
-      </multi:speciesType>
-    </multi:listOfSpeciesTypes>
-  </model>
-</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020906-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020906-pass-00-01.xml
deleted file mode 100644
index 7bfc396..0000000
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020906-pass-00-01.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
-  <model id="testModel">
-    <listOfCompartments>
-      <compartment id="cell1" constant="true" multi:isType="true"/>
-    </listOfCompartments>
-    <multi:listOfSpeciesTypes>
-      <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
-      <multi:speciesType multi:id="stY" multi:compartment="cell1">
-        <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiY_X2" multi:speciesType="stX" multi:occur="1"/>
-        </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci1" multi:component="stiY_X1" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci2" multi:component="stiY_X2" multi:occur="1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
-      </multi:speciesType>
-      <multi:speciesType multi:id="stZ" multi:compartment="cell1">
-        <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiZ_Y1" multi:speciesType="stY" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiZ_Y2" multi:speciesType="stY" multi:occur="1"/>
-        </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z1" multi:component="stiZ_Y1" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z2" multi:component="stiZ_Y2" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z1X" multi:component="stci1" multi:occur="1" multi:identifyingParent="stci_Z1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
-      </multi:speciesType>
-    </multi:listOfSpeciesTypes>
-  </model>
-</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020907-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020907-fail-01-01.xml
index 8afcb31..ae5bfa3 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020907-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7020907-fail-01-01.xml
@@ -8,23 +8,23 @@
       <multi:speciesType multi:id="stX" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stY" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiY_X1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiY_X2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiY_X1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiY_X2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci1" multi:component="stiY_X1" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci2" multi:component="stiY_X2" multi:occur="1"/>
+          <multi:speciesTypeComponentIndex multi:id="stci1" multi:component="stiY_X1"/>
+          <multi:speciesTypeComponentIndex multi:id="stci2" multi:component="stiY_X2"/>
         </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
       <multi:speciesType multi:id="stZ" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiZ_Y1" multi:speciesType="stY" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiZ_Y2" multi:speciesType="stY" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiZ_Y1" multi:speciesType="stY"/>
+          <multi:speciesTypeInstance multi:id="stiZ_Y2" multi:speciesType="stY"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z1" multi:component="stiZ_Y1" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z2" multi:component="stiZ_Y2" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stci_Z1X" multi:component="stci1" multi:occur="1" multi:identifyingParent="stci_Z1x"/>
+          <multi:speciesTypeComponentIndex multi:id="stci_Z1" multi:component="stiZ_Y1"/>
+          <multi:speciesTypeComponentIndex multi:id="stci_Z2" multi:component="stiZ_Y2"/>
+          <multi:speciesTypeComponentIndex multi:id="stci_Z1X" multi:component="stci1" multi:identifyingParent="stci_Z1x"/>
         </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021004-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021004-fail-01-01.xml
deleted file mode 100644
index 5ae2eff..0000000
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021004-fail-01-01.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
-  <model id="testModel">
-    <listOfCompartments>
-      <compartment id="cell1" constant="true" multi:isType="true"/>
-    </listOfCompartments>
-    <multi:listOfSpeciesTypes>
-      <multi:bindingSiteSpeciesType multi:id="stB" multi:compartment="cell1"/>
-      <multi:speciesType multi:id="stX" multi:compartment="cell1">
-        <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="b" multi:speciesType="stB" multi:occur="5"/>
-        </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="b1" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b2" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b3" multi:component="b" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="b45" multi:component="b" multi:occur="2"/>
-          <multi:speciesTypeComponentIndex multi:id="bb12" multi:component="b" multi:occur="2">
-            <multi:listOfDenotedSpeciesTypeComponentIndexes>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b1"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b2"/>
-            </multi:listOfDenotedSpeciesTypeComponentIndexes>
-          </multi:speciesTypeComponentIndex>
-          <multi:speciesTypeComponentIndex multi:id="bb123" multi:component="b" multi:occur="3">
-            <multi:listOfDenotedSpeciesTypeComponentIndexes>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b1"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b2"/>
-              <multi:denotedSpeciesTypeComponentIndex multi:speciesTypeComponentIndex="b"/>
-            </multi:listOfDenotedSpeciesTypeComponentIndexes>
-          </multi:speciesTypeComponentIndex>
-        </multi:listOfSpeciesTypeComponentIndexes>
-      </multi:speciesType>
-    </multi:listOfSpeciesTypes>
-  </model>
-</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-fail-01-01.xml
index 327b909..fb8b124 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-fail-01-01.xml
@@ -8,25 +8,21 @@
       <multi:bindingSiteSpeciesType multi:id="stB" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stX" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiX_B" multi:speciesType="stB" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiX_B1" multi:speciesType="stB"/>
+          <multi:speciesTypeInstance multi:id="stiX_B2" multi:speciesType="stB"/>
         </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b1" multi:component="stiX_B" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b2" multi:component="stiX_B" multi:occur="1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
       <multi:speciesType multi:id="stXX">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX" multi:speciesType="stX" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x2"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX1_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX1"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX2_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX2"/>
         </multi:listOfSpeciesTypeComponentIndexes>
         <multi:listOfInSpeciesTypeBonds>
-          <multi:inSpeciesTypeBond multi:bindingSite1="stciXX_x1_a" multi:bindingSite2="stciXX_x2_b"/>
+          <multi:inSpeciesTypeBond multi:bindingSite1="stiXX1_A1" multi:bindingSite2="stiXX2_B1"/>
         </multi:listOfInSpeciesTypeBonds>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-pass-00-01.xml
index f4bbebd..f3685a7 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-pass-00-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021104-pass-00-01.xml
@@ -8,25 +8,21 @@
       <multi:bindingSiteSpeciesType multi:id="stB" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stX" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiX_B" multi:speciesType="stB" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiX_B1" multi:speciesType="stB"/>
+          <multi:speciesTypeInstance multi:id="stiX_B2" multi:speciesType="stB"/>
         </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b1" multi:component="stiX_B" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b2" multi:component="stiX_B" multi:occur="1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
       <multi:speciesType multi:id="stXX">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX" multi:speciesType="stX" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x2"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX1_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX1"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX2_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX2"/>
         </multi:listOfSpeciesTypeComponentIndexes>
         <multi:listOfInSpeciesTypeBonds>
-          <multi:inSpeciesTypeBond multi:bindingSite1="stciXX_x1_b" multi:bindingSite2="stciXX_x2_b"/>
+          <multi:inSpeciesTypeBond multi:bindingSite1="stiXX1_B1" multi:bindingSite2="stiXX2_B1"/>
         </multi:listOfInSpeciesTypeBonds>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021105-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021105-fail-01-01.xml
index 1dd2571..3e49ce2 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021105-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021105-fail-01-01.xml
@@ -8,25 +8,21 @@
       <multi:bindingSiteSpeciesType multi:id="stB" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stX" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiX_B" multi:speciesType="stB" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiX_B1" multi:speciesType="stB"/>
+          <multi:speciesTypeInstance multi:id="stiX_B2" multi:speciesType="stB"/>
         </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b1" multi:component="stiX_B" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b2" multi:component="stiX_B" multi:occur="1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
       <multi:speciesType multi:id="stXX">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX" multi:speciesType="stX" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x2"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX1_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX1"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX2_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX2"/>
         </multi:listOfSpeciesTypeComponentIndexes>
         <multi:listOfInSpeciesTypeBonds>
-          <multi:inSpeciesTypeBond multi:bindingSite1="stciXX_x1_b" multi:bindingSite2="stciXX_x2_a"/>
+          <multi:inSpeciesTypeBond multi:bindingSite1="stiXX1_B1" multi:bindingSite2="stiXX2_A1"/>
         </multi:listOfInSpeciesTypeBonds>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021106-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021106-fail-01-01.xml
index f148590..195bec2 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021106-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021106-fail-01-01.xml
@@ -8,25 +8,21 @@
       <multi:bindingSiteSpeciesType multi:id="stB" multi:compartment="cell1"/>
       <multi:speciesType multi:id="stX" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiX_B" multi:speciesType="stB" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiX_B1" multi:speciesType="stB"/>
+          <multi:speciesTypeInstance multi:id="stiX_B2" multi:speciesType="stB"/>
         </multi:listOfSpeciesTypeInstances>
-        <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b1" multi:component="stiX_B" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciX_b2" multi:component="stiX_B" multi:occur="1"/>
-        </multi:listOfSpeciesTypeComponentIndexes>
       </multi:speciesType>
       <multi:speciesType multi:id="stXX">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX" multi:speciesType="stX" multi:occur="2"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
         <multi:listOfSpeciesTypeComponentIndexes>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2" multi:component="stiXX" multi:occur="1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x1_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x1"/>
-          <multi:speciesTypeComponentIndex multi:id="stciXX_x2_b" multi:component="stiX_B" multi:occur="1" multi:identifyingParent="stciXX_x2"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX1_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX1"/>
+          <multi:speciesTypeComponentIndex multi:id="stiXX2_B1" multi:component="stiX_B1" multi:identifyingParent="stiXX2"/>
         </multi:listOfSpeciesTypeComponentIndexes>
         <multi:listOfInSpeciesTypeBonds>
-          <multi:inSpeciesTypeBond multi:bindingSite1="stciXX_x1_b" multi:bindingSite2="stciXX_x1_b"/>
+          <multi:inSpeciesTypeBond multi:bindingSite1="stiXX1_B1" multi:bindingSite2="stiXX1_B1"/>
         </multi:listOfInSpeciesTypeBonds>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021305-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021305-fail-01-01.xml
new file mode 100644
index 0000000..c62767f
--- /dev/null
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021305-fail-01-01.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
+  <model id="testModel">
+    <listOfCompartments>
+      <compartment id="cell1" constant="true" multi:isType="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="spX" compartment="cell1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false" multi:speciesType="stX">
+        <multi:listOfOutwardBindingSites>
+          <multi:outwardBindingSite multi:component="stiX_bst1"/>
+        </multi:listOfOutwardBindingSites>
+      </species>
+    </listOfSpecies>
+    <multi:listOfSpeciesTypes>
+      <multi:speciesType multi:id="bst1"/>
+      <multi:speciesType multi:id="stX" multi:compartment="cell1">
+        <multi:listOfSpeciesTypeInstances>
+          <multi:speciesTypeInstance multi:id="stiX_bst1" multi:speciesType="bst1" />
+        </multi:listOfSpeciesTypeInstances>
+      </multi:speciesType>
+    </multi:listOfSpeciesTypes>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021305-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021305-pass-00-01.xml
index e1fa8a3..5818a58 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021305-pass-00-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021305-pass-00-01.xml
@@ -15,7 +15,7 @@
       <multi:bindingSiteSpeciesType multi:id="bst1"/>
       <multi:speciesType multi:id="stX" multi:compartment="cell1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiX_bst1" multi:speciesType="bst1" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiX_bst1" multi:speciesType="bst1"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-fail-01-01.xml
index f37910c..e1cef04 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-fail-01-01.xml
@@ -28,8 +28,8 @@
       <multi:speciesType multi:id="stX" multi:compartment="c1"/>
       <multi:speciesType multi:id="stXX" multi:compartment="c1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-pass-00-01.xml
index 314d95f..be59ee5 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-pass-00-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021904-pass-00-01.xml
@@ -28,8 +28,8 @@
       <multi:speciesType multi:id="stX" multi:compartment="c1"/>
       <multi:speciesType multi:id="stXX" multi:compartment="c1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021905-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021905-fail-01-01.xml
index 32346e5..bcd9aeb 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021905-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021905-fail-01-01.xml
@@ -28,8 +28,8 @@
       <multi:speciesType multi:id="stX" multi:compartment="c1"/>
       <multi:speciesType multi:id="stXX" multi:compartment="c1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021906-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021906-fail-01-01.xml
index eb8664f..abb2bb9 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021906-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7021906-fail-01-01.xml
@@ -28,8 +28,8 @@
       <multi:speciesType multi:id="stX" multi:compartment="c1"/>
       <multi:speciesType multi:id="stXX" multi:compartment="c1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-fail-01-01.xml
index 75f8097..e58454f 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-fail-01-01.xml
@@ -71,8 +71,8 @@
       </multi:speciesType>
       <multi:speciesType multi:id="stXX" multi:compartment="c1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-pass-00-01.xml
index ec4a733..379a336 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-pass-00-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022004-pass-00-01.xml
@@ -71,8 +71,8 @@
       </multi:speciesType>
       <multi:speciesType multi:id="stXX" multi:compartment="c1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022005-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022005-fail-01-01.xml
index 31d4a83..7770754 100644
--- a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022005-fail-01-01.xml
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022005-fail-01-01.xml
@@ -71,8 +71,8 @@
       </multi:speciesType>
       <multi:speciesType multi:id="stXX" multi:compartment="c1">
         <multi:listOfSpeciesTypeInstances>
-          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX" multi:occur="1"/>
-          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX" multi:occur="1"/>
+          <multi:speciesTypeInstance multi:id="stiXX1" multi:speciesType="stX"/>
+          <multi:speciesTypeInstance multi:id="stiXX2" multi:speciesType="stX"/>
         </multi:listOfSpeciesTypeInstances>
       </multi:speciesType>
     </multi:listOfSpeciesTypes>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-fail-01-01.xml
new file mode 100644
index 0000000..7c01c99
--- /dev/null
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-fail-01-01.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
+  <model id="testModel">
+    <listOfCompartments>
+      <compartment id="c1" constant="true" multi:isType="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="spX1" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spX2" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spXX" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="r" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference id="reactant1" species="spX1" constant="false"/>
+          <speciesReference id="reactant2" species="spX2" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference id="product" species="spXX" constant="false"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
+            <apply>
+              <times/>
+              <ci multi:speciesReference="reactantN"> spX1 </ci>
+              <ci multi:speciesReference="reactant2"> spX2 </ci>
+            </apply>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-fail-01-02.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-fail-01-02.xml
new file mode 100644
index 0000000..81b1a67
--- /dev/null
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-fail-01-02.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
+  <model id="testModel">
+    <listOfCompartments>
+      <compartment id="c1" constant="true" multi:isType="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="spX1" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spX2" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spXX" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="r1" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference id="reactant11" species="spX1" constant="false"/>
+          <speciesReference id="reactant12" species="spX2" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference id="product1" species="spXX" constant="false"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
+            <apply>
+              <times/>
+              <ci multi:speciesReference="reactant11"> spX1 </ci>
+              <ci multi:representationType="sum"> spX2 </ci>
+            </apply>
+          </math>
+        </kineticLaw>
+      </reaction>
+      <reaction id="r2" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference id="reactant21" species="spX1" constant="false"/>
+          <speciesReference id="reactant22" species="spX2" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference id="product2" species="spXX" constant="false"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
+            <apply>
+              <times/>
+              <ci multi:speciesReference="reactant11"> spX1 </ci>
+              <ci multi:representationType="sum"> spX2 </ci>
+            </apply>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-pass-00-01.xml
new file mode 100644
index 0000000..fa9a81f
--- /dev/null
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022102-pass-00-01.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
+  <model id="testModel">
+    <listOfCompartments>
+      <compartment id="c1" constant="true" multi:isType="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="spX1" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spX2" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spXX" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="r" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference id="reactant1" species="spX1" constant="false"/>
+          <speciesReference id="reactant2" species="spX2" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference id="product" species="spXX" constant="false"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
+            <apply>
+              <times/>
+              <ci multi:speciesReference="reactant1"> spX1 </ci>
+              <ci multi:speciesReference="reactant2"> spX2 </ci>
+            </apply>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022103-fail-01-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022103-fail-01-01.xml
new file mode 100644
index 0000000..5aee180
--- /dev/null
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022103-fail-01-01.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
+  <model id="testModel">
+    <listOfCompartments>
+      <compartment id="c1" constant="true" multi:isType="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="spX1" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spX2" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spXX" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="r" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference id="reactant1" species="spX1" constant="false"/>
+          <speciesReference id="reactant2" species="spX2" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference id="product" species="spXX" constant="false"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
+            <apply>
+              <times/>
+              <ci multi:speciesReference="reactant1"> spX1 </ci>
+              <ci multi:representationType="sumN"> spX2 </ci>
+            </apply>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022103-pass-00-01.xml b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022103-pass-00-01.xml
new file mode 100644
index 0000000..97f9416
--- /dev/null
+++ b/src/sbml/packages/multi/validator/test/test-data/general-constraints/7022103-pass-00-01.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1" level="3" version="1" multi:required="true">
+  <model id="testModel">
+    <listOfCompartments>
+      <compartment id="c1" constant="true" multi:isType="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="spX1" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spX2" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+      <species id="spXX" compartment="c1" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="r" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference id="reactant1" species="spX1" constant="false"/>
+          <speciesReference id="reactant2" species="spX2" constant="false"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference id="product" species="spXX" constant="false"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:multi="http://www.sbml.org/sbml/level3/version1/multi/version1">
+            <apply>
+              <times/>
+              <ci multi:speciesReference="reactant1"> spX1 </ci>
+              <ci multi:representationType="sum"> spX2 </ci>
+            </apply>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/packages/qual/Makefile.in b/src/sbml/packages/qual/Makefile.in
index d91022c..7cc2a47 100644
--- a/src/sbml/packages/qual/Makefile.in
+++ b/src/sbml/packages/qual/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/common/Makefile.in b/src/sbml/packages/qual/common/Makefile.in
index 3420e18..b361b8f 100644
--- a/src/sbml/packages/qual/common/Makefile.in
+++ b/src/sbml/packages/qual/common/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/common/QualExtensionTypes.h b/src/sbml/packages/qual/common/QualExtensionTypes.h
index 414b482..0bacc01 100644
--- a/src/sbml/packages/qual/common/QualExtensionTypes.h
+++ b/src/sbml/packages/qual/common/QualExtensionTypes.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/common/qualfwd.h b/src/sbml/packages/qual/common/qualfwd.h
index cc78689..7a2a579 100644
--- a/src/sbml/packages/qual/common/qualfwd.h
+++ b/src/sbml/packages/qual/common/qualfwd.h
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/Makefile.in b/src/sbml/packages/qual/extension/Makefile.in
index ad68f5b..c12388a 100644
--- a/src/sbml/packages/qual/extension/Makefile.in
+++ b/src/sbml/packages/qual/extension/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/QualExtension.cpp b/src/sbml/packages/qual/extension/QualExtension.cpp
index aa5b832..62b9811 100644
--- a/src/sbml/packages/qual/extension/QualExtension.cpp
+++ b/src/sbml/packages/qual/extension/QualExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/QualExtension.h b/src/sbml/packages/qual/extension/QualExtension.h
index 9f831fd..b5a4d7d 100644
--- a/src/sbml/packages/qual/extension/QualExtension.h
+++ b/src/sbml/packages/qual/extension/QualExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/QualModelPlugin.cpp b/src/sbml/packages/qual/extension/QualModelPlugin.cpp
index a09b007..0741d41 100644
--- a/src/sbml/packages/qual/extension/QualModelPlugin.cpp
+++ b/src/sbml/packages/qual/extension/QualModelPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -215,19 +215,6 @@ QualModelPlugin::writeElements (XMLOutputStream& stream) const
 /** @endcond */
 
 
-/** @cond doxygenLibsbmlInternal */
-/* default for components that have no required elements */
-bool
-QualModelPlugin::hasRequiredElements() const
-{
-  bool allPresent = true;
-
-  return allPresent;
-}
-/** @endcond */
-
-
-
 /*
  *
  *  (EXTENSION) Additional public functions
diff --git a/src/sbml/packages/qual/extension/QualModelPlugin.h b/src/sbml/packages/qual/extension/QualModelPlugin.h
index 4c2a7cd..4715a56 100644
--- a/src/sbml/packages/qual/extension/QualModelPlugin.h
+++ b/src/sbml/packages/qual/extension/QualModelPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -120,18 +120,6 @@ public:
   virtual void writeElements (XMLOutputStream& stream) const;
 
 
-  /**
-   * Checks if this plugin object has all the required elements.
-   *
-   * Subclasses should override this function if they have their specific
-   * elements.
-   *
-   * @return true if this plugin object has all the required elements,
-   * otherwise false will be returned.
-   */
-  virtual bool hasRequiredElements() const ;
-
-
   /** ------------------------------------------------------------------
    *
    *  Additional public functions
diff --git a/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.cpp b/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.cpp
index 46deedd..5676a27 100644
--- a/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.h b/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.h
index 1d2823d..d3b0f4a 100644
--- a/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.h
+++ b/src/sbml/packages/qual/extension/QualSBMLDocumentPlugin.h
@@ -1,13 +1,13 @@
 /**
- * @file:   QualSBMLDocumentPlugin.h
- * @brief:  Implementation of the QualSBMLDocumentPlugin class
+ * @file   QualSBMLDocumentPlugin.h
+ * @brief  Implementation of the QualSBMLDocumentPlugin class
  * @author  Sarah Keating
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -34,8 +34,8 @@
  * @sbmlbrief{qual} Extension of SBMLDocument.
  *
  * The QualSBMLDocumentPlugin class inherits from the SBMLDocumentPlugin
- * class, and codifies the extentions to the SBMLDocument class defined in
- * the SBML Level 3 @ref qual "Qualitative Models" package ('qual').
+ * class, and codifies the extensions to the SBMLDocument class defined in
+ * the SBML Level 3 @ref qual (“qual”) package.
  *
  * The QualSBMLDocumentPlugin defines a
  * required flag named <code>required</code>, which indicates whether the
diff --git a/src/sbml/packages/qual/extension/test/CMakeLists.txt b/src/sbml/packages/qual/extension/test/CMakeLists.txt
index c523b82..3139db3 100644
--- a/src/sbml/packages/qual/extension/test/CMakeLists.txt
+++ b/src/sbml/packages/qual/extension/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/test/Makefile.in b/src/sbml/packages/qual/extension/test/Makefile.in
index 88edeb4..0416a6b 100644
--- a/src/sbml/packages/qual/extension/test/Makefile.in
+++ b/src/sbml/packages/qual/extension/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/test/TestGetAllElements.cpp b/src/sbml/packages/qual/extension/test/TestGetAllElements.cpp
index 0115523..c30ef86 100644
--- a/src/sbml/packages/qual/extension/test/TestGetAllElements.cpp
+++ b/src/sbml/packages/qual/extension/test/TestGetAllElements.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/test/TestQualExtension.cpp b/src/sbml/packages/qual/extension/test/TestQualExtension.cpp
index 8200364..a591490 100644
--- a/src/sbml/packages/qual/extension/test/TestQualExtension.cpp
+++ b/src/sbml/packages/qual/extension/test/TestQualExtension.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/test/TestReadQualExtension.cpp b/src/sbml/packages/qual/extension/test/TestReadQualExtension.cpp
index 0ad675e..e62c7f0 100644
--- a/src/sbml/packages/qual/extension/test/TestReadQualExtension.cpp
+++ b/src/sbml/packages/qual/extension/test/TestReadQualExtension.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/test/TestRunner.c b/src/sbml/packages/qual/extension/test/TestRunner.c
index 78c06ef..7946e55 100644
--- a/src/sbml/packages/qual/extension/test/TestRunner.c
+++ b/src/sbml/packages/qual/extension/test/TestRunner.c
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/extension/test/TestWriteQualExtension.cpp b/src/sbml/packages/qual/extension/test/TestWriteQualExtension.cpp
index 8dc9730..7a88c1f 100644
--- a/src/sbml/packages/qual/extension/test/TestWriteQualExtension.cpp
+++ b/src/sbml/packages/qual/extension/test/TestWriteQualExtension.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/DefaultTerm.cpp b/src/sbml/packages/qual/sbml/DefaultTerm.cpp
index 1dce6a0..4795b82 100644
--- a/src/sbml/packages/qual/sbml/DefaultTerm.cpp
+++ b/src/sbml/packages/qual/sbml/DefaultTerm.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   DefaultTerm.cpp
- * @brief:  Implementation of the DefaultTerm class
- * @author: Generated by autocreate code
+ * @file   DefaultTerm.cpp
+ * @brief  Implementation of the DefaultTerm class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/DefaultTerm.h b/src/sbml/packages/qual/sbml/DefaultTerm.h
index 03ae996..311f2fe 100644
--- a/src/sbml/packages/qual/sbml/DefaultTerm.h
+++ b/src/sbml/packages/qual/sbml/DefaultTerm.h
@@ -1,13 +1,13 @@
 /**
- * @file:   DefaultTerm.h
- * @brief:  Implementation of the DefaultTerm class
- * @author: Generated by autocreate code
+ * @file   DefaultTerm.h
+ * @brief  Implementation of the DefaultTerm class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/FunctionTerm.cpp b/src/sbml/packages/qual/sbml/FunctionTerm.cpp
index 48515df..e440dcb 100644
--- a/src/sbml/packages/qual/sbml/FunctionTerm.cpp
+++ b/src/sbml/packages/qual/sbml/FunctionTerm.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   FunctionTerm.cpp
- * @brief:  Implementation of the FunctionTerm class
- * @author: Generated by autocreate code
+ * @file   FunctionTerm.cpp
+ * @brief  Implementation of the FunctionTerm class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/FunctionTerm.h b/src/sbml/packages/qual/sbml/FunctionTerm.h
index 26608a6..d5da72c 100644
--- a/src/sbml/packages/qual/sbml/FunctionTerm.h
+++ b/src/sbml/packages/qual/sbml/FunctionTerm.h
@@ -1,13 +1,13 @@
 /**
- * @file:   FunctionTerm.h
- * @brief:  Implementation of the FunctionTerm class
- * @author: Generated by autocreate code
+ * @file   FunctionTerm.h
+ * @brief  Implementation of the FunctionTerm class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/Input.cpp b/src/sbml/packages/qual/sbml/Input.cpp
index 7ee4008..9e083c8 100644
--- a/src/sbml/packages/qual/sbml/Input.cpp
+++ b/src/sbml/packages/qual/sbml/Input.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   Input.cpp
- * @brief:  Implementation of the Input class
- * @author: Generated by autocreate code
+ * @file   Input.cpp
+ * @brief  Implementation of the Input class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/Input.h b/src/sbml/packages/qual/sbml/Input.h
index d6abb1a..1714a95 100644
--- a/src/sbml/packages/qual/sbml/Input.h
+++ b/src/sbml/packages/qual/sbml/Input.h
@@ -1,13 +1,13 @@
 /**
- * @file:   Input.h
- * @brief:  Implementation of the Input class
- * @author: Generated by autocreate code
+ * @file   Input.h
+ * @brief  Implementation of the Input class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/Makefile.in b/src/sbml/packages/qual/sbml/Makefile.in
index 6a94bfe..3024e39 100644
--- a/src/sbml/packages/qual/sbml/Makefile.in
+++ b/src/sbml/packages/qual/sbml/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/Output.cpp b/src/sbml/packages/qual/sbml/Output.cpp
index 6a60671..fcb5bde 100644
--- a/src/sbml/packages/qual/sbml/Output.cpp
+++ b/src/sbml/packages/qual/sbml/Output.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   Output.cpp
- * @brief:  Implementation of the Output class
- * @author: Generated by autocreate code
+ * @file   Output.cpp
+ * @brief  Implementation of the Output class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/Output.h b/src/sbml/packages/qual/sbml/Output.h
index a6ecdac..68a833b 100644
--- a/src/sbml/packages/qual/sbml/Output.h
+++ b/src/sbml/packages/qual/sbml/Output.h
@@ -1,13 +1,13 @@
 /**
- * @file:   Output.h
- * @brief:  Implementation of the Output class
- * @author: Generated by autocreate code
+ * @file   Output.h
+ * @brief  Implementation of the Output class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/QualitativeSpecies.cpp b/src/sbml/packages/qual/sbml/QualitativeSpecies.cpp
index e56e753..a9dfe0d 100644
--- a/src/sbml/packages/qual/sbml/QualitativeSpecies.cpp
+++ b/src/sbml/packages/qual/sbml/QualitativeSpecies.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   QualitativeSpecies.cpp
- * @brief:  Implementation of the QualitativeSpecies class
- * @author: Generated by autocreate code
+ * @file   QualitativeSpecies.cpp
+ * @brief  Implementation of the QualitativeSpecies class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/QualitativeSpecies.h b/src/sbml/packages/qual/sbml/QualitativeSpecies.h
index 5e9cd85..4b81793 100644
--- a/src/sbml/packages/qual/sbml/QualitativeSpecies.h
+++ b/src/sbml/packages/qual/sbml/QualitativeSpecies.h
@@ -1,13 +1,13 @@
 /**
- * @file:   QualitativeSpecies.h
- * @brief:  Implementation of the QualitativeSpecies class
- * @author: Generated by autocreate code
+ * @file   QualitativeSpecies.h
+ * @brief  Implementation of the QualitativeSpecies class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/Transition.cpp b/src/sbml/packages/qual/sbml/Transition.cpp
index 2598368..fb7dec9 100644
--- a/src/sbml/packages/qual/sbml/Transition.cpp
+++ b/src/sbml/packages/qual/sbml/Transition.cpp
@@ -1,13 +1,13 @@
 /**
- * @file:   Transition.cpp
- * @brief:  Implementation of the Transition class
- * @author: Generated by autocreate code
+ * @file   Transition.cpp
+ * @brief  Implementation of the Transition class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -915,21 +915,12 @@ Transition::getTypeCode () const
  * check if all the required attributes are set
  */
 bool
-Transition::hasRequiredAttributes () const
-{
-  bool allPresent = true;
-
-  return allPresent;
-}
-
-
-/*
- * check if all the required attributes are set
- */
-bool
 Transition::hasRequiredElements () const
 {
   bool allPresent = true;
+  if (!isSetDefaultTerm()) {
+    allPresent = false;
+  }
 
   return allPresent;
 }
diff --git a/src/sbml/packages/qual/sbml/Transition.h b/src/sbml/packages/qual/sbml/Transition.h
index 200d0ce..e113950 100644
--- a/src/sbml/packages/qual/sbml/Transition.h
+++ b/src/sbml/packages/qual/sbml/Transition.h
@@ -1,13 +1,13 @@
 /**
- * @file: Transition.h
- * @brief: Implementation of the Transition class
- * @author: Generated by autocreate code
+ * @file Transition.h
+ * @brief Implementation of the Transition class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -813,21 +813,8 @@ public:
    * Predicate returning @c true if all the required attributes
    * for this Transition object have been set.
    *
-   * @note The required attributes for a Transition object are:
-   * @li "output"
-   *
-   * @return a boolean value indicating whether all the required
-   * attributes for this object have been defined.
-   */
-  virtual bool hasRequiredAttributes() const;
-
-
-  /**
-   * Predicate returning @c true if all the required attributes
-   * for this Transition object have been set.
-   *
    * @note The required elements for a Transition object are:
-   * @li "output"
+   * @li a "defaultTerm" child of the child ListOfFunctionTerms.
    *
    * @return a boolean value indicating whether all the required
    * elements for this object have been defined.
diff --git a/src/sbml/packages/qual/sbml/test/CMakeLists.txt b/src/sbml/packages/qual/sbml/test/CMakeLists.txt
index 4d3b1a5..f9d6a39 100644
--- a/src/sbml/packages/qual/sbml/test/CMakeLists.txt
+++ b/src/sbml/packages/qual/sbml/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/Makefile.in b/src/sbml/packages/qual/sbml/test/Makefile.in
index 5ecbc8a..e3bd6f5 100644
--- a/src/sbml/packages/qual/sbml/test/Makefile.in
+++ b/src/sbml/packages/qual/sbml/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestCopyAndClone.cpp b/src/sbml/packages/qual/sbml/test/TestCopyAndClone.cpp
index 43a7293..72e4bc9 100644
--- a/src/sbml/packages/qual/sbml/test/TestCopyAndClone.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestCopyAndClone.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestDefaultTerm.cpp b/src/sbml/packages/qual/sbml/test/TestDefaultTerm.cpp
index 4103bf6..fe76e1b 100644
--- a/src/sbml/packages/qual/sbml/test/TestDefaultTerm.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestDefaultTerm.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestFunctionTerm.cpp b/src/sbml/packages/qual/sbml/test/TestFunctionTerm.cpp
index 62a7767..2279e8f 100644
--- a/src/sbml/packages/qual/sbml/test/TestFunctionTerm.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestFunctionTerm.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestInput.cpp b/src/sbml/packages/qual/sbml/test/TestInput.cpp
index 43408da..626360e 100644
--- a/src/sbml/packages/qual/sbml/test/TestInput.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestInput.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestListOfFunctionTerms.cpp b/src/sbml/packages/qual/sbml/test/TestListOfFunctionTerms.cpp
index 679d330..00e463c 100644
--- a/src/sbml/packages/qual/sbml/test/TestListOfFunctionTerms.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestListOfFunctionTerms.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestOutput.cpp b/src/sbml/packages/qual/sbml/test/TestOutput.cpp
index 5de7e89..e039c12 100644
--- a/src/sbml/packages/qual/sbml/test/TestOutput.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestOutput.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestQualitativeSpecies.cpp b/src/sbml/packages/qual/sbml/test/TestQualitativeSpecies.cpp
index 1a1d36c..3bd8456 100644
--- a/src/sbml/packages/qual/sbml/test/TestQualitativeSpecies.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestQualitativeSpecies.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestRunner.c b/src/sbml/packages/qual/sbml/test/TestRunner.c
index f882870..4b8fc0d 100644
--- a/src/sbml/packages/qual/sbml/test/TestRunner.c
+++ b/src/sbml/packages/qual/sbml/test/TestRunner.c
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/sbml/test/TestTransition.cpp b/src/sbml/packages/qual/sbml/test/TestTransition.cpp
index d2750ed..c3622ab 100644
--- a/src/sbml/packages/qual/sbml/test/TestTransition.cpp
+++ b/src/sbml/packages/qual/sbml/test/TestTransition.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/Makefile.in b/src/sbml/packages/qual/validator/Makefile.in
index 8f2547d..56eafc7 100644
--- a/src/sbml/packages/qual/validator/Makefile.in
+++ b/src/sbml/packages/qual/validator/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualConsistencyValidator.cpp b/src/sbml/packages/qual/validator/QualConsistencyValidator.cpp
index 4213ba0..69eaa62 100644
--- a/src/sbml/packages/qual/validator/QualConsistencyValidator.cpp
+++ b/src/sbml/packages/qual/validator/QualConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualConsistencyValidator.h b/src/sbml/packages/qual/validator/QualConsistencyValidator.h
index 14b6d6c..b0f6284 100644
--- a/src/sbml/packages/qual/validator/QualConsistencyValidator.h
+++ b/src/sbml/packages/qual/validator/QualConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.cpp b/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.cpp
index 2abf10a..68eafcc 100644
--- a/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.h b/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.h
index 9953674..d82c140 100644
--- a/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/qual/validator/QualIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualMathConsistencyValidator.cpp b/src/sbml/packages/qual/validator/QualMathConsistencyValidator.cpp
index 1861f39..9dacc8e 100644
--- a/src/sbml/packages/qual/validator/QualMathConsistencyValidator.cpp
+++ b/src/sbml/packages/qual/validator/QualMathConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualMathConsistencyValidator.h b/src/sbml/packages/qual/validator/QualMathConsistencyValidator.h
index ce3c106..35afe1c 100644
--- a/src/sbml/packages/qual/validator/QualMathConsistencyValidator.h
+++ b/src/sbml/packages/qual/validator/QualMathConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualSBMLError.h b/src/sbml/packages/qual/validator/QualSBMLError.h
index 068ee2e..073c173 100644
--- a/src/sbml/packages/qual/validator/QualSBMLError.h
+++ b/src/sbml/packages/qual/validator/QualSBMLError.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualSBMLErrorTable.h b/src/sbml/packages/qual/validator/QualSBMLErrorTable.h
index 7518590..856e142 100644
--- a/src/sbml/packages/qual/validator/QualSBMLErrorTable.h
+++ b/src/sbml/packages/qual/validator/QualSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualValidator.cpp b/src/sbml/packages/qual/validator/QualValidator.cpp
index 71af441..7f8910f 100644
--- a/src/sbml/packages/qual/validator/QualValidator.cpp
+++ b/src/sbml/packages/qual/validator/QualValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/QualValidator.h b/src/sbml/packages/qual/validator/QualValidator.h
index 9b5fbf8..3ae4058 100644
--- a/src/sbml/packages/qual/validator/QualValidator.h
+++ b/src/sbml/packages/qual/validator/QualValidator.h
@@ -1,13 +1,13 @@
 /**
- * @file:   QualValidator.h
- * @brief:  Implementation of the QualValidator class
- * @author: Generated by autocreate code
+ * @file   QualValidator.h
+ * @brief  Implementation of the QualValidator class
+ * @author Generated by autocreate code
  *
  * <!--------------------------------------------------------------------------
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/Makefile.in b/src/sbml/packages/qual/validator/constraints/Makefile.in
index 53875f6..ac29d90 100644
--- a/src/sbml/packages/qual/validator/constraints/Makefile.in
+++ b/src/sbml/packages/qual/validator/constraints/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.cpp b/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.cpp
index d17c770..c2274a3 100644
--- a/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.cpp
+++ b/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.h b/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.h
index b7869dc..5bdb77e 100644
--- a/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.h
+++ b/src/sbml/packages/qual/validator/constraints/QSAssignedOnce.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.cpp b/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.cpp
index a1949d6..fd27cfb 100644
--- a/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.cpp
+++ b/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.h b/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.h
index 7d227d1..17e0155 100644
--- a/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.h
+++ b/src/sbml/packages/qual/validator/constraints/QualCSymbolMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraints.cpp b/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraints.cpp
index de1a5b0..d085758 100644
--- a/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraints.cpp
+++ b/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraintsDeclared.cxx b/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraintsDeclared.cxx
index 0f8e73c..1723b56 100644
--- a/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/qual/validator/constraints/QualConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraints.cpp b/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraints.cpp
index 5dcf85b..6e9aed3 100644
--- a/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraintsDeclared.cxx b/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraintsDeclared.cxx
index e5e3765..7b1f2bf 100644
--- a/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/qual/validator/constraints/QualIdentifierConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraints.cpp b/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraints.cpp
index 91f8da9..261f792 100644
--- a/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraints.cpp
+++ b/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraintsDeclared.cxx b/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraintsDeclared.cxx
index 34a1b2e..a33e178 100644
--- a/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/packages/qual/validator/constraints/QualMathConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.cpp b/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.cpp
index 2086d54..200c647 100644
--- a/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.cpp
+++ b/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.h b/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.h
index a2ac63c..db596d6 100644
--- a/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.h
+++ b/src/sbml/packages/qual/validator/constraints/QualUniqueModelWideIds.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.cpp b/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.cpp
index fd15d6f..f8a9d54 100644
--- a/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.cpp
+++ b/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -67,7 +67,7 @@ ResultBecomesNegative::~ResultBecomesNegative ()
  * event assignments and assignment rules.
  */
 void
-ResultBecomesNegative::check_ (const Model& m, const Model& object)
+ResultBecomesNegative::check_ (const Model& m, const Model& /*object*/)
 {
 
   const QualModelPlugin * plug = 
diff --git a/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.h b/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.h
index 11754df..add4243 100644
--- a/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.h
+++ b/src/sbml/packages/qual/validator/constraints/ResultBecomesNegative.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.cpp b/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.cpp
index 0073697..018c982 100644
--- a/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.cpp
+++ b/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -67,7 +67,7 @@ ResultExceedsMaximum::~ResultExceedsMaximum ()
  * event assignments and assignment rules.
  */
 void
-ResultExceedsMaximum::check_ (const Model& m, const Model& object)
+ResultExceedsMaximum::check_ (const Model& m, const Model& /*object*/)
 {
   const QualModelPlugin * plug = 
                  static_cast<const QualModelPlugin*>(m.getPlugin("qual"));
diff --git a/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.h b/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.h
index 6ad765f..eae4afe 100644
--- a/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.h
+++ b/src/sbml/packages/qual/validator/constraints/ResultExceedsMaximum.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/CMakeLists.txt b/src/sbml/packages/qual/validator/test/CMakeLists.txt
index e03bd7f..e41dae5 100644
--- a/src/sbml/packages/qual/validator/test/CMakeLists.txt
+++ b/src/sbml/packages/qual/validator/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/Makefile.in b/src/sbml/packages/qual/validator/test/Makefile.in
index 21733fb..6bde0a2 100644
--- a/src/sbml/packages/qual/validator/test/Makefile.in
+++ b/src/sbml/packages/qual/validator/test/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/TestFile.cpp b/src/sbml/packages/qual/validator/test/TestFile.cpp
index 0364edc..ba00a41 100644
--- a/src/sbml/packages/qual/validator/test/TestFile.cpp
+++ b/src/sbml/packages/qual/validator/test/TestFile.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/TestFile.h b/src/sbml/packages/qual/validator/test/TestFile.h
index e5b02af..418fb4d 100644
--- a/src/sbml/packages/qual/validator/test/TestFile.h
+++ b/src/sbml/packages/qual/validator/test/TestFile.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/TestQualConsistencyValidator.cpp b/src/sbml/packages/qual/validator/test/TestQualConsistencyValidator.cpp
index 3f2daad..b6eeffd 100644
--- a/src/sbml/packages/qual/validator/test/TestQualConsistencyValidator.cpp
+++ b/src/sbml/packages/qual/validator/test/TestQualConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/TestValidator.cpp b/src/sbml/packages/qual/validator/test/TestValidator.cpp
index 783fa54..9de377b 100644
--- a/src/sbml/packages/qual/validator/test/TestValidator.cpp
+++ b/src/sbml/packages/qual/validator/test/TestValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/TestValidator.h b/src/sbml/packages/qual/validator/test/TestValidator.h
index c84037f..7dc7f37 100644
--- a/src/sbml/packages/qual/validator/test/TestValidator.h
+++ b/src/sbml/packages/qual/validator/test/TestValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/qual/validator/test/test-data/Makefile.in b/src/sbml/packages/qual/validator/test/test-data/Makefile.in
index 5a3d432..48609d0 100644
--- a/src/sbml/packages/qual/validator/test/test-data/Makefile.in
+++ b/src/sbml/packages/qual/validator/test/test-data/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/common/RenderExtensionTypes.h b/src/sbml/packages/render/common/RenderExtensionTypes.h
index 481f732..14d3689 100644
--- a/src/sbml/packages/render/common/RenderExtensionTypes.h
+++ b/src/sbml/packages/render/common/RenderExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderExtension.cpp b/src/sbml/packages/render/extension/RenderExtension.cpp
index 67c05bd..ba9ed3b 100644
--- a/src/sbml/packages/render/extension/RenderExtension.cpp
+++ b/src/sbml/packages/render/extension/RenderExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderExtension.h b/src/sbml/packages/render/extension/RenderExtension.h
index 5ffaf7f..a652f46 100644
--- a/src/sbml/packages/render/extension/RenderExtension.h
+++ b/src/sbml/packages/render/extension/RenderExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.cpp b/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.cpp
index 609e0a1..85cb764 100644
--- a/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.cpp
+++ b/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.h b/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.h
index dbff1a7..277ba27 100644
--- a/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.h
+++ b/src/sbml/packages/render/extension/RenderGraphicalObjectPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderLayoutPlugin.cpp b/src/sbml/packages/render/extension/RenderLayoutPlugin.cpp
index f983624..72eb917 100644
--- a/src/sbml/packages/render/extension/RenderLayoutPlugin.cpp
+++ b/src/sbml/packages/render/extension/RenderLayoutPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderLayoutPlugin.h b/src/sbml/packages/render/extension/RenderLayoutPlugin.h
index ef429be..7925eaa 100644
--- a/src/sbml/packages/render/extension/RenderLayoutPlugin.h
+++ b/src/sbml/packages/render/extension/RenderLayoutPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.cpp b/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.cpp
index 677e411..6336716 100644
--- a/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.cpp
+++ b/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.h b/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.h
index 8ca3318..0787dd9 100644
--- a/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.h
+++ b/src/sbml/packages/render/extension/RenderListOfLayoutsPlugin.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.cpp b/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.cpp
index 8fcce78..d735870 100644
--- a/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.h b/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.h
index a1aaf40..983c098 100644
--- a/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.h
+++ b/src/sbml/packages/render/extension/RenderSBMLDocumentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/ColorDefinition.cpp b/src/sbml/packages/render/sbml/ColorDefinition.cpp
index 6233ccd..20b030a 100644
--- a/src/sbml/packages/render/sbml/ColorDefinition.cpp
+++ b/src/sbml/packages/render/sbml/ColorDefinition.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/ColorDefinition.h b/src/sbml/packages/render/sbml/ColorDefinition.h
index ae3b202..c57f103 100644
--- a/src/sbml/packages/render/sbml/ColorDefinition.h
+++ b/src/sbml/packages/render/sbml/ColorDefinition.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Ellipse.cpp b/src/sbml/packages/render/sbml/Ellipse.cpp
index 7bef861..42c2175 100644
--- a/src/sbml/packages/render/sbml/Ellipse.cpp
+++ b/src/sbml/packages/render/sbml/Ellipse.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Ellipse.h b/src/sbml/packages/render/sbml/Ellipse.h
index f6cf70c..caa48a9 100644
--- a/src/sbml/packages/render/sbml/Ellipse.h
+++ b/src/sbml/packages/render/sbml/Ellipse.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GlobalRenderInformation.cpp b/src/sbml/packages/render/sbml/GlobalRenderInformation.cpp
index 6125d25..fe39054 100644
--- a/src/sbml/packages/render/sbml/GlobalRenderInformation.cpp
+++ b/src/sbml/packages/render/sbml/GlobalRenderInformation.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GlobalRenderInformation.h b/src/sbml/packages/render/sbml/GlobalRenderInformation.h
index da7c082..1a5d2d3 100644
--- a/src/sbml/packages/render/sbml/GlobalRenderInformation.h
+++ b/src/sbml/packages/render/sbml/GlobalRenderInformation.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GlobalStyle.cpp b/src/sbml/packages/render/sbml/GlobalStyle.cpp
index 3c04393..dbfff7f 100644
--- a/src/sbml/packages/render/sbml/GlobalStyle.cpp
+++ b/src/sbml/packages/render/sbml/GlobalStyle.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GlobalStyle.h b/src/sbml/packages/render/sbml/GlobalStyle.h
index 1a39c2e..1b639d5 100644
--- a/src/sbml/packages/render/sbml/GlobalStyle.h
+++ b/src/sbml/packages/render/sbml/GlobalStyle.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GradientBase.cpp b/src/sbml/packages/render/sbml/GradientBase.cpp
index f1fe88d..7d54bdd 100644
--- a/src/sbml/packages/render/sbml/GradientBase.cpp
+++ b/src/sbml/packages/render/sbml/GradientBase.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GradientBase.h b/src/sbml/packages/render/sbml/GradientBase.h
index ca31454..270163d 100644
--- a/src/sbml/packages/render/sbml/GradientBase.h
+++ b/src/sbml/packages/render/sbml/GradientBase.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GradientStop.cpp b/src/sbml/packages/render/sbml/GradientStop.cpp
index a4bab19..b082ec4 100644
--- a/src/sbml/packages/render/sbml/GradientStop.cpp
+++ b/src/sbml/packages/render/sbml/GradientStop.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GradientStop.h b/src/sbml/packages/render/sbml/GradientStop.h
index c418ac4..dc3be63 100644
--- a/src/sbml/packages/render/sbml/GradientStop.h
+++ b/src/sbml/packages/render/sbml/GradientStop.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GraphicalPrimitive1D.cpp b/src/sbml/packages/render/sbml/GraphicalPrimitive1D.cpp
index 0145071..d1068a3 100644
--- a/src/sbml/packages/render/sbml/GraphicalPrimitive1D.cpp
+++ b/src/sbml/packages/render/sbml/GraphicalPrimitive1D.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GraphicalPrimitive1D.h b/src/sbml/packages/render/sbml/GraphicalPrimitive1D.h
index 8f8bcfb..fd78b13 100644
--- a/src/sbml/packages/render/sbml/GraphicalPrimitive1D.h
+++ b/src/sbml/packages/render/sbml/GraphicalPrimitive1D.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GraphicalPrimitive2D.cpp b/src/sbml/packages/render/sbml/GraphicalPrimitive2D.cpp
index 3ff3d82..ebe1767 100644
--- a/src/sbml/packages/render/sbml/GraphicalPrimitive2D.cpp
+++ b/src/sbml/packages/render/sbml/GraphicalPrimitive2D.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/GraphicalPrimitive2D.h b/src/sbml/packages/render/sbml/GraphicalPrimitive2D.h
index 793bdac..9bae2b5 100644
--- a/src/sbml/packages/render/sbml/GraphicalPrimitive2D.h
+++ b/src/sbml/packages/render/sbml/GraphicalPrimitive2D.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Image.cpp b/src/sbml/packages/render/sbml/Image.cpp
index 6f28143..15d0189 100644
--- a/src/sbml/packages/render/sbml/Image.cpp
+++ b/src/sbml/packages/render/sbml/Image.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Image.h b/src/sbml/packages/render/sbml/Image.h
index 763826d..7adb8ea 100644
--- a/src/sbml/packages/render/sbml/Image.h
+++ b/src/sbml/packages/render/sbml/Image.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LineEnding.cpp b/src/sbml/packages/render/sbml/LineEnding.cpp
index 61456fa..f95b0a6 100644
--- a/src/sbml/packages/render/sbml/LineEnding.cpp
+++ b/src/sbml/packages/render/sbml/LineEnding.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LineEnding.h b/src/sbml/packages/render/sbml/LineEnding.h
index c72365c..a7b667e 100644
--- a/src/sbml/packages/render/sbml/LineEnding.h
+++ b/src/sbml/packages/render/sbml/LineEnding.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LinearGradient.cpp b/src/sbml/packages/render/sbml/LinearGradient.cpp
index 7e087ff..36d8bf2 100644
--- a/src/sbml/packages/render/sbml/LinearGradient.cpp
+++ b/src/sbml/packages/render/sbml/LinearGradient.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LinearGradient.h b/src/sbml/packages/render/sbml/LinearGradient.h
index 95d6b86..b6a06a8 100644
--- a/src/sbml/packages/render/sbml/LinearGradient.h
+++ b/src/sbml/packages/render/sbml/LinearGradient.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/ListOfCurveElements.cpp b/src/sbml/packages/render/sbml/ListOfCurveElements.cpp
index 57bae10..e2d4c89 100644
--- a/src/sbml/packages/render/sbml/ListOfCurveElements.cpp
+++ b/src/sbml/packages/render/sbml/ListOfCurveElements.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/ListOfCurveElements.h b/src/sbml/packages/render/sbml/ListOfCurveElements.h
index a25ecca..a3f0722 100644
--- a/src/sbml/packages/render/sbml/ListOfCurveElements.h
+++ b/src/sbml/packages/render/sbml/ListOfCurveElements.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LocalRenderInformation.cpp b/src/sbml/packages/render/sbml/LocalRenderInformation.cpp
index b834957..77091b0 100644
--- a/src/sbml/packages/render/sbml/LocalRenderInformation.cpp
+++ b/src/sbml/packages/render/sbml/LocalRenderInformation.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LocalRenderInformation.h b/src/sbml/packages/render/sbml/LocalRenderInformation.h
index c0fc9be..029b787 100644
--- a/src/sbml/packages/render/sbml/LocalRenderInformation.h
+++ b/src/sbml/packages/render/sbml/LocalRenderInformation.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LocalStyle.cpp b/src/sbml/packages/render/sbml/LocalStyle.cpp
index be8a3db..b4abf62 100644
--- a/src/sbml/packages/render/sbml/LocalStyle.cpp
+++ b/src/sbml/packages/render/sbml/LocalStyle.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/LocalStyle.h b/src/sbml/packages/render/sbml/LocalStyle.h
index 193b81f..7587d64 100644
--- a/src/sbml/packages/render/sbml/LocalStyle.h
+++ b/src/sbml/packages/render/sbml/LocalStyle.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Polygon.cpp b/src/sbml/packages/render/sbml/Polygon.cpp
index 9c79f0a..2d50ad5 100644
--- a/src/sbml/packages/render/sbml/Polygon.cpp
+++ b/src/sbml/packages/render/sbml/Polygon.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Polygon.h b/src/sbml/packages/render/sbml/Polygon.h
index 5698384..7ce901b 100644
--- a/src/sbml/packages/render/sbml/Polygon.h
+++ b/src/sbml/packages/render/sbml/Polygon.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RadialGradient.cpp b/src/sbml/packages/render/sbml/RadialGradient.cpp
index fb300a5..57f04fd 100644
--- a/src/sbml/packages/render/sbml/RadialGradient.cpp
+++ b/src/sbml/packages/render/sbml/RadialGradient.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RadialGradient.h b/src/sbml/packages/render/sbml/RadialGradient.h
index 7724125..c97dc3f 100644
--- a/src/sbml/packages/render/sbml/RadialGradient.h
+++ b/src/sbml/packages/render/sbml/RadialGradient.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Rectangle.cpp b/src/sbml/packages/render/sbml/Rectangle.cpp
index 1a774b7..d444092 100644
--- a/src/sbml/packages/render/sbml/Rectangle.cpp
+++ b/src/sbml/packages/render/sbml/Rectangle.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Rectangle.h b/src/sbml/packages/render/sbml/Rectangle.h
index 85095bf..2fa2654 100644
--- a/src/sbml/packages/render/sbml/Rectangle.h
+++ b/src/sbml/packages/render/sbml/Rectangle.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RelAbsVector.cpp b/src/sbml/packages/render/sbml/RelAbsVector.cpp
index 96389ff..6361e5a 100644
--- a/src/sbml/packages/render/sbml/RelAbsVector.cpp
+++ b/src/sbml/packages/render/sbml/RelAbsVector.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RelAbsVector.h b/src/sbml/packages/render/sbml/RelAbsVector.h
index 31310a0..b8c1722 100644
--- a/src/sbml/packages/render/sbml/RelAbsVector.h
+++ b/src/sbml/packages/render/sbml/RelAbsVector.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderCubicBezier.cpp b/src/sbml/packages/render/sbml/RenderCubicBezier.cpp
index 61a2856..f5056d7 100644
--- a/src/sbml/packages/render/sbml/RenderCubicBezier.cpp
+++ b/src/sbml/packages/render/sbml/RenderCubicBezier.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderCubicBezier.h b/src/sbml/packages/render/sbml/RenderCubicBezier.h
index 073b01b..913e5f7 100644
--- a/src/sbml/packages/render/sbml/RenderCubicBezier.h
+++ b/src/sbml/packages/render/sbml/RenderCubicBezier.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderCurve.cpp b/src/sbml/packages/render/sbml/RenderCurve.cpp
index 079417c..9d016a3 100644
--- a/src/sbml/packages/render/sbml/RenderCurve.cpp
+++ b/src/sbml/packages/render/sbml/RenderCurve.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderCurve.h b/src/sbml/packages/render/sbml/RenderCurve.h
index 72d6ca3..47b58fa 100644
--- a/src/sbml/packages/render/sbml/RenderCurve.h
+++ b/src/sbml/packages/render/sbml/RenderCurve.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderGroup.cpp b/src/sbml/packages/render/sbml/RenderGroup.cpp
index 6adbaac..e1d632f 100644
--- a/src/sbml/packages/render/sbml/RenderGroup.cpp
+++ b/src/sbml/packages/render/sbml/RenderGroup.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderGroup.h b/src/sbml/packages/render/sbml/RenderGroup.h
index 19942e7..91c3410 100644
--- a/src/sbml/packages/render/sbml/RenderGroup.h
+++ b/src/sbml/packages/render/sbml/RenderGroup.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderInformationBase.cpp b/src/sbml/packages/render/sbml/RenderInformationBase.cpp
index 71f8b71..c702d8f 100644
--- a/src/sbml/packages/render/sbml/RenderInformationBase.cpp
+++ b/src/sbml/packages/render/sbml/RenderInformationBase.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderInformationBase.h b/src/sbml/packages/render/sbml/RenderInformationBase.h
index f98f2ce..3a9f774 100644
--- a/src/sbml/packages/render/sbml/RenderInformationBase.h
+++ b/src/sbml/packages/render/sbml/RenderInformationBase.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderPoint.cpp b/src/sbml/packages/render/sbml/RenderPoint.cpp
index 1169f5d..2425c5c 100644
--- a/src/sbml/packages/render/sbml/RenderPoint.cpp
+++ b/src/sbml/packages/render/sbml/RenderPoint.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/RenderPoint.h b/src/sbml/packages/render/sbml/RenderPoint.h
index 7cc179f..b9e785a 100644
--- a/src/sbml/packages/render/sbml/RenderPoint.h
+++ b/src/sbml/packages/render/sbml/RenderPoint.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Style.cpp b/src/sbml/packages/render/sbml/Style.cpp
index fa001f7..e370931 100644
--- a/src/sbml/packages/render/sbml/Style.cpp
+++ b/src/sbml/packages/render/sbml/Style.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Style.h b/src/sbml/packages/render/sbml/Style.h
index 67c73dd..b95a700 100644
--- a/src/sbml/packages/render/sbml/Style.h
+++ b/src/sbml/packages/render/sbml/Style.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Text.cpp b/src/sbml/packages/render/sbml/Text.cpp
index c5d9660..186e956 100644
--- a/src/sbml/packages/render/sbml/Text.cpp
+++ b/src/sbml/packages/render/sbml/Text.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Text.h b/src/sbml/packages/render/sbml/Text.h
index fd1d994..e9c86c5 100644
--- a/src/sbml/packages/render/sbml/Text.h
+++ b/src/sbml/packages/render/sbml/Text.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Transformation.cpp b/src/sbml/packages/render/sbml/Transformation.cpp
index da4b9f4..dcb3e58 100644
--- a/src/sbml/packages/render/sbml/Transformation.cpp
+++ b/src/sbml/packages/render/sbml/Transformation.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Transformation.h b/src/sbml/packages/render/sbml/Transformation.h
index f52fd88..d3ecdef 100644
--- a/src/sbml/packages/render/sbml/Transformation.h
+++ b/src/sbml/packages/render/sbml/Transformation.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Transformation2D.cpp b/src/sbml/packages/render/sbml/Transformation2D.cpp
index 43e6350..ffff541 100644
--- a/src/sbml/packages/render/sbml/Transformation2D.cpp
+++ b/src/sbml/packages/render/sbml/Transformation2D.cpp
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/Transformation2D.h b/src/sbml/packages/render/sbml/Transformation2D.h
index 89b4070..466e206 100644
--- a/src/sbml/packages/render/sbml/Transformation2D.h
+++ b/src/sbml/packages/render/sbml/Transformation2D.h
@@ -8,7 +8,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/sbml/test/TestRenderWriting.cpp b/src/sbml/packages/render/sbml/test/TestRenderWriting.cpp
index 535b719..abc5933 100644
--- a/src/sbml/packages/render/sbml/test/TestRenderWriting.cpp
+++ b/src/sbml/packages/render/sbml/test/TestRenderWriting.cpp
@@ -59,7 +59,6 @@
 #include <sbml/packages/layout/sbml/CubicBezier.h>
 #include <sbml/packages/layout/sbml/Curve.h>
 
-
 #include <sbml/packages/render/extension/RenderLayoutPlugin.h>
 #include <sbml/packages/render/extension/RenderListOfLayoutsPlugin.h>
 #include <sbml/packages/render/extension/RenderGraphicalObjectPlugin.h>
@@ -6178,7 +6177,6 @@ START_TEST (test_RenderWriting_write_L3_model_2)
   fail_unless(pStyle2_1 != NULL);
   if(pStyle2_1->getId() == "style_for_graphical_object_2")
   {
-      pStyle2_1=pStyle2_1;
       pStyle2_1=pLocalRenderInfo2->getStyle(1);
   }
   else
diff --git a/src/sbml/packages/render/util/RenderLayoutConverter.cpp b/src/sbml/packages/render/util/RenderLayoutConverter.cpp
index fc47eb0..4ed199a 100644
--- a/src/sbml/packages/render/util/RenderLayoutConverter.cpp
+++ b/src/sbml/packages/render/util/RenderLayoutConverter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/util/RenderLayoutConverter.h b/src/sbml/packages/render/util/RenderLayoutConverter.h
index 56e6177..6bc5c15 100644
--- a/src/sbml/packages/render/util/RenderLayoutConverter.h
+++ b/src/sbml/packages/render/util/RenderLayoutConverter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/util/RenderUtilities.cpp b/src/sbml/packages/render/util/RenderUtilities.cpp
index fb015bb..8bfc238 100644
--- a/src/sbml/packages/render/util/RenderUtilities.cpp
+++ b/src/sbml/packages/render/util/RenderUtilities.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/render/util/RenderUtilities.h b/src/sbml/packages/render/util/RenderUtilities.h
index ace336a..eb689ee 100644
--- a/src/sbml/packages/render/util/RenderUtilities.h
+++ b/src/sbml/packages/render/util/RenderUtilities.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req-register.cxx b/src/sbml/packages/req-register.cxx
index 69fb16f..9198f84 100644
--- a/src/sbml/packages/req-register.cxx
+++ b/src/sbml/packages/req-register.cxx
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req-register.h b/src/sbml/packages/req-register.h
index 6f4ac1f..161162f 100644
--- a/src/sbml/packages/req-register.h
+++ b/src/sbml/packages/req-register.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/common/ReqExtensionTypes.h b/src/sbml/packages/req/common/ReqExtensionTypes.h
index 14b495a..134f0ba 100644
--- a/src/sbml/packages/req/common/ReqExtensionTypes.h
+++ b/src/sbml/packages/req/common/ReqExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/common/reqfwd.h b/src/sbml/packages/req/common/reqfwd.h
index 274613c..f13857a 100644
--- a/src/sbml/packages/req/common/reqfwd.h
+++ b/src/sbml/packages/req/common/reqfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/extension/ReqExtension.cpp b/src/sbml/packages/req/extension/ReqExtension.cpp
index d7fc1bc..fbd5389 100644
--- a/src/sbml/packages/req/extension/ReqExtension.cpp
+++ b/src/sbml/packages/req/extension/ReqExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/extension/ReqExtension.h b/src/sbml/packages/req/extension/ReqExtension.h
index 28772e8..461b7ff 100644
--- a/src/sbml/packages/req/extension/ReqExtension.h
+++ b/src/sbml/packages/req/extension/ReqExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.cpp b/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.cpp
index 3f47405..7525d44 100644
--- a/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.h b/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.h
index 775c7af..167010c 100644
--- a/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.h
+++ b/src/sbml/packages/req/extension/ReqSBMLDocumentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/extension/ReqSBasePlugin.cpp b/src/sbml/packages/req/extension/ReqSBasePlugin.cpp
index b97548e..9df676b 100644
--- a/src/sbml/packages/req/extension/ReqSBasePlugin.cpp
+++ b/src/sbml/packages/req/extension/ReqSBasePlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/extension/ReqSBasePlugin.h b/src/sbml/packages/req/extension/ReqSBasePlugin.h
index 2303936..9f81d03 100644
--- a/src/sbml/packages/req/extension/ReqSBasePlugin.h
+++ b/src/sbml/packages/req/extension/ReqSBasePlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/extension/test/CMakeLists.txt b/src/sbml/packages/req/extension/test/CMakeLists.txt
index 4f1c61f..d028943 100644
--- a/src/sbml/packages/req/extension/test/CMakeLists.txt
+++ b/src/sbml/packages/req/extension/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ## 
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/sbml/ChangedMath.cpp b/src/sbml/packages/req/sbml/ChangedMath.cpp
index 0787815..93a1baa 100644
--- a/src/sbml/packages/req/sbml/ChangedMath.cpp
+++ b/src/sbml/packages/req/sbml/ChangedMath.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/sbml/ChangedMath.h b/src/sbml/packages/req/sbml/ChangedMath.h
index 58791d1..04b5dac 100644
--- a/src/sbml/packages/req/sbml/ChangedMath.h
+++ b/src/sbml/packages/req/sbml/ChangedMath.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqConsistencyValidator.cpp b/src/sbml/packages/req/validator/ReqConsistencyValidator.cpp
index e055642..b13e836 100644
--- a/src/sbml/packages/req/validator/ReqConsistencyValidator.cpp
+++ b/src/sbml/packages/req/validator/ReqConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqConsistencyValidator.h b/src/sbml/packages/req/validator/ReqConsistencyValidator.h
index 961b4aa..58638ec 100644
--- a/src/sbml/packages/req/validator/ReqConsistencyValidator.h
+++ b/src/sbml/packages/req/validator/ReqConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.cpp b/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.cpp
index e2f44d8..95d6eca 100644
--- a/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.h b/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.h
index 37b379e..c6a1684 100644
--- a/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/req/validator/ReqIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqSBMLError.h b/src/sbml/packages/req/validator/ReqSBMLError.h
index 43b2908..f44e817 100644
--- a/src/sbml/packages/req/validator/ReqSBMLError.h
+++ b/src/sbml/packages/req/validator/ReqSBMLError.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqSBMLErrorTable.h b/src/sbml/packages/req/validator/ReqSBMLErrorTable.h
index 7e546e0..74c76f0 100644
--- a/src/sbml/packages/req/validator/ReqSBMLErrorTable.h
+++ b/src/sbml/packages/req/validator/ReqSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqValidator.cpp b/src/sbml/packages/req/validator/ReqValidator.cpp
index c108321..9ce3841 100644
--- a/src/sbml/packages/req/validator/ReqValidator.cpp
+++ b/src/sbml/packages/req/validator/ReqValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/ReqValidator.h b/src/sbml/packages/req/validator/ReqValidator.h
index d4ee9d0..c270961 100644
--- a/src/sbml/packages/req/validator/ReqValidator.h
+++ b/src/sbml/packages/req/validator/ReqValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/constraints/ReqConsistencyConstraints.cpp b/src/sbml/packages/req/validator/constraints/ReqConsistencyConstraints.cpp
index 84415e3..450ab39 100644
--- a/src/sbml/packages/req/validator/constraints/ReqConsistencyConstraints.cpp
+++ b/src/sbml/packages/req/validator/constraints/ReqConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/req/validator/constraints/ReqIdentifierConsistencyConstraints.cpp b/src/sbml/packages/req/validator/constraints/ReqIdentifierConsistencyConstraints.cpp
index 0db1c75..5214434 100644
--- a/src/sbml/packages/req/validator/constraints/ReqIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/req/validator/constraints/ReqIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial-register.cxx b/src/sbml/packages/spatial-register.cxx
index a0b639d..2a80c1b 100644
--- a/src/sbml/packages/spatial-register.cxx
+++ b/src/sbml/packages/spatial-register.cxx
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial-register.h b/src/sbml/packages/spatial-register.h
index 28697ca..9838b4c 100644
--- a/src/sbml/packages/spatial-register.h
+++ b/src/sbml/packages/spatial-register.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/common/SpatialExtensionTypes.h b/src/sbml/packages/spatial/common/SpatialExtensionTypes.h
index b28bb9e..2f414ae 100644
--- a/src/sbml/packages/spatial/common/SpatialExtensionTypes.h
+++ b/src/sbml/packages/spatial/common/SpatialExtensionTypes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/common/spatialfwd.h b/src/sbml/packages/spatial/common/spatialfwd.h
index 1e0cc49..e88887b 100644
--- a/src/sbml/packages/spatial/common/spatialfwd.h
+++ b/src/sbml/packages/spatial/common/spatialfwd.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.cpp b/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.cpp
index fade528..27c7996 100644
--- a/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.cpp
+++ b/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.h b/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.h
index cdab4e2..7641d11 100644
--- a/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.h
+++ b/src/sbml/packages/spatial/extension/SpatialCompartmentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialExtension.cpp b/src/sbml/packages/spatial/extension/SpatialExtension.cpp
index 1b36aab..e8425a5 100644
--- a/src/sbml/packages/spatial/extension/SpatialExtension.cpp
+++ b/src/sbml/packages/spatial/extension/SpatialExtension.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialExtension.h b/src/sbml/packages/spatial/extension/SpatialExtension.h
index 33a3420..dc09f22 100644
--- a/src/sbml/packages/spatial/extension/SpatialExtension.h
+++ b/src/sbml/packages/spatial/extension/SpatialExtension.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialModelPlugin.cpp b/src/sbml/packages/spatial/extension/SpatialModelPlugin.cpp
index 5c01eda..dbe2590 100644
--- a/src/sbml/packages/spatial/extension/SpatialModelPlugin.cpp
+++ b/src/sbml/packages/spatial/extension/SpatialModelPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialModelPlugin.h b/src/sbml/packages/spatial/extension/SpatialModelPlugin.h
index 7d2c15e..938b95e 100644
--- a/src/sbml/packages/spatial/extension/SpatialModelPlugin.h
+++ b/src/sbml/packages/spatial/extension/SpatialModelPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialParameterPlugin.cpp b/src/sbml/packages/spatial/extension/SpatialParameterPlugin.cpp
index 6b5f558..f7dfb5b 100644
--- a/src/sbml/packages/spatial/extension/SpatialParameterPlugin.cpp
+++ b/src/sbml/packages/spatial/extension/SpatialParameterPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialParameterPlugin.h b/src/sbml/packages/spatial/extension/SpatialParameterPlugin.h
index 3a6a065..b2b01df 100644
--- a/src/sbml/packages/spatial/extension/SpatialParameterPlugin.h
+++ b/src/sbml/packages/spatial/extension/SpatialParameterPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialReactionPlugin.cpp b/src/sbml/packages/spatial/extension/SpatialReactionPlugin.cpp
index 1ecd991..ae4cfc5 100644
--- a/src/sbml/packages/spatial/extension/SpatialReactionPlugin.cpp
+++ b/src/sbml/packages/spatial/extension/SpatialReactionPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialReactionPlugin.h b/src/sbml/packages/spatial/extension/SpatialReactionPlugin.h
index a2736a4..6061085 100644
--- a/src/sbml/packages/spatial/extension/SpatialReactionPlugin.h
+++ b/src/sbml/packages/spatial/extension/SpatialReactionPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.cpp b/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.cpp
index 3606350..a2bdb85 100644
--- a/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.cpp
+++ b/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.h b/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.h
index bbafc4d..89b607f 100644
--- a/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.h
+++ b/src/sbml/packages/spatial/extension/SpatialSBMLDocumentPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.cpp b/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.cpp
index c833843..a38f6e1 100644
--- a/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.cpp
+++ b/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.h b/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.h
index 87b7432..ba815fc 100644
--- a/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.h
+++ b/src/sbml/packages/spatial/extension/SpatialSpeciesPlugin.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/extension/test/TestReadSpatialExtension.cpp b/src/sbml/packages/spatial/extension/test/TestReadSpatialExtension.cpp
index be6c292..1753bc4 100644
--- a/src/sbml/packages/spatial/extension/test/TestReadSpatialExtension.cpp
+++ b/src/sbml/packages/spatial/extension/test/TestReadSpatialExtension.cpp
@@ -810,7 +810,7 @@ END_TEST
 }
 END_TEST
 
-
+/*
 START_TEST (test_SpatialExtension_readwrite_meshonly)
 {
 
@@ -887,7 +887,7 @@ START_TEST (test_SpatialExtension_readwrite_csgonly)
   delete document;
 }
 END_TEST
-
+*/
 
 Suite *
   create_suite_ReadSpatialExtension (void)
diff --git a/src/sbml/packages/spatial/extension/test/TestRunner.c b/src/sbml/packages/spatial/extension/test/TestRunner.c
index ce4af7b..7956e3d 100644
--- a/src/sbml/packages/spatial/extension/test/TestRunner.c
+++ b/src/sbml/packages/spatial/extension/test/TestRunner.c
@@ -11,6 +11,11 @@
 #include <check.h>
 #include <stdlib.h>
 #include <sbml/util/memory.h>
+
+#ifdef LIBSBML_USE_VLD
+  #include <vld.h>
+#endif
+
 #if defined(__cplusplus)
 LIBSBML_CPP_NAMESPACE_USE
 CK_CPPSTART
diff --git a/src/sbml/packages/spatial/sbml/AdjacentDomains.cpp b/src/sbml/packages/spatial/sbml/AdjacentDomains.cpp
index 0e81c93..4b46ac8 100644
--- a/src/sbml/packages/spatial/sbml/AdjacentDomains.cpp
+++ b/src/sbml/packages/spatial/sbml/AdjacentDomains.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/AdjacentDomains.h b/src/sbml/packages/spatial/sbml/AdjacentDomains.h
index e7ce376..9421edb 100644
--- a/src/sbml/packages/spatial/sbml/AdjacentDomains.h
+++ b/src/sbml/packages/spatial/sbml/AdjacentDomains.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/AdvectionCoefficient.cpp b/src/sbml/packages/spatial/sbml/AdvectionCoefficient.cpp
index e4c5f0c..1078de5 100644
--- a/src/sbml/packages/spatial/sbml/AdvectionCoefficient.cpp
+++ b/src/sbml/packages/spatial/sbml/AdvectionCoefficient.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h b/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h
index 224b08a..6b0a88d 100644
--- a/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h
+++ b/src/sbml/packages/spatial/sbml/AdvectionCoefficient.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/AnalyticGeometry.cpp b/src/sbml/packages/spatial/sbml/AnalyticGeometry.cpp
index d15a7ec..fcfa978 100644
--- a/src/sbml/packages/spatial/sbml/AnalyticGeometry.cpp
+++ b/src/sbml/packages/spatial/sbml/AnalyticGeometry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/AnalyticGeometry.h b/src/sbml/packages/spatial/sbml/AnalyticGeometry.h
index ab4ac71..20b3091 100644
--- a/src/sbml/packages/spatial/sbml/AnalyticGeometry.h
+++ b/src/sbml/packages/spatial/sbml/AnalyticGeometry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/AnalyticVolume.cpp b/src/sbml/packages/spatial/sbml/AnalyticVolume.cpp
index ab09b6c..c8d6c54 100644
--- a/src/sbml/packages/spatial/sbml/AnalyticVolume.cpp
+++ b/src/sbml/packages/spatial/sbml/AnalyticVolume.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/AnalyticVolume.h b/src/sbml/packages/spatial/sbml/AnalyticVolume.h
index 0844ae7..da2ed63 100644
--- a/src/sbml/packages/spatial/sbml/AnalyticVolume.h
+++ b/src/sbml/packages/spatial/sbml/AnalyticVolume.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/Boundary.cpp b/src/sbml/packages/spatial/sbml/Boundary.cpp
index 534d107..bc0f88c 100644
--- a/src/sbml/packages/spatial/sbml/Boundary.cpp
+++ b/src/sbml/packages/spatial/sbml/Boundary.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/Boundary.h b/src/sbml/packages/spatial/sbml/Boundary.h
index 68ecd44..f3d7df9 100644
--- a/src/sbml/packages/spatial/sbml/Boundary.h
+++ b/src/sbml/packages/spatial/sbml/Boundary.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/BoundaryCondition.cpp b/src/sbml/packages/spatial/sbml/BoundaryCondition.cpp
index e3dd8fc..5e096da 100644
--- a/src/sbml/packages/spatial/sbml/BoundaryCondition.cpp
+++ b/src/sbml/packages/spatial/sbml/BoundaryCondition.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/BoundaryCondition.h b/src/sbml/packages/spatial/sbml/BoundaryCondition.h
index c5907ce..598c277 100644
--- a/src/sbml/packages/spatial/sbml/BoundaryCondition.h
+++ b/src/sbml/packages/spatial/sbml/BoundaryCondition.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.cpp b/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.cpp
index e7e8ec5..f1ff200 100644
--- a/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h b/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h
index bd932e3..a48747f 100644
--- a/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h
+++ b/src/sbml/packages/spatial/sbml/CSGHomogeneousTransformation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGNode.cpp b/src/sbml/packages/spatial/sbml/CSGNode.cpp
index d700507..d784330 100644
--- a/src/sbml/packages/spatial/sbml/CSGNode.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGNode.h b/src/sbml/packages/spatial/sbml/CSGNode.h
index da06f77..a36ee5e 100644
--- a/src/sbml/packages/spatial/sbml/CSGNode.h
+++ b/src/sbml/packages/spatial/sbml/CSGNode.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGObject.cpp b/src/sbml/packages/spatial/sbml/CSGObject.cpp
index a76f00b..76f0ddb 100644
--- a/src/sbml/packages/spatial/sbml/CSGObject.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGObject.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGObject.h b/src/sbml/packages/spatial/sbml/CSGObject.h
index 8639c92..7a88ceb 100644
--- a/src/sbml/packages/spatial/sbml/CSGObject.h
+++ b/src/sbml/packages/spatial/sbml/CSGObject.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGPrimitive.cpp b/src/sbml/packages/spatial/sbml/CSGPrimitive.cpp
index 7356c4a..abc8b25 100644
--- a/src/sbml/packages/spatial/sbml/CSGPrimitive.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGPrimitive.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGPrimitive.h b/src/sbml/packages/spatial/sbml/CSGPrimitive.h
index 0cadb03..97120ec 100644
--- a/src/sbml/packages/spatial/sbml/CSGPrimitive.h
+++ b/src/sbml/packages/spatial/sbml/CSGPrimitive.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.cpp b/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.cpp
index db5db3f..ade316a 100644
--- a/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.h b/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.h
index fc9d07b..12b315d 100644
--- a/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.h
+++ b/src/sbml/packages/spatial/sbml/CSGPseudoPrimitive.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGRotation.cpp b/src/sbml/packages/spatial/sbml/CSGRotation.cpp
index d357965..cb1f677 100644
--- a/src/sbml/packages/spatial/sbml/CSGRotation.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGRotation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGRotation.h b/src/sbml/packages/spatial/sbml/CSGRotation.h
index f066772..8710a50 100644
--- a/src/sbml/packages/spatial/sbml/CSGRotation.h
+++ b/src/sbml/packages/spatial/sbml/CSGRotation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGScale.cpp b/src/sbml/packages/spatial/sbml/CSGScale.cpp
index 1a919ee..65cadd1 100644
--- a/src/sbml/packages/spatial/sbml/CSGScale.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGScale.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGScale.h b/src/sbml/packages/spatial/sbml/CSGScale.h
index ef68efc..40125d4 100644
--- a/src/sbml/packages/spatial/sbml/CSGScale.h
+++ b/src/sbml/packages/spatial/sbml/CSGScale.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGSetOperator.cpp b/src/sbml/packages/spatial/sbml/CSGSetOperator.cpp
index 46e25b6..366b7ca 100644
--- a/src/sbml/packages/spatial/sbml/CSGSetOperator.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGSetOperator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGSetOperator.h b/src/sbml/packages/spatial/sbml/CSGSetOperator.h
index 2192948..09e2d17 100644
--- a/src/sbml/packages/spatial/sbml/CSGSetOperator.h
+++ b/src/sbml/packages/spatial/sbml/CSGSetOperator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGTransformation.cpp b/src/sbml/packages/spatial/sbml/CSGTransformation.cpp
index a2e3cbd..1d0528b 100644
--- a/src/sbml/packages/spatial/sbml/CSGTransformation.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGTransformation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGTransformation.h b/src/sbml/packages/spatial/sbml/CSGTransformation.h
index fd24039..f049bf7 100644
--- a/src/sbml/packages/spatial/sbml/CSGTransformation.h
+++ b/src/sbml/packages/spatial/sbml/CSGTransformation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGTranslation.cpp b/src/sbml/packages/spatial/sbml/CSGTranslation.cpp
index 54c7f88..70996ab 100644
--- a/src/sbml/packages/spatial/sbml/CSGTranslation.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGTranslation.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGTranslation.h b/src/sbml/packages/spatial/sbml/CSGTranslation.h
index 06975e6..edee366 100644
--- a/src/sbml/packages/spatial/sbml/CSGTranslation.h
+++ b/src/sbml/packages/spatial/sbml/CSGTranslation.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGeometry.cpp b/src/sbml/packages/spatial/sbml/CSGeometry.cpp
index 8801218..7b49353 100644
--- a/src/sbml/packages/spatial/sbml/CSGeometry.cpp
+++ b/src/sbml/packages/spatial/sbml/CSGeometry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CSGeometry.h b/src/sbml/packages/spatial/sbml/CSGeometry.h
index 2b51a43..574a529 100644
--- a/src/sbml/packages/spatial/sbml/CSGeometry.h
+++ b/src/sbml/packages/spatial/sbml/CSGeometry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CompartmentMapping.cpp b/src/sbml/packages/spatial/sbml/CompartmentMapping.cpp
index 9073bdc..3dcd0bd 100644
--- a/src/sbml/packages/spatial/sbml/CompartmentMapping.cpp
+++ b/src/sbml/packages/spatial/sbml/CompartmentMapping.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CompartmentMapping.h b/src/sbml/packages/spatial/sbml/CompartmentMapping.h
index 3ba384f..3008527 100644
--- a/src/sbml/packages/spatial/sbml/CompartmentMapping.h
+++ b/src/sbml/packages/spatial/sbml/CompartmentMapping.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CoordinateComponent.cpp b/src/sbml/packages/spatial/sbml/CoordinateComponent.cpp
index df860fe..d62fb12 100644
--- a/src/sbml/packages/spatial/sbml/CoordinateComponent.cpp
+++ b/src/sbml/packages/spatial/sbml/CoordinateComponent.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CoordinateComponent.h b/src/sbml/packages/spatial/sbml/CoordinateComponent.h
index 30fd600..f2895ff 100644
--- a/src/sbml/packages/spatial/sbml/CoordinateComponent.h
+++ b/src/sbml/packages/spatial/sbml/CoordinateComponent.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CoordinateReference.cpp b/src/sbml/packages/spatial/sbml/CoordinateReference.cpp
index c2c4d02..4382370 100644
--- a/src/sbml/packages/spatial/sbml/CoordinateReference.cpp
+++ b/src/sbml/packages/spatial/sbml/CoordinateReference.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/CoordinateReference.h b/src/sbml/packages/spatial/sbml/CoordinateReference.h
index 09c9c44..02e2883 100644
--- a/src/sbml/packages/spatial/sbml/CoordinateReference.h
+++ b/src/sbml/packages/spatial/sbml/CoordinateReference.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.cpp b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.cpp
index 397bd2e..a21f0cf 100644
--- a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.cpp
+++ b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h
index 105d287..8fc97de 100644
--- a/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h
+++ b/src/sbml/packages/spatial/sbml/DiffusionCoefficient.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/Domain.cpp b/src/sbml/packages/spatial/sbml/Domain.cpp
index 6612b33..95e8cbe 100644
--- a/src/sbml/packages/spatial/sbml/Domain.cpp
+++ b/src/sbml/packages/spatial/sbml/Domain.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/Domain.h b/src/sbml/packages/spatial/sbml/Domain.h
index c2326d6..2e29668 100644
--- a/src/sbml/packages/spatial/sbml/Domain.h
+++ b/src/sbml/packages/spatial/sbml/Domain.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/DomainType.cpp b/src/sbml/packages/spatial/sbml/DomainType.cpp
index 52c39a1..2b46110 100644
--- a/src/sbml/packages/spatial/sbml/DomainType.cpp
+++ b/src/sbml/packages/spatial/sbml/DomainType.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/DomainType.h b/src/sbml/packages/spatial/sbml/DomainType.h
index 7370da8..542bab3 100644
--- a/src/sbml/packages/spatial/sbml/DomainType.h
+++ b/src/sbml/packages/spatial/sbml/DomainType.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/Geometry.cpp b/src/sbml/packages/spatial/sbml/Geometry.cpp
index f8e1a2a..367d4aa 100644
--- a/src/sbml/packages/spatial/sbml/Geometry.cpp
+++ b/src/sbml/packages/spatial/sbml/Geometry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/Geometry.h b/src/sbml/packages/spatial/sbml/Geometry.h
index 711540f..8a134d4 100644
--- a/src/sbml/packages/spatial/sbml/Geometry.h
+++ b/src/sbml/packages/spatial/sbml/Geometry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/GeometryDefinition.cpp b/src/sbml/packages/spatial/sbml/GeometryDefinition.cpp
index 9b7deb9..087c05a 100644
--- a/src/sbml/packages/spatial/sbml/GeometryDefinition.cpp
+++ b/src/sbml/packages/spatial/sbml/GeometryDefinition.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/GeometryDefinition.h b/src/sbml/packages/spatial/sbml/GeometryDefinition.h
index 2ce78df..152ec6c 100644
--- a/src/sbml/packages/spatial/sbml/GeometryDefinition.h
+++ b/src/sbml/packages/spatial/sbml/GeometryDefinition.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/InteriorPoint.cpp b/src/sbml/packages/spatial/sbml/InteriorPoint.cpp
index 042e014..7722dce 100644
--- a/src/sbml/packages/spatial/sbml/InteriorPoint.cpp
+++ b/src/sbml/packages/spatial/sbml/InteriorPoint.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/InteriorPoint.h b/src/sbml/packages/spatial/sbml/InteriorPoint.h
index 35f0bb9..0647a00 100644
--- a/src/sbml/packages/spatial/sbml/InteriorPoint.h
+++ b/src/sbml/packages/spatial/sbml/InteriorPoint.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/MixedGeometry.cpp b/src/sbml/packages/spatial/sbml/MixedGeometry.cpp
index 0117333..52c53a4 100644
--- a/src/sbml/packages/spatial/sbml/MixedGeometry.cpp
+++ b/src/sbml/packages/spatial/sbml/MixedGeometry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/MixedGeometry.h b/src/sbml/packages/spatial/sbml/MixedGeometry.h
index 1884a0c..5950838 100644
--- a/src/sbml/packages/spatial/sbml/MixedGeometry.h
+++ b/src/sbml/packages/spatial/sbml/MixedGeometry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/OrdinalMapping.cpp b/src/sbml/packages/spatial/sbml/OrdinalMapping.cpp
index 4f9bc8f..76bdb6c 100644
--- a/src/sbml/packages/spatial/sbml/OrdinalMapping.cpp
+++ b/src/sbml/packages/spatial/sbml/OrdinalMapping.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/OrdinalMapping.h b/src/sbml/packages/spatial/sbml/OrdinalMapping.h
index 1e81feb..bf97321 100644
--- a/src/sbml/packages/spatial/sbml/OrdinalMapping.h
+++ b/src/sbml/packages/spatial/sbml/OrdinalMapping.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/ParametricGeometry.cpp b/src/sbml/packages/spatial/sbml/ParametricGeometry.cpp
index d259b80..13341dc 100644
--- a/src/sbml/packages/spatial/sbml/ParametricGeometry.cpp
+++ b/src/sbml/packages/spatial/sbml/ParametricGeometry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/ParametricGeometry.h b/src/sbml/packages/spatial/sbml/ParametricGeometry.h
index e430efc..f88f0ae 100644
--- a/src/sbml/packages/spatial/sbml/ParametricGeometry.h
+++ b/src/sbml/packages/spatial/sbml/ParametricGeometry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/ParametricObject.cpp b/src/sbml/packages/spatial/sbml/ParametricObject.cpp
index e4eaf90..fec6562 100644
--- a/src/sbml/packages/spatial/sbml/ParametricObject.cpp
+++ b/src/sbml/packages/spatial/sbml/ParametricObject.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -726,7 +726,7 @@ ParametricObject::createObject(XMLInputStream& stream)
 {
   SBase* object = NULL;
 
-  const string& name = stream.peek().getName();
+  //const string& name = stream.peek().getName();
 
   connectToChild();
 
diff --git a/src/sbml/packages/spatial/sbml/ParametricObject.h b/src/sbml/packages/spatial/sbml/ParametricObject.h
index 509efe9..d968cff 100644
--- a/src/sbml/packages/spatial/sbml/ParametricObject.h
+++ b/src/sbml/packages/spatial/sbml/ParametricObject.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SampledField.cpp b/src/sbml/packages/spatial/sbml/SampledField.cpp
index 663474e..f564886 100644
--- a/src/sbml/packages/spatial/sbml/SampledField.cpp
+++ b/src/sbml/packages/spatial/sbml/SampledField.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SampledField.h b/src/sbml/packages/spatial/sbml/SampledField.h
index 5d40f73..ae10fc0 100644
--- a/src/sbml/packages/spatial/sbml/SampledField.h
+++ b/src/sbml/packages/spatial/sbml/SampledField.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SampledFieldGeometry.cpp b/src/sbml/packages/spatial/sbml/SampledFieldGeometry.cpp
index 12c1c0e..e58223f 100644
--- a/src/sbml/packages/spatial/sbml/SampledFieldGeometry.cpp
+++ b/src/sbml/packages/spatial/sbml/SampledFieldGeometry.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h b/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h
index 007bbea..d07d3d0 100644
--- a/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h
+++ b/src/sbml/packages/spatial/sbml/SampledFieldGeometry.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SampledVolume.cpp b/src/sbml/packages/spatial/sbml/SampledVolume.cpp
index abb1ae8..417093e 100644
--- a/src/sbml/packages/spatial/sbml/SampledVolume.cpp
+++ b/src/sbml/packages/spatial/sbml/SampledVolume.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SampledVolume.h b/src/sbml/packages/spatial/sbml/SampledVolume.h
index f6ce39b..aab928b 100644
--- a/src/sbml/packages/spatial/sbml/SampledVolume.h
+++ b/src/sbml/packages/spatial/sbml/SampledVolume.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SpatialPoints.cpp b/src/sbml/packages/spatial/sbml/SpatialPoints.cpp
index 1664e39..326a482 100644
--- a/src/sbml/packages/spatial/sbml/SpatialPoints.cpp
+++ b/src/sbml/packages/spatial/sbml/SpatialPoints.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SpatialPoints.h b/src/sbml/packages/spatial/sbml/SpatialPoints.h
index 4f6b6f1..7cbc133 100644
--- a/src/sbml/packages/spatial/sbml/SpatialPoints.h
+++ b/src/sbml/packages/spatial/sbml/SpatialPoints.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SpatialSymbolReference.cpp b/src/sbml/packages/spatial/sbml/SpatialSymbolReference.cpp
index 296d52d..8c1ac85 100644
--- a/src/sbml/packages/spatial/sbml/SpatialSymbolReference.cpp
+++ b/src/sbml/packages/spatial/sbml/SpatialSymbolReference.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h b/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h
index c140098..79438a9 100644
--- a/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h
+++ b/src/sbml/packages/spatial/sbml/SpatialSymbolReference.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/TransformationComponents.cpp b/src/sbml/packages/spatial/sbml/TransformationComponents.cpp
index c96b753..22a3366 100644
--- a/src/sbml/packages/spatial/sbml/TransformationComponents.cpp
+++ b/src/sbml/packages/spatial/sbml/TransformationComponents.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/TransformationComponents.h b/src/sbml/packages/spatial/sbml/TransformationComponents.h
index ed3e069..000d311 100644
--- a/src/sbml/packages/spatial/sbml/TransformationComponents.h
+++ b/src/sbml/packages/spatial/sbml/TransformationComponents.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/test/CMakeLists.txt b/src/sbml/packages/spatial/sbml/test/CMakeLists.txt
index b21f310..ee698d1 100644
--- a/src/sbml/packages/spatial/sbml/test/CMakeLists.txt
+++ b/src/sbml/packages/spatial/sbml/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/test/TestCopyAndClone.cpp b/src/sbml/packages/spatial/sbml/test/TestCopyAndClone.cpp
index 9fb7f6f..62246d3 100644
--- a/src/sbml/packages/spatial/sbml/test/TestCopyAndClone.cpp
+++ b/src/sbml/packages/spatial/sbml/test/TestCopyAndClone.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/test/TestImageData.cpp b/src/sbml/packages/spatial/sbml/test/TestImageData.cpp
index 0171ff0..9f4ab09 100644
--- a/src/sbml/packages/spatial/sbml/test/TestImageData.cpp
+++ b/src/sbml/packages/spatial/sbml/test/TestImageData.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/test/TestParametricObject.cpp b/src/sbml/packages/spatial/sbml/test/TestParametricObject.cpp
index 934a8e4..6078439 100644
--- a/src/sbml/packages/spatial/sbml/test/TestParametricObject.cpp
+++ b/src/sbml/packages/spatial/sbml/test/TestParametricObject.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/sbml/test/TestRunner.c b/src/sbml/packages/spatial/sbml/test/TestRunner.c
index 3caa087..efba8cb 100644
--- a/src/sbml/packages/spatial/sbml/test/TestRunner.c
+++ b/src/sbml/packages/spatial/sbml/test/TestRunner.c
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -42,6 +42,10 @@
 
 #include <check.h>
 
+#ifdef LIBSBML_USE_VLD
+  #include <vld.h>
+#endif
+
 LIBSBML_CPP_NAMESPACE_USE
 
 BEGIN_C_DECLS
diff --git a/src/sbml/packages/spatial/sbml/test/TestTransformationComponents.cpp b/src/sbml/packages/spatial/sbml/test/TestTransformationComponents.cpp
index 53ffbd8..81c597e 100644
--- a/src/sbml/packages/spatial/sbml/test/TestTransformationComponents.cpp
+++ b/src/sbml/packages/spatial/sbml/test/TestTransformationComponents.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.cpp b/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.cpp
index 74b7502..96531d1 100644
--- a/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.cpp
+++ b/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.h b/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.h
index e093b7f..dae6626 100644
--- a/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.h
+++ b/src/sbml/packages/spatial/validator/SpatialConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.cpp b/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.cpp
index a30524a..90c44ef 100644
--- a/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.cpp
+++ b/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.h b/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.h
index cf4cbd5..3563178 100644
--- a/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.h
+++ b/src/sbml/packages/spatial/validator/SpatialIdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialSBMLError.h b/src/sbml/packages/spatial/validator/SpatialSBMLError.h
index 386d0cc..2a12557 100644
--- a/src/sbml/packages/spatial/validator/SpatialSBMLError.h
+++ b/src/sbml/packages/spatial/validator/SpatialSBMLError.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialSBMLErrorTable.h b/src/sbml/packages/spatial/validator/SpatialSBMLErrorTable.h
index dbb10e2..f64f5f7 100644
--- a/src/sbml/packages/spatial/validator/SpatialSBMLErrorTable.h
+++ b/src/sbml/packages/spatial/validator/SpatialSBMLErrorTable.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialValidator.cpp b/src/sbml/packages/spatial/validator/SpatialValidator.cpp
index 874c12d..c8b8aec 100644
--- a/src/sbml/packages/spatial/validator/SpatialValidator.cpp
+++ b/src/sbml/packages/spatial/validator/SpatialValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/SpatialValidator.h b/src/sbml/packages/spatial/validator/SpatialValidator.h
index 6e1172e..e1cf205 100644
--- a/src/sbml/packages/spatial/validator/SpatialValidator.h
+++ b/src/sbml/packages/spatial/validator/SpatialValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/constraints/SpatialConsistencyConstraints.cpp b/src/sbml/packages/spatial/validator/constraints/SpatialConsistencyConstraints.cpp
index d4fb401..9f492bb 100644
--- a/src/sbml/packages/spatial/validator/constraints/SpatialConsistencyConstraints.cpp
+++ b/src/sbml/packages/spatial/validator/constraints/SpatialConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/packages/spatial/validator/constraints/SpatialIdentifierConsistencyConstraints.cpp b/src/sbml/packages/spatial/validator/constraints/SpatialIdentifierConsistencyConstraints.cpp
index 8f957cb..95c9d03 100644
--- a/src/sbml/packages/spatial/validator/constraints/SpatialIdentifierConsistencyConstraints.cpp
+++ b/src/sbml/packages/spatial/validator/constraints/SpatialIdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/CMakeLists.txt b/src/sbml/test/CMakeLists.txt
index c4cf623..d9e8cbe 100644
--- a/src/sbml/test/CMakeLists.txt
+++ b/src/sbml/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/Makefile.in b/src/sbml/test/Makefile.in
index 52548fe..a82a443 100644
--- a/src/sbml/test/Makefile.in
+++ b/src/sbml/test/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
@@ -91,7 +91,8 @@ test_sources =                   \
   TestL3Species.c                  \
   TestL3SpeciesReference.c         \
   TestL3Trigger.c                \
-  TestL3Unit.c                     \
+  TestL3Unit.c                   \
+  TestLevelCompatibility.cpp     \
   TestListOf.c                   \
   TestModel.c                    \
   TestModel_newSetters.c         \
diff --git a/src/sbml/test/TestAlgebraicRule.c b/src/sbml/test/TestAlgebraicRule.c
index f358dd3..6832c35 100644
--- a/src/sbml/test/TestAlgebraicRule.c
+++ b/src/sbml/test/TestAlgebraicRule.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestAncestor.cpp b/src/sbml/test/TestAncestor.cpp
index 7afce6c..55440df 100644
--- a/src/sbml/test/TestAncestor.cpp
+++ b/src/sbml/test/TestAncestor.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestAssignmentRule.c b/src/sbml/test/TestAssignmentRule.c
index cb19d3f..32f80f9 100644
--- a/src/sbml/test/TestAssignmentRule.c
+++ b/src/sbml/test/TestAssignmentRule.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestCompartment.c b/src/sbml/test/TestCompartment.c
index d5ea564..265b64a 100644
--- a/src/sbml/test/TestCompartment.c
+++ b/src/sbml/test/TestCompartment.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestCompartmentType.c b/src/sbml/test/TestCompartmentType.c
index 09c0d28..0e1288f 100644
--- a/src/sbml/test/TestCompartmentType.c
+++ b/src/sbml/test/TestCompartmentType.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestCompartmentType_newSetters.c b/src/sbml/test/TestCompartmentType_newSetters.c
index f8a8b98..56a7b8a 100644
--- a/src/sbml/test/TestCompartmentType_newSetters.c
+++ b/src/sbml/test/TestCompartmentType_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestCompartmentVolumeRule.c b/src/sbml/test/TestCompartmentVolumeRule.c
index cf0a234..6ccda44 100644
--- a/src/sbml/test/TestCompartmentVolumeRule.c
+++ b/src/sbml/test/TestCompartmentVolumeRule.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestCompartment_newSetters.c b/src/sbml/test/TestCompartment_newSetters.c
index 2c981b8..696a6eb 100644
--- a/src/sbml/test/TestCompartment_newSetters.c
+++ b/src/sbml/test/TestCompartment_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestConsistencyChecks.cpp b/src/sbml/test/TestConsistencyChecks.cpp
index 58f3e5b..902a486 100644
--- a/src/sbml/test/TestConsistencyChecks.cpp
+++ b/src/sbml/test/TestConsistencyChecks.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestConstraint.c b/src/sbml/test/TestConstraint.c
index 56af37c..4cd8c9e 100644
--- a/src/sbml/test/TestConstraint.c
+++ b/src/sbml/test/TestConstraint.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestConstraint_newSetters.c b/src/sbml/test/TestConstraint_newSetters.c
index c9f50c2..8254d23 100644
--- a/src/sbml/test/TestConstraint_newSetters.c
+++ b/src/sbml/test/TestConstraint_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestCopyAndClone.cpp b/src/sbml/test/TestCopyAndClone.cpp
index 156d914..a18fbef 100644
--- a/src/sbml/test/TestCopyAndClone.cpp
+++ b/src/sbml/test/TestCopyAndClone.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestDelay.c b/src/sbml/test/TestDelay.c
index 371ca2b..7d5a2a2 100644
--- a/src/sbml/test/TestDelay.c
+++ b/src/sbml/test/TestDelay.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestEvent.c b/src/sbml/test/TestEvent.c
index b042b52..3b9f2d0 100644
--- a/src/sbml/test/TestEvent.c
+++ b/src/sbml/test/TestEvent.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestEventAssignment.c b/src/sbml/test/TestEventAssignment.c
index 533e647..3c9189a 100644
--- a/src/sbml/test/TestEventAssignment.c
+++ b/src/sbml/test/TestEventAssignment.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestEventAssignment_newSetters.c b/src/sbml/test/TestEventAssignment_newSetters.c
index 9862dc0..8ca39ff 100644
--- a/src/sbml/test/TestEventAssignment_newSetters.c
+++ b/src/sbml/test/TestEventAssignment_newSetters.c
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestEvent_newSetters.c b/src/sbml/test/TestEvent_newSetters.c
index a8971c3..ea33d36 100644
--- a/src/sbml/test/TestEvent_newSetters.c
+++ b/src/sbml/test/TestEvent_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestFunctionDefinition.c b/src/sbml/test/TestFunctionDefinition.c
index bd079d3..d86f970 100644
--- a/src/sbml/test/TestFunctionDefinition.c
+++ b/src/sbml/test/TestFunctionDefinition.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestFunctionDefinition_newSetters.c b/src/sbml/test/TestFunctionDefinition_newSetters.c
index c25d39b..2d86b15 100644
--- a/src/sbml/test/TestFunctionDefinition_newSetters.c
+++ b/src/sbml/test/TestFunctionDefinition_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestGetMultipleObjects.cpp b/src/sbml/test/TestGetMultipleObjects.cpp
index fc19cda..1341cc3 100644
--- a/src/sbml/test/TestGetMultipleObjects.cpp
+++ b/src/sbml/test/TestGetMultipleObjects.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestInitialAssignment.c b/src/sbml/test/TestInitialAssignment.c
index 852698f..df214ba 100644
--- a/src/sbml/test/TestInitialAssignment.c
+++ b/src/sbml/test/TestInitialAssignment.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestInitialAssignment_newSetters.c b/src/sbml/test/TestInitialAssignment_newSetters.c
index 60ce1a8..21caab6 100644
--- a/src/sbml/test/TestInitialAssignment_newSetters.c
+++ b/src/sbml/test/TestInitialAssignment_newSetters.c
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestInternalConsistencyChecks.cpp b/src/sbml/test/TestInternalConsistencyChecks.cpp
index e8400c5..8957a0d 100644
--- a/src/sbml/test/TestInternalConsistencyChecks.cpp
+++ b/src/sbml/test/TestInternalConsistencyChecks.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestKineticLaw.c b/src/sbml/test/TestKineticLaw.c
index e89c07e..4e4438a 100644
--- a/src/sbml/test/TestKineticLaw.c
+++ b/src/sbml/test/TestKineticLaw.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestKineticLaw_newSetters.c b/src/sbml/test/TestKineticLaw_newSetters.c
index e9801ca..9cd3c5d 100644
--- a/src/sbml/test/TestKineticLaw_newSetters.c
+++ b/src/sbml/test/TestKineticLaw_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Compartment.c b/src/sbml/test/TestL3Compartment.c
index b53f9e5..e1e964c 100644
--- a/src/sbml/test/TestL3Compartment.c
+++ b/src/sbml/test/TestL3Compartment.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Event.c b/src/sbml/test/TestL3Event.c
index 25412f3..f380def 100644
--- a/src/sbml/test/TestL3Event.c
+++ b/src/sbml/test/TestL3Event.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3KineticLaw.c b/src/sbml/test/TestL3KineticLaw.c
index 183325f..a6cf19a 100644
--- a/src/sbml/test/TestL3KineticLaw.c
+++ b/src/sbml/test/TestL3KineticLaw.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3LocalParameter.c b/src/sbml/test/TestL3LocalParameter.c
index e8a3fc7..df1ab1f 100644
--- a/src/sbml/test/TestL3LocalParameter.c
+++ b/src/sbml/test/TestL3LocalParameter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Model.c b/src/sbml/test/TestL3Model.c
index f1c680d..de184d12 100644
--- a/src/sbml/test/TestL3Model.c
+++ b/src/sbml/test/TestL3Model.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Parameter.c b/src/sbml/test/TestL3Parameter.c
index a00c5da..7d1e92b 100644
--- a/src/sbml/test/TestL3Parameter.c
+++ b/src/sbml/test/TestL3Parameter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Reaction.c b/src/sbml/test/TestL3Reaction.c
index 398a366..af048fb 100644
--- a/src/sbml/test/TestL3Reaction.c
+++ b/src/sbml/test/TestL3Reaction.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Species.c b/src/sbml/test/TestL3Species.c
index a4b4fca..672b3c6 100644
--- a/src/sbml/test/TestL3Species.c
+++ b/src/sbml/test/TestL3Species.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3SpeciesReference.c b/src/sbml/test/TestL3SpeciesReference.c
index 8719b90..de987ba 100644
--- a/src/sbml/test/TestL3SpeciesReference.c
+++ b/src/sbml/test/TestL3SpeciesReference.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Trigger.c b/src/sbml/test/TestL3Trigger.c
index b8b386c..1c32317 100644
--- a/src/sbml/test/TestL3Trigger.c
+++ b/src/sbml/test/TestL3Trigger.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestL3Unit.c b/src/sbml/test/TestL3Unit.c
index 2f6aab7..59b8825 100644
--- a/src/sbml/test/TestL3Unit.c
+++ b/src/sbml/test/TestL3Unit.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestLevelCompatibility.cpp b/src/sbml/test/TestLevelCompatibility.cpp
new file mode 100644
index 0000000..d263695
--- /dev/null
+++ b/src/sbml/test/TestLevelCompatibility.cpp
@@ -0,0 +1,271 @@
+/**
+ * @file    TestLevelCompatibility.cpp
+ * @brief   Compatability between levels unit tests
+ * @author  Sarah Keating
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#include <sbml/common/common.h>
+#include <sbml/common/extern.h>
+#include <sbml/SBMLReader.h>
+#include <sbml/SBMLTypes.h>
+
+
+#include <check.h>
+
+#include <iostream>
+
+LIBSBML_CPP_NAMESPACE_USE
+
+BEGIN_C_DECLS
+
+extern char *TestDataDirectory;
+
+
+
+START_TEST (test_LevelCompatibility_unit_fails)
+{
+  SBMLReader        reader;
+  SBMLDocument*     d;
+
+  std::string filename(TestDataDirectory);
+  filename += "inconsistent-l2v1-units.xml";
+
+
+  d = reader.readSBML(filename);
+
+  if (d == NULL)
+  {
+    fail("readSBML(\"inconsistent-l2v1-units.xml\") returned a NULL pointer.");
+  }
+
+  unsigned int n = d->checkL2v1Compatibility();
+
+  fail_unless( n == 1 );
+
+  fail_unless (d->getError(0)->getErrorId() == StrictUnitsRequiredInL2v1);
+
+  d->getErrorLog()->clearLog();
+
+  n = d->checkL2v1Compatibility(true);
+
+  fail_unless( n == 0 );
+
+  delete d;
+}
+END_TEST
+
+
+
+START_TEST (test_LevelCompatibility_unit_warnings)
+{
+  SBMLReader        reader;
+  SBMLDocument*     d;
+
+  std::string filename(TestDataDirectory);
+  filename += "inconsistent-l2v1-units-2.xml";
+
+
+  d = reader.readSBML(filename);
+
+  if (d == NULL)
+  {
+    fail("readSBML(\"inconsistent-l2v1-units-2.xml\") returned a NULL pointer.");
+  }
+
+  unsigned int n = d->checkL2v1Compatibility();
+
+  fail_unless( n == 0 );
+
+  d->getErrorLog()->clearLog();
+
+  n = d->checkL2v1Compatibility(true);
+
+  fail_unless( n == 0 );
+
+  delete d;
+}
+END_TEST
+
+
+START_TEST (test_LevelCompatibility_unit_fails_l1)
+{
+  SBMLReader        reader;
+  SBMLDocument*     d;
+
+  std::string filename(TestDataDirectory);
+  filename += "inconsistent-l2v1-units.xml";
+
+
+  d = reader.readSBML(filename);
+
+  if (d == NULL)
+  {
+    fail("readSBML(\"inconsistent-l2v1-units.xml\") returned a NULL pointer.");
+  }
+
+  unsigned int n = d->checkL1Compatibility();
+
+  fail_unless( n == 1 );
+
+  fail_unless (d->getError(0)->getErrorId() == StrictUnitsRequiredInL1);
+
+  d->getErrorLog()->clearLog();
+
+  n = d->checkL1Compatibility(true);
+
+  fail_unless( n == 0 );
+
+  delete d;
+}
+END_TEST
+
+
+
+START_TEST (test_LevelCompatibility_unit_warnings_l1)
+{
+  SBMLReader        reader;
+  SBMLDocument*     d;
+
+  std::string filename(TestDataDirectory);
+  filename += "inconsistent-l2v1-units-2.xml";
+
+
+  d = reader.readSBML(filename);
+
+  if (d == NULL)
+  {
+    fail("readSBML(\"inconsistent-l2v1-units-2.xml\") returned a NULL pointer.");
+  }
+
+  unsigned int n = d->checkL1Compatibility();
+
+  fail_unless( n == 0 );
+
+  d->getErrorLog()->clearLog();
+
+  n = d->checkL1Compatibility(true);
+
+  fail_unless( n == 0 );
+
+  delete d;
+}
+END_TEST
+
+
+START_TEST (test_LevelCompatibility_unit_fails_l2v2)
+{
+  SBMLReader        reader;
+  SBMLDocument*     d;
+
+  std::string filename(TestDataDirectory);
+  filename += "inconsistent-l2v1-units.xml";
+
+
+  d = reader.readSBML(filename);
+
+  if (d == NULL)
+  {
+    fail("readSBML(\"inconsistent-l2v1-units.xml\") returned a NULL pointer.");
+  }
+
+  unsigned int n = d->checkL2v2Compatibility();
+
+  fail_unless( n == 1 );
+
+  fail_unless (d->getError(0)->getErrorId() == StrictUnitsRequiredInL2v2);
+
+  d->getErrorLog()->clearLog();
+
+  n = d->checkL1Compatibility(true);
+
+  fail_unless( n == 0 );
+
+  delete d;
+}
+END_TEST
+
+
+
+START_TEST (test_LevelCompatibility_unit_fails_l2v3)
+{
+  SBMLReader        reader;
+  SBMLDocument*     d;
+
+  std::string filename(TestDataDirectory);
+  filename += "inconsistent-l2v1-units.xml";
+
+
+  d = reader.readSBML(filename);
+
+  if (d == NULL)
+  {
+    fail("readSBML(\"inconsistent-l2v1-units.xml\") returned a NULL pointer.");
+  }
+
+  unsigned int n = d->checkL2v3Compatibility();
+
+  fail_unless( n == 1 );
+
+  fail_unless (d->getError(0)->getErrorId() == StrictUnitsRequiredInL2v3);
+
+  d->getErrorLog()->clearLog();
+
+  n = d->checkL1Compatibility(true);
+
+  fail_unless( n == 0 );
+
+  delete d;
+}
+END_TEST
+
+
+
+
+Suite *
+create_suite_LevelCompatibility (void)
+{
+  Suite *suite = suite_create("LevelCompatibility");
+  TCase *tcase = tcase_create("LevelCompatibility");
+
+
+  tcase_add_test(tcase, test_LevelCompatibility_unit_fails);
+  tcase_add_test(tcase, test_LevelCompatibility_unit_warnings);
+  tcase_add_test(tcase, test_LevelCompatibility_unit_fails_l1);
+  tcase_add_test(tcase, test_LevelCompatibility_unit_warnings_l1);
+  tcase_add_test(tcase, test_LevelCompatibility_unit_fails_l2v2);
+  tcase_add_test(tcase, test_LevelCompatibility_unit_fails_l2v3);
+
+
+  suite_add_tcase(suite, tcase);
+
+  return suite;
+}
+
+
+END_C_DECLS
diff --git a/src/sbml/test/TestListOf.c b/src/sbml/test/TestListOf.c
index 4a03f34..dcacb49 100644
--- a/src/sbml/test/TestListOf.c
+++ b/src/sbml/test/TestListOf.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestModel.c b/src/sbml/test/TestModel.c
index 5b15fbb..846679f 100644
--- a/src/sbml/test/TestModel.c
+++ b/src/sbml/test/TestModel.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestModel_newSetters.c b/src/sbml/test/TestModel_newSetters.c
index 785590a..5340fd7 100644
--- a/src/sbml/test/TestModel_newSetters.c
+++ b/src/sbml/test/TestModel_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestModifierSpeciesReference.c b/src/sbml/test/TestModifierSpeciesReference.c
index a3e2bdc..4237037 100644
--- a/src/sbml/test/TestModifierSpeciesReference.c
+++ b/src/sbml/test/TestModifierSpeciesReference.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestParameter.c b/src/sbml/test/TestParameter.c
index ae27dac..51af906 100644
--- a/src/sbml/test/TestParameter.c
+++ b/src/sbml/test/TestParameter.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestParameterRule.c b/src/sbml/test/TestParameterRule.c
index 284b1b6..4e30b69 100644
--- a/src/sbml/test/TestParameterRule.c
+++ b/src/sbml/test/TestParameterRule.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestParameter_newSetters.c b/src/sbml/test/TestParameter_newSetters.c
index 22c38a9..3515ce2 100644
--- a/src/sbml/test/TestParameter_newSetters.c
+++ b/src/sbml/test/TestParameter_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestPriority.c b/src/sbml/test/TestPriority.c
index bd6d958..50cc305 100644
--- a/src/sbml/test/TestPriority.c
+++ b/src/sbml/test/TestPriority.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRateRule.c b/src/sbml/test/TestRateRule.c
index 142ceb7..e030e6d 100644
--- a/src/sbml/test/TestRateRule.c
+++ b/src/sbml/test/TestRateRule.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReaction.c b/src/sbml/test/TestReaction.c
index c1c1990..80d2a5c 100644
--- a/src/sbml/test/TestReaction.c
+++ b/src/sbml/test/TestReaction.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReaction_newSetters.c b/src/sbml/test/TestReaction_newSetters.c
index d6f7534..85a0e32 100644
--- a/src/sbml/test/TestReaction_newSetters.c
+++ b/src/sbml/test/TestReaction_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile1.c b/src/sbml/test/TestReadFromFile1.c
index bea10a5..418a701 100644
--- a/src/sbml/test/TestReadFromFile1.c
+++ b/src/sbml/test/TestReadFromFile1.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile2.c b/src/sbml/test/TestReadFromFile2.c
index 0db9c94..d4b4fc7 100644
--- a/src/sbml/test/TestReadFromFile2.c
+++ b/src/sbml/test/TestReadFromFile2.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile3.c b/src/sbml/test/TestReadFromFile3.c
index 8b34509..84225f4 100644
--- a/src/sbml/test/TestReadFromFile3.c
+++ b/src/sbml/test/TestReadFromFile3.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile4.c b/src/sbml/test/TestReadFromFile4.c
index 3ac254c..e0eca5e 100644
--- a/src/sbml/test/TestReadFromFile4.c
+++ b/src/sbml/test/TestReadFromFile4.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile5.cpp b/src/sbml/test/TestReadFromFile5.cpp
index 2f432d6..30503f2 100644
--- a/src/sbml/test/TestReadFromFile5.cpp
+++ b/src/sbml/test/TestReadFromFile5.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile6.cpp b/src/sbml/test/TestReadFromFile6.cpp
index e0ade0c..0d7347f 100644
--- a/src/sbml/test/TestReadFromFile6.cpp
+++ b/src/sbml/test/TestReadFromFile6.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile7.cpp b/src/sbml/test/TestReadFromFile7.cpp
index 7538f17..d3ebae2 100644
--- a/src/sbml/test/TestReadFromFile7.cpp
+++ b/src/sbml/test/TestReadFromFile7.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile8.cpp b/src/sbml/test/TestReadFromFile8.cpp
index 2ba2c87..9ae34ab 100644
--- a/src/sbml/test/TestReadFromFile8.cpp
+++ b/src/sbml/test/TestReadFromFile8.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFile9.cpp b/src/sbml/test/TestReadFromFile9.cpp
index 4c44d8b..5b7ac3e 100644
--- a/src/sbml/test/TestReadFromFile9.cpp
+++ b/src/sbml/test/TestReadFromFile9.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadFromFileL2V5.cpp b/src/sbml/test/TestReadFromFileL2V5.cpp
index 2593b6d..d596441 100644
--- a/src/sbml/test/TestReadFromFileL2V5.cpp
+++ b/src/sbml/test/TestReadFromFileL2V5.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestReadSBML.cpp b/src/sbml/test/TestReadSBML.cpp
index b2fb9d4..012622f 100644
--- a/src/sbml/test/TestReadSBML.cpp
+++ b/src/sbml/test/TestReadSBML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRemoveFromParent.cpp b/src/sbml/test/TestRemoveFromParent.cpp
index d22b23d..2318519 100644
--- a/src/sbml/test/TestRemoveFromParent.cpp
+++ b/src/sbml/test/TestRemoveFromParent.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRenameIDs.cpp b/src/sbml/test/TestRenameIDs.cpp
index f11acd4..983fe79 100644
--- a/src/sbml/test/TestRenameIDs.cpp
+++ b/src/sbml/test/TestRenameIDs.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRequiredAttributes.cpp b/src/sbml/test/TestRequiredAttributes.cpp
index e56828d..d2deb78 100644
--- a/src/sbml/test/TestRequiredAttributes.cpp
+++ b/src/sbml/test/TestRequiredAttributes.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRequiredElements.cpp b/src/sbml/test/TestRequiredElements.cpp
index 2f63dc5..ed8d803 100644
--- a/src/sbml/test/TestRequiredElements.cpp
+++ b/src/sbml/test/TestRequiredElements.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRule.c b/src/sbml/test/TestRule.c
index 2b8696a..059e531 100644
--- a/src/sbml/test/TestRule.c
+++ b/src/sbml/test/TestRule.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRule_newSetters.c b/src/sbml/test/TestRule_newSetters.c
index 1ec1fb3..3d6bbeb 100644
--- a/src/sbml/test/TestRule_newSetters.c
+++ b/src/sbml/test/TestRule_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestRunner.c b/src/sbml/test/TestRunner.c
index 8b45043..9e139b0 100644
--- a/src/sbml/test/TestRunner.c
+++ b/src/sbml/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -156,6 +156,9 @@ Suite *create_suite_GetMultipleObjects            (void);
 Suite *create_suite_RemoveFromParent              (void);
 Suite *create_suite_RenameIDs                     (void);
 Suite *create_suite_SBMLTransforms                (void);
+
+Suite *create_suite_LevelCompatibility                (void);
+
 /**
  * Global.
  *
@@ -292,6 +295,7 @@ main (int argc, char* argv[])
   srunner_add_suite( runner, create_suite_SBMLConstructorException      () );
   srunner_add_suite( runner, create_suite_SBMLTransforms                () );
   srunner_add_suite( runner, create_suite_GetMultipleObjects            () );
+  srunner_add_suite( runner, create_suite_LevelCompatibility            () );
 
 
 #ifdef TRACE_MEMORY
diff --git a/src/sbml/test/TestSBMLConstructorException.cpp b/src/sbml/test/TestSBMLConstructorException.cpp
index 65bdbe6..7c63c4e 100644
--- a/src/sbml/test/TestSBMLConstructorException.cpp
+++ b/src/sbml/test/TestSBMLConstructorException.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLConvert.c b/src/sbml/test/TestSBMLConvert.c
index 35aec91..9164079 100644
--- a/src/sbml/test/TestSBMLConvert.c
+++ b/src/sbml/test/TestSBMLConvert.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLConvertStrict.c b/src/sbml/test/TestSBMLConvertStrict.c
index 666c088..b119e3e 100644
--- a/src/sbml/test/TestSBMLConvertStrict.c
+++ b/src/sbml/test/TestSBMLConvertStrict.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLDocument.c b/src/sbml/test/TestSBMLDocument.c
index 6a97dce..b95e122 100644
--- a/src/sbml/test/TestSBMLDocument.c
+++ b/src/sbml/test/TestSBMLDocument.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLError.cpp b/src/sbml/test/TestSBMLError.cpp
index 1873b5a..de1030e 100644
--- a/src/sbml/test/TestSBMLError.cpp
+++ b/src/sbml/test/TestSBMLError.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLNamespaces.cpp b/src/sbml/test/TestSBMLNamespaces.cpp
index e399ee0..18e7b09 100644
--- a/src/sbml/test/TestSBMLNamespaces.cpp
+++ b/src/sbml/test/TestSBMLNamespaces.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLParentObject.cpp b/src/sbml/test/TestSBMLParentObject.cpp
index a8762da..60dd456 100644
--- a/src/sbml/test/TestSBMLParentObject.cpp
+++ b/src/sbml/test/TestSBMLParentObject.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLTransforms.cpp b/src/sbml/test/TestSBMLTransforms.cpp
index 1a05807..df73628 100644
--- a/src/sbml/test/TestSBMLTransforms.cpp
+++ b/src/sbml/test/TestSBMLTransforms.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBMLValidators.cpp b/src/sbml/test/TestSBMLValidators.cpp
index d936e88..852bfee 100644
--- a/src/sbml/test/TestSBMLValidators.cpp
+++ b/src/sbml/test/TestSBMLValidators.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBase.cpp b/src/sbml/test/TestSBase.cpp
index 638e55f..e3a7a0e 100644
--- a/src/sbml/test/TestSBase.cpp
+++ b/src/sbml/test/TestSBase.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSBase_newSetters.cpp b/src/sbml/test/TestSBase_newSetters.cpp
index adea9e5..4ba6ca0 100644
--- a/src/sbml/test/TestSBase_newSetters.cpp
+++ b/src/sbml/test/TestSBase_newSetters.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSpecies.c b/src/sbml/test/TestSpecies.c
index 77b1fa9..efee892 100644
--- a/src/sbml/test/TestSpecies.c
+++ b/src/sbml/test/TestSpecies.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSpeciesConcentrationRule.c b/src/sbml/test/TestSpeciesConcentrationRule.c
index f6ea730..f4faecd 100644
--- a/src/sbml/test/TestSpeciesConcentrationRule.c
+++ b/src/sbml/test/TestSpeciesConcentrationRule.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSpeciesReference.c b/src/sbml/test/TestSpeciesReference.c
index b958728..4345f08 100644
--- a/src/sbml/test/TestSpeciesReference.c
+++ b/src/sbml/test/TestSpeciesReference.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSpeciesReference_newSetters.c b/src/sbml/test/TestSpeciesReference_newSetters.c
index f6b7dec..19ba82e 100644
--- a/src/sbml/test/TestSpeciesReference_newSetters.c
+++ b/src/sbml/test/TestSpeciesReference_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSpeciesType.c b/src/sbml/test/TestSpeciesType.c
index c5fd691..254599d 100644
--- a/src/sbml/test/TestSpeciesType.c
+++ b/src/sbml/test/TestSpeciesType.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSpeciesType_newSetters.c b/src/sbml/test/TestSpeciesType_newSetters.c
index 034eb5d..ca04d1d 100644
--- a/src/sbml/test/TestSpeciesType_newSetters.c
+++ b/src/sbml/test/TestSpeciesType_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSpecies_newSetters.c b/src/sbml/test/TestSpecies_newSetters.c
index 6b26d54..fcd0f83 100644
--- a/src/sbml/test/TestSpecies_newSetters.c
+++ b/src/sbml/test/TestSpecies_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestStoichiometryMath.c b/src/sbml/test/TestStoichiometryMath.c
index 19f0306..dc34c69 100644
--- a/src/sbml/test/TestStoichiometryMath.c
+++ b/src/sbml/test/TestStoichiometryMath.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestSyntaxChecker.c b/src/sbml/test/TestSyntaxChecker.c
index a21f91a..b8729a6 100644
--- a/src/sbml/test/TestSyntaxChecker.c
+++ b/src/sbml/test/TestSyntaxChecker.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestTrigger.c b/src/sbml/test/TestTrigger.c
index 5650959..91ea17f 100644
--- a/src/sbml/test/TestTrigger.c
+++ b/src/sbml/test/TestTrigger.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestUnit.c b/src/sbml/test/TestUnit.c
index 5b05cb2..a77e0bc 100644
--- a/src/sbml/test/TestUnit.c
+++ b/src/sbml/test/TestUnit.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestUnitDefinition.c b/src/sbml/test/TestUnitDefinition.c
index bbedb24..0a9aa3c 100644
--- a/src/sbml/test/TestUnitDefinition.c
+++ b/src/sbml/test/TestUnitDefinition.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestUnitDefinition_newSetters.c b/src/sbml/test/TestUnitDefinition_newSetters.c
index cc4c229..db50b1e 100644
--- a/src/sbml/test/TestUnitDefinition_newSetters.c
+++ b/src/sbml/test/TestUnitDefinition_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestUnitKind.c b/src/sbml/test/TestUnitKind.c
index 51cc9c4..8e7de9f 100644
--- a/src/sbml/test/TestUnitKind.c
+++ b/src/sbml/test/TestUnitKind.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestUnit_newSetters.c b/src/sbml/test/TestUnit_newSetters.c
index 69902b4..ce65e71 100644
--- a/src/sbml/test/TestUnit_newSetters.c
+++ b/src/sbml/test/TestUnit_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestWriteL3SBML.cpp b/src/sbml/test/TestWriteL3SBML.cpp
index 61565ba..743008e 100644
--- a/src/sbml/test/TestWriteL3SBML.cpp
+++ b/src/sbml/test/TestWriteL3SBML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/TestWriteSBML.cpp b/src/sbml/test/TestWriteSBML.cpp
index ba9169a..2ec6335 100644
--- a/src/sbml/test/TestWriteSBML.cpp
+++ b/src/sbml/test/TestWriteSBML.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/test/test-data/inconsistent-l2v1-units-2.xml b/src/sbml/test/test-data/inconsistent-l2v1-units-2.xml
new file mode 100644
index 0000000..dc3fc3c
--- /dev/null
+++ b/src/sbml/test/test-data/inconsistent-l2v1-units-2.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="__main" name="__main">
+        <listOfParameters>
+            <parameter id="a" value="3" units="second" constant="true"/>
+            <parameter id="b" units="second" constant="false"/>
+        </listOfParameters>
+        <listOfRules>
+            <assignmentRule variable="b">
+                <math xmlns="http://www.w3.org/1998/Math/MathML">
+                <apply>
+                    <power/>
+                    <ci> a </ci>
+                    <cn type="integer"> 1 </cn>
+                </apply>
+                </math>
+            </assignmentRule>
+        </listOfRules>
+    </model>
+</sbml>
diff --git a/src/sbml/test/test-data/inconsistent-l2v1-units.xml b/src/sbml/test/test-data/inconsistent-l2v1-units.xml
new file mode 100644
index 0000000..fbe9845
--- /dev/null
+++ b/src/sbml/test/test-data/inconsistent-l2v1-units.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="__main" name="__main">
+        <listOfParameters>
+            <parameter id="a" value="3" units="second" constant="true"/>
+            <parameter id="b" units="second" constant="false"/>
+        </listOfParameters>
+        <listOfRules>
+            <assignmentRule variable="b">
+                <math xmlns="http://www.w3.org/1998/Math/MathML">
+                <apply>
+                    <power/>
+                    <ci> a </ci>
+                    <cn type="integer"> 2 </cn>
+                </apply>
+                </math>
+            </assignmentRule>
+        </listOfRules>
+    </model>
+</sbml>
diff --git a/src/sbml/units/FormulaUnitsData.cpp b/src/sbml/units/FormulaUnitsData.cpp
index 6cdccce..6512a11 100644
--- a/src/sbml/units/FormulaUnitsData.cpp
+++ b/src/sbml/units/FormulaUnitsData.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/FormulaUnitsData.h b/src/sbml/units/FormulaUnitsData.h
index 1476541..9724c65 100644
--- a/src/sbml/units/FormulaUnitsData.h
+++ b/src/sbml/units/FormulaUnitsData.h
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/Makefile.in b/src/sbml/units/Makefile.in
index 8868d88..f0573e3 100644
--- a/src/sbml/units/Makefile.in
+++ b/src/sbml/units/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/UnitFormulaFormatter.cpp b/src/sbml/units/UnitFormulaFormatter.cpp
index b731812..3d57c02 100644
--- a/src/sbml/units/UnitFormulaFormatter.cpp
+++ b/src/sbml/units/UnitFormulaFormatter.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/UnitFormulaFormatter.h b/src/sbml/units/UnitFormulaFormatter.h
index 0794f5a..30658ae 100644
--- a/src/sbml/units/UnitFormulaFormatter.h
+++ b/src/sbml/units/UnitFormulaFormatter.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/UnitKindList.cpp b/src/sbml/units/UnitKindList.cpp
index e8a45f3..cdb840b 100644
--- a/src/sbml/units/UnitKindList.cpp
+++ b/src/sbml/units/UnitKindList.cpp
@@ -12,7 +12,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/UnitKindList.h b/src/sbml/units/UnitKindList.h
index 39c1c6a..2624ca5 100644
--- a/src/sbml/units/UnitKindList.h
+++ b/src/sbml/units/UnitKindList.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/CMakeLists.txt b/src/sbml/units/test/CMakeLists.txt
index 1204b14..59d4659 100644
--- a/src/sbml/units/test/CMakeLists.txt
+++ b/src/sbml/units/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/Makefile.in b/src/sbml/units/test/Makefile.in
index b24fe7e..cdc2a06 100644
--- a/src/sbml/units/test/Makefile.in
+++ b/src/sbml/units/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestCalculatedUnitDefinitions.cpp b/src/sbml/units/test/TestCalculatedUnitDefinitions.cpp
index 58590eb..3f5c265 100644
--- a/src/sbml/units/test/TestCalculatedUnitDefinitions.cpp
+++ b/src/sbml/units/test/TestCalculatedUnitDefinitions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestDerivedUnitDefinitions.cpp b/src/sbml/units/test/TestDerivedUnitDefinitions.cpp
index 20717ea..a87455b 100644
--- a/src/sbml/units/test/TestDerivedUnitDefinitions.cpp
+++ b/src/sbml/units/test/TestDerivedUnitDefinitions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestFormulaUnitsData.cpp b/src/sbml/units/test/TestFormulaUnitsData.cpp
index f385f5a..5136343 100644
--- a/src/sbml/units/test/TestFormulaUnitsData.cpp
+++ b/src/sbml/units/test/TestFormulaUnitsData.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestRunner.c b/src/sbml/units/test/TestRunner.c
index 0d81f75..07fce24 100644
--- a/src/sbml/units/test/TestRunner.c
+++ b/src/sbml/units/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestUnitFormulaFormatter.cpp b/src/sbml/units/test/TestUnitFormulaFormatter.cpp
index b987964..7882461 100644
--- a/src/sbml/units/test/TestUnitFormulaFormatter.cpp
+++ b/src/sbml/units/test/TestUnitFormulaFormatter.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestUnitFormulaFormatter1.cpp b/src/sbml/units/test/TestUnitFormulaFormatter1.cpp
index c645962..3ec72e0 100644
--- a/src/sbml/units/test/TestUnitFormulaFormatter1.cpp
+++ b/src/sbml/units/test/TestUnitFormulaFormatter1.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestUnitFormulaFormatter2.cpp b/src/sbml/units/test/TestUnitFormulaFormatter2.cpp
index c239d6e..e1a9f82 100644
--- a/src/sbml/units/test/TestUnitFormulaFormatter2.cpp
+++ b/src/sbml/units/test/TestUnitFormulaFormatter2.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestUnitFormulaFormatter3.cpp b/src/sbml/units/test/TestUnitFormulaFormatter3.cpp
index 5532ed4..acb2f9a 100644
--- a/src/sbml/units/test/TestUnitFormulaFormatter3.cpp
+++ b/src/sbml/units/test/TestUnitFormulaFormatter3.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestUtilsUnit.cpp b/src/sbml/units/test/TestUtilsUnit.cpp
index e591699..b674cec 100644
--- a/src/sbml/units/test/TestUtilsUnit.cpp
+++ b/src/sbml/units/test/TestUtilsUnit.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/units/test/TestUtilsUnitDefinition.cpp b/src/sbml/units/test/TestUtilsUnitDefinition.cpp
index caae5cf..5522d77 100644
--- a/src/sbml/units/test/TestUtilsUnitDefinition.cpp
+++ b/src/sbml/units/test/TestUtilsUnitDefinition.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/ElementFilter.cpp b/src/sbml/util/ElementFilter.cpp
index 8ac742e..9708ae5 100644
--- a/src/sbml/util/ElementFilter.cpp
+++ b/src/sbml/util/ElementFilter.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/ElementFilter.h b/src/sbml/util/ElementFilter.h
index 6136ec6..b6aff66 100644
--- a/src/sbml/util/ElementFilter.h
+++ b/src/sbml/util/ElementFilter.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/IdFilter.cpp b/src/sbml/util/IdFilter.cpp
index 4747c5d..36ab8fb 100644
--- a/src/sbml/util/IdFilter.cpp
+++ b/src/sbml/util/IdFilter.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/IdFilter.h b/src/sbml/util/IdFilter.h
index a7ac50f..ccbdf5f 100644
--- a/src/sbml/util/IdFilter.h
+++ b/src/sbml/util/IdFilter.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/IdList.cpp b/src/sbml/util/IdList.cpp
index 7d9304d..8a9371a 100644
--- a/src/sbml/util/IdList.cpp
+++ b/src/sbml/util/IdList.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/IdList.h b/src/sbml/util/IdList.h
index 7fb6118..59ca4c4 100644
--- a/src/sbml/util/IdList.h
+++ b/src/sbml/util/IdList.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/IdentifierTransformer.cpp b/src/sbml/util/IdentifierTransformer.cpp
index d3b5735..b5fb67a 100644
--- a/src/sbml/util/IdentifierTransformer.cpp
+++ b/src/sbml/util/IdentifierTransformer.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/IdentifierTransformer.h b/src/sbml/util/IdentifierTransformer.h
index e29e93b..748535b 100644
--- a/src/sbml/util/IdentifierTransformer.h
+++ b/src/sbml/util/IdentifierTransformer.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/List.cpp b/src/sbml/util/List.cpp
index 60029b1..b196fdb 100644
--- a/src/sbml/util/List.cpp
+++ b/src/sbml/util/List.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/List.h b/src/sbml/util/List.h
index ba63e39..ae89459 100644
--- a/src/sbml/util/List.h
+++ b/src/sbml/util/List.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/Makefile.in b/src/sbml/util/Makefile.in
index 80d2ec9..2a19d2d 100644
--- a/src/sbml/util/Makefile.in
+++ b/src/sbml/util/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/MetaIdFilter.cpp b/src/sbml/util/MetaIdFilter.cpp
index 18902f2..2dfeda2 100644
--- a/src/sbml/util/MetaIdFilter.cpp
+++ b/src/sbml/util/MetaIdFilter.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/MetaIdFilter.h b/src/sbml/util/MetaIdFilter.h
index 9581f12..c6c6842 100644
--- a/src/sbml/util/MetaIdFilter.h
+++ b/src/sbml/util/MetaIdFilter.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/PrefixTransformer.cpp b/src/sbml/util/PrefixTransformer.cpp
index 74f1d26..79897bc 100644
--- a/src/sbml/util/PrefixTransformer.cpp
+++ b/src/sbml/util/PrefixTransformer.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/PrefixTransformer.h b/src/sbml/util/PrefixTransformer.h
index 3ab7089..ba606de 100644
--- a/src/sbml/util/PrefixTransformer.h
+++ b/src/sbml/util/PrefixTransformer.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/Stack.c b/src/sbml/util/Stack.c
index ef18cd8..0c01a67 100644
--- a/src/sbml/util/Stack.c
+++ b/src/sbml/util/Stack.c
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/Stack.h b/src/sbml/util/Stack.h
index 4686138..c080cea 100644
--- a/src/sbml/util/Stack.h
+++ b/src/sbml/util/Stack.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/StringBuffer.c b/src/sbml/util/StringBuffer.c
index 13b6a19..475f330 100644
--- a/src/sbml/util/StringBuffer.c
+++ b/src/sbml/util/StringBuffer.c
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/StringBuffer.h b/src/sbml/util/StringBuffer.h
index 8c5e48f..5d1c586 100644
--- a/src/sbml/util/StringBuffer.h
+++ b/src/sbml/util/StringBuffer.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/memory.c b/src/sbml/util/memory.c
index 1bb78d2..5c1bce0 100644
--- a/src/sbml/util/memory.c
+++ b/src/sbml/util/memory.c
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/memory.h b/src/sbml/util/memory.h
index 1cd74f3..235f440 100644
--- a/src/sbml/util/memory.h
+++ b/src/sbml/util/memory.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/CMakeLists.txt b/src/sbml/util/test/CMakeLists.txt
index ce683f2..dfee265 100644
--- a/src/sbml/util/test/CMakeLists.txt
+++ b/src/sbml/util/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/Makefile.in b/src/sbml/util/test/Makefile.in
index bbfd819..d6d8470 100644
--- a/src/sbml/util/test/Makefile.in
+++ b/src/sbml/util/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/TestList.c b/src/sbml/util/test/TestList.c
index fe07d34..5a5055c 100644
--- a/src/sbml/util/test/TestList.c
+++ b/src/sbml/util/test/TestList.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/TestMemory.c b/src/sbml/util/test/TestMemory.c
index ab95ce8..5d85765 100644
--- a/src/sbml/util/test/TestMemory.c
+++ b/src/sbml/util/test/TestMemory.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/TestRunner.c b/src/sbml/util/test/TestRunner.c
index 1362c66..e99a49f 100644
--- a/src/sbml/util/test/TestRunner.c
+++ b/src/sbml/util/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/TestStack.c b/src/sbml/util/test/TestStack.c
index 60429ab..faceada 100644
--- a/src/sbml/util/test/TestStack.c
+++ b/src/sbml/util/test/TestStack.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/TestStringBuffer.c b/src/sbml/util/test/TestStringBuffer.c
index 1be0b68..4966a16 100644
--- a/src/sbml/util/test/TestStringBuffer.c
+++ b/src/sbml/util/test/TestStringBuffer.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/test/TestUtil.c b/src/sbml/util/test/TestUtil.c
index f29dc87..1957912 100644
--- a/src/sbml/util/test/TestUtil.c
+++ b/src/sbml/util/test/TestUtil.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/util.cpp b/src/sbml/util/util.cpp
index a4b110c..a8fc286 100644
--- a/src/sbml/util/util.cpp
+++ b/src/sbml/util/util.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/util/util.h b/src/sbml/util/util.h
index 4bfd5d3..edcec1d 100644
--- a/src/sbml/util/util.h
+++ b/src/sbml/util/util.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/ConsistencyValidator.cpp b/src/sbml/validator/ConsistencyValidator.cpp
index cfcad1b..cdc5181 100644
--- a/src/sbml/validator/ConsistencyValidator.cpp
+++ b/src/sbml/validator/ConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/ConsistencyValidator.h b/src/sbml/validator/ConsistencyValidator.h
index 1910e7c..8cdcafe 100644
--- a/src/sbml/validator/ConsistencyValidator.h
+++ b/src/sbml/validator/ConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/ConstraintMacros.h b/src/sbml/validator/ConstraintMacros.h
index b4db06b..426c084 100644
--- a/src/sbml/validator/ConstraintMacros.h
+++ b/src/sbml/validator/ConstraintMacros.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/IdentifierConsistencyValidator.cpp b/src/sbml/validator/IdentifierConsistencyValidator.cpp
index 06121d2..d01b133 100644
--- a/src/sbml/validator/IdentifierConsistencyValidator.cpp
+++ b/src/sbml/validator/IdentifierConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/IdentifierConsistencyValidator.h b/src/sbml/validator/IdentifierConsistencyValidator.h
index 744fee7..25d8b8f 100644
--- a/src/sbml/validator/IdentifierConsistencyValidator.h
+++ b/src/sbml/validator/IdentifierConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/InternalConsistencyValidator.cpp b/src/sbml/validator/InternalConsistencyValidator.cpp
index 3515a65..445fdcd 100644
--- a/src/sbml/validator/InternalConsistencyValidator.cpp
+++ b/src/sbml/validator/InternalConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/InternalConsistencyValidator.h b/src/sbml/validator/InternalConsistencyValidator.h
index 239be01..da916ef 100644
--- a/src/sbml/validator/InternalConsistencyValidator.h
+++ b/src/sbml/validator/InternalConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L1CompatibilityValidator.cpp b/src/sbml/validator/L1CompatibilityValidator.cpp
index 10f308f..048a00d 100644
--- a/src/sbml/validator/L1CompatibilityValidator.cpp
+++ b/src/sbml/validator/L1CompatibilityValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L1CompatibilityValidator.h b/src/sbml/validator/L1CompatibilityValidator.h
index 8607d9e..a7d897c 100644
--- a/src/sbml/validator/L1CompatibilityValidator.h
+++ b/src/sbml/validator/L1CompatibilityValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v1CompatibilityValidator.cpp b/src/sbml/validator/L2v1CompatibilityValidator.cpp
index 7b09e7c..40abe1a 100644
--- a/src/sbml/validator/L2v1CompatibilityValidator.cpp
+++ b/src/sbml/validator/L2v1CompatibilityValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v1CompatibilityValidator.h b/src/sbml/validator/L2v1CompatibilityValidator.h
index c68a53d..2f23efd 100644
--- a/src/sbml/validator/L2v1CompatibilityValidator.h
+++ b/src/sbml/validator/L2v1CompatibilityValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v2CompatibilityValidator.cpp b/src/sbml/validator/L2v2CompatibilityValidator.cpp
index 41b9d67..caf6091 100644
--- a/src/sbml/validator/L2v2CompatibilityValidator.cpp
+++ b/src/sbml/validator/L2v2CompatibilityValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v2CompatibilityValidator.h b/src/sbml/validator/L2v2CompatibilityValidator.h
index 8a7b911..9198f29 100644
--- a/src/sbml/validator/L2v2CompatibilityValidator.h
+++ b/src/sbml/validator/L2v2CompatibilityValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v3CompatibilityValidator.cpp b/src/sbml/validator/L2v3CompatibilityValidator.cpp
index 17408dc..3b40a27 100644
--- a/src/sbml/validator/L2v3CompatibilityValidator.cpp
+++ b/src/sbml/validator/L2v3CompatibilityValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v3CompatibilityValidator.h b/src/sbml/validator/L2v3CompatibilityValidator.h
index c39b5a2..d1b1cd0 100644
--- a/src/sbml/validator/L2v3CompatibilityValidator.h
+++ b/src/sbml/validator/L2v3CompatibilityValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v4CompatibilityValidator.cpp b/src/sbml/validator/L2v4CompatibilityValidator.cpp
index 09f0ac8..bca75a2 100644
--- a/src/sbml/validator/L2v4CompatibilityValidator.cpp
+++ b/src/sbml/validator/L2v4CompatibilityValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L2v4CompatibilityValidator.h b/src/sbml/validator/L2v4CompatibilityValidator.h
index d27f335..ffb15a7 100644
--- a/src/sbml/validator/L2v4CompatibilityValidator.h
+++ b/src/sbml/validator/L2v4CompatibilityValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L3v1CompatibilityValidator.cpp b/src/sbml/validator/L3v1CompatibilityValidator.cpp
index 3cb8ac9..116e561 100644
--- a/src/sbml/validator/L3v1CompatibilityValidator.cpp
+++ b/src/sbml/validator/L3v1CompatibilityValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/L3v1CompatibilityValidator.h b/src/sbml/validator/L3v1CompatibilityValidator.h
index c347f57..2ab2b02 100644
--- a/src/sbml/validator/L3v1CompatibilityValidator.h
+++ b/src/sbml/validator/L3v1CompatibilityValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/Makefile.in b/src/sbml/validator/Makefile.in
index 83e7b2a..5d2f7d6 100644
--- a/src/sbml/validator/Makefile.in
+++ b/src/sbml/validator/Makefile.in
@@ -10,7 +10,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/MathMLConsistencyValidator.cpp b/src/sbml/validator/MathMLConsistencyValidator.cpp
index 68e3b58..8ee077f 100644
--- a/src/sbml/validator/MathMLConsistencyValidator.cpp
+++ b/src/sbml/validator/MathMLConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/MathMLConsistencyValidator.h b/src/sbml/validator/MathMLConsistencyValidator.h
index c4bb263..46b3ef2 100644
--- a/src/sbml/validator/MathMLConsistencyValidator.h
+++ b/src/sbml/validator/MathMLConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/ModelingPracticeValidator.cpp b/src/sbml/validator/ModelingPracticeValidator.cpp
index 5b8414f..c30cc38 100644
--- a/src/sbml/validator/ModelingPracticeValidator.cpp
+++ b/src/sbml/validator/ModelingPracticeValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/ModelingPracticeValidator.h b/src/sbml/validator/ModelingPracticeValidator.h
index 0e85d65..0e74b3a 100644
--- a/src/sbml/validator/ModelingPracticeValidator.h
+++ b/src/sbml/validator/ModelingPracticeValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/OverdeterminedValidator.cpp b/src/sbml/validator/OverdeterminedValidator.cpp
index 6f58713..ef8466f 100644
--- a/src/sbml/validator/OverdeterminedValidator.cpp
+++ b/src/sbml/validator/OverdeterminedValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/OverdeterminedValidator.h b/src/sbml/validator/OverdeterminedValidator.h
index 51003a7..6cb22ad 100644
--- a/src/sbml/validator/OverdeterminedValidator.h
+++ b/src/sbml/validator/OverdeterminedValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBMLExternalValidator.cpp b/src/sbml/validator/SBMLExternalValidator.cpp
index 59dc905..c9f576a 100644
--- a/src/sbml/validator/SBMLExternalValidator.cpp
+++ b/src/sbml/validator/SBMLExternalValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBMLExternalValidator.h b/src/sbml/validator/SBMLExternalValidator.h
index 3e689b7..2081239 100644
--- a/src/sbml/validator/SBMLExternalValidator.h
+++ b/src/sbml/validator/SBMLExternalValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBMLInternalValidator.cpp b/src/sbml/validator/SBMLInternalValidator.cpp
index 99255f1..9dc6527 100644
--- a/src/sbml/validator/SBMLInternalValidator.cpp
+++ b/src/sbml/validator/SBMLInternalValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBMLInternalValidator.h b/src/sbml/validator/SBMLInternalValidator.h
index 672ff69..2c113f3 100644
--- a/src/sbml/validator/SBMLInternalValidator.h
+++ b/src/sbml/validator/SBMLInternalValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBMLValidator.cpp b/src/sbml/validator/SBMLValidator.cpp
index 9e13ad9..660a944 100644
--- a/src/sbml/validator/SBMLValidator.cpp
+++ b/src/sbml/validator/SBMLValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBMLValidator.h b/src/sbml/validator/SBMLValidator.h
index 037478b..c73ab2e 100644
--- a/src/sbml/validator/SBMLValidator.h
+++ b/src/sbml/validator/SBMLValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBOConsistencyValidator.cpp b/src/sbml/validator/SBOConsistencyValidator.cpp
index d41e63a..4a98a34 100644
--- a/src/sbml/validator/SBOConsistencyValidator.cpp
+++ b/src/sbml/validator/SBOConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/SBOConsistencyValidator.h b/src/sbml/validator/SBOConsistencyValidator.h
index 2bf56aa..7a295d9 100644
--- a/src/sbml/validator/SBOConsistencyValidator.h
+++ b/src/sbml/validator/SBOConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/StrictUnitConsistencyValidator.cpp b/src/sbml/validator/StrictUnitConsistencyValidator.cpp
index eed5a97..77bb94b 100644
--- a/src/sbml/validator/StrictUnitConsistencyValidator.cpp
+++ b/src/sbml/validator/StrictUnitConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/StrictUnitConsistencyValidator.h b/src/sbml/validator/StrictUnitConsistencyValidator.h
index da042f7..41cc9c1 100644
--- a/src/sbml/validator/StrictUnitConsistencyValidator.h
+++ b/src/sbml/validator/StrictUnitConsistencyValidator.h
@@ -1,66 +1,66 @@
-/**
- * @cond doxygenLibsbmlInternal
- *
- * @file    StrictUnitConsistencyValidator.h
- * @brief   Performs consistency checks on an SBML model
- * @author  Ben Bornstein
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution and
- * also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->*/
-
-#ifndef StrictUnitConsistencyValidator_h
-#define StrictUnitConsistencyValidator_h
-
-
-#ifdef __cplusplus
-
-
-#include <sbml/validator/Validator.h>
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-class StrictUnitConsistencyValidator: public Validator
-{
-public:
-
-  StrictUnitConsistencyValidator () :
-    Validator( LIBSBML_CAT_UNITS_CONSISTENCY ) { }
-
-  virtual ~StrictUnitConsistencyValidator () { }
-
-  /**
-   * Initializes this Validator with a set of Constraints.
-   */
-  virtual void init ();
-};
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-#endif  /* StrictUnitConsistencyValidator_h */
-/** @endcond */
-
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    StrictUnitConsistencyValidator.h
+ * @brief   Performs consistency checks on an SBML model
+ * @author  Ben Bornstein
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution and
+ * also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef StrictUnitConsistencyValidator_h
+#define StrictUnitConsistencyValidator_h
+
+
+#ifdef __cplusplus
+
+
+#include <sbml/validator/Validator.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class StrictUnitConsistencyValidator: public Validator
+{
+public:
+
+  StrictUnitConsistencyValidator () :
+    Validator( LIBSBML_CAT_UNITS_CONSISTENCY ) { }
+
+  virtual ~StrictUnitConsistencyValidator () { }
+
+  /**
+   * Initializes this Validator with a set of Constraints.
+   */
+  virtual void init ();
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* StrictUnitConsistencyValidator_h */
+/** @endcond */
+
diff --git a/src/sbml/validator/UnitConsistencyValidator.cpp b/src/sbml/validator/UnitConsistencyValidator.cpp
index 47f8dea..94a9f6b 100644
--- a/src/sbml/validator/UnitConsistencyValidator.cpp
+++ b/src/sbml/validator/UnitConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/UnitConsistencyValidator.h b/src/sbml/validator/UnitConsistencyValidator.h
index 9716f53..2e99d79 100644
--- a/src/sbml/validator/UnitConsistencyValidator.h
+++ b/src/sbml/validator/UnitConsistencyValidator.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/VConstraint.cpp b/src/sbml/validator/VConstraint.cpp
index 70503f3..6120549 100644
--- a/src/sbml/validator/VConstraint.cpp
+++ b/src/sbml/validator/VConstraint.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/VConstraint.h b/src/sbml/validator/VConstraint.h
index 2a409be..586ed3b 100644
--- a/src/sbml/validator/VConstraint.h
+++ b/src/sbml/validator/VConstraint.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/Validator.cpp b/src/sbml/validator/Validator.cpp
index 4ecbbc3..081b0b0 100644
--- a/src/sbml/validator/Validator.cpp
+++ b/src/sbml/validator/Validator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/Validator.h b/src/sbml/validator/Validator.h
index b44b8b3..4b63dca 100644
--- a/src/sbml/validator/Validator.h
+++ b/src/sbml/validator/Validator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ArgumentsUnitsCheck.cpp b/src/sbml/validator/constraints/ArgumentsUnitsCheck.cpp
index 98b10cd..a968bae 100644
--- a/src/sbml/validator/constraints/ArgumentsUnitsCheck.cpp
+++ b/src/sbml/validator/constraints/ArgumentsUnitsCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ArgumentsUnitsCheck.h b/src/sbml/validator/constraints/ArgumentsUnitsCheck.h
index c4a999f..c413ed5 100644
--- a/src/sbml/validator/constraints/ArgumentsUnitsCheck.h
+++ b/src/sbml/validator/constraints/ArgumentsUnitsCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.cpp b/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.cpp
index 47eaac5..3afc16c 100644
--- a/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.cpp
+++ b/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.h b/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.h
index 611d174..64e720b 100644
--- a/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.h
+++ b/src/sbml/validator/constraints/ArgumentsUnitsCheckWarnings.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/AssignmentCycles.cpp b/src/sbml/validator/constraints/AssignmentCycles.cpp
index b0fda42..6631b3f 100644
--- a/src/sbml/validator/constraints/AssignmentCycles.cpp
+++ b/src/sbml/validator/constraints/AssignmentCycles.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/AssignmentCycles.h b/src/sbml/validator/constraints/AssignmentCycles.h
index 401553e..4d7c898 100644
--- a/src/sbml/validator/constraints/AssignmentCycles.h
+++ b/src/sbml/validator/constraints/AssignmentCycles.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/AssignmentRuleOrdering.cpp b/src/sbml/validator/constraints/AssignmentRuleOrdering.cpp
index d000828..fbb6711 100644
--- a/src/sbml/validator/constraints/AssignmentRuleOrdering.cpp
+++ b/src/sbml/validator/constraints/AssignmentRuleOrdering.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/AssignmentRuleOrdering.h b/src/sbml/validator/constraints/AssignmentRuleOrdering.h
index c5d2757..5a4b488 100644
--- a/src/sbml/validator/constraints/AssignmentRuleOrdering.h
+++ b/src/sbml/validator/constraints/AssignmentRuleOrdering.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/CiElementMathCheck.cpp b/src/sbml/validator/constraints/CiElementMathCheck.cpp
index 9ef3dc2..9e18353 100644
--- a/src/sbml/validator/constraints/CiElementMathCheck.cpp
+++ b/src/sbml/validator/constraints/CiElementMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/CiElementMathCheck.h b/src/sbml/validator/constraints/CiElementMathCheck.h
index fc23bf7..f70bc2d 100644
--- a/src/sbml/validator/constraints/CiElementMathCheck.h
+++ b/src/sbml/validator/constraints/CiElementMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/CiElementNot0DComp.cpp b/src/sbml/validator/constraints/CiElementNot0DComp.cpp
index f511fd2..fd188f1 100644
--- a/src/sbml/validator/constraints/CiElementNot0DComp.cpp
+++ b/src/sbml/validator/constraints/CiElementNot0DComp.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/CiElementNot0DComp.h b/src/sbml/validator/constraints/CiElementNot0DComp.h
index 66b36a4..5154443 100644
--- a/src/sbml/validator/constraints/CiElementNot0DComp.h
+++ b/src/sbml/validator/constraints/CiElementNot0DComp.h
@@ -1,117 +1,117 @@
-/**
- * @cond doxygenLibsbmlInternal
- *
- * @file    CiElementNot0DComp.h
- * @brief   checks <ci> element is the id of a component
- * @author  Sarah Keating
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->*/
-
-#ifndef CiElementNot0DComp_h
-#define CiElementNot0DComp_h
-
-
-#ifdef __cplusplus
-
-
-#include <string>
-#include <sstream>
-#include <math.h>
-
-#include <sbml/validator/VConstraint.h>
-
-#include "MathMLBase.h"
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-class ASTNode;
-
-
-class CiElementNot0DComp: public MathMLBase
-{
-public:
-
-  /**
-   * Creates a new Constraint with the given @p id.
-   */
-  CiElementNot0DComp (unsigned int id, Validator& v);
-
-  /**
-   * Destroys this Constraint.
-   */
-  virtual ~CiElementNot0DComp ();
-
-
-protected:
-
-  /**
-   * Checks the MathML of the ASTnode 
-   * is appropriate for the function being performed
-   *
-   * If an inconsistency is found, an error message is logged.
-   */
-  virtual void checkMath (const Model& m, const ASTNode& node, const SBase & sb);
-  
-  /**
-   * Returns the preamble to use when logging constraint violations.  
-   *
-   * @return the preamble to use when logging constraint violations.  The
-   * preamble will be prepended to each log message.  If not overriden,
-   * returns an empty string.
-   */
-  virtual const char* getPreamble ();
-
-  /**
-   * Checks any <ci> elements in the MathML of the ASTnode 
-   * contain the id of an appropriate component of the model
-   *
-   * If an inconsistency is found, an error message is logged.
-   */
-  void checkCiElement (const Model& m, const ASTNode& node, const SBase & sb);
-
-  /**
-   * Returns the error message to use when logging constraint violations.
-   * This method is called by logFailure.
-   *
-   * If at all possible please use getPreamble() and getFieldname() when
-   * constructing error messages.  This will help to make your constraint
-   * easily customizable.
-   * 
-   * @return the error message to use when logging constraint violations.
-   */
-  virtual const std::string
-  getMessage (const ASTNode& node, const SBase& object);
-
-};
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-#endif  /* CiElementNot0DComp_h */
-/** @endcond */
-
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    CiElementNot0DComp.h
+ * @brief   checks <ci> element is the id of a component
+ * @author  Sarah Keating
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef CiElementNot0DComp_h
+#define CiElementNot0DComp_h
+
+
+#ifdef __cplusplus
+
+
+#include <string>
+#include <sstream>
+#include <math.h>
+
+#include <sbml/validator/VConstraint.h>
+
+#include "MathMLBase.h"
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+class ASTNode;
+
+
+class CiElementNot0DComp: public MathMLBase
+{
+public:
+
+  /**
+   * Creates a new Constraint with the given @p id.
+   */
+  CiElementNot0DComp (unsigned int id, Validator& v);
+
+  /**
+   * Destroys this Constraint.
+   */
+  virtual ~CiElementNot0DComp ();
+
+
+protected:
+
+  /**
+   * Checks the MathML of the ASTnode 
+   * is appropriate for the function being performed
+   *
+   * If an inconsistency is found, an error message is logged.
+   */
+  virtual void checkMath (const Model& m, const ASTNode& node, const SBase & sb);
+  
+  /**
+   * Returns the preamble to use when logging constraint violations.  
+   *
+   * @return the preamble to use when logging constraint violations.  The
+   * preamble will be prepended to each log message.  If not overriden,
+   * returns an empty string.
+   */
+  virtual const char* getPreamble ();
+
+  /**
+   * Checks any <ci> elements in the MathML of the ASTnode 
+   * contain the id of an appropriate component of the model
+   *
+   * If an inconsistency is found, an error message is logged.
+   */
+  void checkCiElement (const Model& m, const ASTNode& node, const SBase & sb);
+
+  /**
+   * Returns the error message to use when logging constraint violations.
+   * This method is called by logFailure.
+   *
+   * If at all possible please use getPreamble() and getFieldname() when
+   * constructing error messages.  This will help to make your constraint
+   * easily customizable.
+   * 
+   * @return the error message to use when logging constraint violations.
+   */
+  virtual const std::string
+  getMessage (const ASTNode& node, const SBase& object);
+
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* CiElementNot0DComp_h */
+/** @endcond */
+
diff --git a/src/sbml/validator/constraints/CompartmentOutsideCycles.cpp b/src/sbml/validator/constraints/CompartmentOutsideCycles.cpp
index 5bf6438..e7a22c3 100644
--- a/src/sbml/validator/constraints/CompartmentOutsideCycles.cpp
+++ b/src/sbml/validator/constraints/CompartmentOutsideCycles.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/CompartmentOutsideCycles.h b/src/sbml/validator/constraints/CompartmentOutsideCycles.h
index ce080d2..e4fa072 100644
--- a/src/sbml/validator/constraints/CompartmentOutsideCycles.h
+++ b/src/sbml/validator/constraints/CompartmentOutsideCycles.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ConsistencyConstraints.cpp b/src/sbml/validator/constraints/ConsistencyConstraints.cpp
index c78d0c6..990e35a 100644
--- a/src/sbml/validator/constraints/ConsistencyConstraints.cpp
+++ b/src/sbml/validator/constraints/ConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ConsistencyConstraintsDeclared.cxx b/src/sbml/validator/constraints/ConsistencyConstraintsDeclared.cxx
index 754abad..070bfb4 100644
--- a/src/sbml/validator/constraints/ConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/ConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.cpp b/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.cpp
index 64b604c..76111da 100644
--- a/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.cpp
+++ b/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.h b/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.h
index 24dc2db..121801c 100644
--- a/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.h
+++ b/src/sbml/validator/constraints/DuplicateTopLevelAnnotation.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/EqualityArgsMathCheck.cpp b/src/sbml/validator/constraints/EqualityArgsMathCheck.cpp
index 2c8cea6..d7f02ed 100644
--- a/src/sbml/validator/constraints/EqualityArgsMathCheck.cpp
+++ b/src/sbml/validator/constraints/EqualityArgsMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/EqualityArgsMathCheck.h b/src/sbml/validator/constraints/EqualityArgsMathCheck.h
index 9fe796d..e68ca17 100644
--- a/src/sbml/validator/constraints/EqualityArgsMathCheck.h
+++ b/src/sbml/validator/constraints/EqualityArgsMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ExponentUnitsCheck.cpp b/src/sbml/validator/constraints/ExponentUnitsCheck.cpp
index 0ca2d63..1734d82 100644
--- a/src/sbml/validator/constraints/ExponentUnitsCheck.cpp
+++ b/src/sbml/validator/constraints/ExponentUnitsCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ExponentUnitsCheck.h b/src/sbml/validator/constraints/ExponentUnitsCheck.h
index 927d8d0..50fc1b4 100644
--- a/src/sbml/validator/constraints/ExponentUnitsCheck.h
+++ b/src/sbml/validator/constraints/ExponentUnitsCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionApplyMathCheck.cpp b/src/sbml/validator/constraints/FunctionApplyMathCheck.cpp
index 13e9e16..e7e8aaf 100644
--- a/src/sbml/validator/constraints/FunctionApplyMathCheck.cpp
+++ b/src/sbml/validator/constraints/FunctionApplyMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionApplyMathCheck.h b/src/sbml/validator/constraints/FunctionApplyMathCheck.h
index 3abca75..9db12ed 100644
--- a/src/sbml/validator/constraints/FunctionApplyMathCheck.h
+++ b/src/sbml/validator/constraints/FunctionApplyMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionDefinitionRecursion.cpp b/src/sbml/validator/constraints/FunctionDefinitionRecursion.cpp
index 4c9822c..0b8e8bd 100644
--- a/src/sbml/validator/constraints/FunctionDefinitionRecursion.cpp
+++ b/src/sbml/validator/constraints/FunctionDefinitionRecursion.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionDefinitionRecursion.h b/src/sbml/validator/constraints/FunctionDefinitionRecursion.h
index a7d39ef..5fb8c07 100644
--- a/src/sbml/validator/constraints/FunctionDefinitionRecursion.h
+++ b/src/sbml/validator/constraints/FunctionDefinitionRecursion.h
@@ -1,113 +1,113 @@
-/**
- * @cond doxygenLibsbmlInternal
- *
- * @file    FunctionDefinitionRecursion.h
- * @brief   Checks for recursion in functionDefinitions
- * @author  Sarah Keating
- * 
- * <!--------------------------------------------------------------------------
- * This file is part of libSBML.  Please visit http://sbml.org for more
- * information about SBML, and the latest version of libSBML.
- *
- * Copyright (C) 2013-2015 jointly by the following organizations:
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *     3. University of Heidelberg, Heidelberg, Germany
- *
- * Copyright (C) 2009-2013 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
- *  
- * Copyright (C) 2006-2008 by the California Institute of Technology,
- *     Pasadena, CA, USA 
- *  
- * Copyright (C) 2002-2005 jointly by the following organizations: 
- *     1. California Institute of Technology, Pasadena, CA, USA
- *     2. Japan Science and Technology Agency, Japan
- * 
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation.  A copy of the license agreement is provided
- * in the file named "LICENSE.txt" included with this software distribution
- * and also available online as http://sbml.org/software/libsbml/license.html
- * ---------------------------------------------------------------------- -->*/
-
-#ifndef FunctionDefinitionRecursion_h
-#define FunctionDefinitionRecursion_h
-
-
-#ifdef __cplusplus
-
-#include <string>
-
-#include <sbml/validator/VConstraint.h>
-
-#include <sbml/util/IdList.h>
-
-LIBSBML_CPP_NAMESPACE_BEGIN
-
-typedef std::multimap<const std::string, std::string> IdMap;
-typedef IdMap::iterator                               IdIter;
-typedef std::pair<IdIter, IdIter>                     IdRange;
-
-class FunctionDefinitionRecursion: public TConstraint<Model>
-{
-public:
-
-  /**
-   * Creates a new Constraint with the given constraint id.
-   */
-  FunctionDefinitionRecursion (unsigned int id, Validator& v);
-
-  /**
-   * Destroys this Constraint.
-   */
-  virtual ~FunctionDefinitionRecursion ();
-
-
-protected:
-
-  /**
-   * Checks for recursion in functions
-   */
-  virtual void check_ (const Model& m, const Model& object);
-
-  
-  /* create pairs of ids that depend on each other */
-  void addDependencies(const Model &, const FunctionDefinition &);
-
-  
-  void determineAllDependencies();
-
-
-  /* helper function to check if a pair already exists */
-  bool alreadyExistsInMap(IdMap map, 
-                          std::pair<const std::string, std::string> dependency);
-
-  
-  /* check for explicit use of original variable */
-  void checkForSelfAssignment(const Model &);
-
-
-  /* find cycles in the map of dependencies */
-  void determineCycles(const Model& m);
-
-  /**
-   * Logs a message about recursion in the given
-   * FunctionDefinition.
-   */
-
-  void logSelfRecursion (const FunctionDefinition& fd, const std::string& varname);
-
-  void logCycle (const FunctionDefinition* object, const FunctionDefinition* conflict);
-
-
-  IdMap mIdMap;
-
-};
-
-LIBSBML_CPP_NAMESPACE_END
-
-#endif  /* __cplusplus */
-#endif  /* FunctionDefinitionRecursion_h */
-/** @endcond */
+/**
+ * @cond doxygenLibsbmlInternal
+ *
+ * @file    FunctionDefinitionRecursion.h
+ * @brief   Checks for recursion in functionDefinitions
+ * @author  Sarah Keating
+ * 
+ * <!--------------------------------------------------------------------------
+ * This file is part of libSBML.  Please visit http://sbml.org for more
+ * information about SBML, and the latest version of libSBML.
+ *
+ * Copyright (C) 2013-2016 jointly by the following organizations:
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *     3. University of Heidelberg, Heidelberg, Germany
+ *
+ * Copyright (C) 2009-2013 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
+ *  
+ * Copyright (C) 2006-2008 by the California Institute of Technology,
+ *     Pasadena, CA, USA 
+ *  
+ * Copyright (C) 2002-2005 jointly by the following organizations: 
+ *     1. California Institute of Technology, Pasadena, CA, USA
+ *     2. Japan Science and Technology Agency, Japan
+ * 
+ * This library is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation.  A copy of the license agreement is provided
+ * in the file named "LICENSE.txt" included with this software distribution
+ * and also available online as http://sbml.org/software/libsbml/license.html
+ * ---------------------------------------------------------------------- -->*/
+
+#ifndef FunctionDefinitionRecursion_h
+#define FunctionDefinitionRecursion_h
+
+
+#ifdef __cplusplus
+
+#include <string>
+
+#include <sbml/validator/VConstraint.h>
+
+#include <sbml/util/IdList.h>
+
+LIBSBML_CPP_NAMESPACE_BEGIN
+
+typedef std::multimap<const std::string, std::string> IdMap;
+typedef IdMap::iterator                               IdIter;
+typedef std::pair<IdIter, IdIter>                     IdRange;
+
+class FunctionDefinitionRecursion: public TConstraint<Model>
+{
+public:
+
+  /**
+   * Creates a new Constraint with the given constraint id.
+   */
+  FunctionDefinitionRecursion (unsigned int id, Validator& v);
+
+  /**
+   * Destroys this Constraint.
+   */
+  virtual ~FunctionDefinitionRecursion ();
+
+
+protected:
+
+  /**
+   * Checks for recursion in functions
+   */
+  virtual void check_ (const Model& m, const Model& object);
+
+  
+  /* create pairs of ids that depend on each other */
+  void addDependencies(const Model &, const FunctionDefinition &);
+
+  
+  void determineAllDependencies();
+
+
+  /* helper function to check if a pair already exists */
+  bool alreadyExistsInMap(IdMap map, 
+                          std::pair<const std::string, std::string> dependency);
+
+  
+  /* check for explicit use of original variable */
+  void checkForSelfAssignment(const Model &);
+
+
+  /* find cycles in the map of dependencies */
+  void determineCycles(const Model& m);
+
+  /**
+   * Logs a message about recursion in the given
+   * FunctionDefinition.
+   */
+
+  void logSelfRecursion (const FunctionDefinition& fd, const std::string& varname);
+
+  void logCycle (const FunctionDefinition* object, const FunctionDefinition* conflict);
+
+
+  IdMap mIdMap;
+
+};
+
+LIBSBML_CPP_NAMESPACE_END
+
+#endif  /* __cplusplus */
+#endif  /* FunctionDefinitionRecursion_h */
+/** @endcond */
diff --git a/src/sbml/validator/constraints/FunctionDefinitionVars.cpp b/src/sbml/validator/constraints/FunctionDefinitionVars.cpp
index 2dbaaef..dafeeec 100644
--- a/src/sbml/validator/constraints/FunctionDefinitionVars.cpp
+++ b/src/sbml/validator/constraints/FunctionDefinitionVars.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionDefinitionVars.h b/src/sbml/validator/constraints/FunctionDefinitionVars.h
index f622ea6..80b2df3 100644
--- a/src/sbml/validator/constraints/FunctionDefinitionVars.h
+++ b/src/sbml/validator/constraints/FunctionDefinitionVars.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionNoArgsMathCheck.cpp b/src/sbml/validator/constraints/FunctionNoArgsMathCheck.cpp
index b7c29fa..42aa6e6 100644
--- a/src/sbml/validator/constraints/FunctionNoArgsMathCheck.cpp
+++ b/src/sbml/validator/constraints/FunctionNoArgsMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionNoArgsMathCheck.h b/src/sbml/validator/constraints/FunctionNoArgsMathCheck.h
index e7d0df2..a256c2f 100644
--- a/src/sbml/validator/constraints/FunctionNoArgsMathCheck.h
+++ b/src/sbml/validator/constraints/FunctionNoArgsMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionReferredToExists.cpp b/src/sbml/validator/constraints/FunctionReferredToExists.cpp
index 762f02d..ebda03e 100644
--- a/src/sbml/validator/constraints/FunctionReferredToExists.cpp
+++ b/src/sbml/validator/constraints/FunctionReferredToExists.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/FunctionReferredToExists.h b/src/sbml/validator/constraints/FunctionReferredToExists.h
index 7987d65..857dd71 100644
--- a/src/sbml/validator/constraints/FunctionReferredToExists.h
+++ b/src/sbml/validator/constraints/FunctionReferredToExists.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/IdBase.cpp b/src/sbml/validator/constraints/IdBase.cpp
index a70f5cf..fd16b7c 100644
--- a/src/sbml/validator/constraints/IdBase.cpp
+++ b/src/sbml/validator/constraints/IdBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/IdBase.h b/src/sbml/validator/constraints/IdBase.h
index 6b7b535..86eba88 100644
--- a/src/sbml/validator/constraints/IdBase.h
+++ b/src/sbml/validator/constraints/IdBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/IdentifierConsistencyConstraints.cpp b/src/sbml/validator/constraints/IdentifierConsistencyConstraints.cpp
index 3c82c16..6bf90ac 100644
--- a/src/sbml/validator/constraints/IdentifierConsistencyConstraints.cpp
+++ b/src/sbml/validator/constraints/IdentifierConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/IdentifierConsistencyConstraintsDeclared.cxx b/src/sbml/validator/constraints/IdentifierConsistencyConstraintsDeclared.cxx
index ec2fc62..193cbd7 100644
--- a/src/sbml/validator/constraints/IdentifierConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/IdentifierConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/InternalConsistencyConstraints.cpp b/src/sbml/validator/constraints/InternalConsistencyConstraints.cpp
index f874540..7f40df6 100644
--- a/src/sbml/validator/constraints/InternalConsistencyConstraints.cpp
+++ b/src/sbml/validator/constraints/InternalConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/InternalConsistencyConstraintsDeclared.cxx b/src/sbml/validator/constraints/InternalConsistencyConstraintsDeclared.cxx
index 1a2c6e2..5409d65 100644
--- a/src/sbml/validator/constraints/InternalConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/InternalConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/KineticLawUnitsCheck.cpp b/src/sbml/validator/constraints/KineticLawUnitsCheck.cpp
index 96b406a..b52d681 100644
--- a/src/sbml/validator/constraints/KineticLawUnitsCheck.cpp
+++ b/src/sbml/validator/constraints/KineticLawUnitsCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/KineticLawUnitsCheck.h b/src/sbml/validator/constraints/KineticLawUnitsCheck.h
index 24ed45c..edb9efc 100644
--- a/src/sbml/validator/constraints/KineticLawUnitsCheck.h
+++ b/src/sbml/validator/constraints/KineticLawUnitsCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/KineticLawVars.cpp b/src/sbml/validator/constraints/KineticLawVars.cpp
index 81490e6..9d1e982 100644
--- a/src/sbml/validator/constraints/KineticLawVars.cpp
+++ b/src/sbml/validator/constraints/KineticLawVars.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/KineticLawVars.h b/src/sbml/validator/constraints/KineticLawVars.h
index c04cc3c..dfe2e34 100644
--- a/src/sbml/validator/constraints/KineticLawVars.h
+++ b/src/sbml/validator/constraints/KineticLawVars.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L1CompatibilityConstraints.cpp b/src/sbml/validator/constraints/L1CompatibilityConstraints.cpp
index fbbe159..f54ee03 100644
--- a/src/sbml/validator/constraints/L1CompatibilityConstraints.cpp
+++ b/src/sbml/validator/constraints/L1CompatibilityConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L1CompatibilityConstraintsDeclared.cxx b/src/sbml/validator/constraints/L1CompatibilityConstraintsDeclared.cxx
index 3921d01..4900a79 100644
--- a/src/sbml/validator/constraints/L1CompatibilityConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/L1CompatibilityConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v1CompatibilityConstraints.cpp b/src/sbml/validator/constraints/L2v1CompatibilityConstraints.cpp
index 9190fd1..2377f5f 100644
--- a/src/sbml/validator/constraints/L2v1CompatibilityConstraints.cpp
+++ b/src/sbml/validator/constraints/L2v1CompatibilityConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v1CompatibilityConstraintsDeclared.cxx b/src/sbml/validator/constraints/L2v1CompatibilityConstraintsDeclared.cxx
index c62a170..6071991 100644
--- a/src/sbml/validator/constraints/L2v1CompatibilityConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/L2v1CompatibilityConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v2CompatibilityConstraints.cpp b/src/sbml/validator/constraints/L2v2CompatibilityConstraints.cpp
index 9bdf827..eb20e8a 100644
--- a/src/sbml/validator/constraints/L2v2CompatibilityConstraints.cpp
+++ b/src/sbml/validator/constraints/L2v2CompatibilityConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v2CompatibilityConstraintsDeclared.cxx b/src/sbml/validator/constraints/L2v2CompatibilityConstraintsDeclared.cxx
index 23af955..2d3ce12 100644
--- a/src/sbml/validator/constraints/L2v2CompatibilityConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/L2v2CompatibilityConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v3CompatibilityConstraints.cpp b/src/sbml/validator/constraints/L2v3CompatibilityConstraints.cpp
index 1718b59..3f0c21c 100644
--- a/src/sbml/validator/constraints/L2v3CompatibilityConstraints.cpp
+++ b/src/sbml/validator/constraints/L2v3CompatibilityConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v3CompatibilityConstraintsDeclared.cxx b/src/sbml/validator/constraints/L2v3CompatibilityConstraintsDeclared.cxx
index 1e35a4c..9dbecd9 100644
--- a/src/sbml/validator/constraints/L2v3CompatibilityConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/L2v3CompatibilityConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v4CompatibilityConstraints.cpp b/src/sbml/validator/constraints/L2v4CompatibilityConstraints.cpp
index 3f49732..0bba32d 100644
--- a/src/sbml/validator/constraints/L2v4CompatibilityConstraints.cpp
+++ b/src/sbml/validator/constraints/L2v4CompatibilityConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L2v4CompatibilityConstraintsDeclared.cxx b/src/sbml/validator/constraints/L2v4CompatibilityConstraintsDeclared.cxx
index 67a5064..9259abf 100644
--- a/src/sbml/validator/constraints/L2v4CompatibilityConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/L2v4CompatibilityConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L3v1CompatibilityConstraints.cpp b/src/sbml/validator/constraints/L3v1CompatibilityConstraints.cpp
index 318e8f3..1602878 100644
--- a/src/sbml/validator/constraints/L3v1CompatibilityConstraints.cpp
+++ b/src/sbml/validator/constraints/L3v1CompatibilityConstraints.cpp
@@ -10,7 +10,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/L3v1CompatibilityConstraintsDeclared.cxx b/src/sbml/validator/constraints/L3v1CompatibilityConstraintsDeclared.cxx
index b77f0f8..b498641 100644
--- a/src/sbml/validator/constraints/L3v1CompatibilityConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/L3v1CompatibilityConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LambdaMathCheck.cpp b/src/sbml/validator/constraints/LambdaMathCheck.cpp
index 0a319b0..bad905a 100644
--- a/src/sbml/validator/constraints/LambdaMathCheck.cpp
+++ b/src/sbml/validator/constraints/LambdaMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LambdaMathCheck.h b/src/sbml/validator/constraints/LambdaMathCheck.h
index 8aa5ece..42b8414 100644
--- a/src/sbml/validator/constraints/LambdaMathCheck.h
+++ b/src/sbml/validator/constraints/LambdaMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LocalParameterMathCheck.cpp b/src/sbml/validator/constraints/LocalParameterMathCheck.cpp
index dae9d5f..ab29518 100644
--- a/src/sbml/validator/constraints/LocalParameterMathCheck.cpp
+++ b/src/sbml/validator/constraints/LocalParameterMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LocalParameterMathCheck.h b/src/sbml/validator/constraints/LocalParameterMathCheck.h
index f6ed9c4..9333847 100644
--- a/src/sbml/validator/constraints/LocalParameterMathCheck.h
+++ b/src/sbml/validator/constraints/LocalParameterMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.cpp b/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.cpp
index 7373f84..f61588e 100644
--- a/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.cpp
+++ b/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.h b/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.h
index 423c6c5..37f3504 100644
--- a/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.h
+++ b/src/sbml/validator/constraints/LocalParameterShadowsIdInModel.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LogicalArgsMathCheck.cpp b/src/sbml/validator/constraints/LogicalArgsMathCheck.cpp
index 4edc439..1424ad8 100644
--- a/src/sbml/validator/constraints/LogicalArgsMathCheck.cpp
+++ b/src/sbml/validator/constraints/LogicalArgsMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/LogicalArgsMathCheck.h b/src/sbml/validator/constraints/LogicalArgsMathCheck.h
index e6d37d7..79f6ef2 100644
--- a/src/sbml/validator/constraints/LogicalArgsMathCheck.h
+++ b/src/sbml/validator/constraints/LogicalArgsMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/Makefile.in b/src/sbml/validator/constraints/Makefile.in
index 48e94e7..cad59e0 100644
--- a/src/sbml/validator/constraints/Makefile.in
+++ b/src/sbml/validator/constraints/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/MathMLBase.cpp b/src/sbml/validator/constraints/MathMLBase.cpp
index b77ee1b..6d37212 100644
--- a/src/sbml/validator/constraints/MathMLBase.cpp
+++ b/src/sbml/validator/constraints/MathMLBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -222,7 +222,17 @@ MathMLBase::checkChildren (const Model& m,
 
   for(n = 0; n < node.getNumChildren(); n++)
   {
-    checkMath(m, *node.getChild(n), sb);
+    // if we have a mangled node for some reason
+    // usually we have read an incorrect node 
+    // need to be sure there is a child
+    // NOTE: piecewise hits this issue because old behaviour
+    // meant it lost the piece and otherwise qualifiers
+    ASTNode * child = node.getChild(n);
+    
+    if (child != NULL)
+    {
+      checkMath(m, *child, sb);
+    }
   }
 }
 
diff --git a/src/sbml/validator/constraints/MathMLBase.h b/src/sbml/validator/constraints/MathMLBase.h
index cf80e34..7bb6a8a 100644
--- a/src/sbml/validator/constraints/MathMLBase.h
+++ b/src/sbml/validator/constraints/MathMLBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/MathMLConsistencyConstraints.cpp b/src/sbml/validator/constraints/MathMLConsistencyConstraints.cpp
index c1cc4c7..a87c8a5 100644
--- a/src/sbml/validator/constraints/MathMLConsistencyConstraints.cpp
+++ b/src/sbml/validator/constraints/MathMLConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/MathMLConsistencyConstraintsDeclared.cxx b/src/sbml/validator/constraints/MathMLConsistencyConstraintsDeclared.cxx
index f925c20..6046c02 100644
--- a/src/sbml/validator/constraints/MathMLConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/MathMLConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ModelingPracticeConstraints.cpp b/src/sbml/validator/constraints/ModelingPracticeConstraints.cpp
index 243d967..4698405 100644
--- a/src/sbml/validator/constraints/ModelingPracticeConstraints.cpp
+++ b/src/sbml/validator/constraints/ModelingPracticeConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ModelingPracticeConstraintsDeclared.cxx b/src/sbml/validator/constraints/ModelingPracticeConstraintsDeclared.cxx
index f787df3..b6e86c9 100644
--- a/src/sbml/validator/constraints/ModelingPracticeConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/ModelingPracticeConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/NumberArgsMathCheck.cpp b/src/sbml/validator/constraints/NumberArgsMathCheck.cpp
index 08ee8bc..d6cc0b8 100644
--- a/src/sbml/validator/constraints/NumberArgsMathCheck.cpp
+++ b/src/sbml/validator/constraints/NumberArgsMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -283,6 +283,12 @@ void NumberArgsMathCheck::checkPiecewise(const Model&,
     logMathConflict(node, sb);
   }
 
+  // Jason Zwolak reports that we do not correctly catch a piece with only
+  // one argument; which will be difficult in legacy math as it throws 
+  // the information away when reading
+
+
+
 }
 /*
  * @return the error message to use when logging constraint violations.
diff --git a/src/sbml/validator/constraints/NumberArgsMathCheck.h b/src/sbml/validator/constraints/NumberArgsMathCheck.h
index 433b208..4edbed4 100644
--- a/src/sbml/validator/constraints/NumberArgsMathCheck.h
+++ b/src/sbml/validator/constraints/NumberArgsMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/NumericArgsMathCheck.cpp b/src/sbml/validator/constraints/NumericArgsMathCheck.cpp
index ae09c19..a1d6460 100644
--- a/src/sbml/validator/constraints/NumericArgsMathCheck.cpp
+++ b/src/sbml/validator/constraints/NumericArgsMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/NumericArgsMathCheck.h b/src/sbml/validator/constraints/NumericArgsMathCheck.h
index be87c73..85e52c3 100644
--- a/src/sbml/validator/constraints/NumericArgsMathCheck.h
+++ b/src/sbml/validator/constraints/NumericArgsMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/NumericReturnMathCheck.cpp b/src/sbml/validator/constraints/NumericReturnMathCheck.cpp
index c71ff28..1779084 100644
--- a/src/sbml/validator/constraints/NumericReturnMathCheck.cpp
+++ b/src/sbml/validator/constraints/NumericReturnMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/NumericReturnMathCheck.h b/src/sbml/validator/constraints/NumericReturnMathCheck.h
index d5e0ee7..2195a92 100644
--- a/src/sbml/validator/constraints/NumericReturnMathCheck.h
+++ b/src/sbml/validator/constraints/NumericReturnMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/OverDeterminedCheck.cpp b/src/sbml/validator/constraints/OverDeterminedCheck.cpp
index 42799d7..84c157c 100644
--- a/src/sbml/validator/constraints/OverDeterminedCheck.cpp
+++ b/src/sbml/validator/constraints/OverDeterminedCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/OverDeterminedCheck.h b/src/sbml/validator/constraints/OverDeterminedCheck.h
index 655357e..120b3d8 100644
--- a/src/sbml/validator/constraints/OverDeterminedCheck.h
+++ b/src/sbml/validator/constraints/OverDeterminedCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/OverdeterminedConstraints.cpp b/src/sbml/validator/constraints/OverdeterminedConstraints.cpp
index 007eedd..f081685 100644
--- a/src/sbml/validator/constraints/OverdeterminedConstraints.cpp
+++ b/src/sbml/validator/constraints/OverdeterminedConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/OverdeterminedConstraintsDeclared.cxx b/src/sbml/validator/constraints/OverdeterminedConstraintsDeclared.cxx
index 9dbcdd8..71837d3 100644
--- a/src/sbml/validator/constraints/OverdeterminedConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/OverdeterminedConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/PieceBooleanMathCheck.cpp b/src/sbml/validator/constraints/PieceBooleanMathCheck.cpp
index 7a2b5e1..7d8285e 100644
--- a/src/sbml/validator/constraints/PieceBooleanMathCheck.cpp
+++ b/src/sbml/validator/constraints/PieceBooleanMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -131,13 +131,32 @@ PieceBooleanMathCheck::checkPiece (const Model&, const ASTNode& node,
   unsigned int numChildren = node.getNumChildren();
   unsigned int numPieces = numChildren;
 
+#ifdef LIBSBML_USE_LEGACY_MATH
   if ((numChildren % 2) != 0) numPieces--;
-  
+#else
+  numPieces = 2 * node.getNumPiece();
+  if (numPieces > numChildren)
+  {
+    // the piecewise is not correct
+    return;
+  }
+#endif
+
   for (unsigned int n = 1; n < numPieces; n += 2)
   {
-    if (!node.getChild(n)->returnsBoolean())
+    // if we have a mangled node for some reason
+    // usually we have read an incorrect node 
+    // need to be sure there is a child
+    // NOTE: piecewise hits this issue because old behaviour
+    // meant it lost the piece and otherwise qualifiers
+    ASTNode * child = node.getChild(n);
+    
+    if (child != NULL)
     {
-      logMathConflict(node, sb);
+      if (!child->returnsBoolean())
+      {
+        logMathConflict(node, sb);
+      }
     }
   }
     
diff --git a/src/sbml/validator/constraints/PieceBooleanMathCheck.h b/src/sbml/validator/constraints/PieceBooleanMathCheck.h
index 135674e..3e883c9 100644
--- a/src/sbml/validator/constraints/PieceBooleanMathCheck.h
+++ b/src/sbml/validator/constraints/PieceBooleanMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/PiecewiseValueMathCheck.cpp b/src/sbml/validator/constraints/PiecewiseValueMathCheck.cpp
index a980405..52ac491 100644
--- a/src/sbml/validator/constraints/PiecewiseValueMathCheck.cpp
+++ b/src/sbml/validator/constraints/PiecewiseValueMathCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/PiecewiseValueMathCheck.h b/src/sbml/validator/constraints/PiecewiseValueMathCheck.h
index 1252c98..34f9469 100644
--- a/src/sbml/validator/constraints/PiecewiseValueMathCheck.h
+++ b/src/sbml/validator/constraints/PiecewiseValueMathCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/PowerUnitsCheck.cpp b/src/sbml/validator/constraints/PowerUnitsCheck.cpp
index 2b758bd..cccf598 100644
--- a/src/sbml/validator/constraints/PowerUnitsCheck.cpp
+++ b/src/sbml/validator/constraints/PowerUnitsCheck.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -354,7 +354,11 @@ PowerUnitsCheck::checkUnitsFromPower (const Model& m,
     }
     else if (isInteger == 0)
     {
-      logNonIntegerPowerConflict(node, sb);
+      // in level 3 this would be allowed
+      if (m.getLevel() < 3)
+      {
+        logNonIntegerPowerConflict(node, sb);
+      }
     }
 
   }
diff --git a/src/sbml/validator/constraints/PowerUnitsCheck.h b/src/sbml/validator/constraints/PowerUnitsCheck.h
index 7245f42..fb03071 100644
--- a/src/sbml/validator/constraints/PowerUnitsCheck.h
+++ b/src/sbml/validator/constraints/PowerUnitsCheck.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/SBOConsistencyConstraints.cpp b/src/sbml/validator/constraints/SBOConsistencyConstraints.cpp
index d90d847..b7c7f09 100644
--- a/src/sbml/validator/constraints/SBOConsistencyConstraints.cpp
+++ b/src/sbml/validator/constraints/SBOConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/SBOConsistencyConstraintsDeclared.cxx b/src/sbml/validator/constraints/SBOConsistencyConstraintsDeclared.cxx
index a3ef3bd..5972fac 100644
--- a/src/sbml/validator/constraints/SBOConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/SBOConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/SpeciesReactionOrRule.cpp b/src/sbml/validator/constraints/SpeciesReactionOrRule.cpp
index 71ab635..6e9ad43 100644
--- a/src/sbml/validator/constraints/SpeciesReactionOrRule.cpp
+++ b/src/sbml/validator/constraints/SpeciesReactionOrRule.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/SpeciesReactionOrRule.h b/src/sbml/validator/constraints/SpeciesReactionOrRule.h
index 50e89a0..9d520cf 100644
--- a/src/sbml/validator/constraints/SpeciesReactionOrRule.h
+++ b/src/sbml/validator/constraints/SpeciesReactionOrRule.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/StoichiometryMathVars.cpp b/src/sbml/validator/constraints/StoichiometryMathVars.cpp
index c70676d..702a0a8 100644
--- a/src/sbml/validator/constraints/StoichiometryMathVars.cpp
+++ b/src/sbml/validator/constraints/StoichiometryMathVars.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/StoichiometryMathVars.h b/src/sbml/validator/constraints/StoichiometryMathVars.h
index fcac928..42033bc 100644
--- a/src/sbml/validator/constraints/StoichiometryMathVars.h
+++ b/src/sbml/validator/constraints/StoichiometryMathVars.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/StrictUnitConsistencyConstraints.cpp b/src/sbml/validator/constraints/StrictUnitConsistencyConstraints.cpp
index 433046a..b08e740 100644
--- a/src/sbml/validator/constraints/StrictUnitConsistencyConstraints.cpp
+++ b/src/sbml/validator/constraints/StrictUnitConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -756,7 +756,7 @@ START_CONSTRAINT( 9910511, AssignmentRule, ar)
     msg += ".";
   }
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 
 }
@@ -833,13 +833,13 @@ START_CONSTRAINT( 9910512, AssignmentRule, ar)
   //   * for speciesConcetration although species only had substance units
   //   */
 
-  //  inv (areIdentical(formulaUnits->getUnitDefinition(), 
+  //  inv (areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
   //                      variableUnits->getL1SpeciesConcUnitDefinition()) == 1);
 
   //}
   //else
   //{
-    inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+    inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                             variableUnits->getUnitDefinition()) == 1);
   //}
 }
@@ -908,7 +908,7 @@ START_CONSTRAINT( 9910513, AssignmentRule, ar)
     msg += ".";
   }
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -990,7 +990,7 @@ START_CONSTRAINT( 9910521, InitialAssignment, ia)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1035,7 +1035,7 @@ START_CONSTRAINT( 9910522, InitialAssignment, ia)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1078,7 +1078,7 @@ START_CONSTRAINT( 9910523, InitialAssignment, ia)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1199,7 +1199,7 @@ START_CONSTRAINT( 9910531, RateRule, rr)
     msg += ".";
   }
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                                variableUnits->getPerTimeUnitDefinition()) == 1);
 
 }
@@ -1283,13 +1283,13 @@ START_CONSTRAINT( 9910532, RateRule, rr)
   //   * for speciesConcetration although species only had substance units
   //   */
 
-  //  inv (areIdentical(formulaUnits->getUnitDefinition(), 
+  //  inv (areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
   //              variableUnits->getL1SpeciesConcPerTimeUnitDefinition()) == 1);
 
   //}
   //else
   //{
-    inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+    inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                             variableUnits->getPerTimeUnitDefinition()) == 1);
   //}
 }
@@ -1366,7 +1366,7 @@ START_CONSTRAINT( 9910533, RateRule, rr)
     msg += ".";
   }
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                               variableUnits->getPerTimeUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1409,7 +1409,7 @@ START_CONSTRAINT( 9910534, RateRule, rr)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
   
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                               variableUnits->getPerTimeUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1466,7 +1466,7 @@ START_CONSTRAINT( 9910541, KineticLaw, kl)
   msg += ".";
 
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                                       variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1512,7 +1512,7 @@ START_CONSTRAINT( 9910542, Species, s)
   msg += ".";
 
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getSpeciesSubstanceUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getSpeciesSubstanceUnitDefinition(), 
                                       variableUnits->getSpeciesExtentUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1549,7 +1549,7 @@ START_CONSTRAINT( 9910551, Event, e)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                               formulaUnits->getEventTimeUnitDefinition()) == 1);
 
 }
@@ -1602,7 +1602,7 @@ START_CONSTRAINT( 9910561, EventAssignment, ea)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 
 }
@@ -1650,7 +1650,7 @@ START_CONSTRAINT( 9910562, EventAssignment, ea)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
@@ -1696,7 +1696,7 @@ START_CONSTRAINT( 9910563, EventAssignment, ea)
   msg += UnitDefinition::printUnits(formulaUnits->getUnitDefinition());
   msg += ".";
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                           variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
diff --git a/src/sbml/validator/constraints/StrictUnitConsistencyConstraintsDeclared.cxx b/src/sbml/validator/constraints/StrictUnitConsistencyConstraintsDeclared.cxx
index 0b9253b..4757024 100644
--- a/src/sbml/validator/constraints/StrictUnitConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/StrictUnitConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdBase.cpp b/src/sbml/validator/constraints/UniqueIdBase.cpp
index 788b28f..4e271b5 100644
--- a/src/sbml/validator/constraints/UniqueIdBase.cpp
+++ b/src/sbml/validator/constraints/UniqueIdBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdBase.h b/src/sbml/validator/constraints/UniqueIdBase.h
index 19be596..69b4b5d 100644
--- a/src/sbml/validator/constraints/UniqueIdBase.h
+++ b/src/sbml/validator/constraints/UniqueIdBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.cpp b/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.cpp
index ec026d9..0f13d92 100644
--- a/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.cpp
+++ b/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.h b/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.h
index 6ff0197..852886c 100644
--- a/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.h
+++ b/src/sbml/validator/constraints/UniqueIdsForUnitDefinitions.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdsInKineticLaw.cpp b/src/sbml/validator/constraints/UniqueIdsInKineticLaw.cpp
index de394cf..14b857e 100644
--- a/src/sbml/validator/constraints/UniqueIdsInKineticLaw.cpp
+++ b/src/sbml/validator/constraints/UniqueIdsInKineticLaw.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdsInKineticLaw.h b/src/sbml/validator/constraints/UniqueIdsInKineticLaw.h
index d7c917e..d35b207 100644
--- a/src/sbml/validator/constraints/UniqueIdsInKineticLaw.h
+++ b/src/sbml/validator/constraints/UniqueIdsInKineticLaw.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdsInModel.cpp b/src/sbml/validator/constraints/UniqueIdsInModel.cpp
index 5fd42c7..62d083a 100644
--- a/src/sbml/validator/constraints/UniqueIdsInModel.cpp
+++ b/src/sbml/validator/constraints/UniqueIdsInModel.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueIdsInModel.h b/src/sbml/validator/constraints/UniqueIdsInModel.h
index b2becc5..2fbdabb 100644
--- a/src/sbml/validator/constraints/UniqueIdsInModel.h
+++ b/src/sbml/validator/constraints/UniqueIdsInModel.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueMetaId.cpp b/src/sbml/validator/constraints/UniqueMetaId.cpp
index 660bcee..00d9ef2 100644
--- a/src/sbml/validator/constraints/UniqueMetaId.cpp
+++ b/src/sbml/validator/constraints/UniqueMetaId.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueMetaId.h b/src/sbml/validator/constraints/UniqueMetaId.h
index 590ec08..6b9e8d9 100644
--- a/src/sbml/validator/constraints/UniqueMetaId.h
+++ b/src/sbml/validator/constraints/UniqueMetaId.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.cpp b/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.cpp
index b3db9fe..22b2f25 100644
--- a/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.cpp
+++ b/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.h b/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.h
index ffdafb6..9dc403f 100644
--- a/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.h
+++ b/src/sbml/validator/constraints/UniqueSpeciesTypesInCompartment.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.cpp b/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.cpp
index da73f14..e77f59e 100644
--- a/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.cpp
+++ b/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.h b/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.h
index 6c7171e..dc520b6 100644
--- a/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.h
+++ b/src/sbml/validator/constraints/UniqueSymbolsInInitialAssignments.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInEventAssignments.cpp b/src/sbml/validator/constraints/UniqueVarsInEventAssignments.cpp
index b8d73bd..6b6db39 100644
--- a/src/sbml/validator/constraints/UniqueVarsInEventAssignments.cpp
+++ b/src/sbml/validator/constraints/UniqueVarsInEventAssignments.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInEventAssignments.h b/src/sbml/validator/constraints/UniqueVarsInEventAssignments.h
index 3bf7c96..63f27b1 100644
--- a/src/sbml/validator/constraints/UniqueVarsInEventAssignments.h
+++ b/src/sbml/validator/constraints/UniqueVarsInEventAssignments.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.cpp b/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.cpp
index e36945b..cb755ac 100644
--- a/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.cpp
+++ b/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.h b/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.h
index a452f03..cfdc46c 100644
--- a/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.h
+++ b/src/sbml/validator/constraints/UniqueVarsInEventsAndRules.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.cpp b/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.cpp
index f6c6fe6..5adf6ed 100644
--- a/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.cpp
+++ b/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.h b/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.h
index 8e456a6..b200e58 100644
--- a/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.h
+++ b/src/sbml/validator/constraints/UniqueVarsInInitialAssignmentsAndRules.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInRules.cpp b/src/sbml/validator/constraints/UniqueVarsInRules.cpp
index 3ca29b2..6bb62b5 100644
--- a/src/sbml/validator/constraints/UniqueVarsInRules.cpp
+++ b/src/sbml/validator/constraints/UniqueVarsInRules.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UniqueVarsInRules.h b/src/sbml/validator/constraints/UniqueVarsInRules.h
index 525cc22..bc8a102 100644
--- a/src/sbml/validator/constraints/UniqueVarsInRules.h
+++ b/src/sbml/validator/constraints/UniqueVarsInRules.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UnitConsistencyConstraints.cpp b/src/sbml/validator/constraints/UnitConsistencyConstraints.cpp
index a27e84d..06cfbcf 100644
--- a/src/sbml/validator/constraints/UnitConsistencyConstraints.cpp
+++ b/src/sbml/validator/constraints/UnitConsistencyConstraints.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -1466,7 +1466,7 @@ START_CONSTRAINT (10541, KineticLaw, kl)
   msg += ".";
 
 
-  inv (UnitDefinition::areIdentical(formulaUnits->getUnitDefinition(), 
+  inv (UnitDefinition::areIdenticalSIUnits(formulaUnits->getUnitDefinition(), 
                                       variableUnits->getUnitDefinition()) == 1);
 }
 END_CONSTRAINT
diff --git a/src/sbml/validator/constraints/UnitConsistencyConstraintsDeclared.cxx b/src/sbml/validator/constraints/UnitConsistencyConstraintsDeclared.cxx
index 8d5e3a9..4cc4161 100644
--- a/src/sbml/validator/constraints/UnitConsistencyConstraintsDeclared.cxx
+++ b/src/sbml/validator/constraints/UnitConsistencyConstraintsDeclared.cxx
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2014 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UnitsBase.cpp b/src/sbml/validator/constraints/UnitsBase.cpp
index f163d2b..4e2d012 100644
--- a/src/sbml/validator/constraints/UnitsBase.cpp
+++ b/src/sbml/validator/constraints/UnitsBase.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/UnitsBase.h b/src/sbml/validator/constraints/UnitsBase.h
index c99d7a6..406214c 100644
--- a/src/sbml/validator/constraints/UnitsBase.h
+++ b/src/sbml/validator/constraints/UnitsBase.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ValidCnUnitsValue.cpp b/src/sbml/validator/constraints/ValidCnUnitsValue.cpp
index 416b468..c40a58b 100644
--- a/src/sbml/validator/constraints/ValidCnUnitsValue.cpp
+++ b/src/sbml/validator/constraints/ValidCnUnitsValue.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/constraints/ValidCnUnitsValue.h b/src/sbml/validator/constraints/ValidCnUnitsValue.h
index 050eb3c..afd38d4 100644
--- a/src/sbml/validator/constraints/ValidCnUnitsValue.h
+++ b/src/sbml/validator/constraints/ValidCnUnitsValue.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/CMakeLists.txt b/src/sbml/validator/test/CMakeLists.txt
index f281564..e896130 100644
--- a/src/sbml/validator/test/CMakeLists.txt
+++ b/src/sbml/validator/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/Makefile.in b/src/sbml/validator/test/Makefile.in
index e84b076..b364fb8 100644
--- a/src/sbml/validator/test/Makefile.in
+++ b/src/sbml/validator/test/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/TestConsistencyValidator.cpp b/src/sbml/validator/test/TestConsistencyValidator.cpp
index 60463a6..4d009b3 100644
--- a/src/sbml/validator/test/TestConsistencyValidator.cpp
+++ b/src/sbml/validator/test/TestConsistencyValidator.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/TestFile.cpp b/src/sbml/validator/test/TestFile.cpp
index fb71244..9a3608d 100644
--- a/src/sbml/validator/test/TestFile.cpp
+++ b/src/sbml/validator/test/TestFile.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/TestFile.h b/src/sbml/validator/test/TestFile.h
index b6aee95..ca28f1f 100644
--- a/src/sbml/validator/test/TestFile.h
+++ b/src/sbml/validator/test/TestFile.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/TestValidator.cpp b/src/sbml/validator/test/TestValidator.cpp
index 141231a..f452406 100644
--- a/src/sbml/validator/test/TestValidator.cpp
+++ b/src/sbml/validator/test/TestValidator.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -117,17 +117,43 @@ TestValidator::test (const TestFile& file)
     expected = 2;
     others = 99303;
   }
+
+/* NOTE: the error 10218 relating to number of child elements to a 
+ * piece/otherwise element is very difficult to synchronise 
+ *
+ * I went with leaving the result of the read unchanged 
+ * but actually logging the errors
+*/
 #ifdef LIBSBML_USE_LEGACY_MATH
   if (id == 99219 && num == 32)
   {
     expected = 2;
   }
+  if (id == 10218 && num == 12 && expected == 1)
+  {
+    expected = 2;
+    others = 10213;
+  }
+  if (id == 10218 && num == 10 && expected == 2)
+  {
+    expected = 1;
+  }
 #else
   if (id == 99219 && num == 32)
   {
     expected = 2;
     others = 10102;
   }
+  if (id == 10218 && num == 10 && expected == 2)
+  {
+    expected = 3;
+    others = 10212;
+  }
+  if (id == 10218 && num == 11 && expected == 2)
+  {
+    expected = 1;
+    others = 0;
+  }
 #endif
   unsigned int actual   = mValidator.validate( file.getFullname() );
 
diff --git a/src/sbml/validator/test/TestValidator.h b/src/sbml/validator/test/TestValidator.h
index 53d5eb6..d3b9f3c 100644
--- a/src/sbml/validator/test/TestValidator.h
+++ b/src/sbml/validator/test/TestValidator.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/test-data/Makefile.in b/src/sbml/validator/test/test-data/Makefile.in
index 59520f5..9869866 100644
--- a/src/sbml/validator/test/test-data/Makefile.in
+++ b/src/sbml/validator/test/test-data/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-02.xml b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-02.xml
new file mode 100644
index 0000000..5bb8b26
--- /dev/null
+++ b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-02.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+        <model timeUnits="second">
+            <listOfFunctionDefinitions>
+                <functionDefinition id="max">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <lambda>
+                            <bvar>
+                                <ci> x </ci>
+                            </bvar>
+                            <bvar>
+                                <ci> y </ci>
+                            </bvar>
+                            <piecewise>
+                                <piece>
+                                    <ci> x </ci>
+                                    <apply>
+                                        <gt/>
+                                        <ci> x </ci>
+                                        <ci> y </ci>
+                                    </apply>
+                                </piece>
+                                <otherwise>
+                                    <ci> y </ci>
+                                </otherwise>
+                            </piecewise>
+                        </lambda>
+                    </math>
+                </functionDefinition>
+            </listOfFunctionDefinitions>
+            <listOfParameters>
+                <parameter id="t1" units="mole" constant="false"/>
+            </listOfParameters>
+            <listOfRules>
+                <assignmentRule variable="t1">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                        <apply>
+                            <ci> max </ci>
+                            <cn sbml:units="mole" type="integer"> 0 </cn>
+                            <cn sbml:units="mole"> 1.1 </cn>
+                        </apply>
+                    </math>
+                </assignmentRule>
+            </listOfRules>
+        </model>
+    </sbml>  
\ No newline at end of file
diff --git a/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-03.xml b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-03.xml
new file mode 100644
index 0000000..572b7ee
--- /dev/null
+++ b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-03.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+        <model timeUnits="second">
+            <listOfFunctionDefinitions>
+                <functionDefinition id="max">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <lambda>
+                            <bvar>
+                                <ci> x </ci>
+                            </bvar>
+                            <bvar>
+                                <ci> y </ci>
+                            </bvar>
+                            <apply>
+                                <plus/>
+                                <ci> x </ci>
+                                <ci> y </ci>
+                            </apply>
+                        </lambda>
+                    </math>
+                </functionDefinition>
+            </listOfFunctionDefinitions>
+            <listOfParameters>
+                <parameter id="t1" units="mole" constant="false"/>
+            </listOfParameters>
+            <listOfRules>
+                <assignmentRule variable="t1">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                        <apply>
+                            <ci> max </ci>
+                            <cn sbml:units="mole" type="integer"> 0 </cn>
+                            <cn sbml:units="mole"> 1.1 </cn>
+                        </apply>
+                    </math>
+                </assignmentRule>
+            </listOfRules>
+        </model>
+    </sbml>  
\ No newline at end of file
diff --git a/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-04.xml b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-04.xml
new file mode 100644
index 0000000..109ee93
--- /dev/null
+++ b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-04.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+        <model timeUnits="second">
+            <listOfFunctionDefinitions>
+                <functionDefinition id="max">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <lambda>
+                            <bvar>
+                                <ci> x </ci>
+                            </bvar>
+                                <ci> x </ci>
+                        </lambda>
+                    </math>
+                </functionDefinition>
+            </listOfFunctionDefinitions>
+            <listOfParameters>
+                <parameter id="t1" units="mole" constant="false"/>
+            </listOfParameters>
+            <listOfRules>
+                <assignmentRule variable="t1">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                        <apply>
+                            <ci> max </ci>
+                            <cn sbml:units="mole" type="integer"> 0 </cn>
+                        </apply>
+                    </math>
+                </assignmentRule>
+            </listOfRules>
+        </model>
+    </sbml>  
\ No newline at end of file
diff --git a/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-05.xml b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-05.xml
new file mode 100644
index 0000000..1acb85d
--- /dev/null
+++ b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-05.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+        <model  timeUnits="second">
+            <listOfFunctionDefinitions>
+                <functionDefinition id="max">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <lambda>
+                            <bvar>
+                                <ci> x </ci>
+                            </bvar>
+                                <ci> x </ci>
+                        </lambda>
+                    </math>
+                </functionDefinition>
+            </listOfFunctionDefinitions>
+            <listOfParameters>
+                <parameter id="t1" units="mole" constant="false"/>
+            </listOfParameters>
+            <listOfRules>
+                <assignmentRule variable="t1">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                        <apply>
+                            <ci> max </ci>
+                            <cn sbml:units="mole"> 0 </cn>
+                        </apply>
+                    </math>
+                </assignmentRule>
+            </listOfRules>
+        </model>
+    </sbml>  
\ No newline at end of file
diff --git a/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-06.xml b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-06.xml
new file mode 100644
index 0000000..a213a8a
--- /dev/null
+++ b/src/sbml/validator/test/test-data/libsbml-constraints/99505-pass-00-06.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+    <sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+        <model timeUnits="second">
+            <listOfFunctionDefinitions>
+                <functionDefinition id="max">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <lambda>
+                            <bvar>
+                                <ci> x </ci>
+                            </bvar>
+                                <ci> x </ci>
+                        </lambda>
+                    </math>
+                </functionDefinition>
+            </listOfFunctionDefinitions>
+            <listOfParameters>
+                <parameter id="t1" units="mole" constant="false"/>
+            </listOfParameters>
+            <listOfRules>
+                <assignmentRule variable="t1">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:sbml="http://www.sbml.org/sbml/level3/version1/core">
+                        <apply>
+                            <ci> max </ci>
+                            <cn sbml:units="mole" type="rational"> 1 <sep/> 2 </cn>
+                        </apply>
+                    </math>
+                </assignmentRule>
+            </listOfRules>
+        </model>
+    </sbml>  
\ No newline at end of file
diff --git a/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/20502-fail-01-13.xml b/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/20502-fail-01-13.xml
index 29feca6..a69b303 100644
--- a/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/20502-fail-01-13.xml
+++ b/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/20502-fail-01-13.xml
@@ -2,7 +2,7 @@
 <sbml xmlns="http://www.sbml.org/sbml/level2/version5" level="2" version="5">
   <model>
     <listOfCompartments>
-      <compartment id="c" spatialDimensions="0" units="ml"/>
+      <compartment id="c" spatialDimensions="0" units="metre"/>
     </listOfCompartments>
   </model>
 </sbml>
diff --git a/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/20910-fail-01-02.xml b/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/20910-fail-01-02.xml
new file mode 100644
index 0000000..27ddd25
--- /dev/null
+++ b/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/20910-fail-01-02.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created by libAntimony version v2.1-beta on 2011-11-14 22:28 with libSBML version 5.1.0-b0. -->
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+  <model id="case00983" name="case00983">
+    <listOfParameters>
+      <parameter id="x" value="0" constant="false"/>
+      <parameter id="temp" constant="false"/>
+      <parameter id="y" constant="false"/>
+    </listOfParameters>
+    <listOfRules>
+      <rateRule variable="x">
+        <math xmlns="http://www.w3.org/1998/Math/MathML">
+          <cn type="integer"> 1 </cn>
+        </math>
+      </rateRule>
+      <algebraicRule variable="temp">
+        <math xmlns="http://www.w3.org/1998/Math/MathML">
+          <apply>
+            <plus/>
+            <apply>
+              <times/>
+              <cn type="integer"> -1 </cn>
+              <ci> temp </ci>
+            </apply>
+	    <apply>
+            <divide/>
+               <csymbol encoding="text" definitionURL="http://www.sbml.org/sbml/symbols/time"> time </csymbol>
+               <cn type="integer"> 2 </cn>
+            </apply>
+          </apply>
+        </math>
+      </algebraicRule>
+      <assignmentRule variable="y">
+        <math xmlns="http://www.w3.org/1998/Math/MathML">
+          <apply>
+            <csymbol encoding="text" definitionURL="http://www.sbml.org/sbml/symbols/delay"> delay </csymbol>
+            <ci> x </ci>
+            <ci> temp </ci>
+          </apply>
+        </math>
+      </assignmentRule>
+    </listOfRules>
+  </model>
+</sbml>
diff --git a/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/Makefile.in b/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/Makefile.in
index 9142abb..4d37986 100644
--- a/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/Makefile.in
+++ b/src/sbml/validator/test/test-data/sbml-general-consistency-constraints/Makefile.in
@@ -9,7 +9,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-11-10213.xml b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-11-10213.xml
new file mode 100644
index 0000000..b183310
--- /dev/null
+++ b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-11-10213.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+  <model name="Simple Model">
+    <listOfCompartments>
+      <compartment id="sbml_comp" name="sbml compartment" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="sbml_species_a" name="sbml species a" compartment="sbml_comp" initialAmount="1" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+      <species id="sbml_species_b" name="sbml species b" compartment="sbml_comp" initialAmount="0" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="sbml_piecewise_process" name="sbml piecewise process" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="sbml_species_a" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="sbml_species_b" constant="true"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <piecewise>
+              <piece>
+                <cn> 0 </cn>
+              </piece>
+              <otherwise>
+                <cn> 2 </cn>
+              </otherwise>
+            </piecewise>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-12.xml b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-12.xml
new file mode 100644
index 0000000..dc50241
--- /dev/null
+++ b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-12.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+  <model name="Simple Model">
+    <listOfCompartments>
+      <compartment id="sbml_comp" name="sbml compartment" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="sbml_species_a" name="sbml species a" compartment="sbml_comp" initialAmount="1" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+      <species id="sbml_species_b" name="sbml species b" compartment="sbml_comp" initialAmount="0" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="sbml_piecewise_process" name="sbml piecewise process" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="sbml_species_a" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="sbml_species_b" constant="true"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <piecewise>
+              <piece>
+                <cn> 0 </cn>
+                <true/>
+                <cn> 1 </cn>
+              </piece>
+             <otherwise>
+                <cn> 2 </cn>
+              </otherwise>
+            </piecewise>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-13.xml b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-13.xml
new file mode 100644
index 0000000..45864ec
--- /dev/null
+++ b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-01-13.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+  <model name="Simple Model">
+    <listOfCompartments>
+      <compartment id="sbml_comp" name="sbml compartment" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="sbml_species_a" name="sbml species a" compartment="sbml_comp" initialAmount="1" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+      <species id="sbml_species_b" name="sbml species b" compartment="sbml_comp" initialAmount="0" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="sbml_piecewise_process" name="sbml piecewise process" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="sbml_species_a" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="sbml_species_b" constant="true"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <piecewise>
+              <piece>
+                <cn> 0 </cn>
+                <true/>
+              </piece>
+             <otherwise>
+                <cn> 2 </cn>
+               <cn> 3 </cn>
+              </otherwise>
+            </piecewise>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-02-10.xml b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-02-10.xml
new file mode 100644
index 0000000..30915e5
--- /dev/null
+++ b/src/sbml/validator/test/test-data/sbml-mathml-constraints/10218-fail-02-10.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+  <model name="Simple Model">
+    <listOfCompartments>
+      <compartment id="sbml_comp" name="sbml compartment" constant="true"/>
+    </listOfCompartments>
+    <listOfSpecies>
+      <species id="sbml_species_a" name="sbml species a" compartment="sbml_comp" initialAmount="1" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+      <species id="sbml_species_b" name="sbml species b" compartment="sbml_comp" initialAmount="0" hasOnlySubstanceUnits="true" boundaryCondition="false" constant="false"/>
+    </listOfSpecies>
+    <listOfReactions>
+      <reaction id="sbml_piecewise_process" name="sbml piecewise process" reversible="false" fast="false">
+        <listOfReactants>
+          <speciesReference species="sbml_species_a" constant="true"/>
+        </listOfReactants>
+        <listOfProducts>
+          <speciesReference species="sbml_species_b" constant="true"/>
+        </listOfProducts>
+        <kineticLaw>
+          <math xmlns="http://www.w3.org/1998/Math/MathML">
+            <piecewise>
+              <piece>
+                <cn> 0 </cn>
+              </piece>
+              <piece>
+                <true/>
+              </piece>
+              <otherwise>
+                <cn> 2 </cn>
+              </otherwise>
+            </piecewise>
+          </math>
+        </kineticLaw>
+      </reaction>
+    </listOfReactions>
+  </model>
+</sbml>
diff --git a/src/sbml/validator/test/test-data/sbml-unit-constraints/10501-fail-01-40.xml b/src/sbml/validator/test/test-data/sbml-unit-constraints/10501-pass-00-60.xml
similarity index 100%
rename from src/sbml/validator/test/test-data/sbml-unit-constraints/10501-fail-01-40.xml
rename to src/sbml/validator/test/test-data/sbml-unit-constraints/10501-pass-00-60.xml
diff --git a/src/sbml/validator/test/test-data/sbml-unit-constraints/10513-pass-00-21.xml b/src/sbml/validator/test/test-data/sbml-unit-constraints/10513-pass-00-21.xml
new file mode 100644
index 0000000..ae4d053
--- /dev/null
+++ b/src/sbml/validator/test/test-data/sbml-unit-constraints/10513-pass-00-21.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created by libAntimony version v2.8.1 on 2016-02-16 12:04 with libSBML version 5.12.1. -->
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+        <model id="__main" name="__main" substanceUnits="substance" timeUnits="time_unit" volumeUnits="volume" areaUnits="area" lengthUnits="length" extentUnits="extent">
+            <listOfUnitDefinitions>
+                <unitDefinition id="substance">
+                    <listOfUnits>
+                        <unit kind="mole" exponent="1" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="volume">
+                    <listOfUnits>
+                        <unit kind="metre" exponent="3" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="m3">
+                    <listOfUnits>
+                        <unit kind="metre" exponent="3" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="area">
+                    <listOfUnits>
+                        <unit kind="metre" exponent="2" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="length">
+                    <listOfUnits>
+                        <unit kind="metre" exponent="1" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="extent">
+                    <listOfUnits>
+                        <unit kind="mole" exponent="1" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="time_unit">
+                    <listOfUnits>
+                        <unit kind="second" exponent="1" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="mM">
+                    <listOfUnits>
+                        <unit kind="mole" exponent="1" scale="0" multiplier="1"/>
+                        <unit kind="metre" exponent="-3" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+                <unitDefinition id="mol_per_s">
+                    <listOfUnits>
+                        <unit kind="mole" exponent="1" scale="0" multiplier="1"/>
+                        <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                    </listOfUnits>
+                </unitDefinition>
+            </listOfUnitDefinitions>
+            <listOfParameters>
+                <parameter id="fru6p" value="0.1" units="mM" constant="true"/>
+                <parameter id="atp" value="2.8" units="mM" constant="true"/>
+                <parameter id="PFK2_n_native" value="1.3" units="dimensionless" constant="true"/>
+                <parameter id="PFK2_n_phospho" value="2.1" units="dimensionless" constant="true"/>
+                <parameter id="PFK2_k_fru6p_native" value="0.016" units="mM" constant="true"/>
+                <parameter id="PFK2_k_fru6p_phospho" value="0.05" units="mM" constant="true"/>
+                <parameter id="PFK2_k_atp_native" value="0.28" units="mM" constant="true"/>
+                <parameter id="PFK2_k_atp_phospho" value="0.65" units="mM" constant="true"/>
+                <parameter id="PFK2_Vmax" value="0.0042" units="mol_per_s" constant="true"/>
+                <parameter id="PFK2_native" units="mol_per_s" constant="false"/>
+            </listOfParameters>
+            <listOfRules>
+                <assignmentRule variable="PFK2_native">
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <divide/>
+                            <apply>
+                                <times/>
+                                <apply>
+                                    <divide/>
+                                    <apply>
+                                        <times/>
+                                        <ci> PFK2_Vmax </ci>
+                                        <apply>
+                                            <power/>
+                                            <ci> fru6p </ci>
+                                            <ci> PFK2_n_native </ci>
+                                        </apply>
+                                    </apply>
+                                    <apply>
+                                        <plus/>
+                                        <apply>
+                                            <power/>
+                                            <ci> fru6p </ci>
+                                            <ci> PFK2_n_native </ci>
+                                        </apply>
+                                        <apply>
+                                            <power/>
+                                            <ci> PFK2_k_fru6p_native </ci>
+                                            <ci> PFK2_n_native </ci>
+                                        </apply>
+                                    </apply>
+                                </apply>
+                                <ci> atp </ci>
+                            </apply>
+                            <apply>
+                                <plus/>
+                                <ci> atp </ci>
+                                <ci> PFK2_k_atp_native </ci>
+                            </apply>
+                        </apply>
+                    </math>
+                </assignmentRule>
+            </listOfRules>
+        </model>
+        </sbml>  
\ No newline at end of file
diff --git a/src/sbml/validator/test/test-data/sbml-unit-constraints/10541-pass-00-54.xml b/src/sbml/validator/test/test-data/sbml-unit-constraints/10541-pass-00-54.xml
new file mode 100644
index 0000000..46eb872
--- /dev/null
+++ b/src/sbml/validator/test/test-data/sbml-unit-constraints/10541-pass-00-54.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Created by libAntimony version v2.8.1 on 2016-02-16 12:04 with libSBML version 5.12.1. -->
+<sbml xmlns="http://www.sbml.org/sbml/level3/version1/core" level="3" version="1">
+    <model id="__main" name="__main" substanceUnits="substance" timeUnits="time_unit" volumeUnits="volume" areaUnits="area" lengthUnits="length" extentUnits="extent">
+        <listOfUnitDefinitions>
+            <unitDefinition id="mmol">
+                <listOfUnits>
+                    <unit kind="mole" exponent="1" scale="-3" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="mM">
+                <listOfUnits>
+                    <unit kind="mole" exponent="1" scale="-3" multiplier="1"/>
+                    <unit kind="litre" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="mmol_per_s">
+                <listOfUnits>
+                    <unit kind="mole" exponent="1" scale="-3" multiplier="1"/>
+                    <unit kind="second" exponent="-1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="test">
+                <listOfUnits>
+                    <unit kind="litre" exponent="1" scale="3" multiplier="1"/>
+                    <unit kind="metre" exponent="-3" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="substance">
+                <listOfUnits>
+                    <unit kind="mole" exponent="1" scale="-3" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="volume">
+                <listOfUnits>
+                    <unit kind="litre" exponent="1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="area">
+                <listOfUnits>
+                    <unit kind="metre" exponent="2" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="length">
+                <listOfUnits>
+                    <unit kind="metre" exponent="1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="extent">
+                <listOfUnits>
+                    <unit kind="mole" exponent="1" scale="-3" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+            <unitDefinition id="time_unit">
+                <listOfUnits>
+                    <unit kind="second" exponent="1" scale="0" multiplier="1"/>
+                </listOfUnits>
+            </unitDefinition>
+        </listOfUnitDefinitions>
+        <listOfCompartments>
+            <compartment sboTerm="SBO:0000410" id="default_compartment" spatialDimensions="3" size="1" constant="true"/>
+        </listOfCompartments>
+        <listOfSpecies>
+            <species id="S1" compartment="default_compartment" initialConcentration="0" hasOnlySubstanceUnits="false" boundaryCondition="false" constant="false"/>
+        </listOfSpecies>
+        <listOfParameters>
+            <parameter id="v0" value="1" units="mmol_per_s" constant="true"/>
+            <parameter id="k1" value="1" units="test" constant="true"/>
+        </listOfParameters>
+        <listOfReactions>
+            <reaction id="J0" reversible="true" fast="false">
+                <listOfReactants>
+                    <speciesReference species="S1" stoichiometry="1" constant="true"/>
+                </listOfReactants>
+                <kineticLaw>
+                    <math xmlns="http://www.w3.org/1998/Math/MathML">
+                        <apply>
+                            <times/>
+                            <ci> v0 </ci>
+                            <ci> k1 </ci>
+                        </apply>
+                    </math>
+                </kineticLaw>
+            </reaction>
+        </listOfReactions>
+    </model>
+</sbml>
diff --git a/src/sbml/xml/ExpatAttributes.cpp b/src/sbml/xml/ExpatAttributes.cpp
index 32242a6..f18a27f 100644
--- a/src/sbml/xml/ExpatAttributes.cpp
+++ b/src/sbml/xml/ExpatAttributes.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/ExpatAttributes.h b/src/sbml/xml/ExpatAttributes.h
index c9033d0..ff4d8eb 100644
--- a/src/sbml/xml/ExpatAttributes.h
+++ b/src/sbml/xml/ExpatAttributes.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/ExpatHandler.cpp b/src/sbml/xml/ExpatHandler.cpp
index 8cf86c9..4893ed0 100644
--- a/src/sbml/xml/ExpatHandler.cpp
+++ b/src/sbml/xml/ExpatHandler.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -98,9 +98,9 @@ characters (void* userData, const XML_Char* chars, int length)
 
 
 static int
-unknownEncodingHandler(void* encodingHandlerData,
-		       const XML_Char* name,
-		       XML_Encoding* info)
+unknownEncodingHandler(void* /*encodingHandlerData*/,
+           const XML_Char* /*name*/,
+           XML_Encoding* /*info*/)
 {
   return XML_STATUS_ERROR;
 }
diff --git a/src/sbml/xml/ExpatHandler.h b/src/sbml/xml/ExpatHandler.h
index 27f9d06..e673367 100644
--- a/src/sbml/xml/ExpatHandler.h
+++ b/src/sbml/xml/ExpatHandler.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/ExpatParser.cpp b/src/sbml/xml/ExpatParser.cpp
index 48893af..c5fb112 100644
--- a/src/sbml/xml/ExpatParser.cpp
+++ b/src/sbml/xml/ExpatParser.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/ExpatParser.h b/src/sbml/xml/ExpatParser.h
index 931aa35..388ebc6 100644
--- a/src/sbml/xml/ExpatParser.h
+++ b/src/sbml/xml/ExpatParser.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLAttributes.cpp b/src/sbml/xml/LibXMLAttributes.cpp
index b5fc06c..3ab5f8f 100644
--- a/src/sbml/xml/LibXMLAttributes.cpp
+++ b/src/sbml/xml/LibXMLAttributes.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLAttributes.h b/src/sbml/xml/LibXMLAttributes.h
index 5082293..74aaeef 100644
--- a/src/sbml/xml/LibXMLAttributes.h
+++ b/src/sbml/xml/LibXMLAttributes.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLHandler.cpp b/src/sbml/xml/LibXMLHandler.cpp
index 88da49c..79d42b3 100644
--- a/src/sbml/xml/LibXMLHandler.cpp
+++ b/src/sbml/xml/LibXMLHandler.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLHandler.h b/src/sbml/xml/LibXMLHandler.h
index 4eeec66..84d992f 100644
--- a/src/sbml/xml/LibXMLHandler.h
+++ b/src/sbml/xml/LibXMLHandler.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLNamespaces.cpp b/src/sbml/xml/LibXMLNamespaces.cpp
index cf2eb90..11d536b 100644
--- a/src/sbml/xml/LibXMLNamespaces.cpp
+++ b/src/sbml/xml/LibXMLNamespaces.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLNamespaces.h b/src/sbml/xml/LibXMLNamespaces.h
index 18455d9..c496ffb 100644
--- a/src/sbml/xml/LibXMLNamespaces.h
+++ b/src/sbml/xml/LibXMLNamespaces.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLParser.cpp b/src/sbml/xml/LibXMLParser.cpp
index 5601757..e1b565c 100644
--- a/src/sbml/xml/LibXMLParser.cpp
+++ b/src/sbml/xml/LibXMLParser.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLParser.h b/src/sbml/xml/LibXMLParser.h
index 387ba62..c328922 100644
--- a/src/sbml/xml/LibXMLParser.h
+++ b/src/sbml/xml/LibXMLParser.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLTranscode.cpp b/src/sbml/xml/LibXMLTranscode.cpp
index de37a21..21d298d 100644
--- a/src/sbml/xml/LibXMLTranscode.cpp
+++ b/src/sbml/xml/LibXMLTranscode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/LibXMLTranscode.h b/src/sbml/xml/LibXMLTranscode.h
index 6333d3d..d8ae61e 100644
--- a/src/sbml/xml/LibXMLTranscode.h
+++ b/src/sbml/xml/LibXMLTranscode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/Makefile.in b/src/sbml/xml/Makefile.in
index ef50f62..65419fa 100644
--- a/src/sbml/xml/Makefile.in
+++ b/src/sbml/xml/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLAttributes.cpp b/src/sbml/xml/XMLAttributes.cpp
index 7a9b3e5..c15aad5 100644
--- a/src/sbml/xml/XMLAttributes.cpp
+++ b/src/sbml/xml/XMLAttributes.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -972,7 +972,7 @@ XMLAttributes::readInto (  int           index
                          , const unsigned int line     
                          , const unsigned int column   ) const
 {
-  long  temp;
+  long  temp = 0;
   bool  assigned = readInto(index, name, temp, log, required, line, column);
 
   if (assigned && temp >= 0) value = (unsigned int)temp;
diff --git a/src/sbml/xml/XMLAttributes.h b/src/sbml/xml/XMLAttributes.h
index c78f63b..50044a1 100644
--- a/src/sbml/xml/XMLAttributes.h
+++ b/src/sbml/xml/XMLAttributes.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLBuffer.cpp b/src/sbml/xml/XMLBuffer.cpp
index 5c1ab23..c066801 100644
--- a/src/sbml/xml/XMLBuffer.cpp
+++ b/src/sbml/xml/XMLBuffer.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLBuffer.h b/src/sbml/xml/XMLBuffer.h
index 0264462..d93a28c 100644
--- a/src/sbml/xml/XMLBuffer.h
+++ b/src/sbml/xml/XMLBuffer.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLConstructorException.cpp b/src/sbml/xml/XMLConstructorException.cpp
index 203d23e..6a5fb73 100644
--- a/src/sbml/xml/XMLConstructorException.cpp
+++ b/src/sbml/xml/XMLConstructorException.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLConstructorException.h b/src/sbml/xml/XMLConstructorException.h
index 9c1123f..95971d2 100644
--- a/src/sbml/xml/XMLConstructorException.h
+++ b/src/sbml/xml/XMLConstructorException.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLError.cpp b/src/sbml/xml/XMLError.cpp
index 2654978..86b33a7 100644
--- a/src/sbml/xml/XMLError.cpp
+++ b/src/sbml/xml/XMLError.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLError.h b/src/sbml/xml/XMLError.h
index a7a3546..3f68f90 100644
--- a/src/sbml/xml/XMLError.h
+++ b/src/sbml/xml/XMLError.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLErrorLog.cpp b/src/sbml/xml/XMLErrorLog.cpp
index 6488e9d..9f12c75 100644
--- a/src/sbml/xml/XMLErrorLog.cpp
+++ b/src/sbml/xml/XMLErrorLog.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLErrorLog.h b/src/sbml/xml/XMLErrorLog.h
index 2937171..d7ee8ed 100644
--- a/src/sbml/xml/XMLErrorLog.h
+++ b/src/sbml/xml/XMLErrorLog.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLExtern.h b/src/sbml/xml/XMLExtern.h
index 0cdd9fe..4ca85fd 100644
--- a/src/sbml/xml/XMLExtern.h
+++ b/src/sbml/xml/XMLExtern.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLFileBuffer.cpp b/src/sbml/xml/XMLFileBuffer.cpp
index 0ed923d..76db338 100644
--- a/src/sbml/xml/XMLFileBuffer.cpp
+++ b/src/sbml/xml/XMLFileBuffer.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLFileBuffer.h b/src/sbml/xml/XMLFileBuffer.h
index ec8cbdc..52c3471 100644
--- a/src/sbml/xml/XMLFileBuffer.h
+++ b/src/sbml/xml/XMLFileBuffer.h
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLHandler.cpp b/src/sbml/xml/XMLHandler.cpp
index 86eb7fa..79d305d 100644
--- a/src/sbml/xml/XMLHandler.cpp
+++ b/src/sbml/xml/XMLHandler.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLHandler.h b/src/sbml/xml/XMLHandler.h
index e394d99..64b91d6 100644
--- a/src/sbml/xml/XMLHandler.h
+++ b/src/sbml/xml/XMLHandler.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLInputStream.cpp b/src/sbml/xml/XMLInputStream.cpp
index 20a4ce8..627a4cd 100644
--- a/src/sbml/xml/XMLInputStream.cpp
+++ b/src/sbml/xml/XMLInputStream.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -71,7 +71,7 @@ XMLInputStream::XMLInputStream (  const char*   content
  /**
  * Copy Constructor, made private so as to notify users, that copying an input stream is not supported. 
  */
- XMLInputStream::XMLInputStream (const XMLInputStream& other)
+ XMLInputStream::XMLInputStream (const XMLInputStream& /*other*/)
    : mIsError(true)   
    , mParser(NULL)
    , mSBMLns(NULL)
diff --git a/src/sbml/xml/XMLInputStream.h b/src/sbml/xml/XMLInputStream.h
index 4d30e6f..633a0df 100644
--- a/src/sbml/xml/XMLInputStream.h
+++ b/src/sbml/xml/XMLInputStream.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLLogOverride.cpp b/src/sbml/xml/XMLLogOverride.cpp
index 30cfc08..1b881b9 100644
--- a/src/sbml/xml/XMLLogOverride.cpp
+++ b/src/sbml/xml/XMLLogOverride.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLLogOverride.h b/src/sbml/xml/XMLLogOverride.h
index d627873..185f7ef 100644
--- a/src/sbml/xml/XMLLogOverride.h
+++ b/src/sbml/xml/XMLLogOverride.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLMemoryBuffer.cpp b/src/sbml/xml/XMLMemoryBuffer.cpp
index 20703cc..a65efc9 100644
--- a/src/sbml/xml/XMLMemoryBuffer.cpp
+++ b/src/sbml/xml/XMLMemoryBuffer.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLMemoryBuffer.h b/src/sbml/xml/XMLMemoryBuffer.h
index 7ad37c9..bd681af 100644
--- a/src/sbml/xml/XMLMemoryBuffer.h
+++ b/src/sbml/xml/XMLMemoryBuffer.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLNamespaces.cpp b/src/sbml/xml/XMLNamespaces.cpp
index ec215d5..6559735 100644
--- a/src/sbml/xml/XMLNamespaces.cpp
+++ b/src/sbml/xml/XMLNamespaces.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLNamespaces.h b/src/sbml/xml/XMLNamespaces.h
index 4470877..1fe8971 100644
--- a/src/sbml/xml/XMLNamespaces.h
+++ b/src/sbml/xml/XMLNamespaces.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLNode.cpp b/src/sbml/xml/XMLNode.cpp
index 9e815ea..4660903 100644
--- a/src/sbml/xml/XMLNode.cpp
+++ b/src/sbml/xml/XMLNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLNode.h b/src/sbml/xml/XMLNode.h
index f09480d..2919c08 100644
--- a/src/sbml/xml/XMLNode.h
+++ b/src/sbml/xml/XMLNode.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLOutputStream.cpp b/src/sbml/xml/XMLOutputStream.cpp
index ec41eb9..14ba426 100644
--- a/src/sbml/xml/XMLOutputStream.cpp
+++ b/src/sbml/xml/XMLOutputStream.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -173,6 +173,21 @@ bool hasPredefinedEntity(const std::string &chars, size_t index)
 }   
 
 
+// boolean indicating whether the comment on the top of the file is
+// written (enabled by default)
+bool XMLOutputStream::mWriteComment = true;
+
+// boolean indicating whether a timestamp will be generated at the time
+// of writing (enabled by default)
+bool XMLOutputStream::mWriteTimestamp = true;
+
+// the name of the library writing the file (i.e: libSBML)
+std::string XMLOutputStream::mLibraryName = "libSBML";
+
+// the version of the library writing the file
+std::string XMLOutputStream::mLibraryVersion = getLibSBMLDottedVersion();
+
+
 /**
  * Copy Constructor, made private so as to notify users, that copying an input stream is not supported. 
  */
@@ -193,7 +208,7 @@ XMLOutputStream::XMLOutputStream (const XMLOutputStream& other)
 /**
  * Assignment operator, made private so as to notify users, that copying an input stream is not supported. 
  */
-XMLOutputStream& XMLOutputStream::operator=(const XMLOutputStream& other)
+XMLOutputStream& XMLOutputStream::operator=(const XMLOutputStream& /*other*/)
 {
   return *this;
 }
@@ -221,7 +236,7 @@ XMLOutputStream::XMLOutputStream (  std::ostream&       stream
   unsetStringStream();
   mStream.imbue( locale::classic() );
   if (writeXMLDecl) this->writeXMLDecl();
-  this->writeComment(programName, programVersion);
+  if (mWriteComment) this->writeComment(programName, programVersion, mWriteTimestamp);
 }
 
 
@@ -911,13 +926,13 @@ XMLOutputStream::writeValue (const unsigned int& value)
 void
 XMLOutputStream::setStringStream()
 {
-  mStringStream = true;
+    mStringStream = true;
 }
 
 void
 XMLOutputStream::unsetStringStream()
 {
-  mStringStream = false;
+    mStringStream = false;
 }
 
 
@@ -944,28 +959,48 @@ XMLOutputStream::writeXMLDecl ()
  */
 void
 XMLOutputStream::writeComment (const std::string& programName, 
-                               const std::string& programVersion)
+                               const std::string& programVersion,
+                               bool writeTimestamp)
 {
-  char formattedDateAndTime[17];
-  time_t tim=time(NULL);
-  tm *now=localtime(&tim);
+  // don't write without program name
+  if (programName.empty())
+    return;
 
-  sprintf(formattedDateAndTime, "%d-%02d-%02d %02d:%02d",
-    now->tm_year+1900, now->tm_mon+1, now->tm_mday, 
-    now->tm_hour, now->tm_min);
+  mStream << "<!-- Created by " << programName;
 
-  if (programName != "")
+  // only write program version if we have it
+  if (!programVersion.empty())
   {
-    mStream << "<!-- Created by " << programName;
-    if (programVersion != "")
+    mStream << " version " << programVersion;
+  }
+
+  // only compute timestamp if we need to
+  if (writeTimestamp)
+  {
+    char formattedDateAndTime[17];
+    time_t tim=time(NULL);
+    tm *now=localtime(&tim);
+
+    sprintf(formattedDateAndTime, "%d-%02d-%02d %02d:%02d",
+            now->tm_year+1900, now->tm_mon+1, now->tm_mday,
+            now->tm_hour, now->tm_min);
+    mStream << " on " << formattedDateAndTime;
+  }
+
+  // write library information
+  if (!mLibraryName.empty())
+  {
+    mStream << " with " << mLibraryName;
+
+    if (!mLibraryVersion.empty())
     {
-      mStream << " version " << programVersion;
+      mStream << " version " << mLibraryVersion;
     }
-    mStream << " on " << formattedDateAndTime;
-    mStream << " with libSBML version " << getLibSBMLDottedVersion();
-    mStream << ". -->";
-    mStream << endl;
   }
+
+  mStream << ". -->";
+  mStream << endl;
+
 }
 
 
@@ -1072,6 +1107,46 @@ XMLOutputStream::setSBMLNamespaces(SBMLNamespaces * sbmlns)
     mSBMLns = NULL;
 }
 
+bool XMLOutputStream::getWriteComment()
+{
+  return mWriteComment;
+}
+
+void XMLOutputStream::setWriteComment(bool writeComment)
+{
+  mWriteComment = writeComment;
+}
+
+bool XMLOutputStream::getWriteTimestamp()
+{
+  return mWriteTimestamp;
+}
+
+void XMLOutputStream::setWriteTimestamp(bool writeTimestamp)
+{
+  mWriteTimestamp = writeTimestamp;
+}
+
+string XMLOutputStream::getLibraryName()
+{
+  return mLibraryName;
+}
+
+void XMLOutputStream::setLibraryName(const string& libraryName)
+{
+  mLibraryName = libraryName;
+}
+
+string XMLOutputStream::getLibraryVersion()
+{
+  return mLibraryVersion;
+}
+
+void XMLOutputStream::setLibraryVersion(const string& libraryVersion)
+{
+  mLibraryVersion = libraryVersion;
+}
+
 XMLOutputStream::~XMLOutputStream()
 {
   if (mSBMLns != NULL) 
@@ -1099,7 +1174,7 @@ XMLOutputStringStream::getString()
   return mString;
 }
 
-XMLOwningOutputStringStream::XMLOwningOutputStringStream (  const std::string&  encoding
+XMLOwningOutputStringStream::XMLOwningOutputStringStream (const std::string&  encoding
                                , bool                writeXMLDecl
                                , const std::string&  programName
                                , const std::string&  programVersion)
@@ -1114,7 +1189,7 @@ XMLOwningOutputStringStream::~XMLOwningOutputStringStream()
 }
 
 
-XMLOutputFileStream::XMLOutputFileStream (  std::ofstream& stream
+XMLOutputFileStream::XMLOutputFileStream (std::ofstream& stream
                    , const std::string&  encoding
                    , bool                writeXMLDecl
                    , const std::string&  programName
diff --git a/src/sbml/xml/XMLOutputStream.h b/src/sbml/xml/XMLOutputStream.h
index 958f720..53b5904 100644
--- a/src/sbml/xml/XMLOutputStream.h
+++ b/src/sbml/xml/XMLOutputStream.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -265,7 +265,7 @@ public:
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
    */
-  XMLOutputStream (  std::ostream&       stream
+  XMLOutputStream (std::ostream&       stream
                    , const std::string&  encoding       = "UTF-8"
                    , bool                writeXMLDecl   = true
                    , const std::string&  programName    = ""
@@ -630,9 +630,13 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
    *
    * @param programVersion an optional version identification string to write
    * as a comment in the output stream.
+   *
+   * @param writeTimestamp an optional flag indicating that a timestamp should
+   * be written
    */
   void writeComment (const std::string& programName,
-                     const std::string& programVersion);
+                     const std::string& programVersion,
+                     bool writeTimestamp = true);
 
 
   /**
@@ -708,6 +712,58 @@ on yyyy-MM-dd HH:mm with libSBML version <libsbml version>. -->
   void setSBMLNamespaces(SBMLNamespaces * sbmlns);
 
 
+  /**
+   * @return a boolean, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   */
+  static bool getWriteComment();
+  /**
+   * sets a flag, whether the output stream will write an XML
+   * comment at the top of the file. (Enabled by default)
+   *
+   * @param writeComment the flag
+   */
+  static void setWriteComment(bool writeComment);
+
+  /**
+   * @return a boolean, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   */
+  static bool getWriteTimestamp();
+  /**
+   * sets a flag, whether the output stream will write an XML
+   * comment with a timestamp at the top of the file. (Enabled by default)
+   *
+   * @param writeTimestamp the flag
+   */
+  static void setWriteTimestamp(bool writeTimestamp);
+
+
+  /**
+   * @return the name of the library to be used in comments ('libSBML' by default)
+   */
+  static std::string getLibraryName();
+
+  /**
+   * sets the name of the library writing the XML
+
+   * @param libraryName the name of the library to be used in comments
+   */
+  static void setLibraryName(const std::string& libraryName);
+
+  /**
+   * @return a string representing the version of the library writing the output.
+   *         This is the value of getLibSBMLDottedVersion() by default.
+   */
+  static std::string getLibraryVersion();
+
+  /**
+   * sets the name of the library writing the output
+   *
+   * @param libraryVersion the version information as string
+   */
+  static void setLibraryVersion(const std::string& libraryVersion);
+
 private:
   /** @cond doxygenLibsbmlInternal */
   /**
@@ -815,6 +871,20 @@ protected:
 
   SBMLNamespaces* mSBMLns;
 
+  // boolean indicating whether the comment on the top of the file is
+  // written (enabled by default)
+  static bool mWriteComment;
+
+  // boolean indicating whether a timestamp will be generated at the time
+  // of writing (enabled by default)
+  static bool mWriteTimestamp;
+
+  // the name of the library writing the file (i.e: libSBML)
+  static std::string mLibraryName;
+
+  // the version of the library writing the file
+  static std::string mLibraryVersion;
+
   /* this is needed for the derived classes used to create the C wrapper */
   bool mStringStream;
   void setStringStream();
@@ -899,7 +969,7 @@ public:
    *
    * @ifnot hasDefaultArgs @htmlinclude warn-default-args-in-docs.html @endif@~
    */
-  XMLOwningOutputFileStream (  const std::string&  filename
+  XMLOwningOutputFileStream (const std::string&  filename
                              , const std::string&  encoding     = "UTF-8"
                              , bool                writeXMLDecl = true
                              , const std::string&  programName  = ""
diff --git a/src/sbml/xml/XMLParser.cpp b/src/sbml/xml/XMLParser.cpp
index dedb7a1..4f5541b 100644
--- a/src/sbml/xml/XMLParser.cpp
+++ b/src/sbml/xml/XMLParser.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLParser.h b/src/sbml/xml/XMLParser.h
index 6d166a4..46753d1 100644
--- a/src/sbml/xml/XMLParser.h
+++ b/src/sbml/xml/XMLParser.h
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLToken.cpp b/src/sbml/xml/XMLToken.cpp
index 3a679d3..ee2bbc2 100644
--- a/src/sbml/xml/XMLToken.cpp
+++ b/src/sbml/xml/XMLToken.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLToken.h b/src/sbml/xml/XMLToken.h
index 7dd4c04..c3fb77f 100644
--- a/src/sbml/xml/XMLToken.h
+++ b/src/sbml/xml/XMLToken.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLTokenizer.cpp b/src/sbml/xml/XMLTokenizer.cpp
index 9aea6f3..ffad6db 100644
--- a/src/sbml/xml/XMLTokenizer.cpp
+++ b/src/sbml/xml/XMLTokenizer.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
@@ -451,7 +451,8 @@ XMLTokenizer::determineNumSpecificChildren(bool & valid,
   
   XMLToken next = mTokens.at(index);
   name = next.getName();
-  if (next.isStart() == true && next.isEnd() == true && index < size)
+  if (next.isStart() == true && next.isEnd() == true && 
+    name == qualifier && index < size)
   {
     numQualifiers++;
     index++;
diff --git a/src/sbml/xml/XMLTokenizer.h b/src/sbml/xml/XMLTokenizer.h
index f08d29e..a1f557b 100644
--- a/src/sbml/xml/XMLTokenizer.h
+++ b/src/sbml/xml/XMLTokenizer.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLTriple.cpp b/src/sbml/xml/XMLTriple.cpp
index f869bb5..688a939 100644
--- a/src/sbml/xml/XMLTriple.cpp
+++ b/src/sbml/xml/XMLTriple.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XMLTriple.h b/src/sbml/xml/XMLTriple.h
index 64ab838..9699e1f 100644
--- a/src/sbml/xml/XMLTriple.h
+++ b/src/sbml/xml/XMLTriple.h
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesAttributes.cpp b/src/sbml/xml/XercesAttributes.cpp
index 0bd6d9c..6871802 100644
--- a/src/sbml/xml/XercesAttributes.cpp
+++ b/src/sbml/xml/XercesAttributes.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesAttributes.h b/src/sbml/xml/XercesAttributes.h
index d104e85..4bbf42e 100644
--- a/src/sbml/xml/XercesAttributes.h
+++ b/src/sbml/xml/XercesAttributes.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesHandler.cpp b/src/sbml/xml/XercesHandler.cpp
index 74d2475..ecfc976 100644
--- a/src/sbml/xml/XercesHandler.cpp
+++ b/src/sbml/xml/XercesHandler.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesHandler.h b/src/sbml/xml/XercesHandler.h
index 90e4fb0..3f16aed 100644
--- a/src/sbml/xml/XercesHandler.h
+++ b/src/sbml/xml/XercesHandler.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesNamespaces.cpp b/src/sbml/xml/XercesNamespaces.cpp
index d8e8bef..e8fc481 100644
--- a/src/sbml/xml/XercesNamespaces.cpp
+++ b/src/sbml/xml/XercesNamespaces.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesNamespaces.h b/src/sbml/xml/XercesNamespaces.h
index 6d949ae..01cfaff 100644
--- a/src/sbml/xml/XercesNamespaces.h
+++ b/src/sbml/xml/XercesNamespaces.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesParser.cpp b/src/sbml/xml/XercesParser.cpp
index 30179a7..dbe3ebe 100644
--- a/src/sbml/xml/XercesParser.cpp
+++ b/src/sbml/xml/XercesParser.cpp
@@ -11,7 +11,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesParser.h b/src/sbml/xml/XercesParser.h
index fb4d488..362c031 100644
--- a/src/sbml/xml/XercesParser.h
+++ b/src/sbml/xml/XercesParser.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesTranscode.cpp b/src/sbml/xml/XercesTranscode.cpp
index bd76c43..0a952e3 100644
--- a/src/sbml/xml/XercesTranscode.cpp
+++ b/src/sbml/xml/XercesTranscode.cpp
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/XercesTranscode.h b/src/sbml/xml/XercesTranscode.h
index 544bded..ed0e960 100644
--- a/src/sbml/xml/XercesTranscode.h
+++ b/src/sbml/xml/XercesTranscode.h
@@ -9,7 +9,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/CMakeLists.txt b/src/sbml/xml/test/CMakeLists.txt
index 76ef135..33313c6 100644
--- a/src/sbml/xml/test/CMakeLists.txt
+++ b/src/sbml/xml/test/CMakeLists.txt
@@ -6,7 +6,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/Makefile.in b/src/sbml/xml/test/Makefile.in
index c68f82f..a3bbc8c 100644
--- a/src/sbml/xml/test/Makefile.in
+++ b/src/sbml/xml/test/Makefile.in
@@ -8,7 +8,7 @@
 ## This file is part of libSBML.  Please visit http://sbml.org for more
 ## information about SBML, and the latest version of libSBML.
 ##
-## Copyright (C) 2013-2015 jointly by the following organizations:
+## Copyright (C) 2013-2016 jointly by the following organizations:
 ##     1. California Institute of Technology, Pasadena, CA, USA
 ##     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 ##     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestCopyAndClone.cpp b/src/sbml/xml/test/TestCopyAndClone.cpp
index e3aa874..b2eaf20 100644
--- a/src/sbml/xml/test/TestCopyAndClone.cpp
+++ b/src/sbml/xml/test/TestCopyAndClone.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestRunner.c b/src/sbml/xml/test/TestRunner.c
index 1ca2d34..6e02d99 100644
--- a/src/sbml/xml/test/TestRunner.c
+++ b/src/sbml/xml/test/TestRunner.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLAttributes.cpp b/src/sbml/xml/test/TestXMLAttributes.cpp
index d70cd7f..a59ce70 100644
--- a/src/sbml/xml/test/TestXMLAttributes.cpp
+++ b/src/sbml/xml/test/TestXMLAttributes.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLAttributesC.c b/src/sbml/xml/test/TestXMLAttributesC.c
index f6d9f96..86f2e21 100644
--- a/src/sbml/xml/test/TestXMLAttributesC.c
+++ b/src/sbml/xml/test/TestXMLAttributesC.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLError.cpp b/src/sbml/xml/test/TestXMLError.cpp
index 8ffc5f3..d33319d 100644
--- a/src/sbml/xml/test/TestXMLError.cpp
+++ b/src/sbml/xml/test/TestXMLError.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLErrorC.c b/src/sbml/xml/test/TestXMLErrorC.c
index 3b109de..1cb955c 100644
--- a/src/sbml/xml/test/TestXMLErrorC.c
+++ b/src/sbml/xml/test/TestXMLErrorC.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLErrorLog.c b/src/sbml/xml/test/TestXMLErrorLog.c
index 8c669ef..0600761 100644
--- a/src/sbml/xml/test/TestXMLErrorLog.c
+++ b/src/sbml/xml/test/TestXMLErrorLog.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLExceptions.cpp b/src/sbml/xml/test/TestXMLExceptions.cpp
index 505699c..0dfa774 100644
--- a/src/sbml/xml/test/TestXMLExceptions.cpp
+++ b/src/sbml/xml/test/TestXMLExceptions.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLInputStream.c b/src/sbml/xml/test/TestXMLInputStream.c
index 297a4ee..7f9d8ea 100644
--- a/src/sbml/xml/test/TestXMLInputStream.c
+++ b/src/sbml/xml/test/TestXMLInputStream.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLNamespaces.c b/src/sbml/xml/test/TestXMLNamespaces.c
index cd49c2f..a4e3d05 100644
--- a/src/sbml/xml/test/TestXMLNamespaces.c
+++ b/src/sbml/xml/test/TestXMLNamespaces.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLNode.cpp b/src/sbml/xml/test/TestXMLNode.cpp
index 45fd9ec..3941484 100644
--- a/src/sbml/xml/test/TestXMLNode.cpp
+++ b/src/sbml/xml/test/TestXMLNode.cpp
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLNode_newSetters.c b/src/sbml/xml/test/TestXMLNode_newSetters.c
index 0c13b3f..28b67bf 100644
--- a/src/sbml/xml/test/TestXMLNode_newSetters.c
+++ b/src/sbml/xml/test/TestXMLNode_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLOutputStream.c b/src/sbml/xml/test/TestXMLOutputStream.c
index dcebfd9..6addf3a 100644
--- a/src/sbml/xml/test/TestXMLOutputStream.c
+++ b/src/sbml/xml/test/TestXMLOutputStream.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLToken.c b/src/sbml/xml/test/TestXMLToken.c
index 0877256..f1d3ca3 100644
--- a/src/sbml/xml/test/TestXMLToken.c
+++ b/src/sbml/xml/test/TestXMLToken.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLToken_newSetters.c b/src/sbml/xml/test/TestXMLToken_newSetters.c
index dba6ec6..0aa8461 100644
--- a/src/sbml/xml/test/TestXMLToken_newSetters.c
+++ b/src/sbml/xml/test/TestXMLToken_newSetters.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/sbml/xml/test/TestXMLTriple.c b/src/sbml/xml/test/TestXMLTriple.c
index 0ebf996..837f61f 100644
--- a/src/sbml/xml/test/TestXMLTriple.c
+++ b/src/sbml/xml/test/TestXMLTriple.c
@@ -7,7 +7,7 @@
  * This file is part of libSBML.  Please visit http://sbml.org for more
  * information about SBML, and the latest version of libSBML.
  *
- * Copyright (C) 2013-2015 jointly by the following organizations:
+ * Copyright (C) 2013-2016 jointly by the following organizations:
  *     1. California Institute of Technology, Pasadena, CA, USA
  *     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
  *     3. University of Heidelberg, Heidelberg, Germany
diff --git a/src/spatial-package.cmake b/src/spatial-package.cmake
index 2129ec1..b3fade7 100644
--- a/src/spatial-package.cmake
+++ b/src/spatial-package.cmake
@@ -8,7 +8,7 @@
 # This file is part of libSBML.  Please visit http://sbml.org for more
 # information about SBML, and the latest version of libSBML.
 #
-# Copyright (C) 2013-2015 jointly by the following organizations:
+# Copyright (C) 2013-2016 jointly by the following organizations:
 #     1. California Institute of Technology, Pasadena, CA, USA
 #     2. EMBL European Bioinformatics Institute (EMBL-EBI), Hinxton, UK
 #     3. University of Heidelberg, Heidelberg, Germany

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/libsbml.git



More information about the debian-med-commit mailing list