diff --git a/data/bonds.json b/data/bonds.json
index e6225f2b13ec9789d973328fb99bd497a689dca4..3f91d71a647e7bee74ed1c5b3a1961afc3a681f8 100644
--- a/data/bonds.json
+++ b/data/bonds.json
@@ -3,27 +3,27 @@
   "bonds":{
     "length":{
       "test":             "test     100     1.000",
-      "sugar-ring":       "harmonic 200     1.520",
-      "sugar-glyc":       "harmonic   1.0   2.600",
       "cho-pho":          "harmonic   1.506 4.770",
       "pho-gly":          "harmonic   1.506 4.410",
       "gly-est":          "harmonic   1.506 4.140",
       "est-tail":         "harmonic   1.506 4.095",
       "tail-tail":        "harmonic   1.506 4.050",
       "ami-pho":          "harmonic   1.506 4.365",
+      "sugar-ring":       "harmonic 200     1.520",
+      "sugar-glyc":       "harmonic 110     2.458",
       "sugar-dum":        "harmonic 100     3"
     },
     "angle":{
-      "sugar-ring":       "cosine/squared 120     110.0",
-      "dipole":           "dipole          10     109.0",
       "cho-pho-gly":      "cosine/squared   3.585 115.0",
       "pho-gly-est":      "cosine/squared   3.585  90.0",
       "tail-sat":         "cosine/squared   3.585 180.0",
       "tail-unsat":       "cosine/squared   3.585 120.0",
       "gly-dipole":       "dipole           1.195   0.0",
+      "sugar-ring":       "cosine/squared 120     110.0",
       "sugar-dipole":     "dipole/harmonic  1     150",
-      "sugar-glyc-1":     "cosine/squared   x     139",
-      "sugar-glyc-2":     "cosine/squared   x     139"
+      "sugar-glyc-1":     "cosine/squared  63     139",
+      "sugar-glyc-2":     "cosine/squared  14     115.5",
+      "sugar-glyc-2-C6":  "cosine/squared   9.4   134"
     },
     "dihedral":{
       "sugar-dih-1":      "fourier 2    1.00 3 0    0.25 1 -120",
@@ -34,18 +34,12 @@
       "sugar-dih-30pc-2": "fourier 2    0.75 3 0   -0.10 1  120",
       "sugar-dih-80pc-1": "fourier 2    0.75 3 0   -0.32 1 -120",
       "sugar-dih-80pc-2": "fourier 2    0.75 3 0   -0.32 1  120",
-      "dipole-1":         "dipole  50 -60",
-      "dipole-2":         "dipole  50  60",
       "sugar-glyc-ax":    "charmm  10.0 1 170 0.0",
       "sugar-glyc-ax-ax": "charmm  10.0 1 160 0.0",
       "sugar-glyc-ax-eq": "charmm  10.0 1 185 0.0",
       "sugar-glyc-eq":    "charmm   5.0 1  85 0.0",
       "sugar-glyc-eq-ax": "charmm   5.0 1  95 0.0",
       "sugar-glyc-eq-eq": "charmm   5.0 1  80 0.0"
-    },
-    "improper":{
-      "dipole-cone-1":    "dipole/cone 200  120 60",
-      "dipole-cone-2":    "dipole/cone 200 -120 60"
     }
   }
 }
diff --git a/data/elba-sugar/mol-allose.json b/data/elba-sugar/mol-allose.json
index 7c43f160a6a4fd6c8e95f5deb7172be537e77ebb..1372be9d158586aed549c6560a39aa38fe534dad 100644
--- a/data/elba-sugar/mol-allose.json
+++ b/data/elba-sugar/mol-allose.json
@@ -12,36 +12,11 @@
         {"type": "sugar-dih-2", "atoms":["O5", "C1", "C2", "C3"]}
       ]
     },
-    "0NXD":{
-      "templates":["0XXD"],
-      "dihedrals":[
-        {"type": "sugar-dih-1", "atoms":["C1", "C2", "C3", "C4"]},
-        {"type": "sugar-dih-2", "atoms":["C2", "C3", "C4", "C5"]},
-        {"type": "sugar-dih-1", "atoms":["C3", "C4", "C5", "O5"]},
-        {"type": "sugar-dih-2", "atoms":["C4", "C5", "O5", "C1"]},
-        {"type": "sugar-dih-1", "atoms":["C5", "O5", "C1", "C2"]},
-        {"type": "sugar-dih-2", "atoms":["O5", "C1", "C2", "C3"]}
-      ]
-    },
     "0NA":{
-      "templates":["0NX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0NX"]
     },
     "0NB":{
-      "templates":["0NX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0NX"]
     },
     "1NA":{
       "templates":["0NA"],
@@ -102,9 +77,6 @@
       "lengths":[
         {"type": "sugar-glyc", "atoms":["C1", "+C5"]}
       ]
-    },
-    "3NAD":{
-      "templates":["0NXD"]
     }
   }
 }
diff --git a/data/elba-sugar/mol-altrose.json b/data/elba-sugar/mol-altrose.json
index 908661f2c91afa832e478ec52bc806a6a7f112c5..d895fdf057fbdde43a44870d5a51c565a9c191b5 100644
--- a/data/elba-sugar/mol-altrose.json
+++ b/data/elba-sugar/mol-altrose.json
@@ -13,24 +13,10 @@
       ]
     },
     "0EA":{
-      "templates":["0EX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0EX"]
     },
     "0EB":{
-      "templates":["0EX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0EX"]
     },
     "1EA":{
       "templates":["0EA"],
diff --git a/data/elba-sugar/mol-galactose.json b/data/elba-sugar/mol-galactose.json
index 3ec8abb4676dfb7df323f9de770e0d497a0eb6a5..c1020bcd628d7eb68724aa673c2e5d41f88e6124 100644
--- a/data/elba-sugar/mol-galactose.json
+++ b/data/elba-sugar/mol-galactose.json
@@ -13,24 +13,10 @@
       ]
     },
     "0LA":{
-      "templates":["0LX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0LX"]
     },
     "0LB":{
-      "templates":["0LX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0LX"]
     },
     "1LA":{
       "templates":["0LA"],
diff --git a/data/elba-sugar/mol-glucose.json b/data/elba-sugar/mol-glucose.json
index dbc56aa7a341a15b2e41aa72d725917aa5288ab5..de03693eeb3535a84561f402c5d5193d8ff9422f 100644
--- a/data/elba-sugar/mol-glucose.json
+++ b/data/elba-sugar/mol-glucose.json
@@ -12,36 +12,11 @@
         {"type": "sugar-dih-2", "atoms":["O5", "C1", "C2", "C3"]}
       ]
     },
-    "0GXD":{
-      "templates":["0XXD"],
-      "dihedrals":[
-        {"type": "sugar-dih-1", "atoms":["C1", "C2", "C3", "C4"]},
-        {"type": "sugar-dih-2", "atoms":["C2", "C3", "C4", "C5"]},
-        {"type": "sugar-dih-1", "atoms":["C3", "C4", "C5", "O5"]},
-        {"type": "sugar-dih-2", "atoms":["C4", "C5", "O5", "C1"]},
-        {"type": "sugar-dih-1", "atoms":["C5", "O5", "C1", "C2"]},
-        {"type": "sugar-dih-2", "atoms":["O5", "C1", "C2", "C3"]}
-      ]
-    },
     "0GA":{
-      "templates":["0GX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0GX"]
     },
     "0GB":{
-      "templates":["0GX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0GX"]
     },
     "1GA":{
       "templates":["0GA"],
@@ -102,20 +77,6 @@
       "lengths":[
         {"type": "sugar-glyc", "atoms":["C1", "+C5"]}
       ]
-    },
-    "0GAD": {
-      "templates": [
-        "0GXD"
-      ]
-    },
-    "1GAD":{
-      "templates":["0GAD"],
-      "lengths":[
-        {"type": "sugar-glyc", "atoms":["C1", "+C1"]}
-      ],
-      "angles":[
-        {"type": "sugar-glyc-1", "atoms":["C2", "C1", "+C1"]}
-      ]
     }
   }
 }
\ No newline at end of file
diff --git a/data/elba-sugar/mol-gulose.json b/data/elba-sugar/mol-gulose.json
index 4e9157f1e4ba20bfaf95b2a46725a2dcbe4ca920..ec61da89794da35eb0c7d18a38bb90b6fecf069d 100644
--- a/data/elba-sugar/mol-gulose.json
+++ b/data/elba-sugar/mol-gulose.json
@@ -13,24 +13,10 @@
       ]
     },
     "0KA":{
-      "templates":["0KX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0KX"]
     },
     "0KB":{
-      "templates":["0KX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-1", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0KX"]
     },
     "1KA":{
       "templates":["0KA"],
diff --git a/data/elba-sugar/mol-idose.json b/data/elba-sugar/mol-idose.json
index 5f8d23310a333c5cf7af5306956b857be28151b5..7e8ca0b2ccfc6bc72f5f9efccda6e7cd8b3a67aa 100644
--- a/data/elba-sugar/mol-idose.json
+++ b/data/elba-sugar/mol-idose.json
@@ -13,24 +13,10 @@
       ]
     },
     "0IA":{
-      "templates":["0IX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0IX"]
     },
     "0IB":{
-      "templates":["0IX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-1", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0IX"]
     },
     "1IA":{
       "templates":["0IA"],
diff --git a/data/elba-sugar/mol-mannose.json b/data/elba-sugar/mol-mannose.json
index b57febd193dade0c616b63d809a26cb0bec0d364..48d82808d066578c08fce1806a3d7e85b1a313a9 100644
--- a/data/elba-sugar/mol-mannose.json
+++ b/data/elba-sugar/mol-mannose.json
@@ -13,24 +13,10 @@
       ]
     },
     "0MA":{
-      "templates":["0MX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0MX"]
     },
     "0MB":{
-      "templates":["0MX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-1", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0MX"]
     },
     "1MA":{
       "templates":["0MA"],
diff --git a/data/elba-sugar/mol-talose.json b/data/elba-sugar/mol-talose.json
index 58d86635715db484efc2bcea8fa40e5a7a84b7d0..ad4795af856d6b8a2b849367994ccf20aa4bb1ec 100644
--- a/data/elba-sugar/mol-talose.json
+++ b/data/elba-sugar/mol-talose.json
@@ -13,24 +13,10 @@
       ]
     },
     "0TA":{
-      "templates":["0TX"],
-      "impropers":[
-        {"type": "dipole-cone-1", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0TX"]
     },
     "0TB":{
-      "templates":["0TX"],
-      "impropers":[
-        {"type": "dipole-cone-2", "atoms":["C1", "C2", "O5", "C1"]},
-        {"type": "dipole-cone-2", "atoms":["C2", "C3", "C1", "C2"]},
-        {"type": "dipole-cone-2", "atoms":["C3", "C4", "C2", "C3"]},
-        {"type": "dipole-cone-2", "atoms":["C4", "C5", "C3", "C4"]},
-        {"type": "dipole-cone-2", "atoms":["C5", "O5", "C4", "C5"]}
-      ]
+      "templates":["0TX"]
     },
     "1TA":{
       "templates":["0TA"],
diff --git a/data/mol-elba-sugar.json b/data/mol-elba-sugar.json
index bbd66f251db9cf78d879fd21b8b1d239bf31d5bf..78a1bbd804b84845bac3c4a549c2c129ff45db26 100644
--- a/data/mol-elba-sugar.json
+++ b/data/mol-elba-sugar.json
@@ -25,33 +25,6 @@
       ]
     },
     "0XX":{
-      "polymer_type":["sugar"],
-      "atoms":[
-        {"name": "C1", "type": "MEOH"},
-        {"name": "C2", "type": "MEOH"},
-        {"name": "C3", "type": "MEOH"},
-        {"name": "C4", "type": "MEOH"},
-        {"name": "C5", "type": "ETOH"},
-        {"name": "O5", "type": "OXY"}
-      ],
-      "lengths":[
-        {"type": "sugar-ring", "atoms":["C1", "C2"]},
-        {"type": "sugar-ring", "atoms":["C2", "C3"]},
-        {"type": "sugar-ring", "atoms":["C3", "C4"]},
-        {"type": "sugar-ring", "atoms":["C4", "C5"]},
-        {"type": "sugar-ring", "atoms":["C5", "O5"]},
-        {"type": "sugar-ring", "atoms":["O5", "C1"]}
-      ],
-      "angles":[
-        {"type": "sugar-ring", "atoms":["C1", "C2", "C3"]},
-        {"type": "sugar-ring", "atoms":["C2", "C3", "C4"]},
-        {"type": "sugar-ring", "atoms":["C3", "C4", "C5"]},
-        {"type": "sugar-ring", "atoms":["C4", "C5", "O5"]},
-        {"type": "sugar-ring", "atoms":["C5", "O5", "C1"]},
-        {"type": "sugar-ring", "atoms":["O5", "C1", "C2"]}
-      ]
-    },
-    "0XXD":{
       "polymer_type":["sugar"],
       "atoms":[
         {"name": "C1", "type": "MEOH"},
diff --git a/data/schema.json b/data/schema.json
index 43bdf2f42c21ae647211c4c9aebdb7a1018999af..fb33ec0146cda31a30a32aa2169bc63facbe4b5a 100644
--- a/data/schema.json
+++ b/data/schema.json
@@ -25,11 +25,12 @@
         {"required": ["templates"]},
         {"required": ["atoms"]}
       ],
+      "additionalProperties": false,
       "properties": {
         "comment": {"type": "string"},
         "templates": {
           "type": "array",
-          "minLength": 1,
+          "minLength": 0,
           "items": {"type": "string"}
         },
         "polymer_type": {