diff --git a/modules/conop/pymod/export_compound.cc b/modules/conop/pymod/export_compound.cc
index f14e90a37e634c5f34c728fc5b61287d518326a9..3a9e4e6118867027b04db2bbf3eb3031878c44ed 100644
--- a/modules/conop/pymod/export_compound.cc
+++ b/modules/conop/pymod/export_compound.cc
@@ -69,17 +69,6 @@ char get_chemtype(CompoundPtr compound)
   return char(compound->GetChemType());
 }
 
-int get_charge(CompoundPtr compound)
-{
-  return int(compound->GetCharge());
-}
-
-void set_charge(CompoundPtr compound, int c)
-{
-  compound->SetCharge(c);
-}
-
-
 CompoundPtr find_compound(CompoundLibPtr comp_lib, 
                           const String& tlc, const String& dialect)
 {
@@ -106,9 +95,6 @@ void export_Compound() {
          return_value_policy<copy_const_reference>())
     .def("SetOneLetterCode", &Compound::SetOneLetterCode)
     .def("GetOneLetterCode", &Compound::GetOneLetterCode)
-    
-    .def("GetCharge", &Compound::GetCharge)
-    .def("SetCharge", &Compound::SetCharge)
 
     .add_property("three_letter_code", make_function(&Compound::GetID, return_value_policy<copy_const_reference>()))
     .add_property("name", 
@@ -143,7 +129,6 @@ void export_Compound() {
     .def_readonly("is_leaving", &AtomSpec::is_leaving)
     .def_readonly("is_aromatic", &AtomSpec::is_aromatic)
     .def_readonly("ordinal", &AtomSpec::ordinal)
-    .def_readonly("charge", &AtomSpec::charge)
   ;
   
   class_<BondSpec>("BondSpec", no_init)
diff --git a/modules/conop/src/compound.hh b/modules/conop/src/compound.hh
index f65d4864f9eecf4aee469c59e2d3afb9ef739b68..d69ee049b0274c187addca9e899262fc665c9faf 100644
--- a/modules/conop/src/compound.hh
+++ b/modules/conop/src/compound.hh
@@ -76,19 +76,17 @@ struct DLLEXPORT_OST_CONOP AtomSpec {
     alt_name(),
     element(),
     is_leaving(false),
-    is_aromatic(),
-    charge()
+    is_aromatic()
   {
   }
   AtomSpec(int o, const String& n, const String& a, const String& e,
-           bool l, bool r, int c):
+           bool l, bool r):
     ordinal(o),
     name(n),
     alt_name(a),
     element(e),
     is_leaving(l),
-    is_aromatic(r),
-    charge(c)
+    is_aromatic(r)
   {}
   int    ordinal;
   String name;
@@ -96,11 +94,11 @@ struct DLLEXPORT_OST_CONOP AtomSpec {
   String element;
   bool   is_leaving;
   bool   is_aromatic;
-  int    charge;
   bool operator==(const AtomSpec& rhs) const {
     return ordinal==rhs.ordinal && name==rhs.name && alt_name==rhs.alt_name &&
            element==rhs.element && is_leaving==rhs.is_leaving && 
-           is_aromatic==rhs.is_aromatic && charge==rhs.charge;
+           rhs.is_aromatic==rhs.is_aromatic;
+
   }
   bool operator!=(const AtomSpec& rhs) const {
     return !this->operator==(rhs);
@@ -155,8 +153,7 @@ public:
     chem_type_(),
     dialect_(Compound::PDB),
     creation_date_(),
-    mod_date_(),
-    charge_()
+    mod_date_()
   {
   }
 
@@ -245,10 +242,6 @@ public:
 
   const String& GetFormula() { return formula_; }
   
-  void SetCharge(int charge) { charge_=charge; }
-  
-  int GetCharge() { return charge_; }
-  
   const BondSpecList& GetBondSpecs() const {
     return bond_specs_;
   }
@@ -283,7 +276,6 @@ private:
   Dialect                      dialect_;  
   Date                         creation_date_;
   Date                         mod_date_;
-  int                          charge_;
 };
 
 typedef std::map<String, CompoundPtr> CompoundMap;
diff --git a/modules/conop/src/compound_lib.cc b/modules/conop/src/compound_lib.cc
index 3c3ed5691498db79cc81258a5bad88701e7a1743..35c60e0c3fa133d9cc11165273d30e760dd77790 100644
--- a/modules/conop/src/compound_lib.cc
+++ b/modules/conop/src/compound_lib.cc
@@ -49,8 +49,7 @@ const char* CREATE_CMD[]={
 "  formula           VARCHAR(64) NOT NULL,                                      "
 "  pdb_initial       TIMESTAMP,                                                 "
 "  pdb_modified      TIMESTAMP,                                                 "
-"  name              VARCHAR(256),                                              " 
-"  charge            INT                                                        " 
+"  name              VARCHAR(256)                                               " 
 ");",
 " CREATE UNIQUE INDEX IF NOT EXISTS commpound_tlc_index ON chem_compounds       "
 "                                  (tlc, dialect)",
@@ -63,8 +62,7 @@ const char* CREATE_CMD[]={
 " is_aromatic        VARCHAR(1) NOT NULL,                                       "
 " stereo_conf        VARCHAR(1) NOT NULL,                                       "
 " is_leaving         VARCHAR(1) NOT NULL,                                       "
-" ordinal            INT,                                                       "
-" charge             INT                                                        "
+" ordinal            INT                                                        "
 ");",
 " CREATE INDEX IF NOT EXISTS atom_name_index ON atoms                           "
 "                                  (compound_id, name, alt_name)",
@@ -87,13 +85,13 @@ const char* CREATE_CMD[]={
 
 
 const char* INSERT_COMPOUND_STATEMENT="INSERT INTO chem_compounds               "
-"        (tlc, olc, dialect, chem_class, chem_type, formula, pdb_initial, pdb_modified, name, charge) "
-" VALUES (?, ?, ?, ?, ?, ?, DATE(?), DATE(?), ?, ?)";
+"        (tlc, olc, dialect, chem_class, chem_type, formula, pdb_initial, pdb_modified, name) "
+" VALUES (?, ?, ?, ?, ?, ?, DATE(?), DATE(?), ?)";
 
 const char* INSERT_ATOM_STATEMENT="INSERT INTO atoms                            "
 "        (compound_id, name, alt_name, element, is_aromatic, stereo_conf,       "
-"         is_leaving, ordinal, charge)                                          "
-" VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
+"         is_leaving, ordinal)                                                  "
+" VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
 
 const char* INSERT_BOND_STATEMENT="insert into bonds                            "
 "        (compound_id, atom_one, atom_two, bond_order, stereo_conf)             "
@@ -224,9 +222,6 @@ void CompoundLib::AddCompound(const CompoundPtr& compound)
     modi_date_str=modi_date.ToString();
     sqlite3_bind_text(stmt, 7, crea_date_str.c_str(), crea_date_str.length(), NULL);
     sqlite3_bind_text(stmt, 8, modi_date_str.c_str(), modi_date_str.length(), NULL);
-    sqlite3_bind_text(stmt, 9, compound->GetName().c_str(), compound->GetName().length(), NULL);
-    int charge=compound->GetCharge();
-    sqlite3_bind_int(stmt, 10, charge);
   } else {
     LOG_ERROR(sqlite3_errmsg(conn_));
     sqlite3_finalize(stmt);
@@ -260,7 +255,6 @@ void CompoundLib::AddCompound(const CompoundPtr& compound)
       sqlite3_bind_int(stmt, 6, 0);                  
       sqlite3_bind_int(stmt, 7, a.is_leaving);
       sqlite3_bind_int(stmt, 8, a.ordinal);
-      sqlite3_bind_int(stmt, 9, a.charge);
       retval=sqlite3_step(stmt);
       assert(retval==SQLITE_DONE);
       atom_ids[a.ordinal]=sqlite3_last_insert_rowid(conn_);
@@ -369,7 +363,7 @@ CompoundLibPtr CompoundLib::Load(const String& database, bool readonly)
 }
 
 void CompoundLib::LoadAtomsFromDB(CompoundPtr comp, int pk) const {
-  String aq=str(format("SELECT name, alt_name, element, ordinal, is_leaving, charge "
+  String aq=str(format("SELECT name, alt_name, element, ordinal, is_leaving "
                        "FROM atoms WHERE compound_id=%d "
                        "ORDER BY ordinal ASC") % pk);  
   sqlite3_stmt* stmt;
@@ -385,7 +379,6 @@ void CompoundLib::LoadAtomsFromDB(CompoundPtr comp, int pk) const {
         atom_sp.element=String(reinterpret_cast<const char*>(sqlite3_column_text(stmt, 2))); 
         atom_sp.ordinal=sqlite3_column_int(stmt, 3);  
         atom_sp.is_leaving=bool(sqlite3_column_int(stmt, 4)!=0);
-        atom_sp.charge=sqlite3_column_int(stmt, 5);  
         comp->AddAtom(atom_sp);
       }
   } else {
@@ -428,7 +421,7 @@ CompoundPtr CompoundLib::FindCompound(const String& id,
   if (i!=compound_cache_.end()) {
     return i->second;
   }
-  String query="SELECT id, tlc, olc, chem_class, dialect, formula, charge";
+  String query="SELECT id, tlc, olc, chem_class, dialect, formula";
   if(chem_type_available_) {
     query+=", chem_type";
     if(name_available_) {
@@ -457,12 +450,11 @@ CompoundPtr CompoundLib::FindCompound(const String& id,
       compound->SetDialect(Compound::Dialect(sqlite3_column_text(stmt, 4)[0]));
       const char* f=reinterpret_cast<const char*>(sqlite3_column_text(stmt, 5));
       compound->SetFormula(f);
-      compound->SetCharge(sqlite3_column_int(stmt, 6));
       if(chem_type_available_) {
-        compound->SetChemType(mol::ChemType(sqlite3_column_text(stmt, 7)[0]));
+        compound->SetChemType(mol::ChemType(sqlite3_column_text(stmt, 6)[0]));
       }
       if (name_available_) {
-        const char* name=reinterpret_cast<const char*>(sqlite3_column_text(stmt, 8));
+        const char* name=reinterpret_cast<const char*>(sqlite3_column_text(stmt, 7));
         if (name) {
           compound->SetName(name);
         }
diff --git a/modules/conop/src/standard_compounds.cc b/modules/conop/src/standard_compounds.cc
index e9012a7c035adf5330504f8fb12f75287f9dfde2..7ce7302ffcc4f90e37a1f59e80595e54efbb4f24 100644
--- a/modules/conop/src/standard_compounds.cc
+++ b/modules/conop/src/standard_compounds.cc
@@ -5,19 +5,19 @@ CompoundPtr MakeALACompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C3 H7 N O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(6, "H", "H", "H", false, true,0),
-    AtomSpec(7, "H2", "HN2", "H", true, true,0),
-    AtomSpec(8, "HA", "HA", "H", false, true,0),
-    AtomSpec(9, "HB1", "1HB", "H", false, true,0),
-    AtomSpec(10, "HB2", "2HB", "H", false, true,0),
-    AtomSpec(11, "HB3", "3HB", "H", false, true,0),
-    AtomSpec(12, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "OXT", "OXT", "O", true, true),
+    AtomSpec(6, "H", "H", "H", false, true),
+    AtomSpec(7, "H2", "HN2", "H", true, true),
+    AtomSpec(8, "HA", "HA", "H", false, true),
+    AtomSpec(9, "HB1", "1HB", "H", false, true),
+    AtomSpec(10, "HB2", "2HB", "H", false, true),
+    AtomSpec(11, "HB3", "3HB", "H", false, true),
+    AtomSpec(12, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<13; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -44,20 +44,20 @@ CompoundPtr MakeCYSCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C3 H7 N O2 S");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "SG", "SG", "S", false, true,0),
-    AtomSpec(6, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(7, "H", "H", "H", false, true,0),
-    AtomSpec(8, "H2", "HN2", "H", true, true,0),
-    AtomSpec(9, "HA", "HA", "H", false, true,0),
-    AtomSpec(10, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(11, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(12, "HG", "HG", "H", false, true,0),
-    AtomSpec(13, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "SG", "SG", "S", false, true),
+    AtomSpec(6, "OXT", "OXT", "O", true, true),
+    AtomSpec(7, "H", "H", "H", false, true),
+    AtomSpec(8, "H2", "HN2", "H", true, true),
+    AtomSpec(9, "HA", "HA", "H", false, true),
+    AtomSpec(10, "HB2", "1HB", "H", false, true),
+    AtomSpec(11, "HB3", "2HB", "H", false, true),
+    AtomSpec(12, "HG", "HG", "H", false, true),
+    AtomSpec(13, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<14; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -85,22 +85,22 @@ CompoundPtr MakeASPCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C4 H7 N O4");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "OD1", "OD1", "O", false, true,0),
-    AtomSpec(7, "OD2", "OD2", "O", false, true,0),
-    AtomSpec(8, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(9, "H", "H", "H", false, true,0),
-    AtomSpec(10, "H2", "HN2", "H", true, true,0),
-    AtomSpec(11, "HA", "HA", "H", false, true,0),
-    AtomSpec(12, "HB2", "HB1", "H", false, true,0),
-    AtomSpec(13, "HB3", "HB2", "H", false, true,0),
-    AtomSpec(14, "HD2", "HD2", "H", false, true,0),
-    AtomSpec(15, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "OD1", "OD1", "O", false, true),
+    AtomSpec(7, "OD2", "OD2", "O", false, true),
+    AtomSpec(8, "OXT", "OXT", "O", true, true),
+    AtomSpec(9, "H", "H", "H", false, true),
+    AtomSpec(10, "H2", "HN2", "H", true, true),
+    AtomSpec(11, "HA", "HA", "H", false, true),
+    AtomSpec(12, "HB2", "HB1", "H", false, true),
+    AtomSpec(13, "HB3", "HB2", "H", false, true),
+    AtomSpec(14, "HD2", "HD2", "H", false, true),
+    AtomSpec(15, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<16; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -130,25 +130,25 @@ CompoundPtr MakeGLUCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C5 H9 N O4");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD", "CD", "C", false, true,0),
-    AtomSpec(7, "OE1", "OE1", "O", false, true,0),
-    AtomSpec(8, "OE2", "OE2", "O", false, true,0),
-    AtomSpec(9, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(10, "H", "H", "H", false, true,0),
-    AtomSpec(11, "H2", "HN2", "H", true, true,0),
-    AtomSpec(12, "HA", "HA", "H", false, true,0),
-    AtomSpec(13, "HB2", "HB1", "H", false, true,0),
-    AtomSpec(14, "HB3", "HB2", "H", false, true,0),
-    AtomSpec(15, "HG2", "HG1", "H", false, true,0),
-    AtomSpec(16, "HG3", "HG2", "H", false, true,0),
-    AtomSpec(17, "HE2", "HE2", "H", false, true,0),
-    AtomSpec(18, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD", "CD", "C", false, true),
+    AtomSpec(7, "OE1", "OE1", "O", false, true),
+    AtomSpec(8, "OE2", "OE2", "O", false, true),
+    AtomSpec(9, "OXT", "OXT", "O", true, true),
+    AtomSpec(10, "H", "H", "H", false, true),
+    AtomSpec(11, "H2", "HN2", "H", true, true),
+    AtomSpec(12, "HA", "HA", "H", false, true),
+    AtomSpec(13, "HB2", "HB1", "H", false, true),
+    AtomSpec(14, "HB3", "HB2", "H", false, true),
+    AtomSpec(15, "HG2", "HG1", "H", false, true),
+    AtomSpec(16, "HG3", "HG2", "H", false, true),
+    AtomSpec(17, "HE2", "HE2", "H", false, true),
+    AtomSpec(18, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<19; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -181,29 +181,29 @@ CompoundPtr MakePHECompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C9 H11 N O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD1", "CD1", "C", false, true,0),
-    AtomSpec(7, "CD2", "CD2", "C", false, true,0),
-    AtomSpec(8, "CE1", "CE1", "C", false, true,0),
-    AtomSpec(9, "CE2", "CE2", "C", false, true,0),
-    AtomSpec(10, "CZ", "CZ", "C", false, true,0),
-    AtomSpec(11, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(12, "H", "H", "H", false, true,0),
-    AtomSpec(13, "H2", "HN2", "H", true, true,0),
-    AtomSpec(14, "HA", "HA", "H", false, true,0),
-    AtomSpec(15, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(16, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(17, "HD1", "HD1", "H", false, true,0),
-    AtomSpec(18, "HD2", "HD2", "H", false, true,0),
-    AtomSpec(19, "HE1", "HE1", "H", false, true,0),
-    AtomSpec(20, "HE2", "HE2", "H", false, true,0),
-    AtomSpec(21, "HZ", "HZ", "H", false, true,0),
-    AtomSpec(22, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD1", "CD1", "C", false, true),
+    AtomSpec(7, "CD2", "CD2", "C", false, true),
+    AtomSpec(8, "CE1", "CE1", "C", false, true),
+    AtomSpec(9, "CE2", "CE2", "C", false, true),
+    AtomSpec(10, "CZ", "CZ", "C", false, true),
+    AtomSpec(11, "OXT", "OXT", "O", true, true),
+    AtomSpec(12, "H", "H", "H", false, true),
+    AtomSpec(13, "H2", "HN2", "H", true, true),
+    AtomSpec(14, "HA", "HA", "H", false, true),
+    AtomSpec(15, "HB2", "1HB", "H", false, true),
+    AtomSpec(16, "HB3", "2HB", "H", false, true),
+    AtomSpec(17, "HD1", "HD1", "H", false, true),
+    AtomSpec(18, "HD2", "HD2", "H", false, true),
+    AtomSpec(19, "HE1", "HE1", "H", false, true),
+    AtomSpec(20, "HE2", "HE2", "H", false, true),
+    AtomSpec(21, "HZ", "HZ", "H", false, true),
+    AtomSpec(22, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<23; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -241,16 +241,16 @@ CompoundPtr MakeGLYCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C2 H5 N O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(5, "H", "H", "H", false, true,0),
-    AtomSpec(6, "H2", "HN2", "H", true, true,0),
-    AtomSpec(7, "HA2", "HA1", "H", false, true,0),
-    AtomSpec(8, "HA3", "HA2", "H", false, true,0),
-    AtomSpec(9, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "OXT", "OXT", "O", true, true),
+    AtomSpec(5, "H", "H", "H", false, true),
+    AtomSpec(6, "H2", "HN2", "H", true, true),
+    AtomSpec(7, "HA2", "HA1", "H", false, true),
+    AtomSpec(8, "HA3", "HA2", "H", false, true),
+    AtomSpec(9, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<10; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -274,27 +274,27 @@ CompoundPtr MakeHISCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C6 H10 N3 O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "ND1", "ND1", "N", false, true,0),
-    AtomSpec(7, "CD2", "CD2", "C", false, true,0),
-    AtomSpec(8, "CE1", "CE1", "C", false, true,0),
-    AtomSpec(9, "NE2", "NE2", "N", false, true,0),
-    AtomSpec(10, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(11, "H", "H", "H", false, true,0),
-    AtomSpec(12, "H2", "HN2", "H", true, true,0),
-    AtomSpec(13, "HA", "HA", "H", false, true,0),
-    AtomSpec(14, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(15, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(16, "HD1", "HD1", "H", false, true,0),
-    AtomSpec(17, "HD2", "HD2", "H", false, true,0),
-    AtomSpec(18, "HE1", "HE1", "H", false, true,0),
-    AtomSpec(19, "HE2", "HE2", "H", false, true,0),
-    AtomSpec(20, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "ND1", "ND1", "N", false, true),
+    AtomSpec(7, "CD2", "CD2", "C", false, true),
+    AtomSpec(8, "CE1", "CE1", "C", false, true),
+    AtomSpec(9, "NE2", "NE2", "N", false, true),
+    AtomSpec(10, "OXT", "OXT", "O", true, true),
+    AtomSpec(11, "H", "H", "H", false, true),
+    AtomSpec(12, "H2", "HN2", "H", true, true),
+    AtomSpec(13, "HA", "HA", "H", false, true),
+    AtomSpec(14, "HB2", "1HB", "H", false, true),
+    AtomSpec(15, "HB3", "2HB", "H", false, true),
+    AtomSpec(16, "HD1", "HD1", "H", false, true),
+    AtomSpec(17, "HD2", "HD2", "H", false, true),
+    AtomSpec(18, "HE1", "HE1", "H", false, true),
+    AtomSpec(19, "HE2", "HE2", "H", false, true),
+    AtomSpec(20, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<21; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -330,28 +330,28 @@ CompoundPtr MakeILECompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C6 H13 N O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG1", "CG1", "C", false, true,0),
-    AtomSpec(6, "CG2", "CG2", "C", false, true,0),
-    AtomSpec(7, "CD1", "CD1", "C", false, true,0),
-    AtomSpec(8, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(9, "H", "H", "H", false, true,0),
-    AtomSpec(10, "H2", "HN2", "H", true, true,0),
-    AtomSpec(11, "HA", "HA", "H", false, true,0),
-    AtomSpec(12, "HB", "HB", "H", false, true,0),
-    AtomSpec(13, "HG12", "1HG1", "H", false, true,0),
-    AtomSpec(14, "HG13", "2HG1", "H", false, true,0),
-    AtomSpec(15, "HG21", "1HG2", "H", false, true,0),
-    AtomSpec(16, "HG22", "2HG2", "H", false, true,0),
-    AtomSpec(17, "HG23", "3HG2", "H", false, true,0),
-    AtomSpec(18, "HD11", "1HD1", "H", false, true,0),
-    AtomSpec(19, "HD12", "2HD1", "H", false, true,0),
-    AtomSpec(20, "HD13", "3HD1", "H", false, true,0),
-    AtomSpec(21, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG1", "CG1", "C", false, true),
+    AtomSpec(6, "CG2", "CG2", "C", false, true),
+    AtomSpec(7, "CD1", "CD1", "C", false, true),
+    AtomSpec(8, "OXT", "OXT", "O", true, true),
+    AtomSpec(9, "H", "H", "H", false, true),
+    AtomSpec(10, "H2", "HN2", "H", true, true),
+    AtomSpec(11, "HA", "HA", "H", false, true),
+    AtomSpec(12, "HB", "HB", "H", false, true),
+    AtomSpec(13, "HG12", "1HG1", "H", false, true),
+    AtomSpec(14, "HG13", "2HG1", "H", false, true),
+    AtomSpec(15, "HG21", "1HG2", "H", false, true),
+    AtomSpec(16, "HG22", "2HG2", "H", false, true),
+    AtomSpec(17, "HG23", "3HG2", "H", false, true),
+    AtomSpec(18, "HD11", "1HD1", "H", false, true),
+    AtomSpec(19, "HD12", "2HD1", "H", false, true),
+    AtomSpec(20, "HD13", "3HD1", "H", false, true),
+    AtomSpec(21, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<22; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -387,31 +387,31 @@ CompoundPtr MakeLYSCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C6 H15 N2 O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD", "CD", "C", false, true,0),
-    AtomSpec(7, "CE", "CE", "C", false, true,0),
-    AtomSpec(8, "NZ", "NZ", "N", false, true,0),
-    AtomSpec(9, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(10, "H", "H", "H", false, true,0),
-    AtomSpec(11, "H2", "HN2", "H", true, true,0),
-    AtomSpec(12, "HA", "HA", "H", false, true,0),
-    AtomSpec(13, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(14, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(15, "HG2", "1HG", "H", false, true,0),
-    AtomSpec(16, "HG3", "2HG", "H", false, true,0),
-    AtomSpec(17, "HD2", "1HD", "H", false, true,0),
-    AtomSpec(18, "HD3", "2HD", "H", false, true,0),
-    AtomSpec(19, "HE2", "1HE", "H", false, true,0),
-    AtomSpec(20, "HE3", "2HE", "H", false, true,0),
-    AtomSpec(21, "HZ1", "1HZ", "H", false, true,0),
-    AtomSpec(22, "HZ2", "2HZ", "H", false, true,0),
-    AtomSpec(23, "HZ3", "3HZ", "H", false, true,0),
-    AtomSpec(24, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD", "CD", "C", false, true),
+    AtomSpec(7, "CE", "CE", "C", false, true),
+    AtomSpec(8, "NZ", "NZ", "N", false, true),
+    AtomSpec(9, "OXT", "OXT", "O", true, true),
+    AtomSpec(10, "H", "H", "H", false, true),
+    AtomSpec(11, "H2", "HN2", "H", true, true),
+    AtomSpec(12, "HA", "HA", "H", false, true),
+    AtomSpec(13, "HB2", "1HB", "H", false, true),
+    AtomSpec(14, "HB3", "2HB", "H", false, true),
+    AtomSpec(15, "HG2", "1HG", "H", false, true),
+    AtomSpec(16, "HG3", "2HG", "H", false, true),
+    AtomSpec(17, "HD2", "1HD", "H", false, true),
+    AtomSpec(18, "HD3", "2HD", "H", false, true),
+    AtomSpec(19, "HE2", "1HE", "H", false, true),
+    AtomSpec(20, "HE3", "2HE", "H", false, true),
+    AtomSpec(21, "HZ1", "1HZ", "H", false, true),
+    AtomSpec(22, "HZ2", "2HZ", "H", false, true),
+    AtomSpec(23, "HZ3", "3HZ", "H", false, true),
+    AtomSpec(24, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<25; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -450,28 +450,28 @@ CompoundPtr MakeLEUCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C6 H13 N O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD1", "CD1", "C", false, true,0),
-    AtomSpec(7, "CD2", "CD2", "C", false, true,0),
-    AtomSpec(8, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(9, "H", "H", "H", false, true,0),
-    AtomSpec(10, "H2", "HN2", "H", true, true,0),
-    AtomSpec(11, "HA", "HA", "H", false, true,0),
-    AtomSpec(12, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(13, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(14, "HG", "HG", "H", false, true,0),
-    AtomSpec(15, "HD11", "1HD1", "H", false, true,0),
-    AtomSpec(16, "HD12", "2HD1", "H", false, true,0),
-    AtomSpec(17, "HD13", "3HD1", "H", false, true,0),
-    AtomSpec(18, "HD21", "1HD2", "H", false, true,0),
-    AtomSpec(19, "HD22", "2HD2", "H", false, true,0),
-    AtomSpec(20, "HD23", "3HD2", "H", false, true,0),
-    AtomSpec(21, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD1", "CD1", "C", false, true),
+    AtomSpec(7, "CD2", "CD2", "C", false, true),
+    AtomSpec(8, "OXT", "OXT", "O", true, true),
+    AtomSpec(9, "H", "H", "H", false, true),
+    AtomSpec(10, "H2", "HN2", "H", true, true),
+    AtomSpec(11, "HA", "HA", "H", false, true),
+    AtomSpec(12, "HB2", "1HB", "H", false, true),
+    AtomSpec(13, "HB3", "2HB", "H", false, true),
+    AtomSpec(14, "HG", "HG", "H", false, true),
+    AtomSpec(15, "HD11", "1HD1", "H", false, true),
+    AtomSpec(16, "HD12", "2HD1", "H", false, true),
+    AtomSpec(17, "HD13", "3HD1", "H", false, true),
+    AtomSpec(18, "HD21", "1HD2", "H", false, true),
+    AtomSpec(19, "HD22", "2HD2", "H", false, true),
+    AtomSpec(20, "HD23", "3HD2", "H", false, true),
+    AtomSpec(21, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<22; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -507,26 +507,26 @@ CompoundPtr MakeMETCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C5 H11 N O2 S");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "SD", "SD", "S", false, true,0),
-    AtomSpec(7, "CE", "CE", "C", false, true,0),
-    AtomSpec(8, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(9, "H", "H", "H", false, true,0),
-    AtomSpec(10, "H2", "HN2", "H", true, true,0),
-    AtomSpec(11, "HA", "HA", "H", false, true,0),
-    AtomSpec(12, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(13, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(14, "HG2", "1HG", "H", false, true,0),
-    AtomSpec(15, "HG3", "2HG", "H", false, true,0),
-    AtomSpec(16, "HE1", "1HE", "H", false, true,0),
-    AtomSpec(17, "HE2", "2HE", "H", false, true,0),
-    AtomSpec(18, "HE3", "3HE", "H", false, true,0),
-    AtomSpec(19, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "SD", "SD", "S", false, true),
+    AtomSpec(7, "CE", "CE", "C", false, true),
+    AtomSpec(8, "OXT", "OXT", "O", true, true),
+    AtomSpec(9, "H", "H", "H", false, true),
+    AtomSpec(10, "H2", "HN2", "H", true, true),
+    AtomSpec(11, "HA", "HA", "H", false, true),
+    AtomSpec(12, "HB2", "1HB", "H", false, true),
+    AtomSpec(13, "HB3", "2HB", "H", false, true),
+    AtomSpec(14, "HG2", "1HG", "H", false, true),
+    AtomSpec(15, "HG3", "2HG", "H", false, true),
+    AtomSpec(16, "HE1", "1HE", "H", false, true),
+    AtomSpec(17, "HE2", "2HE", "H", false, true),
+    AtomSpec(18, "HE3", "3HE", "H", false, true),
+    AtomSpec(19, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<20; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -560,23 +560,23 @@ CompoundPtr MakeASNCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C4 H8 N2 O3");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "OD1", "OD1", "O", false, true,0),
-    AtomSpec(7, "ND2", "ND2", "N", true, true,0),
-    AtomSpec(8, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(9, "H", "H", "H", false, true,0),
-    AtomSpec(10, "H2", "HN2", "H", true, true,0),
-    AtomSpec(11, "HA", "HA", "H", false, true,0),
-    AtomSpec(12, "HB2", "HB1", "H", false, true,0),
-    AtomSpec(13, "HB3", "HB2", "H", false, true,0),
-    AtomSpec(14, "HD21", "HD21", "H", true, true,0),
-    AtomSpec(15, "HD22", "HD22", "H", true, true,0),
-    AtomSpec(16, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "OD1", "OD1", "O", false, true),
+    AtomSpec(7, "ND2", "ND2", "N", true, true),
+    AtomSpec(8, "OXT", "OXT", "O", true, true),
+    AtomSpec(9, "H", "H", "H", false, true),
+    AtomSpec(10, "H2", "HN2", "H", true, true),
+    AtomSpec(11, "HA", "HA", "H", false, true),
+    AtomSpec(12, "HB2", "HB1", "H", false, true),
+    AtomSpec(13, "HB3", "HB2", "H", false, true),
+    AtomSpec(14, "HD21", "HD21", "H", true, true),
+    AtomSpec(15, "HD22", "HD22", "H", true, true),
+    AtomSpec(16, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<17; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -607,23 +607,23 @@ CompoundPtr MakePROCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C5 H9 N O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD", "CD", "C", false, true,0),
-    AtomSpec(7, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(8, "H", "HT1", "H", true, true,0),
-    AtomSpec(9, "HA", "HA", "H", false, true,0),
-    AtomSpec(10, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(11, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(12, "HG2", "1HG", "H", false, true,0),
-    AtomSpec(13, "HG3", "2HG", "H", false, true,0),
-    AtomSpec(14, "HD2", "1HD", "H", false, true,0),
-    AtomSpec(15, "HD3", "2HD", "H", false, true,0),
-    AtomSpec(16, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD", "CD", "C", false, true),
+    AtomSpec(7, "OXT", "OXT", "O", true, true),
+    AtomSpec(8, "H", "HT1", "H", true, true),
+    AtomSpec(9, "HA", "HA", "H", false, true),
+    AtomSpec(10, "HB2", "1HB", "H", false, true),
+    AtomSpec(11, "HB3", "2HB", "H", false, true),
+    AtomSpec(12, "HG2", "1HG", "H", false, true),
+    AtomSpec(13, "HG3", "2HG", "H", false, true),
+    AtomSpec(14, "HD2", "1HD", "H", false, true),
+    AtomSpec(15, "HD3", "2HD", "H", false, true),
+    AtomSpec(16, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<17; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -655,26 +655,26 @@ CompoundPtr MakeGLNCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C5 H10 N2 O3");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD", "CD", "C", false, true,0),
-    AtomSpec(7, "OE1", "OE1", "O", false, true,0),
-    AtomSpec(8, "NE2", "NE2", "N", false, true,0),
-    AtomSpec(9, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(10, "H", "H", "H", false, true,0),
-    AtomSpec(11, "H2", "HN2", "H", true, true,0),
-    AtomSpec(12, "HA", "HA", "H", false, true,0),
-    AtomSpec(13, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(14, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(15, "HG2", "1HG", "H", false, true,0),
-    AtomSpec(16, "HG3", "2HG", "H", false, true,0),
-    AtomSpec(17, "HE21", "1HE2", "H", false, true,0),
-    AtomSpec(18, "HE22", "2HE2", "H", false, true,0),
-    AtomSpec(19, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD", "CD", "C", false, true),
+    AtomSpec(7, "OE1", "OE1", "O", false, true),
+    AtomSpec(8, "NE2", "NE2", "N", false, true),
+    AtomSpec(9, "OXT", "OXT", "O", true, true),
+    AtomSpec(10, "H", "H", "H", false, true),
+    AtomSpec(11, "H2", "HN2", "H", true, true),
+    AtomSpec(12, "HA", "HA", "H", false, true),
+    AtomSpec(13, "HB2", "1HB", "H", false, true),
+    AtomSpec(14, "HB3", "2HB", "H", false, true),
+    AtomSpec(15, "HG2", "1HG", "H", false, true),
+    AtomSpec(16, "HG3", "2HG", "H", false, true),
+    AtomSpec(17, "HE21", "1HE2", "H", false, true),
+    AtomSpec(18, "HE22", "2HE2", "H", false, true),
+    AtomSpec(19, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<20; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -708,33 +708,33 @@ CompoundPtr MakeARGCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C6 H15 N4 O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD", "CD", "C", false, true,0),
-    AtomSpec(7, "NE", "NE", "N", false, true,0),
-    AtomSpec(8, "CZ", "CZ", "C", false, true,0),
-    AtomSpec(9, "NH1", "NH1", "N", false, true,0),
-    AtomSpec(10, "NH2", "NH2", "N", false, true,0),
-    AtomSpec(11, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(12, "H", "H", "H", false, true,0),
-    AtomSpec(13, "H2", "HN2", "H", true, true,0),
-    AtomSpec(14, "HA", "HA", "H", false, true,0),
-    AtomSpec(15, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(16, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(17, "HG2", "1HG", "H", false, true,0),
-    AtomSpec(18, "HG3", "2HG", "H", false, true,0),
-    AtomSpec(19, "HD2", "1HD", "H", false, true,0),
-    AtomSpec(20, "HD3", "2HD", "H", false, true,0),
-    AtomSpec(21, "HE", "HE", "H", false, true,0),
-    AtomSpec(22, "HH11", "1HH1", "H", false, true,0),
-    AtomSpec(23, "HH12", "2HH1", "H", false, true,0),
-    AtomSpec(24, "HH21", "1HH2", "H", false, true,0),
-    AtomSpec(25, "HH22", "2HH2", "H", false, true,0),
-    AtomSpec(26, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD", "CD", "C", false, true),
+    AtomSpec(7, "NE", "NE", "N", false, true),
+    AtomSpec(8, "CZ", "CZ", "C", false, true),
+    AtomSpec(9, "NH1", "NH1", "N", false, true),
+    AtomSpec(10, "NH2", "NH2", "N", false, true),
+    AtomSpec(11, "OXT", "OXT", "O", true, true),
+    AtomSpec(12, "H", "H", "H", false, true),
+    AtomSpec(13, "H2", "HN2", "H", true, true),
+    AtomSpec(14, "HA", "HA", "H", false, true),
+    AtomSpec(15, "HB2", "1HB", "H", false, true),
+    AtomSpec(16, "HB3", "2HB", "H", false, true),
+    AtomSpec(17, "HG2", "1HG", "H", false, true),
+    AtomSpec(18, "HG3", "2HG", "H", false, true),
+    AtomSpec(19, "HD2", "1HD", "H", false, true),
+    AtomSpec(20, "HD3", "2HD", "H", false, true),
+    AtomSpec(21, "HE", "HE", "H", false, true),
+    AtomSpec(22, "HH11", "1HH1", "H", false, true),
+    AtomSpec(23, "HH12", "2HH1", "H", false, true),
+    AtomSpec(24, "HH21", "1HH2", "H", false, true),
+    AtomSpec(25, "HH22", "2HH2", "H", false, true),
+    AtomSpec(26, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<27; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -775,20 +775,20 @@ CompoundPtr MakeSERCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C3 H7 N O3");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "OG", "OG", "O", false, true,0),
-    AtomSpec(6, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(7, "H", "H", "H", false, true,0),
-    AtomSpec(8, "H2", "HN2", "H", true, true,0),
-    AtomSpec(9, "HA", "HA", "H", false, true,0),
-    AtomSpec(10, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(11, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(12, "HG", "HG", "H", false, true,0),
-    AtomSpec(13, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "OG", "OG", "O", false, true),
+    AtomSpec(6, "OXT", "OXT", "O", true, true),
+    AtomSpec(7, "H", "H", "H", false, true),
+    AtomSpec(8, "H2", "HN2", "H", true, true),
+    AtomSpec(9, "HA", "HA", "H", false, true),
+    AtomSpec(10, "HB2", "1HB", "H", false, true),
+    AtomSpec(11, "HB3", "2HB", "H", false, true),
+    AtomSpec(12, "HG", "HG", "H", false, true),
+    AtomSpec(13, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<14; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -816,23 +816,23 @@ CompoundPtr MakeTHRCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C4 H9 N O3");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "OG1", "OG1", "O", false, true,0),
-    AtomSpec(6, "CG2", "CG2", "C", false, true,0),
-    AtomSpec(7, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(8, "H", "H", "H", false, true,0),
-    AtomSpec(9, "H2", "HN2", "H", true, true,0),
-    AtomSpec(10, "HA", "HA", "H", false, true,0),
-    AtomSpec(11, "HB", "HB", "H", false, true,0),
-    AtomSpec(12, "HG1", "HG1", "H", false, true,0),
-    AtomSpec(13, "HG21", "1HG2", "H", false, true,0),
-    AtomSpec(14, "HG22", "2HG2", "H", false, true,0),
-    AtomSpec(15, "HG23", "3HG2", "H", false, true,0),
-    AtomSpec(16, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "OG1", "OG1", "O", false, true),
+    AtomSpec(6, "CG2", "CG2", "C", false, true),
+    AtomSpec(7, "OXT", "OXT", "O", true, true),
+    AtomSpec(8, "H", "H", "H", false, true),
+    AtomSpec(9, "H2", "HN2", "H", true, true),
+    AtomSpec(10, "HA", "HA", "H", false, true),
+    AtomSpec(11, "HB", "HB", "H", false, true),
+    AtomSpec(12, "HG1", "HG1", "H", false, true),
+    AtomSpec(13, "HG21", "1HG2", "H", false, true),
+    AtomSpec(14, "HG22", "2HG2", "H", false, true),
+    AtomSpec(15, "HG23", "3HG2", "H", false, true),
+    AtomSpec(16, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<17; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -863,25 +863,25 @@ CompoundPtr MakeVALCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C5 H11 N O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG1", "CG1", "C", false, true,0),
-    AtomSpec(6, "CG2", "CG2", "C", false, true,0),
-    AtomSpec(7, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(8, "H", "H", "H", false, true,0),
-    AtomSpec(9, "H2", "HN2", "H", true, true,0),
-    AtomSpec(10, "HA", "HA", "H", false, true,0),
-    AtomSpec(11, "HB", "HB", "H", false, true,0),
-    AtomSpec(12, "HG11", "1HG1", "H", false, true,0),
-    AtomSpec(13, "HG12", "2HG1", "H", false, true,0),
-    AtomSpec(14, "HG13", "3HG1", "H", false, true,0),
-    AtomSpec(15, "HG21", "1HG2", "H", false, true,0),
-    AtomSpec(16, "HG22", "2HG2", "H", false, true,0),
-    AtomSpec(17, "HG23", "3HG2", "H", false, true,0),
-    AtomSpec(18, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG1", "CG1", "C", false, true),
+    AtomSpec(6, "CG2", "CG2", "C", false, true),
+    AtomSpec(7, "OXT", "OXT", "O", true, true),
+    AtomSpec(8, "H", "H", "H", false, true),
+    AtomSpec(9, "H2", "HN2", "H", true, true),
+    AtomSpec(10, "HA", "HA", "H", false, true),
+    AtomSpec(11, "HB", "HB", "H", false, true),
+    AtomSpec(12, "HG11", "1HG1", "H", false, true),
+    AtomSpec(13, "HG12", "2HG1", "H", false, true),
+    AtomSpec(14, "HG13", "3HG1", "H", false, true),
+    AtomSpec(15, "HG21", "1HG2", "H", false, true),
+    AtomSpec(16, "HG22", "2HG2", "H", false, true),
+    AtomSpec(17, "HG23", "3HG2", "H", false, true),
+    AtomSpec(18, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<19; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -914,33 +914,33 @@ CompoundPtr MakeTRPCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C11 H12 N2 O2");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD1", "CD1", "C", false, true,0),
-    AtomSpec(7, "CD2", "CD2", "C", false, true,0),
-    AtomSpec(8, "NE1", "NE1", "N", false, true,0),
-    AtomSpec(9, "CE2", "CE2", "C", false, true,0),
-    AtomSpec(10, "CE3", "CE3", "C", false, true,0),
-    AtomSpec(11, "CZ2", "CZ2", "C", false, true,0),
-    AtomSpec(12, "CZ3", "CZ3", "C", false, true,0),
-    AtomSpec(13, "CH2", "CH2", "C", false, true,0),
-    AtomSpec(14, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(15, "H", "H", "H", false, true,0),
-    AtomSpec(16, "H2", "HN2", "H", true, true,0),
-    AtomSpec(17, "HA", "HA", "H", false, true,0),
-    AtomSpec(18, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(19, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(20, "HD1", "HD1", "H", false, true,0),
-    AtomSpec(21, "HE1", "HE1", "H", false, true,0),
-    AtomSpec(22, "HE3", "HE3", "H", false, true,0),
-    AtomSpec(23, "HZ2", "HZ2", "H", false, true,0),
-    AtomSpec(24, "HZ3", "HZ3", "H", false, true,0),
-    AtomSpec(25, "HH2", "HH2", "H", false, true,0),
-    AtomSpec(26, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD1", "CD1", "C", false, true),
+    AtomSpec(7, "CD2", "CD2", "C", false, true),
+    AtomSpec(8, "NE1", "NE1", "N", false, true),
+    AtomSpec(9, "CE2", "CE2", "C", false, true),
+    AtomSpec(10, "CE3", "CE3", "C", false, true),
+    AtomSpec(11, "CZ2", "CZ2", "C", false, true),
+    AtomSpec(12, "CZ3", "CZ3", "C", false, true),
+    AtomSpec(13, "CH2", "CH2", "C", false, true),
+    AtomSpec(14, "OXT", "OXT", "O", true, true),
+    AtomSpec(15, "H", "H", "H", false, true),
+    AtomSpec(16, "H2", "HN2", "H", true, true),
+    AtomSpec(17, "HA", "HA", "H", false, true),
+    AtomSpec(18, "HB2", "1HB", "H", false, true),
+    AtomSpec(19, "HB3", "2HB", "H", false, true),
+    AtomSpec(20, "HD1", "HD1", "H", false, true),
+    AtomSpec(21, "HE1", "HE1", "H", false, true),
+    AtomSpec(22, "HE3", "HE3", "H", false, true),
+    AtomSpec(23, "HZ2", "HZ2", "H", false, true),
+    AtomSpec(24, "HZ3", "HZ3", "H", false, true),
+    AtomSpec(25, "HH2", "HH2", "H", false, true),
+    AtomSpec(26, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<27; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -983,30 +983,30 @@ CompoundPtr MakeTYRCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C9 H11 N O3");
   AtomSpec atoms[] = {
-    AtomSpec(0, "N", "N", "N", false, true,0),
-    AtomSpec(1, "CA", "CA", "C", false, true,0),
-    AtomSpec(2, "C", "C", "C", false, true,0),
-    AtomSpec(3, "O", "O", "O", false, true,0),
-    AtomSpec(4, "CB", "CB", "C", false, true,0),
-    AtomSpec(5, "CG", "CG", "C", false, true,0),
-    AtomSpec(6, "CD1", "CD1", "C", false, true,0),
-    AtomSpec(7, "CD2", "CD2", "C", false, true,0),
-    AtomSpec(8, "CE1", "CE1", "C", false, true,0),
-    AtomSpec(9, "CE2", "CE2", "C", false, true,0),
-    AtomSpec(10, "CZ", "CZ", "C", false, true,0),
-    AtomSpec(11, "OH", "OH", "O", false, true,0),
-    AtomSpec(12, "OXT", "OXT", "O", true, true,0),
-    AtomSpec(13, "H", "H", "H", false, true,0),
-    AtomSpec(14, "H2", "HN2", "H", true, true,0),
-    AtomSpec(15, "HA", "HA", "H", false, true,0),
-    AtomSpec(16, "HB2", "1HB", "H", false, true,0),
-    AtomSpec(17, "HB3", "2HB", "H", false, true,0),
-    AtomSpec(18, "HD1", "HD1", "H", false, true,0),
-    AtomSpec(19, "HD2", "HD2", "H", false, true,0),
-    AtomSpec(20, "HE1", "HE1", "H", false, true,0),
-    AtomSpec(21, "HE2", "HE2", "H", false, true,0),
-    AtomSpec(22, "HH", "HH", "H", false, true,0),
-    AtomSpec(23, "HXT", "HXT", "H", true, true,0)
+    AtomSpec(0, "N", "N", "N", false, true),
+    AtomSpec(1, "CA", "CA", "C", false, true),
+    AtomSpec(2, "C", "C", "C", false, true),
+    AtomSpec(3, "O", "O", "O", false, true),
+    AtomSpec(4, "CB", "CB", "C", false, true),
+    AtomSpec(5, "CG", "CG", "C", false, true),
+    AtomSpec(6, "CD1", "CD1", "C", false, true),
+    AtomSpec(7, "CD2", "CD2", "C", false, true),
+    AtomSpec(8, "CE1", "CE1", "C", false, true),
+    AtomSpec(9, "CE2", "CE2", "C", false, true),
+    AtomSpec(10, "CZ", "CZ", "C", false, true),
+    AtomSpec(11, "OH", "OH", "O", false, true),
+    AtomSpec(12, "OXT", "OXT", "O", true, true),
+    AtomSpec(13, "H", "H", "H", false, true),
+    AtomSpec(14, "H2", "HN2", "H", true, true),
+    AtomSpec(15, "HA", "HA", "H", false, true),
+    AtomSpec(16, "HB2", "1HB", "H", false, true),
+    AtomSpec(17, "HB3", "2HB", "H", false, true),
+    AtomSpec(18, "HD1", "HD1", "H", false, true),
+    AtomSpec(19, "HD2", "HD2", "H", false, true),
+    AtomSpec(20, "HE1", "HE1", "H", false, true),
+    AtomSpec(21, "HE2", "HE2", "H", false, true),
+    AtomSpec(22, "HH", "HH", "H", false, true),
+    AtomSpec(23, "HXT", "HXT", "H", true, true)
   };
   for (int i=0; i<24; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1045,44 +1045,44 @@ CompoundPtr MakeGCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C10 H14 N5 O8 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "O2'", "O2*", "O", false, true,0),
-    AtomSpec(12, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(13, "N9", "N9", "N", false, true,0),
-    AtomSpec(14, "C8", "C8", "C", false, true,0),
-    AtomSpec(15, "N7", "N7", "N", false, true,0),
-    AtomSpec(16, "C5", "C5", "C", false, true,0),
-    AtomSpec(17, "C6", "C6", "C", false, true,0),
-    AtomSpec(18, "O6", "O6", "O", false, true,0),
-    AtomSpec(19, "N1", "N1", "N", false, true,0),
-    AtomSpec(20, "C2", "C2", "C", false, true,0),
-    AtomSpec(21, "N2", "N2", "N", false, true,0),
-    AtomSpec(22, "N3", "N3", "N", false, true,0),
-    AtomSpec(23, "C4", "C4", "C", false, true,0),
-    AtomSpec(24, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(25, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(26, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(27, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(28, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(29, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(30, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(31, "H2'", "H2*", "H", false, true,0),
-    AtomSpec(32, "HO2'", "2HO*", "H", false, true,0),
-    AtomSpec(33, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(34, "H8", "H8", "H", false, true,0),
-    AtomSpec(35, "H1", "H1", "H", false, true,0),
-    AtomSpec(36, "H21", "1H2", "H", false, true,0),
-    AtomSpec(37, "H22", "2H2", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "O2'", "O2*", "O", false, true),
+    AtomSpec(12, "C1'", "C1*", "C", false, true),
+    AtomSpec(13, "N9", "N9", "N", false, true),
+    AtomSpec(14, "C8", "C8", "C", false, true),
+    AtomSpec(15, "N7", "N7", "N", false, true),
+    AtomSpec(16, "C5", "C5", "C", false, true),
+    AtomSpec(17, "C6", "C6", "C", false, true),
+    AtomSpec(18, "O6", "O6", "O", false, true),
+    AtomSpec(19, "N1", "N1", "N", false, true),
+    AtomSpec(20, "C2", "C2", "C", false, true),
+    AtomSpec(21, "N2", "N2", "N", false, true),
+    AtomSpec(22, "N3", "N3", "N", false, true),
+    AtomSpec(23, "C4", "C4", "C", false, true),
+    AtomSpec(24, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(25, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(26, "H5'", "1H5*", "H", false, true),
+    AtomSpec(27, "H5''", "2H5*", "H", false, true),
+    AtomSpec(28, "H4'", "H4*", "H", false, true),
+    AtomSpec(29, "H3'", "H3*", "H", false, true),
+    AtomSpec(30, "HO3'", "H3T", "H", true, true),
+    AtomSpec(31, "H2'", "H2*", "H", false, true),
+    AtomSpec(32, "HO2'", "2HO*", "H", false, true),
+    AtomSpec(33, "H1'", "H1*", "H", false, true),
+    AtomSpec(34, "H8", "H8", "H", false, true),
+    AtomSpec(35, "H1", "H1", "H", false, true),
+    AtomSpec(36, "H21", "1H2", "H", false, true),
+    AtomSpec(37, "H22", "2H2", "H", false, true)
   };
   for (int i=0; i<38; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1137,42 +1137,42 @@ CompoundPtr MakeTCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C10 H15 N2 O8 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(12, "N1", "N1", "N", false, true,0),
-    AtomSpec(13, "C2", "C2", "C", false, true,0),
-    AtomSpec(14, "O2", "O2", "O", false, true,0),
-    AtomSpec(15, "N3", "N3", "N", false, true,0),
-    AtomSpec(16, "C4", "C4", "C", false, true,0),
-    AtomSpec(17, "O4", "O4", "O", false, true,0),
-    AtomSpec(18, "C5", "C5", "C", false, true,0),
-    AtomSpec(19, "C7", "C5M", "C", false, true,0),
-    AtomSpec(20, "C6", "C6", "C", false, true,0),
-    AtomSpec(21, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(22, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(23, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(24, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(25, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(26, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(27, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(28, "H2'", "1H2*", "H", false, true,0),
-    AtomSpec(29, "H2''", "2H2*", "H", false, true,0),
-    AtomSpec(30, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(31, "H3", "H3", "H", false, true,0),
-    AtomSpec(32, "H71", "1H5M", "H", false, true,0),
-    AtomSpec(33, "H72", "2H5M", "H", false, true,0),
-    AtomSpec(34, "H73", "3H5M", "H", false, true,0),
-    AtomSpec(35, "H6", "H6", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "C1'", "C1*", "C", false, true),
+    AtomSpec(12, "N1", "N1", "N", false, true),
+    AtomSpec(13, "C2", "C2", "C", false, true),
+    AtomSpec(14, "O2", "O2", "O", false, true),
+    AtomSpec(15, "N3", "N3", "N", false, true),
+    AtomSpec(16, "C4", "C4", "C", false, true),
+    AtomSpec(17, "O4", "O4", "O", false, true),
+    AtomSpec(18, "C5", "C5", "C", false, true),
+    AtomSpec(19, "C7", "C5M", "C", false, true),
+    AtomSpec(20, "C6", "C6", "C", false, true),
+    AtomSpec(21, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(22, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(23, "H5'", "1H5*", "H", false, true),
+    AtomSpec(24, "H5''", "2H5*", "H", false, true),
+    AtomSpec(25, "H4'", "H4*", "H", false, true),
+    AtomSpec(26, "H3'", "H3*", "H", false, true),
+    AtomSpec(27, "HO3'", "H3T", "H", true, true),
+    AtomSpec(28, "H2'", "1H2*", "H", false, true),
+    AtomSpec(29, "H2''", "2H2*", "H", false, true),
+    AtomSpec(30, "H1'", "H1*", "H", false, true),
+    AtomSpec(31, "H3", "H3", "H", false, true),
+    AtomSpec(32, "H71", "1H5M", "H", false, true),
+    AtomSpec(33, "H72", "2H5M", "H", false, true),
+    AtomSpec(34, "H73", "3H5M", "H", false, true),
+    AtomSpec(35, "H6", "H6", "H", false, true)
   };
   for (int i=0; i<36; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1224,43 +1224,43 @@ CompoundPtr MakeACompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C10 H14 N5 O7 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "O2'", "O2*", "O", false, true,0),
-    AtomSpec(12, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(13, "N9", "N9", "N", false, true,0),
-    AtomSpec(14, "C8", "C8", "C", false, true,0),
-    AtomSpec(15, "N7", "N7", "N", false, true,0),
-    AtomSpec(16, "C5", "C5", "C", false, true,0),
-    AtomSpec(17, "C6", "C6", "C", false, true,0),
-    AtomSpec(18, "N6", "N6", "N", false, true,0),
-    AtomSpec(19, "N1", "N1", "N", false, true,0),
-    AtomSpec(20, "C2", "C2", "C", false, true,0),
-    AtomSpec(21, "N3", "N3", "N", false, true,0),
-    AtomSpec(22, "C4", "C4", "C", false, true,0),
-    AtomSpec(23, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(24, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(25, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(26, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(27, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(28, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(29, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(30, "H2'", "H2*", "H", false, true,0),
-    AtomSpec(31, "HO2'", "2HO*", "H", false, true,0),
-    AtomSpec(32, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(33, "H8", "H8", "H", false, true,0),
-    AtomSpec(34, "H61", "1H6", "H", false, true,0),
-    AtomSpec(35, "H62", "2H6", "H", false, true,0),
-    AtomSpec(36, "H2", "H2", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "O2'", "O2*", "O", false, true),
+    AtomSpec(12, "C1'", "C1*", "C", false, true),
+    AtomSpec(13, "N9", "N9", "N", false, true),
+    AtomSpec(14, "C8", "C8", "C", false, true),
+    AtomSpec(15, "N7", "N7", "N", false, true),
+    AtomSpec(16, "C5", "C5", "C", false, true),
+    AtomSpec(17, "C6", "C6", "C", false, true),
+    AtomSpec(18, "N6", "N6", "N", false, true),
+    AtomSpec(19, "N1", "N1", "N", false, true),
+    AtomSpec(20, "C2", "C2", "C", false, true),
+    AtomSpec(21, "N3", "N3", "N", false, true),
+    AtomSpec(22, "C4", "C4", "C", false, true),
+    AtomSpec(23, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(24, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(25, "H5'", "1H5*", "H", false, true),
+    AtomSpec(26, "H5''", "2H5*", "H", false, true),
+    AtomSpec(27, "H4'", "H4*", "H", false, true),
+    AtomSpec(28, "H3'", "H3*", "H", false, true),
+    AtomSpec(29, "HO3'", "H3T", "H", true, true),
+    AtomSpec(30, "H2'", "H2*", "H", false, true),
+    AtomSpec(31, "HO2'", "2HO*", "H", false, true),
+    AtomSpec(32, "H1'", "H1*", "H", false, true),
+    AtomSpec(33, "H8", "H8", "H", false, true),
+    AtomSpec(34, "H61", "1H6", "H", false, true),
+    AtomSpec(35, "H62", "2H6", "H", false, true),
+    AtomSpec(36, "H2", "H2", "H", false, true)
   };
   for (int i=0; i<37; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1314,41 +1314,41 @@ CompoundPtr MakeCCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C9 H14 N3 O8 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "O2'", "O2*", "O", false, true,0),
-    AtomSpec(12, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(13, "N1", "N1", "N", false, true,0),
-    AtomSpec(14, "C2", "C2", "C", false, true,0),
-    AtomSpec(15, "O2", "O2", "O", false, true,0),
-    AtomSpec(16, "N3", "N3", "N", false, true,0),
-    AtomSpec(17, "C4", "C4", "C", false, true,0),
-    AtomSpec(18, "N4", "N4", "N", false, true,0),
-    AtomSpec(19, "C5", "C5", "C", false, true,0),
-    AtomSpec(20, "C6", "C6", "C", false, true,0),
-    AtomSpec(21, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(22, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(23, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(24, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(25, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(26, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(27, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(28, "H2'", "H2*", "H", false, true,0),
-    AtomSpec(29, "HO2'", "2HO*", "H", false, true,0),
-    AtomSpec(30, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(31, "H41", "1H4", "H", false, true,0),
-    AtomSpec(32, "H42", "2H4", "H", false, true,0),
-    AtomSpec(33, "H5", "H5", "H", false, true,0),
-    AtomSpec(34, "H6", "H6", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "O2'", "O2*", "O", false, true),
+    AtomSpec(12, "C1'", "C1*", "C", false, true),
+    AtomSpec(13, "N1", "N1", "N", false, true),
+    AtomSpec(14, "C2", "C2", "C", false, true),
+    AtomSpec(15, "O2", "O2", "O", false, true),
+    AtomSpec(16, "N3", "N3", "N", false, true),
+    AtomSpec(17, "C4", "C4", "C", false, true),
+    AtomSpec(18, "N4", "N4", "N", false, true),
+    AtomSpec(19, "C5", "C5", "C", false, true),
+    AtomSpec(20, "C6", "C6", "C", false, true),
+    AtomSpec(21, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(22, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(23, "H5'", "1H5*", "H", false, true),
+    AtomSpec(24, "H5''", "2H5*", "H", false, true),
+    AtomSpec(25, "H4'", "H4*", "H", false, true),
+    AtomSpec(26, "H3'", "H3*", "H", false, true),
+    AtomSpec(27, "HO3'", "H3T", "H", true, true),
+    AtomSpec(28, "H2'", "H2*", "H", false, true),
+    AtomSpec(29, "HO2'", "2HO*", "H", false, true),
+    AtomSpec(30, "H1'", "H1*", "H", false, true),
+    AtomSpec(31, "H41", "1H4", "H", false, true),
+    AtomSpec(32, "H42", "2H4", "H", false, true),
+    AtomSpec(33, "H5", "H5", "H", false, true),
+    AtomSpec(34, "H6", "H6", "H", false, true)
   };
   for (int i=0; i<35; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1399,40 +1399,40 @@ CompoundPtr MakeUCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C9 H13 N2 O9 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "O2'", "O2*", "O", false, true,0),
-    AtomSpec(12, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(13, "N1", "N1", "N", false, true,0),
-    AtomSpec(14, "C2", "C2", "C", false, true,0),
-    AtomSpec(15, "O2", "O2", "O", false, true,0),
-    AtomSpec(16, "N3", "N3", "N", false, true,0),
-    AtomSpec(17, "C4", "C4", "C", false, true,0),
-    AtomSpec(18, "O4", "O4", "O", false, true,0),
-    AtomSpec(19, "C5", "C5", "C", false, true,0),
-    AtomSpec(20, "C6", "C6", "C", false, true,0),
-    AtomSpec(21, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(22, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(23, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(24, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(25, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(26, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(27, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(28, "H2'", "H2*", "H", false, true,0),
-    AtomSpec(29, "HO2'", "2HO*", "H", false, true,0),
-    AtomSpec(30, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(31, "H3", "H3", "H", false, true,0),
-    AtomSpec(32, "H5", "H5", "H", false, true,0),
-    AtomSpec(33, "H6", "H6", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "O2'", "O2*", "O", false, true),
+    AtomSpec(12, "C1'", "C1*", "C", false, true),
+    AtomSpec(13, "N1", "N1", "N", false, true),
+    AtomSpec(14, "C2", "C2", "C", false, true),
+    AtomSpec(15, "O2", "O2", "O", false, true),
+    AtomSpec(16, "N3", "N3", "N", false, true),
+    AtomSpec(17, "C4", "C4", "C", false, true),
+    AtomSpec(18, "O4", "O4", "O", false, true),
+    AtomSpec(19, "C5", "C5", "C", false, true),
+    AtomSpec(20, "C6", "C6", "C", false, true),
+    AtomSpec(21, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(22, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(23, "H5'", "1H5*", "H", false, true),
+    AtomSpec(24, "H5''", "2H5*", "H", false, true),
+    AtomSpec(25, "H4'", "H4*", "H", false, true),
+    AtomSpec(26, "H3'", "H3*", "H", false, true),
+    AtomSpec(27, "HO3'", "H3T", "H", true, true),
+    AtomSpec(28, "H2'", "H2*", "H", false, true),
+    AtomSpec(29, "HO2'", "2HO*", "H", false, true),
+    AtomSpec(30, "H1'", "H1*", "H", false, true),
+    AtomSpec(31, "H3", "H3", "H", false, true),
+    AtomSpec(32, "H5", "H5", "H", false, true),
+    AtomSpec(33, "H6", "H6", "H", false, true)
   };
   for (int i=0; i<34; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1482,43 +1482,43 @@ CompoundPtr MakeDGCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C10 H14 N5 O7 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(12, "N9", "N9", "N", false, true,0),
-    AtomSpec(13, "C8", "C8", "C", false, true,0),
-    AtomSpec(14, "N7", "N7", "N", false, true,0),
-    AtomSpec(15, "C5", "C5", "C", false, true,0),
-    AtomSpec(16, "C6", "C6", "C", false, true,0),
-    AtomSpec(17, "O6", "O6", "O", false, true,0),
-    AtomSpec(18, "N1", "N1", "N", false, true,0),
-    AtomSpec(19, "C2", "C2", "C", false, true,0),
-    AtomSpec(20, "N2", "N2", "N", false, true,0),
-    AtomSpec(21, "N3", "N3", "N", false, true,0),
-    AtomSpec(22, "C4", "C4", "C", false, true,0),
-    AtomSpec(23, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(24, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(25, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(26, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(27, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(28, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(29, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(30, "H2'", "1H2*", "H", false, true,0),
-    AtomSpec(31, "H2''", "2H2*", "H", false, true,0),
-    AtomSpec(32, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(33, "H8", "H8", "H", false, true,0),
-    AtomSpec(34, "H1", "H1", "H", false, true,0),
-    AtomSpec(35, "H21", "1H2", "H", false, true,0),
-    AtomSpec(36, "H22", "2H2", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "C1'", "C1*", "C", false, true),
+    AtomSpec(12, "N9", "N9", "N", false, true),
+    AtomSpec(13, "C8", "C8", "C", false, true),
+    AtomSpec(14, "N7", "N7", "N", false, true),
+    AtomSpec(15, "C5", "C5", "C", false, true),
+    AtomSpec(16, "C6", "C6", "C", false, true),
+    AtomSpec(17, "O6", "O6", "O", false, true),
+    AtomSpec(18, "N1", "N1", "N", false, true),
+    AtomSpec(19, "C2", "C2", "C", false, true),
+    AtomSpec(20, "N2", "N2", "N", false, true),
+    AtomSpec(21, "N3", "N3", "N", false, true),
+    AtomSpec(22, "C4", "C4", "C", false, true),
+    AtomSpec(23, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(24, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(25, "H5'", "1H5*", "H", false, true),
+    AtomSpec(26, "H5''", "2H5*", "H", false, true),
+    AtomSpec(27, "H4'", "H4*", "H", false, true),
+    AtomSpec(28, "H3'", "H3*", "H", false, true),
+    AtomSpec(29, "HO3'", "H3T", "H", true, true),
+    AtomSpec(30, "H2'", "1H2*", "H", false, true),
+    AtomSpec(31, "H2''", "2H2*", "H", false, true),
+    AtomSpec(32, "H1'", "H1*", "H", false, true),
+    AtomSpec(33, "H8", "H8", "H", false, true),
+    AtomSpec(34, "H1", "H1", "H", false, true),
+    AtomSpec(35, "H21", "1H2", "H", false, true),
+    AtomSpec(36, "H22", "2H2", "H", false, true)
   };
   for (int i=0; i<37; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1572,42 +1572,42 @@ CompoundPtr MakeDTCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C10 H15 N2 O8 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(12, "N1", "N1", "N", false, true,0),
-    AtomSpec(13, "C2", "C2", "C", false, true,0),
-    AtomSpec(14, "O2", "O2", "O", false, true,0),
-    AtomSpec(15, "N3", "N3", "N", false, true,0),
-    AtomSpec(16, "C4", "C4", "C", false, true,0),
-    AtomSpec(17, "O4", "O4", "O", false, true,0),
-    AtomSpec(18, "C5", "C5", "C", false, true,0),
-    AtomSpec(19, "C7", "C5M", "C", false, true,0),
-    AtomSpec(20, "C6", "C6", "C", false, true,0),
-    AtomSpec(21, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(22, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(23, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(24, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(25, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(26, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(27, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(28, "H2'", "1H2*", "H", false, true,0),
-    AtomSpec(29, "H2''", "2H2*", "H", false, true,0),
-    AtomSpec(30, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(31, "H3", "H3", "H", false, true,0),
-    AtomSpec(32, "H71", "1H5M", "H", false, true,0),
-    AtomSpec(33, "H72", "2H5M", "H", false, true,0),
-    AtomSpec(34, "H73", "3H5M", "H", false, true,0),
-    AtomSpec(35, "H6", "H6", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "C1'", "C1*", "C", false, true),
+    AtomSpec(12, "N1", "N1", "N", false, true),
+    AtomSpec(13, "C2", "C2", "C", false, true),
+    AtomSpec(14, "O2", "O2", "O", false, true),
+    AtomSpec(15, "N3", "N3", "N", false, true),
+    AtomSpec(16, "C4", "C4", "C", false, true),
+    AtomSpec(17, "O4", "O4", "O", false, true),
+    AtomSpec(18, "C5", "C5", "C", false, true),
+    AtomSpec(19, "C7", "C5M", "C", false, true),
+    AtomSpec(20, "C6", "C6", "C", false, true),
+    AtomSpec(21, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(22, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(23, "H5'", "1H5*", "H", false, true),
+    AtomSpec(24, "H5''", "2H5*", "H", false, true),
+    AtomSpec(25, "H4'", "H4*", "H", false, true),
+    AtomSpec(26, "H3'", "H3*", "H", false, true),
+    AtomSpec(27, "HO3'", "H3T", "H", true, true),
+    AtomSpec(28, "H2'", "1H2*", "H", false, true),
+    AtomSpec(29, "H2''", "2H2*", "H", false, true),
+    AtomSpec(30, "H1'", "H1*", "H", false, true),
+    AtomSpec(31, "H3", "H3", "H", false, true),
+    AtomSpec(32, "H71", "1H5M", "H", false, true),
+    AtomSpec(33, "H72", "2H5M", "H", false, true),
+    AtomSpec(34, "H73", "3H5M", "H", false, true),
+    AtomSpec(35, "H6", "H6", "H", false, true)
   };
   for (int i=0; i<36; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1659,39 +1659,39 @@ CompoundPtr MakeDUCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C9 H13 N2 O8 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(12, "N1", "N1", "N", false, true,0),
-    AtomSpec(13, "C2", "C2", "C", false, true,0),
-    AtomSpec(14, "O2", "O2", "O", false, true,0),
-    AtomSpec(15, "N3", "N3", "N", false, true,0),
-    AtomSpec(16, "C4", "C4", "C", false, true,0),
-    AtomSpec(17, "O4", "O4", "O", false, true,0),
-    AtomSpec(18, "C5", "C5", "C", false, true,0),
-    AtomSpec(19, "C6", "C6", "C", false, true,0),
-    AtomSpec(20, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(21, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(22, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(23, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(24, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(25, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(26, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(27, "H2'", "1H2*", "H", false, true,0),
-    AtomSpec(28, "H2''", "2H2*", "H", false, true,0),
-    AtomSpec(29, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(30, "H3", "H3", "H", false, true,0),
-    AtomSpec(31, "H5", "H5", "H", false, true,0),
-    AtomSpec(32, "H6", "H6", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "C1'", "C1*", "C", false, true),
+    AtomSpec(12, "N1", "N1", "N", false, true),
+    AtomSpec(13, "C2", "C2", "C", false, true),
+    AtomSpec(14, "O2", "O2", "O", false, true),
+    AtomSpec(15, "N3", "N3", "N", false, true),
+    AtomSpec(16, "C4", "C4", "C", false, true),
+    AtomSpec(17, "O4", "O4", "O", false, true),
+    AtomSpec(18, "C5", "C5", "C", false, true),
+    AtomSpec(19, "C6", "C6", "C", false, true),
+    AtomSpec(20, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(21, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(22, "H5'", "1H5*", "H", false, true),
+    AtomSpec(23, "H5''", "2H5*", "H", false, true),
+    AtomSpec(24, "H4'", "H4*", "H", false, true),
+    AtomSpec(25, "H3'", "H3*", "H", false, true),
+    AtomSpec(26, "HO3'", "H3T", "H", true, true),
+    AtomSpec(27, "H2'", "1H2*", "H", false, true),
+    AtomSpec(28, "H2''", "2H2*", "H", false, true),
+    AtomSpec(29, "H1'", "H1*", "H", false, true),
+    AtomSpec(30, "H3", "H3", "H", false, true),
+    AtomSpec(31, "H5", "H5", "H", false, true),
+    AtomSpec(32, "H6", "H6", "H", false, true)
   };
   for (int i=0; i<33; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1740,40 +1740,40 @@ CompoundPtr MakeDCCompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C9 H14 N3 O7 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(12, "N1", "N1", "N", false, true,0),
-    AtomSpec(13, "C2", "C2", "C", false, true,0),
-    AtomSpec(14, "O2", "O2", "O", false, true,0),
-    AtomSpec(15, "N3", "N3", "N", false, true,0),
-    AtomSpec(16, "C4", "C4", "C", false, true,0),
-    AtomSpec(17, "N4", "N4", "N", false, true,0),
-    AtomSpec(18, "C5", "C5", "C", false, true,0),
-    AtomSpec(19, "C6", "C6", "C", false, true,0),
-    AtomSpec(20, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(21, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(22, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(23, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(24, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(25, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(26, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(27, "H2'", "1H2*", "H", false, true,0),
-    AtomSpec(28, "H2''", "2H2*", "H", false, true,0),
-    AtomSpec(29, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(30, "H41", "1H4", "H", false, true,0),
-    AtomSpec(31, "H42", "2H4", "H", false, true,0),
-    AtomSpec(32, "H5", "H5", "H", false, true,0),
-    AtomSpec(33, "H6", "H6", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "C1'", "C1*", "C", false, true),
+    AtomSpec(12, "N1", "N1", "N", false, true),
+    AtomSpec(13, "C2", "C2", "C", false, true),
+    AtomSpec(14, "O2", "O2", "O", false, true),
+    AtomSpec(15, "N3", "N3", "N", false, true),
+    AtomSpec(16, "C4", "C4", "C", false, true),
+    AtomSpec(17, "N4", "N4", "N", false, true),
+    AtomSpec(18, "C5", "C5", "C", false, true),
+    AtomSpec(19, "C6", "C6", "C", false, true),
+    AtomSpec(20, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(21, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(22, "H5'", "1H5*", "H", false, true),
+    AtomSpec(23, "H5''", "2H5*", "H", false, true),
+    AtomSpec(24, "H4'", "H4*", "H", false, true),
+    AtomSpec(25, "H3'", "H3*", "H", false, true),
+    AtomSpec(26, "HO3'", "H3T", "H", true, true),
+    AtomSpec(27, "H2'", "1H2*", "H", false, true),
+    AtomSpec(28, "H2''", "2H2*", "H", false, true),
+    AtomSpec(29, "H1'", "H1*", "H", false, true),
+    AtomSpec(30, "H41", "1H4", "H", false, true),
+    AtomSpec(31, "H42", "2H4", "H", false, true),
+    AtomSpec(32, "H5", "H5", "H", false, true),
+    AtomSpec(33, "H6", "H6", "H", false, true)
   };
   for (int i=0; i<34; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
@@ -1823,42 +1823,42 @@ CompoundPtr MakeDACompound() {
   c->SetChemType(mol::ChemType('U'));
   c->SetFormula("C10 H14 N5 O6 P");
   AtomSpec atoms[] = {
-    AtomSpec(0, "OP3", "O3P", "O", true, true,0),
-    AtomSpec(1, "P", "P", "P", false, true,0),
-    AtomSpec(2, "OP1", "O1P", "O", false, true,0),
-    AtomSpec(3, "OP2", "O2P", "O", false, true,0),
-    AtomSpec(4, "O5'", "O5*", "O", false, true,0),
-    AtomSpec(5, "C5'", "C5*", "C", false, true,0),
-    AtomSpec(6, "C4'", "C4*", "C", false, true,0),
-    AtomSpec(7, "O4'", "O4*", "O", false, true,0),
-    AtomSpec(8, "C3'", "C3*", "C", false, true,0),
-    AtomSpec(9, "O3'", "O3*", "O", false, true,0),
-    AtomSpec(10, "C2'", "C2*", "C", false, true,0),
-    AtomSpec(11, "C1'", "C1*", "C", false, true,0),
-    AtomSpec(12, "N9", "N9", "N", false, true,0),
-    AtomSpec(13, "C8", "C8", "C", false, true,0),
-    AtomSpec(14, "N7", "N7", "N", false, true,0),
-    AtomSpec(15, "C5", "C5", "C", false, true,0),
-    AtomSpec(16, "C6", "C6", "C", false, true,0),
-    AtomSpec(17, "N6", "N6", "N", false, true,0),
-    AtomSpec(18, "N1", "N1", "N", false, true,0),
-    AtomSpec(19, "C2", "C2", "C", false, true,0),
-    AtomSpec(20, "N3", "N3", "N", false, true,0),
-    AtomSpec(21, "C4", "C4", "C", false, true,0),
-    AtomSpec(22, "HOP3", "3HOP", "H", false, true,0),
-    AtomSpec(23, "HOP2", "2HOP", "H", false, true,0),
-    AtomSpec(24, "H5'", "1H5*", "H", false, true,0),
-    AtomSpec(25, "H5''", "2H5*", "H", false, true,0),
-    AtomSpec(26, "H4'", "H4*", "H", false, true,0),
-    AtomSpec(27, "H3'", "H3*", "H", false, true,0),
-    AtomSpec(28, "HO3'", "H3T", "H", true, true,0),
-    AtomSpec(29, "H2'", "1H2*", "H", false, true,0),
-    AtomSpec(30, "H2''", "2H2*", "H", false, true,0),
-    AtomSpec(31, "H1'", "H1*", "H", false, true,0),
-    AtomSpec(32, "H8", "H8", "H", false, true,0),
-    AtomSpec(33, "H61", "1H6", "H", false, true,0),
-    AtomSpec(34, "H62", "2H6", "H", false, true,0),
-    AtomSpec(35, "H2", "H2", "H", false, true,0)
+    AtomSpec(0, "OP3", "O3P", "O", true, true),
+    AtomSpec(1, "P", "P", "P", false, true),
+    AtomSpec(2, "OP1", "O1P", "O", false, true),
+    AtomSpec(3, "OP2", "O2P", "O", false, true),
+    AtomSpec(4, "O5'", "O5*", "O", false, true),
+    AtomSpec(5, "C5'", "C5*", "C", false, true),
+    AtomSpec(6, "C4'", "C4*", "C", false, true),
+    AtomSpec(7, "O4'", "O4*", "O", false, true),
+    AtomSpec(8, "C3'", "C3*", "C", false, true),
+    AtomSpec(9, "O3'", "O3*", "O", false, true),
+    AtomSpec(10, "C2'", "C2*", "C", false, true),
+    AtomSpec(11, "C1'", "C1*", "C", false, true),
+    AtomSpec(12, "N9", "N9", "N", false, true),
+    AtomSpec(13, "C8", "C8", "C", false, true),
+    AtomSpec(14, "N7", "N7", "N", false, true),
+    AtomSpec(15, "C5", "C5", "C", false, true),
+    AtomSpec(16, "C6", "C6", "C", false, true),
+    AtomSpec(17, "N6", "N6", "N", false, true),
+    AtomSpec(18, "N1", "N1", "N", false, true),
+    AtomSpec(19, "C2", "C2", "C", false, true),
+    AtomSpec(20, "N3", "N3", "N", false, true),
+    AtomSpec(21, "C4", "C4", "C", false, true),
+    AtomSpec(22, "HOP3", "3HOP", "H", false, true),
+    AtomSpec(23, "HOP2", "2HOP", "H", false, true),
+    AtomSpec(24, "H5'", "1H5*", "H", false, true),
+    AtomSpec(25, "H5''", "2H5*", "H", false, true),
+    AtomSpec(26, "H4'", "H4*", "H", false, true),
+    AtomSpec(27, "H3'", "H3*", "H", false, true),
+    AtomSpec(28, "HO3'", "H3T", "H", true, true),
+    AtomSpec(29, "H2'", "1H2*", "H", false, true),
+    AtomSpec(30, "H2''", "2H2*", "H", false, true),
+    AtomSpec(31, "H1'", "H1*", "H", false, true),
+    AtomSpec(32, "H8", "H8", "H", false, true),
+    AtomSpec(33, "H61", "1H6", "H", false, true),
+    AtomSpec(34, "H62", "2H6", "H", false, true),
+    AtomSpec(35, "H2", "H2", "H", false, true)
   };
   for (int i=0; i<36; ++i) { c->AddAtom(atoms[i]); }
   BondSpec bonds[] = {
diff --git a/modules/io/src/mol/chemdict_parser.cc b/modules/io/src/mol/chemdict_parser.cc
index b1aac36a2e7c866da336cd406a7ccae87c2e357a..654204dcd6591d31267b67bbde7b14ddabea19b4 100644
--- a/modules/io/src/mol/chemdict_parser.cc
+++ b/modules/io/src/mol/chemdict_parser.cc
@@ -22,7 +22,7 @@ bool ChemdictParser::OnBeginData(const StringRef& data_name)
 }
 
 bool ChemdictParser::OnBeginLoop(const StarLoopDesc& header)
-{  
+{ 
   if (header.GetCategory()=="chem_comp_atom") {
     loop_type_=ATOM_SPEC;
     indices_[ATOM_NAME]=header.GetIndex("atom_id");
@@ -30,8 +30,7 @@ bool ChemdictParser::OnBeginLoop(const StarLoopDesc& header)
     indices_[ELE]=header.GetIndex("type_symbol");      
     indices_[IS_LEAVING]=header.GetIndex("pdbx_leaving_atom_flag");
     indices_[IS_AROMATIC]=header.GetIndex("pdbx_aromatic_flag");
-    indices_[ORDINAL]=header.GetIndex("pdbx_ordinal");     
-    indices_[CHARGE]=header.GetIndex("charge");      
+    indices_[ORDINAL]=header.GetIndex("pdbx_ordinal");      
     return true;
   } else if (header.GetCategory()=="chem_comp_bond") {
     loop_type_=BOND_SPEC;
@@ -55,7 +54,6 @@ void ChemdictParser::OnDataRow(const StarLoopDesc& header,
     atom.ordinal=columns[indices_[ORDINAL]].to_int().second-1;
     atom.element=columns[indices_[ELE]].str();
     atom.is_aromatic=columns[indices_[IS_AROMATIC]][0]=='Y';
-    atom.charge=columns[indices_[CHARGE]].to_int().second;
     compound_->AddAtom(atom);
     atom_map_[atom.name]=atom.ordinal;
   } else if (loop_type_==BOND_SPEC) {
@@ -128,10 +126,6 @@ void ChemdictParser::OnDataItem(const StarDataItem& item)
     } else if (item.GetName()==StringRef("pdbx_modified_date", 18)) {
       compound_->SetModificationDate(Date::FromString(item.GetValue()));
     }
-     else if (item.GetName()==StringRef("pdbx_formal_charge", 18)) {
-      compound_->SetCharge(item.GetValue().to_int().second);
-       //std::cout << compound_->GetID() << compound_->GetCharge() << "\n" ;
-      }
   } else if (item.GetName()==StringRef("atom_id", 7)) {
     atom_.name=item.GetValue().str();
   } else if (item.GetName()==StringRef("alt_atom_id", 11)) {
diff --git a/modules/io/src/mol/chemdict_parser.hh b/modules/io/src/mol/chemdict_parser.hh
index ae5552885c5ff7fd2728282d8201df32d99065d2..51142744c37de1e419f39395db04edc926801982 100644
--- a/modules/io/src/mol/chemdict_parser.hh
+++ b/modules/io/src/mol/chemdict_parser.hh
@@ -75,13 +75,12 @@ private:
     IS_LEAVING=4,
     ELE=5,
     STEREO_CONF=6,
-    CHARGE=7,
     ATOM_ID1=0,
     ATOM_ID2=1,
     BOND_ORDER=2
   } PropIndex;
   char                                    last_;
-  int                                     indices_[11];
+  int                                     indices_[10];
   bool                                    insert_;
   static std::map<String, mol::ChemClass> tm_;  
   static std::map<String, mol::ChemType>  xtm_;